This diff has been collapsed as it changes many lines, (1045 lines changed)
Show them
Hide them
|
|
@@
-2680,7
+2680,6
b" angular.module('appenlight.components', ["
|
|
2680
|
2680
|
'appenlight.components.appenlightHeader'
|
|
2681
|
2681
|
]);
|
|
2682
|
2682
|
angular.module('appenlight.directives', [
|
|
2683
|
|
'appenlight.directives.appVersion',
|
|
2684
|
2683
|
'appenlight.directives.c3chart',
|
|
2685
|
2684
|
'appenlight.directives.confirmValidate',
|
|
2686
|
2685
|
'appenlight.directives.focus',
|
|
@@
-2838,6
+2837,388
b' function kickstartAE(initialUserData) {'
|
|
2838
|
2837
|
;angular.module('appenlight.templates').run(['$templateCache', function($templateCache) {
|
|
2839
|
2838
|
'use strict';
|
|
2840
|
2839
|
|
|
|
2840
|
$templateCache.put('components/appenlight-app/appenlight-app.html',
|
|
|
2841
|
"<channelstream config=\"AeConfig\"></channelstream>\n" +
|
|
|
2842
|
"<appenlight-header></appenlight-header>\n" +
|
|
|
2843
|
"<div id=\"outer-content\">\n" +
|
|
|
2844
|
" <div ui-view class=\"container\"></div>\n" +
|
|
|
2845
|
"</div>\n"
|
|
|
2846
|
);
|
|
|
2847
|
|
|
|
2848
|
|
|
|
2849
|
$templateCache.put('components/appenlight-header/appenlight-header.html',
|
|
|
2850
|
"<!-- Fixed navbar -->\n" +
|
|
|
2851
|
"<div id=\"top-navbar\" class=\"navbar navbar-default navbar-fixed-top\" role=\"navigation\">\n" +
|
|
|
2852
|
" <div class=\"pattern\">\n" +
|
|
|
2853
|
" <div class=\"container\">\n" +
|
|
|
2854
|
" <div class=\"navbar-header pull-left\">\n" +
|
|
|
2855
|
" <a data-ui-sref=\"front_dashboard\" class=\"navbar-brand\">\n" +
|
|
|
2856
|
" <div id=\"logo-normal\" class=\"hidden-sm hidden-xs\"></div>\n" +
|
|
|
2857
|
" <div id=\"logo-icon\" class=\"visible-sm visible-xs\"></div>\n" +
|
|
|
2858
|
" </a>\n" +
|
|
|
2859
|
" </div>\n" +
|
|
|
2860
|
"\n" +
|
|
|
2861
|
" <div class=\"container-fluid\">\n" +
|
|
|
2862
|
" <div>\n" +
|
|
|
2863
|
" <ul class=\"nav navbar-nav navbar-right\" ng-if=\"$ctrl.stateHolder.AeUser.id !== null\">\n" +
|
|
|
2864
|
" <li id=\"user-notifications\" class=\"dropdown ng-cloak\" data-uib-dropdown>\n" +
|
|
|
2865
|
"\n" +
|
|
|
2866
|
" <a class=\"dropdown-toggle\" data-uib-dropdown-toggle>\n" +
|
|
|
2867
|
" <span class=\"badge\">{{$ctrl.assignedReports.length}}</span>\n" +
|
|
|
2868
|
" <span class=\"fa fa-envelope-o\"></span>\n" +
|
|
|
2869
|
" </a>\n" +
|
|
|
2870
|
" <ul class=\"dropdown-menu\">\n" +
|
|
|
2871
|
" <li role=\"presentation\" class=\"dropdown-header\">Assigned reports</li>\n" +
|
|
|
2872
|
" <li data-ng-repeat=\"report in $ctrl.assignedReports\" role=\"presentation\">\n" +
|
|
|
2873
|
" <a href=\"{{report.front_url}}\" role=\"menuitem\" tabindex=\"-1\">\n" +
|
|
|
2874
|
" <small>{{ report.error || 'Slow Report: ' + report.view_name |truncate:65}}</small>\n" +
|
|
|
2875
|
" </a>\n" +
|
|
|
2876
|
"\n" +
|
|
|
2877
|
" </li>\n" +
|
|
|
2878
|
" <li data-ng-if=\"$ctrl.assignedReports.length == 0\"><a><small>No reports</small></a></li>\n" +
|
|
|
2879
|
" </ul>\n" +
|
|
|
2880
|
" </li>\n" +
|
|
|
2881
|
" <li id=\"alert-notifications\" class=\"dropdown ng-cloak\" data-uib-dropdown auto-close=\"outsideClick\">\n" +
|
|
|
2882
|
" <a class=\"dropdown-toggle\" data-uib-dropdown-toggle>\n" +
|
|
|
2883
|
" <span class=\"badge {{ activeEvents ? 'danger' : '' }}\">{{$ctrl.activeEvents}}</span>\n" +
|
|
|
2884
|
" <span class=\"fa fa-bell-o\"></span></a>\n" +
|
|
|
2885
|
" <ul class=\"dropdown-menu\">\n" +
|
|
|
2886
|
" <li role=\"presentation\" class=\"dropdown-header\">\n" +
|
|
|
2887
|
" <a data-ui-sref=\"events\" class=\"btn btn-xs btn-default\">Show me more</a></li>\n" +
|
|
|
2888
|
" <li role=\"presentation\" class=\"dropdown-header\">Latest events</li>\n" +
|
|
|
2889
|
" <li data-ng-repeat=\"event in $ctrl.latestEvents\" role=\"presentation\">\n" +
|
|
|
2890
|
" <a data-ng-click=\"$ctrl.clickedEvent(event)\"><small class=\"resource-name\">For {{ event.resource_name }}</small><br/>\n" +
|
|
|
2891
|
" <small>{{ event.text |truncate:65}}</small><br/>\n" +
|
|
|
2892
|
" <small class=\"date\" data-uib-tooltip=\"{{event.start_date}}\">created: <iso-to-relative-time time=\"{{event.start_date}}\"/></small>\n" +
|
|
|
2893
|
" <small class=\"date\" data-ng-show=\"event.end_date\" data-uib-tooltip=\"{{event.end_date}}\">closed: <iso-to-relative-time time=\"{{event.end_date}}\"/></small>\n" +
|
|
|
2894
|
" </a>\n" +
|
|
|
2895
|
" </li>\n" +
|
|
|
2896
|
" <li data-ng-if=\"$ctrl.latestEvents.length == 0\"><a><small>No events</small></a></li>\n" +
|
|
|
2897
|
" </ul>\n" +
|
|
|
2898
|
" </li>\n" +
|
|
|
2899
|
"\n" +
|
|
|
2900
|
" <li id=\"dashboards\" class=\"dropdown\" data-uib-dropdown>\n" +
|
|
|
2901
|
" <a class=\"dropdown-toggle\" data-uib-dropdown-toggle tooltip-placement=\"bottom\" data-uib-tooltip=\"Dashboards\">\n" +
|
|
|
2902
|
" <span class=\"fa fa-bar-chart-o \"></span></a>\n" +
|
|
|
2903
|
" <ul class=\"dropdown-menu\">\n" +
|
|
|
2904
|
" <li role=\"presentation\"><a data-ui-sref=\"front_dashboard\">Main dashboard</a></li>\n" +
|
|
|
2905
|
" <li role=\"presentation\" ng-repeat=\"item in $ctrl.AeConfig.topNav.menu_dashboards_items\">\n" +
|
|
|
2906
|
" <a data-ui-sref=\"{{ item.sref }}\">{{ item.label }}</a>\n" +
|
|
|
2907
|
" </li>\n" +
|
|
|
2908
|
" </ul>\n" +
|
|
|
2909
|
" </li>\n" +
|
|
|
2910
|
"\n" +
|
|
|
2911
|
" <li class=\"dropdown\" data-uib-dropdown>\n" +
|
|
|
2912
|
" <a class=\"dropdown-toggle\" data-uib-dropdown-toggle tooltip-placement=\"bottom\" data-uib-tooltip=\"Reports\">\n" +
|
|
|
2913
|
" <span class=\"fa fa-exclamation-triangle\"></span></a>\n" +
|
|
|
2914
|
" <ul class=\"dropdown-menu\">\n" +
|
|
|
2915
|
" <li role=\"presentation\">\n" +
|
|
|
2916
|
" <a data-ui-sref=\"report.list({resource:$ctrl.stateHolder.resource})\">Error Reports</a>\n" +
|
|
|
2917
|
" </li>\n" +
|
|
|
2918
|
" <li role=\"presentation\">\n" +
|
|
|
2919
|
" <a data-ui-sref=\"report.list_slow({resource:$ctrl.stateHolder.resource})\">Slowness Reports</a>\n" +
|
|
|
2920
|
" </li>\n" +
|
|
|
2921
|
"\n" +
|
|
|
2922
|
" </ul>\n" +
|
|
|
2923
|
" </li>\n" +
|
|
|
2924
|
"\n" +
|
|
|
2925
|
" <li>\n" +
|
|
|
2926
|
" <a data-ui-sref=\"logs({resource:$ctrl.stateHolder.resource})\" data-uib-tooltip=\"Logs\" tooltip-placement=\"bottom\"><span class=\"fa fa-list-alt \"></span></a></li>\n" +
|
|
|
2927
|
" <li>\n" +
|
|
|
2928
|
" <a data-ui-sref=\"user\" data-uib-tooltip=\"Settings\" tooltip-placement=\"bottom\"><span class=\"fa fa-cog \"></span></a>\n" +
|
|
|
2929
|
" </li>\n" +
|
|
|
2930
|
" <li class=\"dropdown\" data-uib-dropdown data-ng-if=\"$ctrl.AeConfig.topNav.menu_admin_items.length\">\n" +
|
|
|
2931
|
" <a class=\"dropdown-toggle\" data-uib-dropdown-toggle tooltip-placement=\"bottom\" data-uib-tooltip=\"Admin Settings\">\n" +
|
|
|
2932
|
" <span class=\"fa fa-wrench\"></span></a>\n" +
|
|
|
2933
|
" <ul class=\"dropdown-menu\">\n" +
|
|
|
2934
|
" <li role=\"presentation\" ng-repeat=\"item in $ctrl.AeConfig.topNav.menu_admin_items\">\n" +
|
|
|
2935
|
" <a data-ui-sref=\"{{ item.sref }}\">{{ item.label }}</a>\n" +
|
|
|
2936
|
" </li>\n" +
|
|
|
2937
|
" </ul>\n" +
|
|
|
2938
|
" </li>\n" +
|
|
|
2939
|
" <li><a href=\"{{ $ctrl.AeConfig.urls.otherRoutes.signOut }}\" target=\"_self\"\n" +
|
|
|
2940
|
" data-uib-tooltip=\"Sign out\" tooltip-placement=\"bottom\">\n" +
|
|
|
2941
|
" <span class=\"fa fa-power-off \"></span></a></li>\n" +
|
|
|
2942
|
" </ul>\n" +
|
|
|
2943
|
" <ul class=\"nav navbar-nav pull-right\" ng-if=\"$ctrl.stateHolder.AeUser.id === null\">\n" +
|
|
|
2944
|
" <li><a href=\"{{ $ctrl.AeConfig.urls.otherRoutes.register }}\" target=\"_self\" class=\"btn btn-orange\">Sign In</a></li>\n" +
|
|
|
2945
|
" </ul>\n" +
|
|
|
2946
|
" </div><!-- /.navbar-collapse -->\n" +
|
|
|
2947
|
" </div><!-- /.container-fluid -->\n" +
|
|
|
2948
|
" </div>\n" +
|
|
|
2949
|
" </div>\n" +
|
|
|
2950
|
"</div>\n"
|
|
|
2951
|
);
|
|
|
2952
|
|
|
|
2953
|
|
|
|
2954
|
$templateCache.put('directives/permissions/permissions.html',
|
|
|
2955
|
"<div class=\"panel panel-default\">\n" +
|
|
|
2956
|
" <div class=\"panel-heading\">\n" +
|
|
|
2957
|
" <h3 class=\"panel-title\">Permissions</h3>\n" +
|
|
|
2958
|
" </div>\n" +
|
|
|
2959
|
" <div class=\"panel-body\">\n" +
|
|
|
2960
|
" <p>Here you can <strong>set permissions</strong> for others to access your app data.</p>\n" +
|
|
|
2961
|
"\n" +
|
|
|
2962
|
" <p>For example you can let other staff member view or alter error reports.</p>\n" +
|
|
|
2963
|
"\n" +
|
|
|
2964
|
" <div ng-if=\"permissions.possibleGroups.length > 0\">\n" +
|
|
|
2965
|
" <h3>Group permissions</h3>\n" +
|
|
|
2966
|
"\n" +
|
|
|
2967
|
" <ul class=\"list-group\">\n" +
|
|
|
2968
|
" <li ng-repeat=\"perm in permissions.currentPermissions.group\" class=\"animate-repeat list-group-item\">\n" +
|
|
|
2969
|
" <strong>{{ perm.self.group_name }}</strong>\n" +
|
|
|
2970
|
" <div ng-repeat=\"perm_name in perm.permissions\" class=\"pull-right animate-repeat m-l-1\">\n" +
|
|
|
2971
|
" <span ng-if=\"perm_name == '__all_permissions__'\">Resource owner</span>\n" +
|
|
|
2972
|
" <span class=\"dropdown\" data-uib-dropdown on-toggle=\"toggled(open)\" ng-if=\"perm_name != '__all_permissions__'\">\n" +
|
|
|
2973
|
" <a class=\"btn btn-danger btn-xs\" data-uib-dropdown-toggle><span class=\"fa fa-trash-o\"></span> {{ perm_name }}</a>\n" +
|
|
|
2974
|
" <ul class=\"dropdown-menu\">\n" +
|
|
|
2975
|
" <li><a>No</a></li>\n" +
|
|
|
2976
|
" <li><a ng-click=\"permissions.removeGroupPermission(perm_name, perm)\">Yes</a></li>\n" +
|
|
|
2977
|
" </ul>\n" +
|
|
|
2978
|
" </span>\n" +
|
|
|
2979
|
" </div>\n" +
|
|
|
2980
|
" </li>\n" +
|
|
|
2981
|
" </ul>\n" +
|
|
|
2982
|
"\n" +
|
|
|
2983
|
" <form name=\"add_permission\" class=\"form-inline\" ng-submit=\"permissions.setGroupPermission()\">\n" +
|
|
|
2984
|
" <div class=\"form-group\">\n" +
|
|
|
2985
|
" <select class=\"form-control\" ng-model=\"permissions.form.selectedGroup\" ng-options=\"g.id as g.group_name for g in permissions.possibleGroups\"></select>\n" +
|
|
|
2986
|
" </div>\n" +
|
|
|
2987
|
" <div class=\"form-group\">\n" +
|
|
|
2988
|
" <span ng-repeat=\"permission in permissions.possiblePermissions\">\n" +
|
|
|
2989
|
" <input type=\"checkbox\" ng-model=\"permissions.form.selectedGroupPermissions[permission]\"> {{ permission }}\n" +
|
|
|
2990
|
" </span>\n" +
|
|
|
2991
|
" </div>\n" +
|
|
|
2992
|
" <div class=\"form-group\">\n" +
|
|
|
2993
|
" <button class=\"btn btn-info\"><span class=\"fa fa-user\"></span> Give permission</button>\n" +
|
|
|
2994
|
" </div>\n" +
|
|
|
2995
|
" </form>\n" +
|
|
|
2996
|
"\n" +
|
|
|
2997
|
" </div>\n" +
|
|
|
2998
|
"\n" +
|
|
|
2999
|
" <h3>User permissions</h3>\n" +
|
|
|
3000
|
" <div>\n" +
|
|
|
3001
|
" <ul class=\"list-group\">\n" +
|
|
|
3002
|
" <li ng-repeat=\"perm in permissions.currentPermissions.user\" class=\"animate-repeat list-group-item\">\n" +
|
|
|
3003
|
" <strong>{{ perm.self.user_name }}</strong>\n" +
|
|
|
3004
|
" <div ng-repeat=\"perm_name in perm.permissions\" class=\"pull-right animate-repeat m-l-1\">\n" +
|
|
|
3005
|
" <span ng-if=\"perm_name == '__all_permissions__'\">Resource owner</span>\n" +
|
|
|
3006
|
" <span class=\"dropdown\" data-uib-dropdown on-toggle=\"toggled(open)\" ng-if=\"perm_name != '__all_permissions__'\">\n" +
|
|
|
3007
|
" <a class=\"btn btn-danger btn-xs\" data-uib-dropdown-toggle><span class=\"fa fa-trash-o\"></span> {{ perm_name }}</a>\n" +
|
|
|
3008
|
" <ul class=\"dropdown-menu\">\n" +
|
|
|
3009
|
" <li><a>No</a></li>\n" +
|
|
|
3010
|
" <li><a ng-click=\"permissions.removeUserPermission(perm_name,perm)\">Yes</a></li>\n" +
|
|
|
3011
|
" </ul>\n" +
|
|
|
3012
|
" </span>\n" +
|
|
|
3013
|
" </div>\n" +
|
|
|
3014
|
" </li>\n" +
|
|
|
3015
|
" </ul>\n" +
|
|
|
3016
|
" </div>\n" +
|
|
|
3017
|
" <div>\n" +
|
|
|
3018
|
" <p>First enter username or full email of person you want to give access to (the person needs to be <strong>already registered in AppEnlight</strong>)</p>\n" +
|
|
|
3019
|
"\n" +
|
|
|
3020
|
" <form name=\"add_permission\" class=\"form-inline\" ng-submit=\"permissions.setUserPermission()\">\n" +
|
|
|
3021
|
" <div class=\"form-group\">\n" +
|
|
|
3022
|
" <input type=\"text\" class=\"autocomplete form-control\" placeholder=\"Search for user/email\" ng-model=\"permissions.form.autocompleteUser\"\n" +
|
|
|
3023
|
" uib-typeahead=\"u.user for u in permissions.searchUsers($viewValue) | limitTo:8\" typeahead-loading=\"permissions.searchingUsers\" typeahead-wait-ms=\"250\"\n" +
|
|
|
3024
|
" typeahead-template-url=\"templates/directives/user_search_type_ahead.html\"\n" +
|
|
|
3025
|
" />\n" +
|
|
|
3026
|
" </div>\n" +
|
|
|
3027
|
" <div class=\"form-group\">\n" +
|
|
|
3028
|
" <span ng-repeat=\"permission in permissions.possiblePermissions\">\n" +
|
|
|
3029
|
" <input type=\"checkbox\" ng-model=\"permissions.form.selectedUserPermissions[permission]\"> {{ permission }}\n" +
|
|
|
3030
|
" </span>\n" +
|
|
|
3031
|
" </div>\n" +
|
|
|
3032
|
" <div class=\"form-group\">\n" +
|
|
|
3033
|
" <button class=\"btn btn-info\" ng-disabled=\"!permissions.form.autocompleteUser\"><span class=\"fa fa-user\"></span> Give permission</button>\n" +
|
|
|
3034
|
" </div>\n" +
|
|
|
3035
|
" </form>\n" +
|
|
|
3036
|
" </div>\n" +
|
|
|
3037
|
" </div>\n" +
|
|
|
3038
|
"</div>\n"
|
|
|
3039
|
);
|
|
|
3040
|
|
|
|
3041
|
|
|
|
3042
|
$templateCache.put('directives/plugin_config/plugin_config.html',
|
|
|
3043
|
"<div ng-repeat=\"tmpl in plugin_ctrlr.inclusions track by $index\">\n" +
|
|
|
3044
|
" <div><strong>Plugin: {{tmpl.name}}</strong></div>\n" +
|
|
|
3045
|
" <ng-include src=\"tmpl.template\"></ng-include>\n" +
|
|
|
3046
|
" <hr/>\n" +
|
|
|
3047
|
"</div>\n"
|
|
|
3048
|
);
|
|
|
3049
|
|
|
|
3050
|
|
|
|
3051
|
$templateCache.put('directives/postprocess_action/postprocess_action.html',
|
|
|
3052
|
"<div class=\"panel panel-default action\">\n" +
|
|
|
3053
|
" <div class=\"panel-body form-inline\">\n" +
|
|
|
3054
|
" <div class=\"pull-right\">\n" +
|
|
|
3055
|
" <span class=\"dropdown\" data-uib-dropdown>\n" +
|
|
|
3056
|
" <a class=\"btn btn-danger\" data-uib-dropdown-toggle><span class=\"fa fa-trash-o\"></span></a>\n" +
|
|
|
3057
|
" <ul class=\"dropdown-menu\">\n" +
|
|
|
3058
|
" <li><a>No</a></li>\n" +
|
|
|
3059
|
" <li><a ng-click=\"ctrl.deleteAction(ctrl.action)\">Yes</a></li>\n" +
|
|
|
3060
|
" </ul>\n" +
|
|
|
3061
|
" </span>\n" +
|
|
|
3062
|
" </div>\n" +
|
|
|
3063
|
"\n" +
|
|
|
3064
|
" <div class=\"form-group\">\n" +
|
|
|
3065
|
" <label>Action</label>\n" +
|
|
|
3066
|
"\n" +
|
|
|
3067
|
" <div class=\"form-group\">\n" +
|
|
|
3068
|
" <select class=\"form-control\" ng-model=\"ctrl.action.new_value\" ng-options=\"f[0] as f[1] for f in ctrl.possibleActions\" ng-change=\"ctrl.setDirty()\"></select>\n" +
|
|
|
3069
|
" </div>\n" +
|
|
|
3070
|
"\n" +
|
|
|
3071
|
" <a class=\"btn btn-success\" ng-if=\"ctrl.action.dirty\" ng-click=\"ctrl.saveAction()\"><span class=\"fa fa-save\"></span> Save changes</a>\n" +
|
|
|
3072
|
"\n" +
|
|
|
3073
|
" </div>\n" +
|
|
|
3074
|
" <hr/>\n" +
|
|
|
3075
|
" <p>Meeting following criteria:</p>\n" +
|
|
|
3076
|
" <form-errors errors=\"ctrl.errors\"></form-errors>\n" +
|
|
|
3077
|
" {{ctrl.rule}}\n" +
|
|
|
3078
|
" <rule rule=\"ctrl.action.rule\" rule-definitions=\"ctrl.ruleDefinitions\" parent-rule=\"null\" parent-obj=\"ctrl.action\"></rule>\n" +
|
|
|
3079
|
" </div>\n" +
|
|
|
3080
|
"</div>\n"
|
|
|
3081
|
);
|
|
|
3082
|
|
|
|
3083
|
|
|
|
3084
|
$templateCache.put('directives/report_alert_action/report_alert_action.html',
|
|
|
3085
|
"<div class=\"panel panel-default action\">\n" +
|
|
|
3086
|
" <div class=\"panel-body form-inline\">\n" +
|
|
|
3087
|
" <div class=\"pull-right\">\n" +
|
|
|
3088
|
" <span class=\"dropdown\" data-uib-dropdown>\n" +
|
|
|
3089
|
" <a class=\"btn btn-danger\" data-uib-dropdown-toggle><span class=\"fa fa-trash-o\"></span></a>\n" +
|
|
|
3090
|
" <ul class=\"dropdown-menu\">\n" +
|
|
|
3091
|
" <li><a>No</a></li>\n" +
|
|
|
3092
|
" <li><a ng-click=\"ctrl.deleteAction(ctrl.actions, ctrl.action)\">Yes</a></li>\n" +
|
|
|
3093
|
" </ul>\n" +
|
|
|
3094
|
" </span>\n" +
|
|
|
3095
|
" </div>\n" +
|
|
|
3096
|
"\n" +
|
|
|
3097
|
" <div class=\"form-group\">\n" +
|
|
|
3098
|
" <label>Applies to</label>\n" +
|
|
|
3099
|
" <select class=\"form-control\" ng-model=\"ctrl.action.resource_id\" ng-options=\"f.resource_id as f.resource_name for f in ctrl.applications\" ng-change=\"ctrl.setDirty()\">\n" +
|
|
|
3100
|
" <option value=\"\">All Resources</option>\n" +
|
|
|
3101
|
" </select>\n" +
|
|
|
3102
|
" </div>\n" +
|
|
|
3103
|
" <div class=\"form-group\">\n" +
|
|
|
3104
|
" <label>Notify</label>\n" +
|
|
|
3105
|
" <select class=\"form-control\" ng-model=\"ctrl.action.action\" ng-change=\"ctrl.setDirty()\" ng-options=\"f[0] as f[1] for f in ctrl.possibleNotifications\"></select>\n" +
|
|
|
3106
|
"\n" +
|
|
|
3107
|
" <a class=\"btn btn-success\" ng-if=\"ctrl.action.dirty\" ng-click=\"ctrl.saveAction()\"><span class=\"fa fa-save\"></span> Save changes</a>\n" +
|
|
|
3108
|
"\n" +
|
|
|
3109
|
" </div>\n" +
|
|
|
3110
|
" <div>\n" +
|
|
|
3111
|
" <p><strong>Channels:</strong></p>\n" +
|
|
|
3112
|
" <ul class=\"list-group\">\n" +
|
|
|
3113
|
" <li class=\"list-group-item\" ng-repeat=\"channel in ctrl.action.channels\">\n" +
|
|
|
3114
|
" <strong>{{channel.channel_visible_value}}</strong>\n" +
|
|
|
3115
|
" <div class=\"pull-right\">\n" +
|
|
|
3116
|
" <span class=\"dropdown\" data-uib-dropdown>\n" +
|
|
|
3117
|
" <a class=\"btn btn-danger btn-xs\" data-uib-dropdown-toggle><span class=\"fa fa-trash-o\"></span></a>\n" +
|
|
|
3118
|
" <ul class=\"dropdown-menu\">\n" +
|
|
|
3119
|
" <li><a>No</a></li>\n" +
|
|
|
3120
|
" <li><a ng-click=\"ctrl.unBindChannel(channel)\">Yes</a></li>\n" +
|
|
|
3121
|
" </ul>\n" +
|
|
|
3122
|
" </span>\n" +
|
|
|
3123
|
" </div>\n" +
|
|
|
3124
|
" </li>\n" +
|
|
|
3125
|
" </ul>\n" +
|
|
|
3126
|
" <div class=\"form-group\" ng-if=\"ctrl.possibleChannels.length\">\n" +
|
|
|
3127
|
" <select class=\"form-control\" ng-model=\"ctrl.channelToBind\" ng-options=\"c as c.channel_visible_value for c in ctrl.possibleChannels |filter: c.supports_report_alerting\"></select>\n" +
|
|
|
3128
|
" <a class=\"btn btn-info\" ng-click=\"ctrl.bindChannel(channel, ctrl.action)\"><span class=\"fa fa-plus-circle\"></span> Add Channel</a>\n" +
|
|
|
3129
|
" </div>\n" +
|
|
|
3130
|
" <div class=\"alert alert-danger\" ng-if=\"!ctrl.possibleChannels.length\">\n" +
|
|
|
3131
|
" <span class=\"fa fa-exclamation-triangle \"></span>You need to create an alert channel before you can assign it to your rule.\n" +
|
|
|
3132
|
" </div>\n" +
|
|
|
3133
|
"\n" +
|
|
|
3134
|
" </div>\n" +
|
|
|
3135
|
" <hr/>\n" +
|
|
|
3136
|
" <p>Meeting following criteria:</p>\n" +
|
|
|
3137
|
" <form-errors errors=\"ctrl.errors\"></form-errors>\n" +
|
|
|
3138
|
" <rule rule=\"ctrl.action.rule\" rule-definitions=\"ctrl.ruleDefinitions\" parent-rule=\"null\" parent-obj=\"ctrl.action\"></rule>\n" +
|
|
|
3139
|
" </div>\n" +
|
|
|
3140
|
"</div>\n"
|
|
|
3141
|
);
|
|
|
3142
|
|
|
|
3143
|
|
|
|
3144
|
$templateCache.put('directives/rule_read_only/rule_read_only.html',
|
|
|
3145
|
"<div class=\"rule-read-only\">\n" +
|
|
|
3146
|
"\n" +
|
|
|
3147
|
" <span class=\"form-group\">\n" +
|
|
|
3148
|
" {{rule_ctrlr.readOnlyPossibleFields[rule_ctrlr.rule.field]}}\n" +
|
|
|
3149
|
" </span>\n" +
|
|
|
3150
|
"\n" +
|
|
|
3151
|
" <span ng-if=\"rule_ctrlr.rule.field != '__AND__' && rule_ctrlr.rule.field !='__OR__' && rule_ctrlr.rule.field !='__NOT__'\">\n" +
|
|
|
3152
|
" is {{rule_ctrlr.ruleDefinitions.allOps[rule_ctrlr.rule.op]}} {{rule_ctrlr.rule.value}}\n" +
|
|
|
3153
|
" </span>\n" +
|
|
|
3154
|
"\n" +
|
|
|
3155
|
" <span ng-if=\"rule_ctrlr.rule.field == '__AND__' || rule_ctrlr.rule.field =='__OR__' || rule_ctrlr.rule.field =='__NOT__'\">\n" +
|
|
|
3156
|
" <p ng-if=\"parent\"><strong>Subrules</strong></p>\n" +
|
|
|
3157
|
" <div ng-repeat=\"subrule in rule_ctrlr.rule.rules\" class=\"m-l-2\">\n" +
|
|
|
3158
|
"\n" +
|
|
|
3159
|
" <div class=\"panel panel-default\">\n" +
|
|
|
3160
|
" <div class=\"panel-body form-inline\">\n" +
|
|
|
3161
|
" <recursive>\n" +
|
|
|
3162
|
" <rule-read-only rule=\"subrule\" rule-definitions=\"rule_ctrlr.ruleDefinitions\" parent-rule=\"null\" parent-obj=\"rule_ctrlr.parentObj\"></rule-read-only>\n" +
|
|
|
3163
|
" </recursive>\n" +
|
|
|
3164
|
" </div>\n" +
|
|
|
3165
|
" </div>\n" +
|
|
|
3166
|
" </div>\n" +
|
|
|
3167
|
"\n" +
|
|
|
3168
|
" </span>\n" +
|
|
|
3169
|
"</div>\n"
|
|
|
3170
|
);
|
|
|
3171
|
|
|
|
3172
|
|
|
|
3173
|
$templateCache.put('directives/rule/rule.html',
|
|
|
3174
|
"<div class=\"rule form-inline\">\n" +
|
|
|
3175
|
"\n" +
|
|
|
3176
|
" <div class=\"form-group\">\n" +
|
|
|
3177
|
" <select class=\"form-control\"\n" +
|
|
|
3178
|
" ng-model=\"rule_ctrlr.rule.field\"\n" +
|
|
|
3179
|
" ng-change=\"rule_ctrlr.fieldChange()\"\n" +
|
|
|
3180
|
" ng-options=\"key as label for (key, label) in rule_ctrlr.ruleDefinitions.possibleFields\"></select>\n" +
|
|
|
3181
|
" </div>\n" +
|
|
|
3182
|
"\n" +
|
|
|
3183
|
" <div ng-if=\"rule_ctrlr.rule.field != '__AND__' && rule_ctrlr.rule.field !='__OR__' && rule_ctrlr.rule.field !='__NOT__'\" class=\"form-group\">\n" +
|
|
|
3184
|
"\n" +
|
|
|
3185
|
" <select ng-model=\"rule_ctrlr.rule.op\" class=\"form-control\"\n" +
|
|
|
3186
|
" ng-change=\"rule_ctrlr.setDirty()\"\n" +
|
|
|
3187
|
" ng-options=\"op as rule_ctrlr.ruleDefinitions.allOps[op] for op in rule_ctrlr.ruleDefinitions.fieldOps[rule_ctrlr.rule.field]\">\n" +
|
|
|
3188
|
" </select>\n" +
|
|
|
3189
|
"\n" +
|
|
|
3190
|
" <input type=\"text\" placeholder=\"Value\" ng-model=\"rule_ctrlr.rule.value\" ng-change=\"rule_ctrlr.setDirty()\" class=\"form-control\">\n" +
|
|
|
3191
|
"\n" +
|
|
|
3192
|
" </div>\n" +
|
|
|
3193
|
"\n" +
|
|
|
3194
|
" <span ng-if=\"rule_ctrlr.rule.field == '__AND__' || rule_ctrlr.rule.field =='__OR__' || rule_ctrlr.rule.field =='__NOT__'\">\n" +
|
|
|
3195
|
" <p ng-if=\"parent\"><strong>Subrules</strong></p>\n" +
|
|
|
3196
|
" <div ng-repeat=\"subrule in rule_ctrlr.rule.rules\" class=\"m-l-2\">\n" +
|
|
|
3197
|
" <div class=\"panel panel-default\">\n" +
|
|
|
3198
|
" <div class=\"panel-body form-inline\">\n" +
|
|
|
3199
|
" <recursive>\n" +
|
|
|
3200
|
" <rule rule=\"subrule\" rule-definitions=\"rule_ctrlr.ruleDefinitions\" parent-rule=\"rule_ctrlr.rule\" parent-obj=\"rule_ctrlr.parentObj\"></rule>\n" +
|
|
|
3201
|
" </recursive>\n" +
|
|
|
3202
|
" </div>\n" +
|
|
|
3203
|
" </div>\n" +
|
|
|
3204
|
" </div>\n" +
|
|
|
3205
|
"\n" +
|
|
|
3206
|
" <span ng-if=\"(rule_ctrlr.config.disable_subrules == false) == false\" class=\"btn btn-info\" ng-click=\"rule_ctrlr.add()\"><span class=\"fa fa-plus-circle\"></span> Add rule</span>\n" +
|
|
|
3207
|
"\n" +
|
|
|
3208
|
" </span>\n" +
|
|
|
3209
|
" <div class=\"pull-right\" ng-if=\"rule_ctrlr.parentRule\">\n" +
|
|
|
3210
|
" <span class=\"dropdown\" data-uib-dropdown>\n" +
|
|
|
3211
|
" <a class=\"btn btn-danger\" data-uib-dropdown-toggle><span class=\"fa fa-trash-o\"></span></a>\n" +
|
|
|
3212
|
" <ul class=\"dropdown-menu\">\n" +
|
|
|
3213
|
" <li><a>No</a></li>\n" +
|
|
|
3214
|
" <li><a ng-click=\"rule_ctrlr.deleteRule(rule_ctrlr.parentRule, rule_ctrlr.rule)\">Yes</a></li>\n" +
|
|
|
3215
|
" </ul>\n" +
|
|
|
3216
|
" </span>\n" +
|
|
|
3217
|
" </div>\n" +
|
|
|
3218
|
"</div>\n"
|
|
|
3219
|
);
|
|
|
3220
|
|
|
|
3221
|
|
|
2841
|
3222
|
$templateCache.put('templates/admin/applications/applications_list.html',
|
|
2842
|
3223
|
"<ng-include src=\"'templates/loader.html'\" ng-if=\"applications.loading.applications\"></ng-include>\n" +
|
|
2843
|
3224
|
"\n" +
|
|
@@
-4835,131
+5216,17
b' function kickstartAE(initialUserData) {'
|
|
4835
|
5216
|
" </table>\n" +
|
|
4836
|
5217
|
"\n" +
|
|
4837
|
5218
|
"</div>\n"
|
|
4838
|
|
);
|
|
4839
|
|
|
|
4840
|
|
|
|
4841
|
|
$templateCache.put('templates/applications/parent_view.html',
|
|
4842
|
|
"<div class=\"row application-management\">\n" +
|
|
4843
|
|
" <div class=\"col-sm-3\" id=\"menu\">\n" +
|
|
4844
|
|
" <div ng-include=\"'templates/user/menu.html'\"></div>\n" +
|
|
4845
|
|
" </div>\n" +
|
|
4846
|
|
"\n" +
|
|
4847
|
|
" <div class=\"col-sm-9\" ui-view></div>\n" +
|
|
4848
|
|
"\n" +
|
|
4849
|
|
"</div>\n"
|
|
4850
|
|
);
|
|
4851
|
|
|
|
4852
|
|
|
|
4853
|
|
$templateCache.put('templates/components/appenlight-app.html',
|
|
4854
|
|
"<channelstream config=\"AeConfig\"></channelstream>\n" +
|
|
4855
|
|
"<appenlight-header></appenlight-header>\n" +
|
|
4856
|
|
"<div id=\"outer-content\">\n" +
|
|
4857
|
|
" <div ui-view class=\"container\"></div>\n" +
|
|
4858
|
|
"</div>\n"
|
|
4859
|
|
);
|
|
4860
|
|
|
|
4861
|
|
|
|
4862
|
|
$templateCache.put('templates/components/appenlight-header.html',
|
|
4863
|
|
"<!-- Fixed navbar -->\n" +
|
|
4864
|
|
"<div id=\"top-navbar\" class=\"navbar navbar-default navbar-fixed-top\" role=\"navigation\">\n" +
|
|
4865
|
|
" <div class=\"pattern\">\n" +
|
|
4866
|
|
" <div class=\"container\">\n" +
|
|
4867
|
|
" <div class=\"navbar-header pull-left\">\n" +
|
|
4868
|
|
" <a data-ui-sref=\"front_dashboard\" class=\"navbar-brand\">\n" +
|
|
4869
|
|
" <div id=\"logo-normal\" class=\"hidden-sm hidden-xs\"></div>\n" +
|
|
4870
|
|
" <div id=\"logo-icon\" class=\"visible-sm visible-xs\"></div>\n" +
|
|
4871
|
|
" </a>\n" +
|
|
4872
|
|
" </div>\n" +
|
|
4873
|
|
"\n" +
|
|
4874
|
|
" <div class=\"container-fluid\">\n" +
|
|
4875
|
|
" <div>\n" +
|
|
4876
|
|
" <ul class=\"nav navbar-nav navbar-right\" ng-if=\"$ctrl.stateHolder.AeUser.id !== null\">\n" +
|
|
4877
|
|
" <li id=\"user-notifications\" class=\"dropdown ng-cloak\" data-uib-dropdown>\n" +
|
|
4878
|
|
"\n" +
|
|
4879
|
|
" <a class=\"dropdown-toggle\" data-uib-dropdown-toggle>\n" +
|
|
4880
|
|
" <span class=\"badge\">{{$ctrl.assignedReports.length}}</span>\n" +
|
|
4881
|
|
" <span class=\"fa fa-envelope-o\"></span>\n" +
|
|
4882
|
|
" </a>\n" +
|
|
4883
|
|
" <ul class=\"dropdown-menu\">\n" +
|
|
4884
|
|
" <li role=\"presentation\" class=\"dropdown-header\">Assigned reports</li>\n" +
|
|
4885
|
|
" <li data-ng-repeat=\"report in $ctrl.assignedReports\" role=\"presentation\">\n" +
|
|
4886
|
|
" <a href=\"{{report.front_url}}\" role=\"menuitem\" tabindex=\"-1\">\n" +
|
|
4887
|
|
" <small>{{ report.error || 'Slow Report: ' + report.view_name |truncate:65}}</small>\n" +
|
|
4888
|
|
" </a>\n" +
|
|
4889
|
|
"\n" +
|
|
4890
|
|
" </li>\n" +
|
|
4891
|
|
" <li data-ng-if=\"$ctrl.assignedReports.length == 0\"><a><small>No reports</small></a></li>\n" +
|
|
4892
|
|
" </ul>\n" +
|
|
4893
|
|
" </li>\n" +
|
|
4894
|
|
" <li id=\"alert-notifications\" class=\"dropdown ng-cloak\" data-uib-dropdown auto-close=\"outsideClick\">\n" +
|
|
4895
|
|
" <a class=\"dropdown-toggle\" data-uib-dropdown-toggle>\n" +
|
|
4896
|
|
" <span class=\"badge {{ activeEvents ? 'danger' : '' }}\">{{$ctrl.activeEvents}}</span>\n" +
|
|
4897
|
|
" <span class=\"fa fa-bell-o\"></span></a>\n" +
|
|
4898
|
|
" <ul class=\"dropdown-menu\">\n" +
|
|
4899
|
|
" <li role=\"presentation\" class=\"dropdown-header\">\n" +
|
|
4900
|
|
" <a data-ui-sref=\"events\" class=\"btn btn-xs btn-default\">Show me more</a></li>\n" +
|
|
4901
|
|
" <li role=\"presentation\" class=\"dropdown-header\">Latest events</li>\n" +
|
|
4902
|
|
" <li data-ng-repeat=\"event in $ctrl.latestEvents\" role=\"presentation\">\n" +
|
|
4903
|
|
" <a data-ng-click=\"$ctrl.clickedEvent(event)\"><small class=\"resource-name\">For {{ event.resource_name }}</small><br/>\n" +
|
|
4904
|
|
" <small>{{ event.text |truncate:65}}</small><br/>\n" +
|
|
4905
|
|
" <small class=\"date\" data-uib-tooltip=\"{{event.start_date}}\">created: <iso-to-relative-time time=\"{{event.start_date}}\"/></small>\n" +
|
|
4906
|
|
" <small class=\"date\" data-ng-show=\"event.end_date\" data-uib-tooltip=\"{{event.end_date}}\">closed: <iso-to-relative-time time=\"{{event.end_date}}\"/></small>\n" +
|
|
4907
|
|
" </a>\n" +
|
|
4908
|
|
" </li>\n" +
|
|
4909
|
|
" <li data-ng-if=\"$ctrl.latestEvents.length == 0\"><a><small>No events</small></a></li>\n" +
|
|
4910
|
|
" </ul>\n" +
|
|
4911
|
|
" </li>\n" +
|
|
4912
|
|
"\n" +
|
|
4913
|
|
" <li id=\"dashboards\" class=\"dropdown\" data-uib-dropdown>\n" +
|
|
4914
|
|
" <a class=\"dropdown-toggle\" data-uib-dropdown-toggle tooltip-placement=\"bottom\" data-uib-tooltip=\"Dashboards\">\n" +
|
|
4915
|
|
" <span class=\"fa fa-bar-chart-o \"></span></a>\n" +
|
|
4916
|
|
" <ul class=\"dropdown-menu\">\n" +
|
|
4917
|
|
" <li role=\"presentation\"><a data-ui-sref=\"front_dashboard\">Main dashboard</a></li>\n" +
|
|
4918
|
|
" <li role=\"presentation\" ng-repeat=\"item in $ctrl.AeConfig.topNav.menu_dashboards_items\">\n" +
|
|
4919
|
|
" <a data-ui-sref=\"{{ item.sref }}\">{{ item.label }}</a>\n" +
|
|
4920
|
|
" </li>\n" +
|
|
4921
|
|
" </ul>\n" +
|
|
4922
|
|
" </li>\n" +
|
|
4923
|
|
"\n" +
|
|
4924
|
|
" <li class=\"dropdown\" data-uib-dropdown>\n" +
|
|
4925
|
|
" <a class=\"dropdown-toggle\" data-uib-dropdown-toggle tooltip-placement=\"bottom\" data-uib-tooltip=\"Reports\">\n" +
|
|
4926
|
|
" <span class=\"fa fa-exclamation-triangle\"></span></a>\n" +
|
|
4927
|
|
" <ul class=\"dropdown-menu\">\n" +
|
|
4928
|
|
" <li role=\"presentation\">\n" +
|
|
4929
|
|
" <a data-ui-sref=\"report.list({resource:$ctrl.stateHolder.resource})\">Error Reports</a>\n" +
|
|
4930
|
|
" </li>\n" +
|
|
4931
|
|
" <li role=\"presentation\">\n" +
|
|
4932
|
|
" <a data-ui-sref=\"report.list_slow({resource:$ctrl.stateHolder.resource})\">Slowness Reports</a>\n" +
|
|
4933
|
|
" </li>\n" +
|
|
4934
|
|
"\n" +
|
|
4935
|
|
" </ul>\n" +
|
|
4936
|
|
" </li>\n" +
|
|
4937
|
|
"\n" +
|
|
4938
|
|
" <li>\n" +
|
|
4939
|
|
" <a data-ui-sref=\"logs({resource:$ctrl.stateHolder.resource})\" data-uib-tooltip=\"Logs\" tooltip-placement=\"bottom\"><span class=\"fa fa-list-alt \"></span></a></li>\n" +
|
|
4940
|
|
" <li>\n" +
|
|
4941
|
|
" <a data-ui-sref=\"user\" data-uib-tooltip=\"Settings\" tooltip-placement=\"bottom\"><span class=\"fa fa-cog \"></span></a>\n" +
|
|
4942
|
|
" </li>\n" +
|
|
4943
|
|
" <li class=\"dropdown\" data-uib-dropdown data-ng-if=\"$ctrl.AeConfig.topNav.menu_admin_items.length\">\n" +
|
|
4944
|
|
" <a class=\"dropdown-toggle\" data-uib-dropdown-toggle tooltip-placement=\"bottom\" data-uib-tooltip=\"Admin Settings\">\n" +
|
|
4945
|
|
" <span class=\"fa fa-wrench\"></span></a>\n" +
|
|
4946
|
|
" <ul class=\"dropdown-menu\">\n" +
|
|
4947
|
|
" <li role=\"presentation\" ng-repeat=\"item in $ctrl.AeConfig.topNav.menu_admin_items\">\n" +
|
|
4948
|
|
" <a data-ui-sref=\"{{ item.sref }}\">{{ item.label }}</a>\n" +
|
|
4949
|
|
" </li>\n" +
|
|
4950
|
|
" </ul>\n" +
|
|
4951
|
|
" </li>\n" +
|
|
4952
|
|
" <li><a href=\"{{ $ctrl.AeConfig.urls.otherRoutes.signOut }}\" target=\"_self\"\n" +
|
|
4953
|
|
" data-uib-tooltip=\"Sign out\" tooltip-placement=\"bottom\">\n" +
|
|
4954
|
|
" <span class=\"fa fa-power-off \"></span></a></li>\n" +
|
|
4955
|
|
" </ul>\n" +
|
|
4956
|
|
" <ul class=\"nav navbar-nav pull-right\" ng-if=\"$ctrl.stateHolder.AeUser.id === null\">\n" +
|
|
4957
|
|
" <li><a href=\"{{ $ctrl.AeConfig.urls.otherRoutes.register }}\" target=\"_self\" class=\"btn btn-orange\">Sign In</a></li>\n" +
|
|
4958
|
|
" </ul>\n" +
|
|
4959
|
|
" </div><!-- /.navbar-collapse -->\n" +
|
|
4960
|
|
" </div><!-- /.container-fluid -->\n" +
|
|
4961
|
|
" </div>\n" +
|
|
|
5219
|
);
|
|
|
5220
|
|
|
|
5221
|
|
|
|
5222
|
$templateCache.put('templates/applications/parent_view.html',
|
|
|
5223
|
"<div class=\"row application-management\">\n" +
|
|
|
5224
|
" <div class=\"col-sm-3\" id=\"menu\">\n" +
|
|
|
5225
|
" <div ng-include=\"'templates/user/menu.html'\"></div>\n" +
|
|
4962
|
5226
|
" </div>\n" +
|
|
|
5227
|
"\n" +
|
|
|
5228
|
" <div class=\"col-sm-9\" ui-view></div>\n" +
|
|
|
5229
|
"\n" +
|
|
4963
|
5230
|
"</div>\n"
|
|
4964
|
5231
|
);
|
|
4965
|
5232
|
|
|
@@
-5176,409
+5443,141
b' function kickstartAE(initialUserData) {'
|
|
5176
|
5443
|
" <div class=\"panel-heading position-relative\">\n" +
|
|
5177
|
5444
|
" <h3 class=\"panel-title\"><span class=\"fa fa-exclamation-triangle\"></span> Newest errors (real-time)\n" +
|
|
5178
|
5445
|
" </h3>\n" +
|
|
5179
|
|
" <a tooltip-append-to-body=\"true\" data-uib-tooltip=\"Play/Pause stream\" class=\"btn btn-primary btn-sm pause_stream\" ng-model=\"index.stream.paused\" uib-btn-checkbox>\n" +
|
|
5180
|
|
" <span class=\"fa {{stream.paused ? 'fa-play' : 'fa-pause'}}\"></span>\n" +
|
|
5181
|
|
" </a>\n" +
|
|
5182
|
|
" <a tooltip-append-to-body=\"true\" data-uib-tooltip=\"Limit reports to current application\" class=\"btn btn-primary btn-sm limit_stream\" ng-model=\"index.stream.filtered\" uib-btn-checkbox>\n" +
|
|
5183
|
|
" <span class=\"fa fa-lock\"></span>\n" +
|
|
5184
|
|
" </a>\n" +
|
|
5185
|
|
"\n" +
|
|
5186
|
|
"\n" +
|
|
5187
|
|
" </div>\n" +
|
|
5188
|
|
" <div class=\"panel-body\">\n" +
|
|
5189
|
|
"\n" +
|
|
5190
|
|
" <p ng-if=\"index.stream.reports.length === 0\">No new reports</p>\n" +
|
|
5191
|
|
"\n" +
|
|
5192
|
|
" <div small-report-list reports=\"index.stream.reports\" applications=\"index.applications\"></div>\n" +
|
|
5193
|
|
" </div>\n" +
|
|
5194
|
|
" </div>\n" +
|
|
5195
|
|
" </div>\n" +
|
|
5196
|
|
"\n" +
|
|
5197
|
|
" <div class=\"col-sm-6\">\n" +
|
|
5198
|
|
"\n" +
|
|
5199
|
|
" <div class=\"panel panel-default\">\n" +
|
|
5200
|
|
" <div class=\"panel-heading\">\n" +
|
|
5201
|
|
" <h3 class=\"panel-title\"><span class=\"fa fa-sort-amount-desc\"></span> Request breakdown over {{ index.timeSpan.label }}</h3>\n" +
|
|
5202
|
|
" </div>\n" +
|
|
5203
|
|
" <div class=\"panel-body\" id=\"view-breakdown-container\">\n" +
|
|
5204
|
|
" <p ng-if=\"index.loading.requestsBreakdown!=false\" class=\"text-center\">\n" +
|
|
5205
|
|
" <span class=\"fa fa-cog fa-spin fa-5x loader\"></span>\n" +
|
|
5206
|
|
" </p>\n" +
|
|
5207
|
|
"\n" +
|
|
5208
|
|
" <div class=\"report-list\">\n" +
|
|
5209
|
|
" <div ng-if=\"index.loading.requestsBreakdown==false\" ng-repeat=\"view in index.requestsBreakdown\">\n" +
|
|
5210
|
|
" <div class=\"view-info\">\n" +
|
|
5211
|
|
" <div class=\"view-name\">\n" +
|
|
5212
|
|
" <div class=\"bar\" style=\"width: {{view.percentage}}%\">\n" +
|
|
5213
|
|
" </div>\n" +
|
|
5214
|
|
" </div>\n" +
|
|
5215
|
|
" <strong ng-if=\"view.latest_details.length\">\n" +
|
|
5216
|
|
" <a data-ui-sref=\"report.list_slow({view_name:view.view_name})\">{{view.view_name}}</a></strong>\n" +
|
|
5217
|
|
" <strong ng-if=\"!view.latest_details.length\">{{view.view_name}}</strong>\n" +
|
|
5218
|
|
"\n" +
|
|
5219
|
|
" <div class=\"stats\">\n" +
|
|
5220
|
|
" <small>\n" +
|
|
5221
|
|
" avg. response <strong>{{view.avg_response}}s</strong> in\n" +
|
|
5222
|
|
" <span class=\"requests\"\n" +
|
|
5223
|
|
" data-uib-tooltip=\"Requests\"><strong>{{view.requests|numberToThousands}}</strong> requests</span>\n" +
|
|
5224
|
|
"\n" +
|
|
5225
|
|
" <span ng-if=\"view.latest_details\">\n" +
|
|
5226
|
|
" Latest reports:\n" +
|
|
5227
|
|
" <a ng-repeat=\"d in view.latest_details\" target=\"_blank\" ui-sref=\"report.view_detail({groupId:d.group_id, reportId:d.report_id})\"> <strong>{{$index+1}}</strong></a>\n" +
|
|
5228
|
|
" </span>\n" +
|
|
5229
|
|
" </small>\n" +
|
|
5230
|
|
" </div>\n" +
|
|
5231
|
|
"\n" +
|
|
5232
|
|
" </div>\n" +
|
|
5233
|
|
"\n" +
|
|
5234
|
|
" </div>\n" +
|
|
5235
|
|
" </div>\n" +
|
|
5236
|
|
"\n" +
|
|
5237
|
|
"\n" +
|
|
5238
|
|
" </div>\n" +
|
|
5239
|
|
" </div>\n" +
|
|
5240
|
|
"\n" +
|
|
5241
|
|
" </div>\n" +
|
|
5242
|
|
"\n" +
|
|
5243
|
|
" </div>\n" +
|
|
5244
|
|
"\n" +
|
|
5245
|
|
" <div class=\"row\">\n" +
|
|
5246
|
|
" <div class=\"col-sm-6\">\n" +
|
|
5247
|
|
"\n" +
|
|
5248
|
|
" <div class=\"panel panel-default\">\n" +
|
|
5249
|
|
" <div class=\"panel-heading\">\n" +
|
|
5250
|
|
" <h3 class=\"panel-title\">\n" +
|
|
5251
|
|
" <span class=\"fa fa-exclamation-triangle\"></span> Report groups trending over {{ index.timeSpan.label }}\n" +
|
|
5252
|
|
" </h3>\n" +
|
|
5253
|
|
" </div>\n" +
|
|
5254
|
|
" <div class=\"panel-body\">\n" +
|
|
5255
|
|
" <p ng-if=\"index.loading.reports != false\" class=\"text-center\">\n" +
|
|
5256
|
|
" <span class=\"fa fa-cog fa-spin fa-5x loader\"></span>\n" +
|
|
5257
|
|
" </p>\n" +
|
|
5258
|
|
"\n" +
|
|
5259
|
|
" <p ng-if=\"index.trendingReports.length == 0 && index.loading.reports == false\">\n" +
|
|
5260
|
|
" No reports found\n" +
|
|
5261
|
|
" </p>\n" +
|
|
5262
|
|
"\n" +
|
|
5263
|
|
" <div small-report-group-list groups=\"index.trendingReports\" applications=\"index.applications\" ng-if=\"index.loading.reports==false\"></div>\n" +
|
|
5264
|
|
" </div>\n" +
|
|
5265
|
|
" </div>\n" +
|
|
5266
|
|
"\n" +
|
|
5267
|
|
" </div>\n" +
|
|
5268
|
|
"\n" +
|
|
5269
|
|
" <div class=\"col-sm-6\">\n" +
|
|
5270
|
|
"\n" +
|
|
5271
|
|
"\n" +
|
|
5272
|
|
" <div class=\"panel panel-default\">\n" +
|
|
5273
|
|
" <div class=\"panel-heading\">\n" +
|
|
5274
|
|
" <h3 class=\"panel-title\">\n" +
|
|
5275
|
|
" Most common slow calls over {{ index.timeSpan.label }}\n" +
|
|
5276
|
|
" </h3>\n" +
|
|
5277
|
|
" </div>\n" +
|
|
5278
|
|
" <div class=\"panel-body\">\n" +
|
|
5279
|
|
"\n" +
|
|
5280
|
|
" <div ng-if=\"index.loading.slowCalls!=false\" class=\"text-center\">\n" +
|
|
5281
|
|
" <span class=\"fa fa-cog fa-spin fa-5x loader\"></span>\n" +
|
|
5282
|
|
" </div>\n" +
|
|
5283
|
|
"\n" +
|
|
5284
|
|
" <table id=\"slow-statements\" ng-if=\"index.loading.slowCalls==false\">\n" +
|
|
5285
|
|
" <tbody>\n" +
|
|
5286
|
|
" <tr ng-repeat=\"call in index.slowCalls\">\n" +
|
|
5287
|
|
" <td class=\"occurences\">\n" +
|
|
5288
|
|
" <span class=\"occurences\" data-uib-tooltip=\"Occurences\">{{call.occurences|numberToThousands}}</span>\n" +
|
|
5289
|
|
" </td>\n" +
|
|
5290
|
|
" <td class=\"ellipsis\">\n" +
|
|
5291
|
|
" <small title=\"{{call.statement}}\" class=\"statement\">{{call.statement}}</small>\n" +
|
|
5292
|
|
" <br/>\n" +
|
|
5293
|
|
" <span class=\"type\">{{call.statement_type}}</span>\n" +
|
|
5294
|
|
" <span class=\"subtype\">{{call.statement_subtype}}</span>\n" +
|
|
5295
|
|
" <span class=\"duration\" data-uib-tooltip=\"Average duration\">{{call.total_duration/call.occurences|round:2}}s</span>\n" +
|
|
5296
|
|
" <span class=\"report-list\">\n" +
|
|
5297
|
|
" Latest reports:\n" +
|
|
5298
|
|
" <a ng-repeat=\"d in call.latest_details\" target=\"_blank\" ui-sref=\"report.view_detail({groupId:d.group_id, reportId:d.report_id})\"> <strong>{{$index+1}}</strong> </a>\n" +
|
|
5299
|
|
" </span>\n" +
|
|
5300
|
|
" </td>\n" +
|
|
5301
|
|
" </tr>\n" +
|
|
5302
|
|
" </tbody>\n" +
|
|
5303
|
|
" </table>\n" +
|
|
5304
|
|
"\n" +
|
|
5305
|
|
"\n" +
|
|
5306
|
|
" </div>\n" +
|
|
5307
|
|
" </div>\n" +
|
|
5308
|
|
"\n" +
|
|
5309
|
|
"\n" +
|
|
5310
|
|
" </div>\n" +
|
|
5311
|
|
"\n" +
|
|
5312
|
|
" </div>\n" +
|
|
5313
|
|
" </div>\n" +
|
|
5314
|
|
" </div>\n" +
|
|
5315
|
|
"</div>\n"
|
|
5316
|
|
);
|
|
5317
|
|
|
|
5318
|
|
|
|
5319
|
|
$templateCache.put('templates/directives/permissions.html',
|
|
5320
|
|
"<div class=\"panel panel-default\">\n" +
|
|
5321
|
|
" <div class=\"panel-heading\">\n" +
|
|
5322
|
|
" <h3 class=\"panel-title\">Permissions</h3>\n" +
|
|
5323
|
|
" </div>\n" +
|
|
5324
|
|
" <div class=\"panel-body\">\n" +
|
|
5325
|
|
" <p>Here you can <strong>set permissions</strong> for others to access your app data.</p>\n" +
|
|
5326
|
|
"\n" +
|
|
5327
|
|
" <p>For example you can let other staff member view or alter error reports.</p>\n" +
|
|
5328
|
|
"\n" +
|
|
5329
|
|
" <div ng-if=\"permissions.possibleGroups.length > 0\">\n" +
|
|
5330
|
|
" <h3>Group permissions</h3>\n" +
|
|
5331
|
|
"\n" +
|
|
5332
|
|
" <ul class=\"list-group\">\n" +
|
|
5333
|
|
" <li ng-repeat=\"perm in permissions.currentPermissions.group\" class=\"animate-repeat list-group-item\">\n" +
|
|
5334
|
|
" <strong>{{ perm.self.group_name }}</strong>\n" +
|
|
5335
|
|
" <div ng-repeat=\"perm_name in perm.permissions\" class=\"pull-right animate-repeat m-l-1\">\n" +
|
|
5336
|
|
" <span ng-if=\"perm_name == '__all_permissions__'\">Resource owner</span>\n" +
|
|
5337
|
|
" <span class=\"dropdown\" data-uib-dropdown on-toggle=\"toggled(open)\" ng-if=\"perm_name != '__all_permissions__'\">\n" +
|
|
5338
|
|
" <a class=\"btn btn-danger btn-xs\" data-uib-dropdown-toggle><span class=\"fa fa-trash-o\"></span> {{ perm_name }}</a>\n" +
|
|
5339
|
|
" <ul class=\"dropdown-menu\">\n" +
|
|
5340
|
|
" <li><a>No</a></li>\n" +
|
|
5341
|
|
" <li><a ng-click=\"permissions.removeGroupPermission(perm_name, perm)\">Yes</a></li>\n" +
|
|
5342
|
|
" </ul>\n" +
|
|
5343
|
|
" </span>\n" +
|
|
5344
|
|
" </div>\n" +
|
|
5345
|
|
" </li>\n" +
|
|
5346
|
|
" </ul>\n" +
|
|
5347
|
|
"\n" +
|
|
5348
|
|
" <form name=\"add_permission\" class=\"form-inline\" ng-submit=\"permissions.setGroupPermission()\">\n" +
|
|
5349
|
|
" <div class=\"form-group\">\n" +
|
|
5350
|
|
" <select class=\"form-control\" ng-model=\"permissions.form.selectedGroup\" ng-options=\"g.id as g.group_name for g in permissions.possibleGroups\"></select>\n" +
|
|
5351
|
|
" </div>\n" +
|
|
5352
|
|
" <div class=\"form-group\">\n" +
|
|
5353
|
|
" <span ng-repeat=\"permission in permissions.possiblePermissions\">\n" +
|
|
5354
|
|
" <input type=\"checkbox\" ng-model=\"permissions.form.selectedGroupPermissions[permission]\"> {{ permission }}\n" +
|
|
5355
|
|
" </span>\n" +
|
|
5356
|
|
" </div>\n" +
|
|
5357
|
|
" <div class=\"form-group\">\n" +
|
|
5358
|
|
" <button class=\"btn btn-info\"><span class=\"fa fa-user\"></span> Give permission</button>\n" +
|
|
5359
|
|
" </div>\n" +
|
|
5360
|
|
" </form>\n" +
|
|
5361
|
|
"\n" +
|
|
5362
|
|
" </div>\n" +
|
|
5363
|
|
"\n" +
|
|
5364
|
|
" <h3>User permissions</h3>\n" +
|
|
5365
|
|
" <div>\n" +
|
|
5366
|
|
" <ul class=\"list-group\">\n" +
|
|
5367
|
|
" <li ng-repeat=\"perm in permissions.currentPermissions.user\" class=\"animate-repeat list-group-item\">\n" +
|
|
5368
|
|
" <strong>{{ perm.self.user_name }}</strong>\n" +
|
|
5369
|
|
" <div ng-repeat=\"perm_name in perm.permissions\" class=\"pull-right animate-repeat m-l-1\">\n" +
|
|
5370
|
|
" <span ng-if=\"perm_name == '__all_permissions__'\">Resource owner</span>\n" +
|
|
5371
|
|
" <span class=\"dropdown\" data-uib-dropdown on-toggle=\"toggled(open)\" ng-if=\"perm_name != '__all_permissions__'\">\n" +
|
|
5372
|
|
" <a class=\"btn btn-danger btn-xs\" data-uib-dropdown-toggle><span class=\"fa fa-trash-o\"></span> {{ perm_name }}</a>\n" +
|
|
5373
|
|
" <ul class=\"dropdown-menu\">\n" +
|
|
5374
|
|
" <li><a>No</a></li>\n" +
|
|
5375
|
|
" <li><a ng-click=\"permissions.removeUserPermission(perm_name,perm)\">Yes</a></li>\n" +
|
|
5376
|
|
" </ul>\n" +
|
|
5377
|
|
" </span>\n" +
|
|
5378
|
|
" </div>\n" +
|
|
5379
|
|
" </li>\n" +
|
|
5380
|
|
" </ul>\n" +
|
|
5381
|
|
" </div>\n" +
|
|
5382
|
|
" <div>\n" +
|
|
5383
|
|
" <p>First enter username or full email of person you want to give access to (the person needs to be <strong>already registered in AppEnlight</strong>)</p>\n" +
|
|
5384
|
|
"\n" +
|
|
5385
|
|
" <form name=\"add_permission\" class=\"form-inline\" ng-submit=\"permissions.setUserPermission()\">\n" +
|
|
5386
|
|
" <div class=\"form-group\">\n" +
|
|
5387
|
|
" <input type=\"text\" class=\"autocomplete form-control\" placeholder=\"Search for user/email\" ng-model=\"permissions.form.autocompleteUser\"\n" +
|
|
5388
|
|
" uib-typeahead=\"u.user for u in permissions.searchUsers($viewValue) | limitTo:8\" typeahead-loading=\"permissions.searchingUsers\" typeahead-wait-ms=\"250\"\n" +
|
|
5389
|
|
" typeahead-template-url=\"templates/directives/user_search_type_ahead.html\"\n" +
|
|
5390
|
|
" />\n" +
|
|
5391
|
|
" </div>\n" +
|
|
5392
|
|
" <div class=\"form-group\">\n" +
|
|
5393
|
|
" <span ng-repeat=\"permission in permissions.possiblePermissions\">\n" +
|
|
5394
|
|
" <input type=\"checkbox\" ng-model=\"permissions.form.selectedUserPermissions[permission]\"> {{ permission }}\n" +
|
|
5395
|
|
" </span>\n" +
|
|
5396
|
|
" </div>\n" +
|
|
5397
|
|
" <div class=\"form-group\">\n" +
|
|
5398
|
|
" <button class=\"btn btn-info\" ng-disabled=\"!permissions.form.autocompleteUser\"><span class=\"fa fa-user\"></span> Give permission</button>\n" +
|
|
5399
|
|
" </div>\n" +
|
|
5400
|
|
" </form>\n" +
|
|
5401
|
|
" </div>\n" +
|
|
5402
|
|
" </div>\n" +
|
|
5403
|
|
"</div>\n"
|
|
5404
|
|
);
|
|
5405
|
|
|
|
5406
|
|
|
|
5407
|
|
$templateCache.put('templates/directives/plugin_config.html',
|
|
5408
|
|
"<div ng-repeat=\"tmpl in plugin_ctrlr.inclusions track by $index\">\n" +
|
|
5409
|
|
" <div><strong>Plugin: {{tmpl.name}}</strong></div>\n" +
|
|
5410
|
|
" <ng-include src=\"tmpl.template\"></ng-include>\n" +
|
|
5411
|
|
" <hr/>\n" +
|
|
5412
|
|
"</div>\n"
|
|
5413
|
|
);
|
|
5414
|
|
|
|
5415
|
|
|
|
5416
|
|
$templateCache.put('templates/directives/postprocess_action.html',
|
|
5417
|
|
"<div class=\"panel panel-default action\">\n" +
|
|
5418
|
|
" <div class=\"panel-body form-inline\">\n" +
|
|
5419
|
|
" <div class=\"pull-right\">\n" +
|
|
5420
|
|
" <span class=\"dropdown\" data-uib-dropdown>\n" +
|
|
5421
|
|
" <a class=\"btn btn-danger\" data-uib-dropdown-toggle><span class=\"fa fa-trash-o\"></span></a>\n" +
|
|
5422
|
|
" <ul class=\"dropdown-menu\">\n" +
|
|
5423
|
|
" <li><a>No</a></li>\n" +
|
|
5424
|
|
" <li><a ng-click=\"ctrl.deleteAction(ctrl.action)\">Yes</a></li>\n" +
|
|
5425
|
|
" </ul>\n" +
|
|
5426
|
|
" </span>\n" +
|
|
5427
|
|
" </div>\n" +
|
|
|
5446
|
" <a tooltip-append-to-body=\"true\" data-uib-tooltip=\"Play/Pause stream\" class=\"btn btn-primary btn-sm pause_stream\" ng-model=\"index.stream.paused\" uib-btn-checkbox>\n" +
|
|
|
5447
|
" <span class=\"fa {{stream.paused ? 'fa-play' : 'fa-pause'}}\"></span>\n" +
|
|
|
5448
|
" </a>\n" +
|
|
|
5449
|
" <a tooltip-append-to-body=\"true\" data-uib-tooltip=\"Limit reports to current application\" class=\"btn btn-primary btn-sm limit_stream\" ng-model=\"index.stream.filtered\" uib-btn-checkbox>\n" +
|
|
|
5450
|
" <span class=\"fa fa-lock\"></span>\n" +
|
|
|
5451
|
" </a>\n" +
|
|
5428
|
5452
|
"\n" +
|
|
5429
|
|
" <div class=\"form-group\">\n" +
|
|
5430
|
|
" <label>Action</label>\n" +
|
|
5431
|
5453
|
"\n" +
|
|
5432
|
|
" <div class=\"form-group\">\n" +
|
|
5433
|
|
" <select class=\"form-control\" ng-model=\"ctrl.action.new_value\" ng-options=\"f[0] as f[1] for f in ctrl.possibleActions\" ng-change=\"ctrl.setDirty()\"></select>\n" +
|
|
5434
|
|
" </div>\n" +
|
|
|
5454
|
" </div>\n" +
|
|
|
5455
|
" <div class=\"panel-body\">\n" +
|
|
5435
|
5456
|
"\n" +
|
|
5436
|
|
" <a class=\"btn btn-success\" ng-if=\"ctrl.action.dirty\" ng-click=\"ctrl.saveAction()\"><span class=\"fa fa-save\"></span> Save changes</a>\n" +
|
|
|
5457
|
" <p ng-if=\"index.stream.reports.length === 0\">No new reports</p>\n" +
|
|
5437
|
5458
|
"\n" +
|
|
5438
|
|
" </div>\n" +
|
|
5439
|
|
" <hr/>\n" +
|
|
5440
|
|
" <p>Meeting following criteria:</p>\n" +
|
|
5441
|
|
" <form-errors errors=\"ctrl.errors\"></form-errors>\n" +
|
|
5442
|
|
" {{ctrl.rule}}\n" +
|
|
5443
|
|
" <rule rule=\"ctrl.action.rule\" rule-definitions=\"ctrl.ruleDefinitions\" parent-rule=\"null\" parent-obj=\"ctrl.action\"></rule>\n" +
|
|
5444
|
|
" </div>\n" +
|
|
5445
|
|
"</div>\n"
|
|
5446
|
|
);
|
|
5447
|
|
|
|
5448
|
|
|
|
5449
|
|
$templateCache.put('templates/directives/report_alert_action.html',
|
|
5450
|
|
"<div class=\"panel panel-default action\">\n" +
|
|
5451
|
|
" <div class=\"panel-body form-inline\">\n" +
|
|
5452
|
|
" <div class=\"pull-right\">\n" +
|
|
5453
|
|
" <span class=\"dropdown\" data-uib-dropdown>\n" +
|
|
5454
|
|
" <a class=\"btn btn-danger\" data-uib-dropdown-toggle><span class=\"fa fa-trash-o\"></span></a>\n" +
|
|
5455
|
|
" <ul class=\"dropdown-menu\">\n" +
|
|
5456
|
|
" <li><a>No</a></li>\n" +
|
|
5457
|
|
" <li><a ng-click=\"ctrl.deleteAction(ctrl.actions, ctrl.action)\">Yes</a></li>\n" +
|
|
5458
|
|
" </ul>\n" +
|
|
5459
|
|
" </span>\n" +
|
|
5460
|
|
" </div>\n" +
|
|
|
5459
|
" <div small-report-list reports=\"index.stream.reports\" applications=\"index.applications\"></div>\n" +
|
|
|
5460
|
" </div>\n" +
|
|
|
5461
|
" </div>\n" +
|
|
|
5462
|
" </div>\n" +
|
|
5461
|
5463
|
"\n" +
|
|
5462
|
|
" <div class=\"form-group\">\n" +
|
|
5463
|
|
" <label>Applies to</label>\n" +
|
|
5464
|
|
" <select class=\"form-control\" ng-model=\"ctrl.action.resource_id\" ng-options=\"f.resource_id as f.resource_name for f in ctrl.applications\" ng-change=\"ctrl.setDirty()\">\n" +
|
|
5465
|
|
" <option value=\"\">All Resources</option>\n" +
|
|
5466
|
|
" </select>\n" +
|
|
5467
|
|
" </div>\n" +
|
|
5468
|
|
" <div class=\"form-group\">\n" +
|
|
5469
|
|
" <label>Notify</label>\n" +
|
|
5470
|
|
" <select class=\"form-control\" ng-model=\"ctrl.action.action\" ng-change=\"ctrl.setDirty()\" ng-options=\"f[0] as f[1] for f in ctrl.possibleNotifications\"></select>\n" +
|
|
|
5464
|
" <div class=\"col-sm-6\">\n" +
|
|
5471
|
5465
|
"\n" +
|
|
5472
|
|
" <a class=\"btn btn-success\" ng-if=\"ctrl.action.dirty\" ng-click=\"ctrl.saveAction()\"><span class=\"fa fa-save\"></span> Save changes</a>\n" +
|
|
|
5466
|
" <div class=\"panel panel-default\">\n" +
|
|
|
5467
|
" <div class=\"panel-heading\">\n" +
|
|
|
5468
|
" <h3 class=\"panel-title\"><span class=\"fa fa-sort-amount-desc\"></span> Request breakdown over {{ index.timeSpan.label }}</h3>\n" +
|
|
|
5469
|
" </div>\n" +
|
|
|
5470
|
" <div class=\"panel-body\" id=\"view-breakdown-container\">\n" +
|
|
|
5471
|
" <p ng-if=\"index.loading.requestsBreakdown!=false\" class=\"text-center\">\n" +
|
|
|
5472
|
" <span class=\"fa fa-cog fa-spin fa-5x loader\"></span>\n" +
|
|
|
5473
|
" </p>\n" +
|
|
5473
|
5474
|
"\n" +
|
|
5474
|
|
" </div>\n" +
|
|
5475
|
|
" <div>\n" +
|
|
5476
|
|
" <p><strong>Channels:</strong></p>\n" +
|
|
5477
|
|
" <ul class=\"list-group\">\n" +
|
|
5478
|
|
" <li class=\"list-group-item\" ng-repeat=\"channel in ctrl.action.channels\">\n" +
|
|
5479
|
|
" <strong>{{channel.channel_visible_value}}</strong>\n" +
|
|
5480
|
|
" <div class=\"pull-right\">\n" +
|
|
5481
|
|
" <span class=\"dropdown\" data-uib-dropdown>\n" +
|
|
5482
|
|
" <a class=\"btn btn-danger btn-xs\" data-uib-dropdown-toggle><span class=\"fa fa-trash-o\"></span></a>\n" +
|
|
5483
|
|
" <ul class=\"dropdown-menu\">\n" +
|
|
5484
|
|
" <li><a>No</a></li>\n" +
|
|
5485
|
|
" <li><a ng-click=\"ctrl.unBindChannel(channel)\">Yes</a></li>\n" +
|
|
5486
|
|
" </ul>\n" +
|
|
|
5475
|
" <div class=\"report-list\">\n" +
|
|
|
5476
|
" <div ng-if=\"index.loading.requestsBreakdown==false\" ng-repeat=\"view in index.requestsBreakdown\">\n" +
|
|
|
5477
|
" <div class=\"view-info\">\n" +
|
|
|
5478
|
" <div class=\"view-name\">\n" +
|
|
|
5479
|
" <div class=\"bar\" style=\"width: {{view.percentage}}%\">\n" +
|
|
|
5480
|
" </div>\n" +
|
|
|
5481
|
" </div>\n" +
|
|
|
5482
|
" <strong ng-if=\"view.latest_details.length\">\n" +
|
|
|
5483
|
" <a data-ui-sref=\"report.list_slow({view_name:view.view_name})\">{{view.view_name}}</a></strong>\n" +
|
|
|
5484
|
" <strong ng-if=\"!view.latest_details.length\">{{view.view_name}}</strong>\n" +
|
|
|
5485
|
"\n" +
|
|
|
5486
|
" <div class=\"stats\">\n" +
|
|
|
5487
|
" <small>\n" +
|
|
|
5488
|
" avg. response <strong>{{view.avg_response}}s</strong> in\n" +
|
|
|
5489
|
" <span class=\"requests\"\n" +
|
|
|
5490
|
" data-uib-tooltip=\"Requests\"><strong>{{view.requests|numberToThousands}}</strong> requests</span>\n" +
|
|
|
5491
|
"\n" +
|
|
|
5492
|
" <span ng-if=\"view.latest_details\">\n" +
|
|
|
5493
|
" Latest reports:\n" +
|
|
|
5494
|
" <a ng-repeat=\"d in view.latest_details\" target=\"_blank\" ui-sref=\"report.view_detail({groupId:d.group_id, reportId:d.report_id})\"> <strong>{{$index+1}}</strong></a>\n" +
|
|
5487
|
5495
|
" </span>\n" +
|
|
|
5496
|
" </small>\n" +
|
|
|
5497
|
" </div>\n" +
|
|
|
5498
|
"\n" +
|
|
|
5499
|
" </div>\n" +
|
|
|
5500
|
"\n" +
|
|
|
5501
|
" </div>\n" +
|
|
|
5502
|
" </div>\n" +
|
|
|
5503
|
"\n" +
|
|
|
5504
|
"\n" +
|
|
|
5505
|
" </div>\n" +
|
|
5488
|
5506
|
" </div>\n" +
|
|
5489
|
|
" </li>\n" +
|
|
5490
|
|
" </ul>\n" +
|
|
5491
|
|
" <div class=\"form-group\" ng-if=\"ctrl.possibleChannels.length\">\n" +
|
|
5492
|
|
" <select class=\"form-control\" ng-model=\"ctrl.channelToBind\" ng-options=\"c as c.channel_visible_value for c in ctrl.possibleChannels |filter: c.supports_report_alerting\"></select>\n" +
|
|
5493
|
|
" <a class=\"btn btn-info\" ng-click=\"ctrl.bindChannel(channel, ctrl.action)\"><span class=\"fa fa-plus-circle\"></span> Add Channel</a>\n" +
|
|
5494
|
|
" </div>\n" +
|
|
5495
|
|
" <div class=\"alert alert-danger\" ng-if=\"!ctrl.possibleChannels.length\">\n" +
|
|
5496
|
|
" <span class=\"fa fa-exclamation-triangle \"></span>You need to create an alert channel before you can assign it to your rule.\n" +
|
|
|
5507
|
"\n" +
|
|
|
5508
|
" </div>\n" +
|
|
|
5509
|
"\n" +
|
|
5497
|
5510
|
" </div>\n" +
|
|
5498
|
5511
|
"\n" +
|
|
5499
|
|
" </div>\n" +
|
|
5500
|
|
" <hr/>\n" +
|
|
5501
|
|
" <p>Meeting following criteria:</p>\n" +
|
|
5502
|
|
" <form-errors errors=\"ctrl.errors\"></form-errors>\n" +
|
|
5503
|
|
" <rule rule=\"ctrl.action.rule\" rule-definitions=\"ctrl.ruleDefinitions\" parent-rule=\"null\" parent-obj=\"ctrl.action\"></rule>\n" +
|
|
5504
|
|
" </div>\n" +
|
|
5505
|
|
"</div>\n"
|
|
5506
|
|
);
|
|
5507
|
|
|
|
5508
|
|
|
|
5509
|
|
$templateCache.put('templates/directives/rule_read_only.html',
|
|
5510
|
|
"<div class=\"rule-read-only\">\n" +
|
|
|
5512
|
" <div class=\"row\">\n" +
|
|
|
5513
|
" <div class=\"col-sm-6\">\n" +
|
|
5511
|
5514
|
"\n" +
|
|
5512
|
|
" <span class=\"form-group\">\n" +
|
|
5513
|
|
" {{rule_ctrlr.readOnlyPossibleFields[rule_ctrlr.rule.field]}}\n" +
|
|
5514
|
|
" </span>\n" +
|
|
|
5515
|
" <div class=\"panel panel-default\">\n" +
|
|
|
5516
|
" <div class=\"panel-heading\">\n" +
|
|
|
5517
|
" <h3 class=\"panel-title\">\n" +
|
|
|
5518
|
" <span class=\"fa fa-exclamation-triangle\"></span> Report groups trending over {{ index.timeSpan.label }}\n" +
|
|
|
5519
|
" </h3>\n" +
|
|
|
5520
|
" </div>\n" +
|
|
|
5521
|
" <div class=\"panel-body\">\n" +
|
|
|
5522
|
" <p ng-if=\"index.loading.reports != false\" class=\"text-center\">\n" +
|
|
|
5523
|
" <span class=\"fa fa-cog fa-spin fa-5x loader\"></span>\n" +
|
|
|
5524
|
" </p>\n" +
|
|
5515
|
5525
|
"\n" +
|
|
5516
|
|
" <span ng-if=\"rule_ctrlr.rule.field != '__AND__' && rule_ctrlr.rule.field !='__OR__' && rule_ctrlr.rule.field !='__NOT__'\">\n" +
|
|
5517
|
|
" is {{rule_ctrlr.ruleDefinitions.allOps[rule_ctrlr.rule.op]}} {{rule_ctrlr.rule.value}}\n" +
|
|
5518
|
|
" </span>\n" +
|
|
|
5526
|
" <p ng-if=\"index.trendingReports.length == 0 && index.loading.reports == false\">\n" +
|
|
|
5527
|
" No reports found\n" +
|
|
|
5528
|
" </p>\n" +
|
|
5519
|
5529
|
"\n" +
|
|
5520
|
|
" <span ng-if=\"rule_ctrlr.rule.field == '__AND__' || rule_ctrlr.rule.field =='__OR__' || rule_ctrlr.rule.field =='__NOT__'\">\n" +
|
|
5521
|
|
" <p ng-if=\"parent\"><strong>Subrules</strong></p>\n" +
|
|
5522
|
|
" <div ng-repeat=\"subrule in rule_ctrlr.rule.rules\" class=\"m-l-2\">\n" +
|
|
|
5530
|
" <div small-report-group-list groups=\"index.trendingReports\" applications=\"index.applications\" ng-if=\"index.loading.reports==false\"></div>\n" +
|
|
|
5531
|
" </div>\n" +
|
|
|
5532
|
" </div>\n" +
|
|
5523
|
5533
|
"\n" +
|
|
5524
|
|
" <div class=\"panel panel-default\">\n" +
|
|
5525
|
|
" <div class=\"panel-body form-inline\">\n" +
|
|
5526
|
|
" <recursive>\n" +
|
|
5527
|
|
" <rule-read-only rule=\"subrule\" rule-definitions=\"rule_ctrlr.ruleDefinitions\" parent-rule=\"null\" parent-obj=\"rule_ctrlr.parentObj\"></rule-read-only>\n" +
|
|
5528
|
|
" </recursive>\n" +
|
|
5529
|
5534
|
" </div>\n" +
|
|
5530
|
|
" </div>\n" +
|
|
5531
|
|
" </div>\n" +
|
|
5532
|
5535
|
"\n" +
|
|
5533
|
|
" </span>\n" +
|
|
5534
|
|
"</div>\n"
|
|
5535
|
|
);
|
|
5536
|
|
|
|
5537
|
|
|
|
5538
|
|
$templateCache.put('templates/directives/rule.html',
|
|
5539
|
|
"<div class=\"rule form-inline\">\n" +
|
|
|
5536
|
" <div class=\"col-sm-6\">\n" +
|
|
5540
|
5537
|
"\n" +
|
|
5541
|
|
" <div class=\"form-group\">\n" +
|
|
5542
|
|
" <select class=\"form-control\"\n" +
|
|
5543
|
|
" ng-model=\"rule_ctrlr.rule.field\"\n" +
|
|
5544
|
|
" ng-change=\"rule_ctrlr.fieldChange()\"\n" +
|
|
5545
|
|
" ng-options=\"key as label for (key, label) in rule_ctrlr.ruleDefinitions.possibleFields\"></select>\n" +
|
|
5546
|
|
" </div>\n" +
|
|
5547
|
5538
|
"\n" +
|
|
5548
|
|
" <div ng-if=\"rule_ctrlr.rule.field != '__AND__' && rule_ctrlr.rule.field !='__OR__' && rule_ctrlr.rule.field !='__NOT__'\" class=\"form-group\">\n" +
|
|
|
5539
|
" <div class=\"panel panel-default\">\n" +
|
|
|
5540
|
" <div class=\"panel-heading\">\n" +
|
|
|
5541
|
" <h3 class=\"panel-title\">\n" +
|
|
|
5542
|
" Most common slow calls over {{ index.timeSpan.label }}\n" +
|
|
|
5543
|
" </h3>\n" +
|
|
|
5544
|
" </div>\n" +
|
|
|
5545
|
" <div class=\"panel-body\">\n" +
|
|
5549
|
5546
|
"\n" +
|
|
5550
|
|
" <select ng-model=\"rule_ctrlr.rule.op\" class=\"form-control\"\n" +
|
|
5551
|
|
" ng-change=\"rule_ctrlr.setDirty()\"\n" +
|
|
5552
|
|
" ng-options=\"op as rule_ctrlr.ruleDefinitions.allOps[op] for op in rule_ctrlr.ruleDefinitions.fieldOps[rule_ctrlr.rule.field]\">\n" +
|
|
5553
|
|
" </select>\n" +
|
|
|
5547
|
" <div ng-if=\"index.loading.slowCalls!=false\" class=\"text-center\">\n" +
|
|
|
5548
|
" <span class=\"fa fa-cog fa-spin fa-5x loader\"></span>\n" +
|
|
|
5549
|
" </div>\n" +
|
|
5554
|
5550
|
"\n" +
|
|
5555
|
|
" <input type=\"text\" placeholder=\"Value\" ng-model=\"rule_ctrlr.rule.value\" ng-change=\"rule_ctrlr.setDirty()\" class=\"form-control\">\n" +
|
|
|
5551
|
" <table id=\"slow-statements\" ng-if=\"index.loading.slowCalls==false\">\n" +
|
|
|
5552
|
" <tbody>\n" +
|
|
|
5553
|
" <tr ng-repeat=\"call in index.slowCalls\">\n" +
|
|
|
5554
|
" <td class=\"occurences\">\n" +
|
|
|
5555
|
" <span class=\"occurences\" data-uib-tooltip=\"Occurences\">{{call.occurences|numberToThousands}}</span>\n" +
|
|
|
5556
|
" </td>\n" +
|
|
|
5557
|
" <td class=\"ellipsis\">\n" +
|
|
|
5558
|
" <small title=\"{{call.statement}}\" class=\"statement\">{{call.statement}}</small>\n" +
|
|
|
5559
|
" <br/>\n" +
|
|
|
5560
|
" <span class=\"type\">{{call.statement_type}}</span>\n" +
|
|
|
5561
|
" <span class=\"subtype\">{{call.statement_subtype}}</span>\n" +
|
|
|
5562
|
" <span class=\"duration\" data-uib-tooltip=\"Average duration\">{{call.total_duration/call.occurences|round:2}}s</span>\n" +
|
|
|
5563
|
" <span class=\"report-list\">\n" +
|
|
|
5564
|
" Latest reports:\n" +
|
|
|
5565
|
" <a ng-repeat=\"d in call.latest_details\" target=\"_blank\" ui-sref=\"report.view_detail({groupId:d.group_id, reportId:d.report_id})\"> <strong>{{$index+1}}</strong> </a>\n" +
|
|
|
5566
|
" </span>\n" +
|
|
|
5567
|
" </td>\n" +
|
|
|
5568
|
" </tr>\n" +
|
|
|
5569
|
" </tbody>\n" +
|
|
|
5570
|
" </table>\n" +
|
|
|
5571
|
"\n" +
|
|
|
5572
|
"\n" +
|
|
|
5573
|
" </div>\n" +
|
|
|
5574
|
" </div>\n" +
|
|
5556
|
5575
|
"\n" +
|
|
5557
|
|
" </div>\n" +
|
|
5558
|
5576
|
"\n" +
|
|
5559
|
|
" <span ng-if=\"rule_ctrlr.rule.field == '__AND__' || rule_ctrlr.rule.field =='__OR__' || rule_ctrlr.rule.field =='__NOT__'\">\n" +
|
|
5560
|
|
" <p ng-if=\"parent\"><strong>Subrules</strong></p>\n" +
|
|
5561
|
|
" <div ng-repeat=\"subrule in rule_ctrlr.rule.rules\" class=\"m-l-2\">\n" +
|
|
5562
|
|
" <div class=\"panel panel-default\">\n" +
|
|
5563
|
|
" <div class=\"panel-body form-inline\">\n" +
|
|
5564
|
|
" <recursive>\n" +
|
|
5565
|
|
" <rule rule=\"subrule\" rule-definitions=\"rule_ctrlr.ruleDefinitions\" parent-rule=\"rule_ctrlr.rule\" parent-obj=\"rule_ctrlr.parentObj\"></rule>\n" +
|
|
5566
|
|
" </recursive>\n" +
|
|
5567
|
5577
|
" </div>\n" +
|
|
|
5578
|
"\n" +
|
|
5568
|
5579
|
" </div>\n" +
|
|
5569
|
5580
|
" </div>\n" +
|
|
5570
|
|
"\n" +
|
|
5571
|
|
" <span ng-if=\"(rule_ctrlr.config.disable_subrules == false) == false\" class=\"btn btn-info\" ng-click=\"rule_ctrlr.add()\"><span class=\"fa fa-plus-circle\"></span> Add rule</span>\n" +
|
|
5572
|
|
"\n" +
|
|
5573
|
|
" </span>\n" +
|
|
5574
|
|
" <div class=\"pull-right\" ng-if=\"rule_ctrlr.parentRule\">\n" +
|
|
5575
|
|
" <span class=\"dropdown\" data-uib-dropdown>\n" +
|
|
5576
|
|
" <a class=\"btn btn-danger\" data-uib-dropdown-toggle><span class=\"fa fa-trash-o\"></span></a>\n" +
|
|
5577
|
|
" <ul class=\"dropdown-menu\">\n" +
|
|
5578
|
|
" <li><a>No</a></li>\n" +
|
|
5579
|
|
" <li><a ng-click=\"rule_ctrlr.deleteRule(rule_ctrlr.parentRule, rule_ctrlr.rule)\">Yes</a></li>\n" +
|
|
5580
|
|
" </ul>\n" +
|
|
5581
|
|
" </span>\n" +
|
|
5582
|
5581
|
" </div>\n" +
|
|
5583
|
5582
|
"</div>\n"
|
|
5584
|
5583
|
);
|
|
@@
-7139,7
+7138,7
b' function kickstartAE(initialUserData) {'
|
|
7139
|
7138
|
|
|
7140
|
7139
|
angular.module('appenlight.components.appenlightApp', [])
|
|
7141
|
7140
|
.component('appenlightApp', {
|
|
7142
|
|
templateUrl: 'templates/components/appenlight-app.html',
|
|
|
7141
|
templateUrl: 'components/appenlight-app/appenlight-app.html',
|
|
7143
|
7142
|
controller: AppEnlightAppController
|
|
7144
|
7143
|
});
|
|
7145
|
7144
|
|
|
@@
-7209,7
+7208,7
b' function AppEnlightFooterController(stateHolder, AeConfig){'
|
|
7209
|
7208
|
|
|
7210
|
7209
|
angular.module('appenlight.components.appenlightHeader', [])
|
|
7211
|
7210
|
.component('appenlightHeader', {
|
|
7212
|
|
templateUrl: 'templates/components/appenlight-header.html',
|
|
|
7211
|
templateUrl: 'components/appenlight-header/appenlight-header.html',
|
|
7213
|
7212
|
controller: AppEnlightHeaderController
|
|
7214
|
7213
|
});
|
|
7215
|
7214
|
|
|
@@
-11232,32
+11231,6
b' function UserProfileController(userSelfResource) {'
|
|
11232
|
11231
|
// # services, and proprietary license terms, please see
|
|
11233
|
11232
|
// # https://rhodecode.com/licenses/
|
|
11234
|
11233
|
|
|
11235
|
|
angular.module('appenlight.directives.appVersion', []).
|
|
11236
|
|
directive('appVersion', ['version', function (version) {
|
|
11237
|
|
return function (scope, elm, attrs) {
|
|
11238
|
|
elm.text(version);
|
|
11239
|
|
};
|
|
11240
|
|
}])
|
|
11241
|
|
|
|
11242
|
|
;// # Copyright (C) 2010-2016 RhodeCode GmbH
|
|
11243
|
|
// #
|
|
11244
|
|
// # This program is free software: you can redistribute it and/or modify
|
|
11245
|
|
// # it under the terms of the GNU Affero General Public License, version 3
|
|
11246
|
|
// # (only), as published by the Free Software Foundation.
|
|
11247
|
|
// #
|
|
11248
|
|
// # This program is distributed in the hope that it will be useful,
|
|
11249
|
|
// # but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11250
|
|
// # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11251
|
|
// # GNU General Public License for more details.
|
|
11252
|
|
// #
|
|
11253
|
|
// # You should have received a copy of the GNU Affero General Public License
|
|
11254
|
|
// # along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
11255
|
|
// #
|
|
11256
|
|
// # This program is dual-licensed. If you wish to learn more about the
|
|
11257
|
|
// # AppEnlight Enterprise Edition, including its added features, Support
|
|
11258
|
|
// # services, and proprietary license terms, please see
|
|
11259
|
|
// # https://rhodecode.com/licenses/
|
|
11260
|
|
|
|
11261
|
11234
|
// This code is inspired by https://github.com/jettro/c3-angular-sample/tree/master/js
|
|
11262
|
11235
|
// License is MIT
|
|
11263
|
11236
|
|
|
@@
-11746,7
+11719,7
b" angular.module('appenlight.directives.permissionsForm',[])"
|
|
11746
|
11719
|
possiblePermissions: '=',
|
|
11747
|
11720
|
resource: '='
|
|
11748
|
11721
|
},
|
|
11749
|
|
templateUrl: 'templates/directives/permissions.html'
|
|
|
11722
|
templateUrl: 'directives/permissions/permissions.html'
|
|
11750
|
11723
|
}
|
|
11751
|
11724
|
})
|
|
11752
|
11725
|
|
|
@@
-11777,7
+11750,7
b" angular.module('appenlight.directives.pluginConfig', []).directive('pluginConfig"
|
|
11777
|
11750
|
section: '='
|
|
11778
|
11751
|
},
|
|
11779
|
11752
|
restrict: 'E',
|
|
11780
|
|
templateUrl: 'templates/directives/plugin_config.html',
|
|
|
11753
|
templateUrl: 'directives/plugin_config/plugin_config.html',
|
|
11781
|
11754
|
controller: PluginConfig,
|
|
11782
|
11755
|
controllerAs: 'plugin_ctrlr'
|
|
11783
|
11756
|
};
|
|
@@
-11820,7
+11793,7
b" angular.module('appenlight.directives.postProcessAction', []).directive('postPro"
|
|
11820
|
11793
|
controller:postProcessActionController,
|
|
11821
|
11794
|
controllerAs:'ctrl',
|
|
11822
|
11795
|
restrict: 'E',
|
|
11823
|
|
templateUrl: 'templates/directives/postprocess_action.html'
|
|
|
11796
|
templateUrl: 'directives/postprocess_action/postprocess_action.html'
|
|
11824
|
11797
|
};
|
|
11825
|
11798
|
function postProcessActionController(){
|
|
11826
|
11799
|
var vm = this;
|
|
@@
-11984,7
+11957,7
b" angular.module('appenlight.directives.reportAlertAction', []).directive('reportA"
|
|
11984
|
11957
|
controller:reportAlertActionController,
|
|
11985
|
11958
|
controllerAs:'ctrl',
|
|
11986
|
11959
|
restrict: 'E',
|
|
11987
|
|
templateUrl: 'templates/directives/report_alert_action.html'
|
|
|
11960
|
templateUrl: 'directives/report_alert_action/report_alert_action.html'
|
|
11988
|
11961
|
};
|
|
11989
|
11962
|
function reportAlertActionController(){
|
|
11990
|
11963
|
var vm = this;
|
|
@@
-12100,7
+12073,7
b" angular.module('appenlight.directives.ruleReadOnly', []).directive('ruleReadOnly"
|
|
12100
|
12073
|
config: "="
|
|
12101
|
12074
|
},
|
|
12102
|
12075
|
restrict: 'E',
|
|
12103
|
|
templateUrl: 'templates/directives/rule_read_only.html',
|
|
|
12076
|
templateUrl: 'directives/rule_read_only/rule_read_only.html',
|
|
12104
|
12077
|
controller:RuleController,
|
|
12105
|
12078
|
controllerAs:'rule_ctrlr'
|
|
12106
|
12079
|
}
|
|
@@
-12144,7
+12117,7
b" angular.module('appenlight.directives.rule', []).directive('rule', function () {"
|
|
12144
|
12117
|
config: "="
|
|
12145
|
12118
|
},
|
|
12146
|
12119
|
restrict: 'E',
|
|
12147
|
|
templateUrl: 'templates/directives/rule.html',
|
|
|
12120
|
templateUrl: 'directives/rule/rule.html',
|
|
12148
|
12121
|
controller:RuleController,
|
|
12149
|
12122
|
controllerAs:'rule_ctrlr'
|
|
12150
|
12123
|
};
|