PageSourceSearch

https://www.habo.se/webapp-resource/4.55b0626d14b23802598b7a30/360…/1633593375962/webapp-assets.js

js habo.se collected 2026-10-02 23:59:32 UTC 3,799 bytes, 106 lines download raw bytes

1AppRegistry.registerBundle({applicationId:'menu|0.0.1',bundle: {}});
2AppRegistry.registerModule({applicationId:'menu|0.0.1',path:'/module/client/updateMenu',module:function(define){'use strict';define(function (require) {
3  'use strict';
4
5  var $ = require('jquery'),
6      router = require('router'),
7      requester = require('requester');
8
9  $(".habo-sub-menu__toggle, .habo-mobile-menu__toggle").on("click", function (e) {
10    var button = $(e.currentTarget);
11    button.attr('aria-expanded', $(this).attr('aria-expanded') == "false" ? true : false);
12  });
13  return {
14    fetchNewItems: function fetchNewItems(e, className) {
15      var target = $(e.currentTarget),
16          id = target.data("id"),
17          parent = target.parents('.' + className + '__item').first(),
18          openClass = className + "__toggle--open",
19          activeClass = className + "__item--active",
20          openClassSelector = "." + className + "__toggle--open";
21      var targetText = $(e.currentTarget).prev().text();
22
23      if (target.hasClass(openClass)) {
24        parent.find("ul").hide();
25        target.removeClass(openClass);
26        parent.find(openClassSelector).parent().find("ul").hide();
27        parent.find(openClassSelector).removeClass(openClass);
28        parent.removeClass(activeClass);
29        target.attr("aria-label", "Öppna menystruktur för " + targetText);
30        return false;
31      } else {
32        if (parent.data("load") === true) {
33          parent.find("ul").first().show();
34          target.addClass(openClass);
35          parent.addClass(activeClass);
36          target.attr("aria-label", "Stäng menystruktur för " + targetText);
37        } else {
38          requester.doPut({
39            url: router.getUrl('/update-menu'),
40            data: {
41              id: id
42            }
43          }).done(function (response) {
44            if (response) {
45              parent.append(response.startMenu);
46              parent.data("load", true);
47              target.addClass(openClass);
48              parent.addClass(activeClass);
49              target.attr("aria-label", "Stäng menystruktur för " + targetText);
50            }
51          });
52        }
53
54        return false;
55      }
56    }
57  };
58});}});
59AppRegistry.registerModule({applicationId:'menu|0.0.1',path:'/template/main',module:function(define){define(function(require){var _=require('underscore');return function(obj){
60var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};
61with(obj||{}){
62__p+='\n';
63 if (menuType === 'submenu') { 
64__p+=' \n    <nav class="habo-sub-menu">\n        '+
65((__t=( renderStartNode ))==null?'':__t)+
66'\n        '+
67((__t=( startMenu ))==null?'':__t)+
68'\n    </nav>\n';
69 } else { 
70__p+=' \n    <nav class="habo-mobile-menu">\n        '+
71((__t=( startMenu ))==null?'':__t)+
72'\n    </nav>\n';
73 } 
74__p+='';
75}
76return __p;
77};});}});
78AppRegistry.registerModule({applicationId:'menu|0.0.1',path:'/main',module:function(define){'use strict';define(function (require) {
79  'use strict';
80
81  var _ = require('underscore'),
82      Component = require('Component'),
83      template = require('/template/main'),
84      updateMenu = require('/module/client/updateMenu');
85
86  return Component.extend({
87    template: template,
88    events: {
89      dom: {
90        'click button.habo-sub-menu__toggle': 'handleUpdateSubMenu',
91        'click button.habo-mobile-menu__toggle': 'handleUpdateMobileMenu'
92      }
93    },
94    handleUpdateMobileMenu: function handleUpdateMobileMenu(e) {
95      updateMenu.fetchNewItems(e, 'habo-mobile-menu');
96    },
97    handleUpdateSubMenu: function handleUpdateSubMenu(e) {
98      updateMenu.fetchNewItems(e, 'habo-sub-menu');
99    },
100    filterState: function filterState(state) {
101      return _.extend({}, {
102        startMenu: state.startMenu
103      });
104    }
105  });
106});}});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.