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=" |
|
|
1 | <ng-include src="'templates/loader.html'" ng-if="$ctrl.loading.email"></ng-include> | |
|
2 | 2 | |
|
3 |
<div ng-show="! |
|
|
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=" |
|
|
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=" |
|
|
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=" |
|
|
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.co |
|
|
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=" |
|
|
1 | <ng-include src="'templates/loader.html'" ng-if="$ctrl.loading.channels || $ctrl.loading.applications"></ng-include> | |
|
2 | 2 | |
|
3 |
<div ng-if="! |
|
|
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=" |
|
|
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=" |
|
|
14 |
possible-channels=" |
|
|
15 |
actions=" |
|
|
16 |
ng-repeat="action in |
|
|
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 |
|
|
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=" |
|
|
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=" |
|
|
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=" |
|
|
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.co |
|
|
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=" |
|
|
1 | <ng-include src="'templates/loader.html'" ng-if="$ctrl.loading.tokens"></ng-include> | |
|
2 | 2 | |
|
3 |
<div ng-show="! |
|
|
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=" |
|
|
15 |
<data-form-errors errors=" |
|
|
16 |
<data-form-errors 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=" |
|
|
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=" |
|
|
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=" |
|
|
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=" |
|
|
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.co |
|
|
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 |
|
|
|
26 | userAuthTokensViewController.$inject = ['userSelfPropertyResource', 'AeConfig']; | |
|
23 | 27 | |
|
24 |
function |
|
|
25 |
console.debug(' |
|
|
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({ |
|
|
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=" |
|
|
1 | <ng-include src="'templates/loader.html'" ng-if="$ctrl.loading.password"></ng-include> | |
|
2 | 2 | |
|
3 |
<div ng-show="! |
|
|
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=" |
|
|
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=" |
|
|
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=" |
|
|
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=" |
|
|
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=" |
|
|
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=" |
|
|
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=" |
|
|
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.co |
|
|
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 |
|
|
|
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