##// END OF EJS Templates
frontend: move link definitions to javascript layer
ergo -
Show More
@@ -71,7 +71,6 b' def register_appenlight_plugin(config, plugin_name, plugin_config):'
71 'javascript': None,
71 'javascript': None,
72 'static': None,
72 'static': None,
73 'css': None,
73 'css': None,
74 'top_nav': None,
75 'celery_tasks': None,
74 'celery_tasks': None,
76 'celery_beats': None,
75 'celery_beats': None,
77 'fulltext_indexer': None,
76 'fulltext_indexer': None,
@@ -2744,6 +2744,7 b' var pluginsToLoad = _.map(decodeEncodedJSON(window.AE.plugins),'
2744 function(item){
2744 function(item){
2745 return item.config.angular_module
2745 return item.config.angular_module
2746 });
2746 });
2747 console.info(pluginsToLoad);
2747
2748
2748 angular.module('appenlight.plugins', pluginsToLoad);
2749 angular.module('appenlight.plugins', pluginsToLoad);
2749
2750
@@ -2815,6 +2816,14 b' function kickstartAE(initialUserData) {'
2815 function ($rootScope, $timeout, stateHolder, $state, $location, $transitions, $window, AeConfig) {
2816 function ($rootScope, $timeout, stateHolder, $state, $location, $transitions, $window, AeConfig) {
2816 if (initialUserData){
2817 if (initialUserData){
2817 stateHolder.AeUser.update(initialUserData);
2818 stateHolder.AeUser.update(initialUserData);
2819
2820 if (stateHolder.AeUser.hasAppPermission('root_administration'
2821 )){
2822 AeConfig.topNav.menuAdminItems.push(
2823 {'sref': 'admin', 'label': 'Admin Settings'}
2824 )
2825 }
2826
2818 }
2827 }
2819 $rootScope.$state = $state;
2828 $rootScope.$state = $state;
2820 $rootScope.stateHolder = stateHolder;
2829 $rootScope.stateHolder = stateHolder;
@@ -2948,7 +2957,7 b' function kickstartAE(initialUserData) {'
2948 " <span class=\"fa fa-bar-chart-o \"></span></a>\n" +
2957 " <span class=\"fa fa-bar-chart-o \"></span></a>\n" +
2949 " <ul class=\"dropdown-menu\">\n" +
2958 " <ul class=\"dropdown-menu\">\n" +
2950 " <li role=\"presentation\"><a data-ui-sref=\"front_dashboard\">Main dashboard</a></li>\n" +
2959 " <li role=\"presentation\"><a data-ui-sref=\"front_dashboard\">Main dashboard</a></li>\n" +
2951 " <li role=\"presentation\" ng-repeat=\"item in $ctrl.AeConfig.topNav.menu_dashboards_items\">\n" +
2960 " <li role=\"presentation\" ng-repeat=\"item in $ctrl.AeConfig.topNav.menuDashboardsItems\">\n" +
2952 " <a data-ui-sref=\"{{ item.sref }}\">{{ item.label }}</a>\n" +
2961 " <a data-ui-sref=\"{{ item.sref }}\">{{ item.label }}</a>\n" +
2953 " </li>\n" +
2962 " </li>\n" +
2954 " </ul>\n" +
2963 " </ul>\n" +
@@ -2973,11 +2982,11 b' function kickstartAE(initialUserData) {'
2973 " <li>\n" +
2982 " <li>\n" +
2974 " <a data-ui-sref=\"user\" data-uib-tooltip=\"Settings\" tooltip-placement=\"bottom\"><span class=\"fa fa-cog \"></span></a>\n" +
2983 " <a data-ui-sref=\"user\" data-uib-tooltip=\"Settings\" tooltip-placement=\"bottom\"><span class=\"fa fa-cog \"></span></a>\n" +
2975 " </li>\n" +
2984 " </li>\n" +
2976 " <li class=\"dropdown\" data-uib-dropdown data-ng-if=\"$ctrl.AeConfig.topNav.menu_admin_items.length\">\n" +
2985 " <li class=\"dropdown\" data-uib-dropdown data-ng-if=\"$ctrl.AeConfig.topNav.menuAdminItems.length\">\n" +
2977 " <a class=\"dropdown-toggle\" data-uib-dropdown-toggle tooltip-placement=\"bottom\" data-uib-tooltip=\"Admin Settings\">\n" +
2986 " <a class=\"dropdown-toggle\" data-uib-dropdown-toggle tooltip-placement=\"bottom\" data-uib-tooltip=\"Admin Settings\">\n" +
2978 " <span class=\"fa fa-wrench\"></span></a>\n" +
2987 " <span class=\"fa fa-wrench\"></span></a>\n" +
2979 " <ul class=\"dropdown-menu\">\n" +
2988 " <ul class=\"dropdown-menu\">\n" +
2980 " <li role=\"presentation\" ng-repeat=\"item in $ctrl.AeConfig.topNav.menu_admin_items\">\n" +
2989 " <li role=\"presentation\" ng-repeat=\"item in $ctrl.AeConfig.topNav.menuAdminItems\">\n" +
2981 " <a data-ui-sref=\"{{ item.sref }}\">{{ item.label }}</a>\n" +
2990 " <a data-ui-sref=\"{{ item.sref }}\">{{ item.label }}</a>\n" +
2982 " </li>\n" +
2991 " </li>\n" +
2983 " </ul>\n" +
2992 " </ul>\n" +
@@ -6157,6 +6166,13 b' function kickstartAE(initialUserData) {'
6157 " <li class=\"list-group-item\" ui-sref-active-eq=\"active\"><a data-ui-sref=\"applications.update({resourceId:'new'})\"><span class=\"fa fa-plus-circle\"></span> Create application</a></li>\n" +
6166 " <li class=\"list-group-item\" ui-sref-active-eq=\"active\"><a data-ui-sref=\"applications.update({resourceId:'new'})\"><span class=\"fa fa-plus-circle\"></span> Create application</a></li>\n" +
6158 " <li class=\"list-group-item\" ui-sref-active-eq=\"active\"><a data-ui-sref=\"applications.purge_logs\"><span class=\"fa fa-trash-o\"></span> Purge logs</a></li>\n" +
6167 " <li class=\"list-group-item\" ui-sref-active-eq=\"active\"><a data-ui-sref=\"applications.purge_logs\"><span class=\"fa fa-trash-o\"></span> Purge logs</a></li>\n" +
6159 " </ul>\n" +
6168 " </ul>\n" +
6169 "\n" +
6170 " <ul class=\"list-group\" data-ng-if=\"$ctrl.AeConfig.settingsNav.menuApplicationsItems.length\">\n" +
6171 " <li class=\"list-group-item\" ng-repeat=\"item in $ctrl.AeConfig.settingsNav.menuApplicationsItems\">\n" +
6172 " <a data-ui-sref=\"{{ item.sref }}\">{{ item.label }}</a>\n" +
6173 " </li>\n" +
6174 " </ul>\n" +
6175 "\n" +
6160 " </div>\n" +
6176 " </div>\n" +
6161 "\n" +
6177 "\n" +
6162 "\n" +
6178 "\n" +
@@ -6168,6 +6184,13 b' function kickstartAE(initialUserData) {'
6168 " <li class=\"list-group-item\" ui-sref-active-eq=\"active\"><a data-ui-sref=\"user.profile.identities\"><span class=\"fa fa-link\"></span> External Identities</a></li>\n" +
6184 " <li class=\"list-group-item\" ui-sref-active-eq=\"active\"><a data-ui-sref=\"user.profile.identities\"><span class=\"fa fa-link\"></span> External Identities</a></li>\n" +
6169 " <li class=\"list-group-item\" ui-sref-active-eq=\"active\"><a data-ui-sref=\"user.profile.auth_tokens\"><span class=\"fa fa-unlock\"></span> Auth Tokens</a></li>\n" +
6185 " <li class=\"list-group-item\" ui-sref-active-eq=\"active\"><a data-ui-sref=\"user.profile.auth_tokens\"><span class=\"fa fa-unlock\"></span> Auth Tokens</a></li>\n" +
6170 " </ul>\n" +
6186 " </ul>\n" +
6187 "\n" +
6188 " <ul class=\"list-group\" data-ng-if=\"$ctrl.AeConfig.settingsNav.menuUserSettingsItems.length\">\n" +
6189 " <li class=\"list-group-item\" ng-repeat=\"item in $ctrl.AeConfig.settingsNav.menuUserSettingsItems\">\n" +
6190 " <a data-ui-sref=\"{{ item.sref }}\">{{ item.label }}</a>\n" +
6191 " </li>\n" +
6192 " </ul>\n" +
6193 "\n" +
6171 " </div>\n" +
6194 " </div>\n" +
6172 "\n" +
6195 "\n" +
6173 " <div class=\"panel panel-default\">\n" +
6196 " <div class=\"panel panel-default\">\n" +
@@ -6176,7 +6199,15 b' function kickstartAE(initialUserData) {'
6176 " <li class=\"list-group-item\" ui-sref-active-eq=\"active\"><a data-ui-sref=\"user.alert_channels.list\"><span class=\"fa fa-bullhorn\"></span> Alert channels</a></li>\n" +
6199 " <li class=\"list-group-item\" ui-sref-active-eq=\"active\"><a data-ui-sref=\"user.alert_channels.list\"><span class=\"fa fa-bullhorn\"></span> Alert channels</a></li>\n" +
6177 " <li class=\"list-group-item\" ui-sref-active-eq=\"active\"><a data-ui-sref=\"user.alert_channels.email\"><span class=\"fa fa-envelope\"></span> Add email channel</a></li>\n" +
6200 " <li class=\"list-group-item\" ui-sref-active-eq=\"active\"><a data-ui-sref=\"user.alert_channels.email\"><span class=\"fa fa-envelope\"></span> Add email channel</a></li>\n" +
6178 " </ul>\n" +
6201 " </ul>\n" +
6202 "\n" +
6203 " <ul class=\"list-group\" data-ng-if=\"$ctrl.AeConfig.settingsNav.menuNotificationsItems.length\">\n" +
6204 " <li class=\"list-group-item\" ng-repeat=\"item in $ctrl.AeConfig.settingsNav.menuNotificationsItems\">\n" +
6205 " <a data-ui-sref=\"{{ item.sref }}\">{{ item.label }}</a>\n" +
6206 " </li>\n" +
6207 " </ul>\n" +
6208 "\n" +
6179 " </div>\n" +
6209 " </div>\n" +
6210 "\n" +
6180 " </div>\n" +
6211 " </div>\n" +
6181 "\n" +
6212 "\n" +
6182 " <div class=\"col-sm-9\" ui-view></div>\n" +
6213 " <div class=\"col-sm-9\" ui-view></div>\n" +
@@ -10465,10 +10496,11 b" angular.module('appenlight.components.settingsView', [])"
10465 controller: SettingsViewController
10496 controller: SettingsViewController
10466 });
10497 });
10467
10498
10468 SettingsViewController.$inject = ['$state'];
10499 SettingsViewController.$inject = ['$state', 'AeConfig'];
10469
10500
10470 function SettingsViewController($state) {
10501 function SettingsViewController($state, AeConfig) {
10471 this.$state = $state;
10502 this.$state = $state;
10503 this.AeConfig = AeConfig;
10472 console.info('SettingsViewController');
10504 console.info('SettingsViewController');
10473 }
10505 }
10474
10506
@@ -10921,7 +10953,19 b" aeconfig.factory('AeConfig', function () {"
10921 obj.flashMessages = decodeEncodedJSON(window.AE.flash_messages);
10953 obj.flashMessages = decodeEncodedJSON(window.AE.flash_messages);
10922 obj.timeOptions = decodeEncodedJSON(window.AE.timeOptions);
10954 obj.timeOptions = decodeEncodedJSON(window.AE.timeOptions);
10923 obj.plugins = decodeEncodedJSON(window.AE.plugins);
10955 obj.plugins = decodeEncodedJSON(window.AE.plugins);
10924 obj.topNav = decodeEncodedJSON(window.AE.topNav);
10956 obj.topNav = {
10957 menuDashboardsItems: [],
10958 menuReportsItems: [],
10959 menuLogsItems: [],
10960 menuSettingsItems: [],
10961 menuAdminItems: []
10962 };
10963 obj.settingsNav = {
10964 menuApplicationsItems: [],
10965 menuUserSettingsItems: [],
10966 menuNotificationsItems: []
10967 };
10968 obj.adminNav = {};
10925 obj.ws_url = window.AE.ws_url;
10969 obj.ws_url = window.AE.ws_url;
10926 obj.urls = window.AE.urls;
10970 obj.urls = window.AE.urls;
10927 // set keys on values because we wont be able to retrieve them everywhere
10971 // set keys on values because we wont be able to retrieve them everywhere
@@ -13096,7 +13140,14 b" angular.module('appenlight.services.stateHolder', []).factory('stateHolder',"
13096 self.inclusions[name] = [];
13140 self.inclusions[name] = [];
13097 }
13141 }
13098 self.inclusions[name].push(inclusion);
13142 self.inclusions[name].push(inclusion);
13099 }
13143 },
13144 addnavigation: function (name, inclusion) {
13145 var self = this;
13146 if (self.inclusions.hasOwnProperty(name) === false) {
13147 self.inclusions[name] = [];
13148 }
13149 self.inclusions[name].push(inclusion);
13150 },
13100 };
13151 };
13101
13152
13102 var stateHolder = {
13153 var stateHolder = {
@@ -38,8 +38,8 b' def gen_urls(request):'
38 'applicationsNoId': request.route_url('applications_no_id'),
38 'applicationsNoId': request.route_url('applications_no_id'),
39 'applications': request.route_url('applications', resource_id='REPLACE_ID').replace('REPLACE_ID',':resourceId'),
39 'applications': request.route_url('applications', resource_id='REPLACE_ID').replace('REPLACE_ID',':resourceId'),
40 'applicationsProperty': request.route_url('applications_property',key='REPLACE_KEY', resource_id='REPLACE_ID').replace('REPLACE_ID',':resourceId').replace('REPLACE_KEY',':key'),
40 'applicationsProperty': request.route_url('applications_property',key='REPLACE_KEY', resource_id='REPLACE_ID').replace('REPLACE_ID',':resourceId').replace('REPLACE_KEY',':key'),
41 'configsNoId': request.route_url('admin_configs'),
41 'configsNoId': request.route_url('admin_configs'),
42 'configs': request.route_url('admin_config', key='REPLACE_KEY', section='REPLACE_SECTION').replace('REPLACE_SECTION',':section').replace('REPLACE_KEY',':key'),
42 'configs': request.route_url('admin_config', key='REPLACE_KEY', section='REPLACE_SECTION').replace('REPLACE_SECTION',':section').replace('REPLACE_KEY',':key'),
43 'docs': 'http://getappenlight.com/page/api/main.html',
43 'docs': 'http://getappenlight.com/page/api/main.html',
44 'eventsNoId': request.route_url('events_no_id'),
44 'eventsNoId': request.route_url('events_no_id'),
45 'events': request.route_url('events', event_id='REPLACE_ID').replace('REPLACE_ID',':eventId'),
45 'events': request.route_url('events', event_id='REPLACE_ID').replace('REPLACE_ID',':eventId'),
@@ -47,34 +47,34 b' def gen_urls(request):'
47 'groupsNoId': request.route_url('groups_no_id'),
47 'groupsNoId': request.route_url('groups_no_id'),
48 'groups': request.route_url('groups', group_id='REPLACE_ID').replace('REPLACE_ID',':groupId'),
48 'groups': request.route_url('groups', group_id='REPLACE_ID').replace('REPLACE_ID',':groupId'),
49 'groupsProperty': request.route_url('groups_property',key='REPLACE_KEY', group_id='REPLACE_ID').replace('REPLACE_ID',':groupId').replace('REPLACE_KEY',':key'),
49 'groupsProperty': request.route_url('groups_property',key='REPLACE_KEY', group_id='REPLACE_ID').replace('REPLACE_ID',':groupId').replace('REPLACE_KEY',':key'),
50 'logsNoId': request.route_url('logs_no_id'),
50 'logsNoId': request.route_url('logs_no_id'),
51 'integrationAction': request.route_url('integrations_id',action='REPLACE_ACT', resource_id='REPLACE_RID', integration='REPLACE_IID').replace('REPLACE_RID',':resourceId').replace('REPLACE_ACT',':action').replace('REPLACE_IID',':integration'),
51 'integrationAction': request.route_url('integrations_id',action='REPLACE_ACT', resource_id='REPLACE_RID', integration='REPLACE_IID').replace('REPLACE_RID',':resourceId').replace('REPLACE_ACT',':action').replace('REPLACE_IID',':integration'),
52 'usersNoId': request.route_url('users_no_id'),
52 'usersNoId': request.route_url('users_no_id'),
53 'users': request.route_url('users', user_id='REPLACE_ID').replace('REPLACE_ID',':userId'),
53 'users': request.route_url('users', user_id='REPLACE_ID').replace('REPLACE_ID',':userId'),
54 'usersProperty': request.route_url('users_property',key='REPLACE_KEY', user_id='REPLACE_ID').replace('REPLACE_ID',':userId').replace('REPLACE_KEY',':key'),
54 'usersProperty': request.route_url('users_property',key='REPLACE_KEY', user_id='REPLACE_ID').replace('REPLACE_ID',':userId').replace('REPLACE_KEY',':key'),
55 'userSelf': request.route_url('users_self'),
55 'userSelf': request.route_url('users_self'),
56 'userSelfProperty': request.route_url('users_self_property',key='REPLACE_KEY').replace('REPLACE_KEY',':key'),
56 'userSelfProperty': request.route_url('users_self_property',key='REPLACE_KEY').replace('REPLACE_KEY',':key'),
57 'reports': request.route_url('reports'),
57 'reports': request.route_url('reports'),
58 'reportGroup': request.route_url('report_groups', group_id='REPLACE_RID').replace('REPLACE_RID',':groupId'),
58 'reportGroup': request.route_url('report_groups', group_id='REPLACE_RID').replace('REPLACE_RID',':groupId'),
59 'reportGroupProperty': request.route_url('report_groups_property', key='REPLACE_KEY', group_id='REPLACE_GID').replace('REPLACE_KEY',':key').replace('REPLACE_GID',':groupId'),
59 'reportGroupProperty': request.route_url('report_groups_property', key='REPLACE_KEY', group_id='REPLACE_GID').replace('REPLACE_KEY',':key').replace('REPLACE_GID',':groupId'),
60 'pluginConfigsNoId': request.route_url('plugin_configs', plugin_name='REPLACE_TYPE').replace('REPLACE_TYPE',':plugin_name'),
60 'pluginConfigsNoId': request.route_url('plugin_configs', plugin_name='REPLACE_TYPE').replace('REPLACE_TYPE',':plugin_name'),
61 'pluginConfigs': request.route_url('plugin_config', id='REPLACE_ID', plugin_name='REPLACE_TYPE').replace('REPLACE_ID',':id').replace('REPLACE_TYPE',':plugin_name'),
61 'pluginConfigs': request.route_url('plugin_config', id='REPLACE_ID', plugin_name='REPLACE_TYPE').replace('REPLACE_ID',':id').replace('REPLACE_TYPE',':plugin_name'),
62 'resourceProperty': request.route_url('resources_property',key='REPLACE_KEY', resource_id='REPLACE_ID').replace('REPLACE_ID',':resourceId').replace('REPLACE_KEY',':key'),
62 'resourceProperty': request.route_url('resources_property',key='REPLACE_KEY', resource_id='REPLACE_ID').replace('REPLACE_ID',':resourceId').replace('REPLACE_KEY',':key'),
63 'slowReports': request.route_url('slow_reports'),
63 'slowReports': request.route_url('slow_reports'),
64 'sectionView': request.route_url('section_view', section='REPLACE_S', view='REPLACE_V').replace('REPLACE_S',':section').replace('REPLACE_V',':view'),
64 'sectionView': request.route_url('section_view', section='REPLACE_S', view='REPLACE_V').replace('REPLACE_S',':section').replace('REPLACE_V',':view'),
65 'otherRoutes': {
65 'otherRoutes': {
66 'register': request.route_url('register') ,
66 'register': request.route_url('register'),
67 'lostPassword': request.route_url('lost_password') ,
67 'lostPassword': request.route_url('lost_password'),
68 'lostPasswordGenerate': request.route_url('lost_password_generate'),
68 'lostPasswordGenerate': request.route_url('lost_password_generate'),
69 'signOut': request.route_url('ziggurat.routes.sign_out')
69 'signOut': request.route_url('ziggurat.routes.sign_out')
70 },
70 },
71 'social_auth': {
71 'social_auth': {
72 'google':request.route_url('social_auth', provider='google'),
72 'google': request.route_url('social_auth', provider='google'),
73 'twitter':request.route_url('social_auth', provider='twitter'),
73 'twitter': request.route_url('social_auth', provider='twitter'),
74 'bitbucket':request.route_url('social_auth', provider='bitbucket'),
74 'bitbucket': request.route_url('social_auth', provider='bitbucket'),
75 'github':request.route_url('social_auth', provider='github'),
75 'github': request.route_url('social_auth', provider='github'),
76 },
76 },
77 "plugins":{},
77 "plugins": {},
78 "adminAction": request.route_url('admin', action="REPLACE_ACT").replace('REPLACE_ACT',':action')
78 "adminAction": request.route_url('admin', action="REPLACE_ACT").replace('REPLACE_ACT',':action')
79 }
79 }
80 return urls
80 return urls
@@ -111,13 +111,6 b' def add_renderer_globals(event):'
111 renderer_globals['security'] = security
111 renderer_globals['security'] = security
112 renderer_globals['flash_msgs'] = []
112 renderer_globals['flash_msgs'] = []
113 renderer_globals['js_plugins'] = []
113 renderer_globals['js_plugins'] = []
114 renderer_globals['top_nav'] = {
115 'menu_dashboards_items': [],
116 'menu_reports_items': [],
117 'menu_logs_items': [],
118 'menu_settings_items': [],
119 'menu_admin_items': [],
120 }
121
114
122 if 'jinja' in event['renderer_info'].type:
115 if 'jinja' in event['renderer_info'].type:
123 renderer_globals['url_list'] = gen_urls(request)
116 renderer_globals['url_list'] = gen_urls(request)
@@ -129,17 +122,7 b' def add_renderer_globals(event):'
129
122
130 if config['javascript']:
123 if config['javascript']:
131 renderer_globals['js_plugins'].append(
124 renderer_globals['js_plugins'].append(
132 ({'name':module, 'config':config['javascript']}))
125 ({'name': module, 'config': config['javascript']}))
133 for nav_key in renderer_globals['top_nav'].keys():
134 if nav_key in config['top_nav'] and config['top_nav'][nav_key]:
135 renderer_globals['top_nav'][nav_key].append(
136 config['top_nav'][nav_key])
137
138 if request.has_permission('root_administration',
139 security.RootFactory(request)):
140 renderer_globals['top_nav']['menu_admin_items'].append(
141 {'sref': 'admin', 'label': 'Admin Settings'}
142 )
143
126
144 footer_config = ConfigService.by_key_and_section(
127 footer_config = ConfigService.by_key_and_section(
145 'template_footer_html', 'global', default_value='')
128 'template_footer_html', 'global', default_value='')
@@ -27,7 +27,6 b''
27 AE.flash_messages = {{ flash_msgs|toJSONUnsafe }};
27 AE.flash_messages = {{ flash_msgs|toJSONUnsafe }};
28 AE.timeOptions = {{ h.time_options|toJSONUnsafe }};
28 AE.timeOptions = {{ h.time_options|toJSONUnsafe }};
29 AE.plugins = {{ js_plugins|toJSONUnsafe }};
29 AE.plugins = {{ js_plugins|toJSONUnsafe }};
30 AE.topNav = {{ top_nav|toJSONUnsafe }};
31 </script>
30 </script>
32 {% if request.registry.settings.get('appenlight.public_api_key') %}
31 {% if request.registry.settings.get('appenlight.public_api_key') %}
33 <script type="application/javascript">
32 <script type="application/javascript">
@@ -108,7 +108,8 b' var pluginsToLoad = _.map(decodeEncodedJSON(window.AE.plugins),'
108 function(item){
108 function(item){
109 return item.config.angular_module
109 return item.config.angular_module
110 });
110 });
111 console.log(pluginsToLoad);
111 console.info(pluginsToLoad);
112
112 angular.module('appenlight.plugins', pluginsToLoad);
113 angular.module('appenlight.plugins', pluginsToLoad);
113
114
114 var app = angular.module('appenlight', [
115 var app = angular.module('appenlight', [
@@ -179,6 +180,14 b' function kickstartAE(initialUserData) {'
179 function ($rootScope, $timeout, stateHolder, $state, $location, $transitions, $window, AeConfig) {
180 function ($rootScope, $timeout, stateHolder, $state, $location, $transitions, $window, AeConfig) {
180 if (initialUserData){
181 if (initialUserData){
181 stateHolder.AeUser.update(initialUserData);
182 stateHolder.AeUser.update(initialUserData);
183
184 if (stateHolder.AeUser.hasAppPermission('root_administration'
185 )){
186 AeConfig.topNav.menuAdminItems.push(
187 {'sref': 'admin', 'label': 'Admin Settings'}
188 )
189 }
190
182 }
191 }
183 $rootScope.$state = $state;
192 $rootScope.$state = $state;
184 $rootScope.stateHolder = stateHolder;
193 $rootScope.stateHolder = stateHolder;
@@ -53,7 +53,7 b''
53 <span class="fa fa-bar-chart-o "></span></a>
53 <span class="fa fa-bar-chart-o "></span></a>
54 <ul class="dropdown-menu">
54 <ul class="dropdown-menu">
55 <li role="presentation"><a data-ui-sref="front_dashboard">Main dashboard</a></li>
55 <li role="presentation"><a data-ui-sref="front_dashboard">Main dashboard</a></li>
56 <li role="presentation" ng-repeat="item in $ctrl.AeConfig.topNav.menu_dashboards_items">
56 <li role="presentation" ng-repeat="item in $ctrl.AeConfig.topNav.menuDashboardsItems">
57 <a data-ui-sref="{{ item.sref }}">{{ item.label }}</a>
57 <a data-ui-sref="{{ item.sref }}">{{ item.label }}</a>
58 </li>
58 </li>
59 </ul>
59 </ul>
@@ -78,11 +78,11 b''
78 <li>
78 <li>
79 <a data-ui-sref="user" data-uib-tooltip="Settings" tooltip-placement="bottom"><span class="fa fa-cog "></span></a>
79 <a data-ui-sref="user" data-uib-tooltip="Settings" tooltip-placement="bottom"><span class="fa fa-cog "></span></a>
80 </li>
80 </li>
81 <li class="dropdown" data-uib-dropdown data-ng-if="$ctrl.AeConfig.topNav.menu_admin_items.length">
81 <li class="dropdown" data-uib-dropdown data-ng-if="$ctrl.AeConfig.topNav.menuAdminItems.length">
82 <a class="dropdown-toggle" data-uib-dropdown-toggle tooltip-placement="bottom" data-uib-tooltip="Admin Settings">
82 <a class="dropdown-toggle" data-uib-dropdown-toggle tooltip-placement="bottom" data-uib-tooltip="Admin Settings">
83 <span class="fa fa-wrench"></span></a>
83 <span class="fa fa-wrench"></span></a>
84 <ul class="dropdown-menu">
84 <ul class="dropdown-menu">
85 <li role="presentation" ng-repeat="item in $ctrl.AeConfig.topNav.menu_admin_items">
85 <li role="presentation" ng-repeat="item in $ctrl.AeConfig.topNav.menuAdminItems">
86 <a data-ui-sref="{{ item.sref }}">{{ item.label }}</a>
86 <a data-ui-sref="{{ item.sref }}">{{ item.label }}</a>
87 </li>
87 </li>
88 </ul>
88 </ul>
@@ -7,6 +7,13 b''
7 <li class="list-group-item" ui-sref-active-eq="active"><a data-ui-sref="applications.update({resourceId:'new'})"><span class="fa fa-plus-circle"></span> Create application</a></li>
7 <li class="list-group-item" ui-sref-active-eq="active"><a data-ui-sref="applications.update({resourceId:'new'})"><span class="fa fa-plus-circle"></span> Create application</a></li>
8 <li class="list-group-item" ui-sref-active-eq="active"><a data-ui-sref="applications.purge_logs"><span class="fa fa-trash-o"></span> Purge logs</a></li>
8 <li class="list-group-item" ui-sref-active-eq="active"><a data-ui-sref="applications.purge_logs"><span class="fa fa-trash-o"></span> Purge logs</a></li>
9 </ul>
9 </ul>
10
11 <ul class="list-group" data-ng-if="$ctrl.AeConfig.settingsNav.menuApplicationsItems.length">
12 <li class="list-group-item" ng-repeat="item in $ctrl.AeConfig.settingsNav.menuApplicationsItems">
13 <a data-ui-sref="{{ item.sref }}">{{ item.label }}</a>
14 </li>
15 </ul>
16
10 </div>
17 </div>
11
18
12
19
@@ -18,6 +25,13 b''
18 <li class="list-group-item" ui-sref-active-eq="active"><a data-ui-sref="user.profile.identities"><span class="fa fa-link"></span> External Identities</a></li>
25 <li class="list-group-item" ui-sref-active-eq="active"><a data-ui-sref="user.profile.identities"><span class="fa fa-link"></span> External Identities</a></li>
19 <li class="list-group-item" ui-sref-active-eq="active"><a data-ui-sref="user.profile.auth_tokens"><span class="fa fa-unlock"></span> Auth Tokens</a></li>
26 <li class="list-group-item" ui-sref-active-eq="active"><a data-ui-sref="user.profile.auth_tokens"><span class="fa fa-unlock"></span> Auth Tokens</a></li>
20 </ul>
27 </ul>
28
29 <ul class="list-group" data-ng-if="$ctrl.AeConfig.settingsNav.menuUserSettingsItems.length">
30 <li class="list-group-item" ng-repeat="item in $ctrl.AeConfig.settingsNav.menuUserSettingsItems">
31 <a data-ui-sref="{{ item.sref }}">{{ item.label }}</a>
32 </li>
33 </ul>
34
21 </div>
35 </div>
22
36
23 <div class="panel panel-default">
37 <div class="panel panel-default">
@@ -26,7 +40,15 b''
26 <li class="list-group-item" ui-sref-active-eq="active"><a data-ui-sref="user.alert_channels.list"><span class="fa fa-bullhorn"></span> Alert channels</a></li>
40 <li class="list-group-item" ui-sref-active-eq="active"><a data-ui-sref="user.alert_channels.list"><span class="fa fa-bullhorn"></span> Alert channels</a></li>
27 <li class="list-group-item" ui-sref-active-eq="active"><a data-ui-sref="user.alert_channels.email"><span class="fa fa-envelope"></span> Add email channel</a></li>
41 <li class="list-group-item" ui-sref-active-eq="active"><a data-ui-sref="user.alert_channels.email"><span class="fa fa-envelope"></span> Add email channel</a></li>
28 </ul>
42 </ul>
43
44 <ul class="list-group" data-ng-if="$ctrl.AeConfig.settingsNav.menuNotificationsItems.length">
45 <li class="list-group-item" ng-repeat="item in $ctrl.AeConfig.settingsNav.menuNotificationsItems">
46 <a data-ui-sref="{{ item.sref }}">{{ item.label }}</a>
47 </li>
48 </ul>
49
29 </div>
50 </div>
51
30 </div>
52 </div>
31
53
32 <div class="col-sm-9" ui-view></div>
54 <div class="col-sm-9" ui-view></div>
@@ -23,9 +23,10 b" angular.module('appenlight.components.settingsView', [])"
23 controller: SettingsViewController
23 controller: SettingsViewController
24 });
24 });
25
25
26 SettingsViewController.$inject = ['$state'];
26 SettingsViewController.$inject = ['$state', 'AeConfig'];
27
27
28 function SettingsViewController($state) {
28 function SettingsViewController($state, AeConfig) {
29 this.$state = $state;
29 this.$state = $state;
30 this.AeConfig = AeConfig;
30 console.info('SettingsViewController');
31 console.info('SettingsViewController');
31 }
32 }
@@ -23,7 +23,19 b" aeconfig.factory('AeConfig', function () {"
23 obj.flashMessages = decodeEncodedJSON(window.AE.flash_messages);
23 obj.flashMessages = decodeEncodedJSON(window.AE.flash_messages);
24 obj.timeOptions = decodeEncodedJSON(window.AE.timeOptions);
24 obj.timeOptions = decodeEncodedJSON(window.AE.timeOptions);
25 obj.plugins = decodeEncodedJSON(window.AE.plugins);
25 obj.plugins = decodeEncodedJSON(window.AE.plugins);
26 obj.topNav = decodeEncodedJSON(window.AE.topNav);
26 obj.topNav = {
27 menuDashboardsItems: [],
28 menuReportsItems: [],
29 menuLogsItems: [],
30 menuSettingsItems: [],
31 menuAdminItems: []
32 };
33 obj.settingsNav = {
34 menuApplicationsItems: [],
35 menuUserSettingsItems: [],
36 menuNotificationsItems: []
37 };
38 obj.adminNav = {};
27 obj.ws_url = window.AE.ws_url;
39 obj.ws_url = window.AE.ws_url;
28 obj.urls = window.AE.urls;
40 obj.urls = window.AE.urls;
29 // set keys on values because we wont be able to retrieve them everywhere
41 // set keys on values because we wont be able to retrieve them everywhere
General Comments 0
You need to be logged in to leave comments. Login now