Projet

Général

Profil

0001-add-portal-agent-first-level-page-on-sidebar-11039.patch

Thomas Noël, 01 décembre 2016 17:16

Télécharger (4,55 ko)

Voir les différences:

Subject: [PATCH] add portal agent first level page on sidebar (#11039)

 combo/apps/publik/views.py                  | 11 +++++++++++
 data/themes/gadjo/static/js/agent-portal.js |  4 ----
 data/themes/gadjo/static/js/publik.js       | 23 +++++++++++++++++++++--
 3 files changed, 32 insertions(+), 6 deletions(-)
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
-