0001-add-portal-agent-first-level-page-on-sidebar-11039.patch
combo/apps/publik/views.py | ||
---|---|---|
19 | 19 |
from django.conf import settings |
20 | 20 |
from django.http import Http404, HttpResponse |
21 | 21 | |
22 |
from combo.data.models import Page |
|
23 | ||
24 | ||
22 | 25 |
def services_js(request, *args, **kwargs): |
23 | 26 |
if not getattr(settings, 'KNOWN_SERVICES', None): |
24 | 27 |
raise Http404() |
25 | 28 |
services = [] |
26 | 29 |
portal_agent_url = None |
27 | 30 |
portal_agent_title = None |
31 |
portal_agent_subpages = [] |
|
28 | 32 |
for service_id, services_dict in settings.KNOWN_SERVICES.items(): |
29 | 33 |
for service_slug, service in services_dict.items(): |
30 | 34 |
if service.get('is-portal-agent'): |
31 | 35 |
portal_agent_url = service['url'] |
32 | 36 |
portal_agent_title = service['title'] |
37 |
portal_agent_subpages = [{'label': page.title, |
|
38 |
'slug': page.slug, |
|
39 |
'url': request.build_absolute_uri(page.get_online_url()) |
|
40 |
} for page in Page.objects.filter(parent=None, |
|
41 |
exclude_from_navigation=False).exclude(slug='index') |
|
42 |
if page.is_visible(request.user)] # subpages = first level pages |
|
33 | 43 |
services.append({ |
34 | 44 |
'title': service['title'], |
35 | 45 |
'slug': service_slug, |
... | ... | |
42 | 52 |
'PUBLIK_ENVIRONMENT_LABEL': settings.TEMPLATE_VARS.get('environment_label'), |
43 | 53 |
'PUBLIK_PORTAL_AGENT_URL': portal_agent_url, |
44 | 54 |
'PUBLIK_PORTAL_AGENT_TITLE': portal_agent_title, |
55 |
'PUBLIK_PORTAL_AGENT_SUBPAGES': portal_agent_subpages, |
|
45 | 56 |
'PUBLIK_PORTAL_AGENT_EXTRA_CSS': settings.TEMPLATE_VARS.get( |
46 | 57 |
'portal_agent_extra_css'), |
47 | 58 |
'COMBO_KNOWN_SERVICES': services, |
data/themes/gadjo/static/js/agent-portal.js | ||
---|---|---|
26 | 26 |
}); |
27 | 27 |
}); |
28 | 28 |
}); |
29 |
$(document).on('publik:menu-loaded', function(event, services) { |
|
30 |
/* mark our location in publik menu */ |
|
31 |
$('#portal-agent-home').addClass('active'); |
|
32 |
}); |
|
33 | 29 |
}); |
data/themes/gadjo/static/js/publik.js | ||
---|---|---|
23 | 23 |
$('#sidepage-menu').remove(); |
24 | 24 |
var menu_links = $('<ul id="sidepage-menu">'); |
25 | 25 |
if (PUBLIK_PORTAL_AGENT_URL && PUBLIK_PORTAL_AGENT_TITLE) { |
26 |
var li = $('<li id="portal-agent-home"><a>' + PUBLIK_PORTAL_AGENT_TITLE + '</a></li>').appendTo(menu_links); |
|
27 |
$(li).find('a').attr('href', PUBLIK_PORTAL_AGENT_URL).addClass('icon-home'); |
|
26 |
var home = $('<li id="portal-agent-home"><a>' + PUBLIK_PORTAL_AGENT_TITLE + '</a></li>').appendTo(menu_links); |
|
27 |
$(home).find('a').attr('href', PUBLIK_PORTAL_AGENT_URL).addClass('icon-home'); |
|
28 |
if (window.location.href.indexOf(PUBLIK_PORTAL_AGENT_URL) == 0) { |
|
29 |
$(home).addClass('active'); |
|
30 |
} |
|
31 |
if (PUBLIK_PORTAL_AGENT_SUBPAGES) { |
|
32 |
$(PUBLIK_PORTAL_AGENT_SUBPAGES).each(function(index, page) { |
|
33 |
var li = $('<li><a href="#">' + page.label + '</a></li>').appendTo(menu_links); |
|
34 |
$(li).find('a').attr('href', page.url); |
|
35 |
$(li).find('a').attr('title', page.label); |
|
36 |
if (page.icon !== undefined) { |
|
37 |
$(li).find('a').addClass('icon-portal-agent-' + page.icon); |
|
38 |
} else if (page.slug !== undefined) { |
|
39 |
$(li).find('a').addClass('icon-portal-agent-' + page.slug); |
|
40 |
} |
|
41 |
if (window.location.href.indexOf(page.url) == 0) { |
|
42 |
$(li).addClass('active'); |
|
43 |
$(home).removeClass('active'); |
|
44 |
} |
|
45 |
}); |
|
46 |
} |
|
28 | 47 |
} |
29 | 48 |
var more_entries = Array(); |
30 | 49 |
var service_order = Array('authentic', 'welco', 'wcs', 'bijoe', 'chrono', 'corbo', 'combo', 'passerelle', 'hobo'); |
31 |
- |