##// END OF EJS Templates
components: user and alert channels components
ergo -
Show More
@@ -48,6 +48,10 b" angular.module('appenlight.components', ["
48 48 'appenlight.components.eventBrowserView',
49 49 'appenlight.components.userProfileView',
50 50 'appenlight.components.userIdentitiesView',
51 'appenlight.components.userPasswordView',
52 'appenlight.components.userAuthTokensView',
53 'appenlight.components.userAlertChannelsListView',
54 'appenlight.components.userAlertChannelsEmailNewView',
51 55 'appenlight.components.settingsView'
52 56 ]);
53 57 angular.module('appenlight.directives', [
@@ -23,8 +23,9 b" angular.module('appenlight.components.settingsView', [])"
23 23 controller: SettingsViewController
24 24 });
25 25
26 SettingsViewController.$inject = [];
26 SettingsViewController.$inject = ['$state'];
27 27
28 function SettingsViewController() {
28 function SettingsViewController($state) {
29 this.$state = $state;
29 30 console.info('SettingsViewController');
30 31 }
@@ -1,20 +1,20 b''
1 <ng-include src="'templates/loader.html'" ng-if="email.loading.email"></ng-include>
1 <ng-include src="'templates/loader.html'" ng-if="$ctrl.loading.email"></ng-include>
2 2
3 <div ng-show="!email.loading.email">
3 <div ng-show="!$ctrl.loading.email">
4 4
5 5 <div class="panel panel-default">
6 6 <div class="panel-heading" ng-include="'templates/user/breadcrumbs.html'"></div>
7 7 <div class="panel-body">
8 8 <p>Adding email alert channel - after you authorize your email in the system we can send alerts directly to this mailbox.</p>
9 <form class="form-horizontal" name="email.channelForm" ng-submit="email.createChannel()">
9 <form class="form-horizontal" name="$ctrl.channelForm" ng-submit="$ctrl.createChannel()">
10 10 <div class="form-group" id="row-email">
11 <data-form-errors errors="email.channelForm.ae_validation.email"></data-form-errors>
11 <data-form-errors errors="$ctrl.channelForm.ae_validation.email"></data-form-errors>
12 12 <label id="label-email" class="control-label col-sm-4 col-lg-3">
13 13 Email Address
14 14 <span class="required">*</span>
15 15 </label>
16 16 <div class="col-sm-8 col-lg-9">
17 <input class="form-control" type="text" ng-model="email.form.email">
17 <input class="form-control" type="text" ng-model="$ctrl.form.email">
18 18 </div>
19 19 </div>
20 20 <div class="form-group">
@@ -17,8 +17,11 b''
17 17 // # services, and proprietary license terms, please see
18 18 // # https://rhodecode.com/licenses/
19 19
20 angular.module('appenlight.controllers')
21 .controller('AlertChannelsEmailController', AlertChannelsEmailController)
20 angular.module('appenlight.components.userAlertChannelsEmailNewView', [])
21 .component('userAlertChannelsEmailNewView', {
22 templateUrl: 'components/views/user-alert-channel-email-new-view/user-alert-channel-email-new-view.html',
23 controller: AlertChannelsEmailController
24 });
22 25
23 26 AlertChannelsEmailController.$inject = ['$state','userSelfPropertyResource'];
24 27
@@ -1,19 +1,19 b''
1 <ng-include src="'templates/loader.html'" ng-if="channels.loading.channels || channels.loading.applications"></ng-include>
1 <ng-include src="'templates/loader.html'" ng-if="$ctrl.loading.channels || $ctrl.loading.applications"></ng-include>
2 2
3 <div ng-if="!channels.loading.channels && !channels.loading.applications && !channels.loading.actions">
3 <div ng-if="!$ctrl.loading.channels && !$ctrl.loading.applications && !$ctrl.loading.actions">
4 4
5 5 <div class="panel panel-default">
6 6 <div class="panel-heading" ng-include="'templates/user/breadcrumbs.html'"></div>
7 7 <div class="panel-body">
8 8 <h1>Report alert rules</h1>
9 9 <p>
10 <a class="btn btn-info" ng-click="channels.addAction()"><span class="fa fa-plus-circle"></span> Add top-level rule</a>
10 <a class="btn btn-info" ng-click="$ctrl.addAction()"><span class="fa fa-plus-circle"></span> Add top-level rule</a>
11 11 </p>
12 12
13 <report-alert-action action="action" rule-definitions="channels.ruleDefinitions"
14 possible-channels="channels.alertChannels"
15 actions="channels.alertActions" applications="channels.applications"
16 ng-repeat="action in channels.alertActions | filter: {type:'report'}"></report-alert-action>
13 <report-alert-action action="action" rule-definitions="$ctrl.ruleDefinitions"
14 possible-channels="$ctrl.alertChannels"
15 actions="$ctrl.alertActions" applications="$ctrl.applications"
16 ng-repeat="action in $ctrl.alertActions | filter: {type:'report'}"></report-alert-action>
17 17
18 18 </div>
19 19 </div>
@@ -29,7 +29,7 b''
29 29 <div class="alert alert-success">You can add more integrations that support different alert channels via application management panel.</div>
30 30
31 31 <table class="table table-striped">
32 <tr ng-repeat="channel in channels.alertChannels" class="animate-repeat">
32 <tr ng-repeat="channel in $ctrl.alertChannels" class="animate-repeat">
33 33 <td><strong>{{ channel.channel_visible_value }}</strong></td>
34 34 <td class="text-right">
35 35 <span class="btn btn-default" data-uib-tooltip="Channel is {{ channel.channel_validated? '' :'NOT' }} validated" tooltip-append-to-body="true"
@@ -37,11 +37,11 b''
37 37 <span class="fa" ng-class="{'fa-check-circle':channel.channel_validated, 'fa-times-circle':!channel.channel_validated}"></span>
38 38 </span>
39 39 <a class="btn btn-default" data-uib-tooltip="Press to turn {{ channel.send_alerts ? 'OFF' : 'ON' }} alerting on this chanel"
40 ng-click="channels.updateChannel(channel,'send_alerts')" ng-class="{dim:!channel.send_alerts}" tooltip-append-to-body="true">
40 ng-click="$ctrl.updateChannel(channel,'send_alerts')" ng-class="{dim:!channel.send_alerts}" tooltip-append-to-body="true">
41 41 <span class="fa fa-rss"></span> Alerts
42 42 </a>
43 43 <a class="btn btn-default" data-uib-tooltip="Press to turn {{ channel.daily_digest ? 'OFF' : 'ON' }} daily digests on this channel"
44 ng-click="channels.updateChannel(channel,'daily_digest')" ng-class="{dim:!channel.daily_digest}" tooltip-append-to-body="true">
44 ng-click="$ctrl.updateChannel(channel,'daily_digest')" ng-class="{dim:!channel.daily_digest}" tooltip-append-to-body="true">
45 45 <span class="fa fa-envelope"></span> Daily digests
46 46 </a>
47 47
@@ -49,7 +49,7 b''
49 49 <a class="btn btn-default" data-uib-dropdown-toggle><span class="fa fa-trash-o"></span> Remove</a>
50 50 <ul class="dropdown-menu">
51 51 <li><a>No</a></li>
52 <li><a ng-click="channels.removeChannel(channel)">Yes</a></li>
52 <li><a ng-click="$ctrl.removeChannel(channel)">Yes</a></li>
53 53 </ul>
54 54 </span>
55 55
@@ -17,11 +17,15 b''
17 17 // # services, and proprietary license terms, please see
18 18 // # https://rhodecode.com/licenses/
19 19
20 angular.module('appenlight.controllers').controller('AlertChannelsController', AlertChannelsController);
20 angular.module('appenlight.components.userAlertChannelsListView', [])
21 .component('userAlertChannelsListView', {
22 templateUrl: 'components/views/user-alert-channels-list-view/user-alert-channels-list-view.html',
23 controller: userAlertChannelsListViewController
24 });
21 25
22 AlertChannelsController.$inject = ['userSelfPropertyResource', 'applicationsNoIdResource'];
26 userAlertChannelsListViewController.$inject = ['userSelfPropertyResource', 'applicationsNoIdResource'];
23 27
24 function AlertChannelsController(userSelfPropertyResource, applicationsNoIdResource) {
28 function userAlertChannelsListViewController(userSelfPropertyResource, applicationsNoIdResource) {
25 29 console.debug('AlertChannelsController');
26 30 var vm = this;
27 31 vm.loading = {channels: true, applications: true, actions:true};
@@ -1,6 +1,6 b''
1 <ng-include src="'templates/loader.html'" ng-if="auth_tokens.loading.tokens"></ng-include>
1 <ng-include src="'templates/loader.html'" ng-if="$ctrl.loading.tokens"></ng-include>
2 2
3 <div ng-show="!auth_tokens.loading.tokens">
3 <div ng-show="!$ctrl.loading.tokens">
4 4
5 5 <div class="panel panel-default">
6 6 <div class="panel-heading" ng-include="'templates/user/breadcrumbs.html'"></div>
@@ -11,20 +11,20 b''
11 11
12 12 <hr/>
13 13
14 <form method="post" class="form-inline" name="auth_tokens.TokenForm" ng-submit="auth_tokens.addToken()" novalidate>
15 <data-form-errors errors="auth_tokens.TokenForm.ae_validation.description"></data-form-errors>
16 <data-form-errors errors="auth_tokens.TokenForm.ae_validation.expires"></data-form-errors>
14 <form method="post" class="form-inline" name="$ctrl.TokenForm" ng-submit="$ctrl.addToken()" novalidate>
15 <data-form-errors errors="$ctrl.TokenForm.ae_validation.description"></data-form-errors>
16 <data-form-errors errors="$ctrl.TokenForm.ae_validation.expires"></data-form-errors>
17 17 <div class="form-group">
18 18 <label>
19 19 Description
20 20 </label>
21 <input class="form-control" name="description" placeholder="Token description" type="text" ng-model="auth_tokens.form.description">
21 <input class="form-control" name="description" placeholder="Token description" type="text" ng-model="$ctrl.form.description">
22 22 </div>
23 23 <div class="form-group">
24 24 <label>
25 25 Expires
26 26 </label>
27 <select class="form-control" ng-model="auth_tokens.form.expires" ng-options="i.key as i.label for i in auth_tokens.expireOptions | objectToOrderedArray:'minutes'">
27 <select class="form-control" ng-model="$ctrl.form.expires" ng-options="i.key as i.label for i in $ctrl.expireOptions | objectToOrderedArray:'minutes'">
28 28 <option value="">Never</option>
29 29 </select>
30 30 </div>
@@ -41,7 +41,7 b''
41 41 </div>
42 42
43 43 <div class="panel panel-default">
44 <table st-table="displayedCollection" st-safe-src="auth_tokens.tokens" class="table table-striped">
44 <table st-table="displayedCollection" st-safe-src="$ctrl.tokens" class="table table-striped">
45 45 <caption>Your current tokens</caption>
46 46 <thead>
47 47 <tr>
@@ -71,7 +71,7 b''
71 71 <a class="btn btn-danger" data-uib-dropdown-toggle><span class="fa fa-trash-o"></span></a>
72 72 <ul class="dropdown-menu">
73 73 <li><a>No</a></li>
74 <li><a ng-click="auth_tokens.removeToken(token)">Yes</a></li>
74 <li><a ng-click="$ctrl.removeToken(token)">Yes</a></li>
75 75 </ul>
76 76 </span>
77 77 </td>
@@ -17,12 +17,16 b''
17 17 // # services, and proprietary license terms, please see
18 18 // # https://rhodecode.com/licenses/
19 19
20 angular.module('appenlight.controllers').controller('UserAuthTokensController', UserAuthTokensController);
20 angular.module('appenlight.components.userAuthTokensView', [])
21 .component('userAuthTokensView', {
22 templateUrl: 'components/views/user-auth-tokens-view/user-auth-tokens-view.html',
23 controller: userAuthTokensViewController
24 });
21 25
22 UserAuthTokensController.$inject = ['$filter', 'userSelfPropertyResource', 'AeConfig'];
26 userAuthTokensViewController.$inject = ['userSelfPropertyResource', 'AeConfig'];
23 27
24 function UserAuthTokensController($filter, userSelfPropertyResource, AeConfig) {
25 console.debug('UserAuthTokensController');
28 function userAuthTokensViewController(userSelfPropertyResource, AeConfig) {
29 console.debug('userAuthTokensViewController');
26 30 var vm = this;
27 31 vm.loading = {tokens: true};
28 32
@@ -48,11 +52,13 b' function UserAuthTokensController($filter, userSelfPropertyResource, AeConfig) {'
48 52 setServerValidation(vm.TokenForm, response.data);
49 53 }
50 54 })
51 }
55 };
52 56
53 57 vm.removeToken = function (token) {
54 userSelfPropertyResource.delete({key: 'auth_tokens',
55 token:token.token},
58 userSelfPropertyResource.delete({
59 key: 'auth_tokens',
60 token: token.token
61 },
56 62 function () {
57 63 var index = vm.tokens.indexOf(token);
58 64 if (index !== -1) {
@@ -1,40 +1,40 b''
1 <ng-include src="'templates/loader.html'" ng-if="password.loading.password"></ng-include>
1 <ng-include src="'templates/loader.html'" ng-if="$ctrl.loading.password"></ng-include>
2 2
3 <div ng-show="!password.loading.password">
3 <div ng-show="!$ctrl.loading.password">
4 4
5 5 <div class="panel panel-default">
6 6 <div class="panel-heading" ng-include="'templates/user/breadcrumbs.html'"></div>
7 7 <div class="panel-body">
8 8
9 <form class="form-horizontal" name="password.passwordForm" ng-submit="password.updatePassword()">
9 <form class="form-horizontal" name="$ctrl.passwordForm" ng-submit="$ctrl.updatePassword()">
10 10 <div class="form-group" id="row-old_password">
11 <data-form-errors errors="password.passwordForm.ae_validation.old_password"></data-form-errors>
11 <data-form-errors errors="$ctrl.passwordForm.ae_validation.old_password"></data-form-errors>
12 12 <label for="old_password" id="label-old_password" class="control-label col-sm-4 col-lg-3">
13 13 Old Password
14 14 <span class="required">*</span>
15 15 </label>
16 16 <div class="col-sm-8 col-lg-9">
17 <input class="form-control" id="old_password" name="old_password" type="password" ng-model="password.form.old_password">
17 <input class="form-control" id="old_password" name="old_password" type="password" ng-model="$ctrl.form.old_password">
18 18 </div>
19 19 </div>
20 20 <div class="form-group" id="row-new_password">
21 <data-form-errors errors="password.passwordForm.ae_validation.new_password"></data-form-errors>
21 <data-form-errors errors="$ctrl.passwordForm.ae_validation.new_password"></data-form-errors>
22 22 <label for="new_password" id="label-new_password" class="control-label col-sm-4 col-lg-3">
23 23 New Password
24 24 <span class="required">*</span>
25 25 </label>
26 26 <div class="col-sm-8 col-lg-9">
27 <input class="form-control" id="new_password" name="new_password" type="password" ng-model="password.form.new_password">
27 <input class="form-control" id="new_password" name="new_password" type="password" ng-model="$ctrl.form.new_password">
28 28 </div>
29 29 </div>
30 30 <div class="form-group" id="row-new_password_confirm">
31 <data-form-errors errors="password.passwordForm.ae_validation.new_password_confirm"></data-form-errors>
31 <data-form-errors errors="$ctrl.passwordForm.ae_validation.new_password_confirm"></data-form-errors>
32 32 <label for="new_password_confirm" id="label-new_password_confirm" class="control-label col-sm-4 col-lg-3">
33 33 Confirm Password
34 34 <span class="required">*</span>
35 35 </label>
36 36 <div class="col-sm-8 col-lg-9">
37 <input class="form-control" id="new_password_confirm" name="new_password_confirm" type="password" ng-model="password.form.new_password_confirm">
37 <input class="form-control" id="new_password_confirm" name="new_password_confirm" type="password" ng-model="$ctrl.form.new_password_confirm">
38 38 </div>
39 39 </div>
40 40 <div class="form-group" id="row-submit">
@@ -17,13 +17,16 b''
17 17 // # services, and proprietary license terms, please see
18 18 // # https://rhodecode.com/licenses/
19 19
20 angular.module('appenlight.controllers')
21 .controller('UserPasswordController', UserPasswordController)
20 angular.module('appenlight.components.userPasswordView', [])
21 .component('userPasswordView', {
22 templateUrl: 'components/views/user-password-view/user-password-view.html',
23 controller: UserPasswordViewController
24 });
22 25
23 UserPasswordController.$inject = ['userSelfPropertyResource'];
26 UserPasswordViewController.$inject = ['userSelfPropertyResource'];
24 27
25 function UserPasswordController(userSelfPropertyResource) {
26 console.debug('UserPasswordController');
28 function UserPasswordViewController(userSelfPropertyResource) {
29 console.debug('UserPasswordViewController');
27 30 var vm = this;
28 31 vm.loading = {password: false};
29 32 vm.form = {};
@@ -37,7 +40,7 b' function UserPasswordController(userSelfPropertyResource) {'
37 40 setServerValidation(vm.passwordForm);
38 41 }, function (response) {
39 42 if (response.status == 422) {
40 console.log('vm',vm);
43 console.log('vm', vm);
41 44 setServerValidation(vm.passwordForm, response.data);
42 45 console.log(response.data);
43 46 }
@@ -162,8 +162,7 b" angular.module('appenlight').config(['$stateProvider', '$urlRouterProvider', fun"
162 162
163 163 $stateProvider.state('user.profile.password', {
164 164 url: '/password',
165 templateUrl: 'templates/user/profile_password.html',
166 controller: 'UserPasswordController as password'
165 component: 'userPasswordView'
167 166 });
168 167
169 168 $stateProvider.state('user.profile.identities', {
@@ -173,26 +172,23 b" angular.module('appenlight').config(['$stateProvider', '$urlRouterProvider', fun"
173 172
174 173 $stateProvider.state('user.profile.auth_tokens', {
175 174 url: '/auth_tokens',
176 templateUrl: 'templates/user/auth_tokens.html',
177 controller: 'UserAuthTokensController as auth_tokens'
175 component: 'userAuthTokensView'
178 176 });
179 177
180 178 $stateProvider.state('user.alert_channels', {
181 179 abstract: true,
182 180 url: '/alert_channels',
183 templateUrl: 'templates/user/alert_channels.html'
181 template: '<ui-view></ui-view>'
184 182 });
185 183
186 184 $stateProvider.state('user.alert_channels.list', {
187 185 url: '/list',
188 templateUrl: 'templates/user/alert_channels_list.html',
189 controller: 'AlertChannelsController as channels'
186 component: 'userAlertChannelsListView'
190 187 });
191 188
192 189 $stateProvider.state('user.alert_channels.email', {
193 190 url: '/email',
194 templateUrl: 'templates/user/alert_channels_email.html',
195 controller: 'AlertChannelsEmailController as email'
191 component: 'userAlertChannelsEmailNewView'
196 192 });
197 193
198 194 $stateProvider.state('applications', {
@@ -4,7 +4,6 b''
4 4 <li ng-show="$state.includes('user.profile.password')" ng-class="{bold:$state.is('user.profile.password')}">Password</li>
5 5 <li ng-show="$state.includes('user.profile.identities')" ng-class="{bold:$state.is('user.profile.identities')}">Identities</li>
6 6 </ol>
7
8 7 <ol class="breadcrumb" ng-show="$state.includes('user.alert_channels')">
9 8 <li>Notifications</li>
10 9 <li ng-show="$state.includes('user.alert_channels.list')" ng-class="{bold:$state.is('user.alert_channels.list')}">Alert Channels</li>
1 NO CONTENT: file was removed
1 NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now