passman/js/app/app.js

123 lines
3.8 KiB
JavaScript
Raw Normal View History

2016-10-19 23:44:19 +08:00
/**
* Nextcloud - passman
*
* @copyright Copyright (c) 2016, Sander Brand (brantje@gmail.com)
* @copyright Copyright (c) 2016, Marcos Zuriaga Miguel (wolfi@wolfi.es)
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
2016-10-08 01:56:29 +08:00
(function () {
'use strict';
2016-10-08 01:56:29 +08:00
/**
* @ngdoc overview
* @name passmanApp
* @description
* # passmanApp
*
* Main module of the application.
*/
angular
.module('passmanApp', [
'ngAnimate',
'ngCookies',
'ngResource',
'ngRoute',
'ngSanitize',
'ngTouch',
'templates-main',
'LocalStorageModule',
'offClick',
'ngPasswordMeter',
'ngclipboard',
'xeditable',
'ngTagsInput',
'angularjs-datetime-picker',
2016-12-20 06:51:15 +08:00
'ui.sortable',
'pascalprecht.translate'
2016-10-08 01:56:29 +08:00
])
.config(function ($routeProvider) {
$routeProvider
2016-10-08 01:56:29 +08:00
.when('/', {
templateUrl: 'views/vaults.html',
controller: 'VaultCtrl'
})
.when('/vault/:vault_id', {
templateUrl: 'views/show_vault.html',
controller: 'CredentialCtrl'
})
.when('/vault/:vault_id/new', {
templateUrl: 'views/edit_credential.html',
controller: 'CredentialEditCtrl'
})
.when('/vault/:vault_id/edit/:credential_id', {
templateUrl: 'views/edit_credential.html',
controller: 'CredentialEditCtrl'
}).when('/vault/:vault_id/:credential_id/share', {
2016-09-21 02:03:37 +08:00
templateUrl: 'views/share_credential.html',
controller: 'ShareCtrl'
2016-09-24 16:58:26 +08:00
}).when('/vault/:vault_id/:credential_id/revisions', {
templateUrl: 'views/credential_revisions.html',
controller: 'RevisionCtrl'
})
2016-10-08 01:56:29 +08:00
.when('/vault/:vault_id/settings', {
templateUrl: 'views/settings.html',
controller: 'SettingsCtrl'
})
.otherwise({
redirectTo: '/'
});
}).config(['$httpProvider', function ($httpProvider) {
2016-12-31 20:29:37 +08:00
/** global: oc_requesttoken */
$httpProvider.defaults.headers.common.requesttoken = oc_requesttoken;
2016-10-08 01:56:29 +08:00
}]).config(function (localStorageServiceProvider) {
localStorageServiceProvider
.setNotify(true, true);
2016-12-20 06:51:15 +08:00
}).config(function ($translateProvider) {
$translateProvider.useSanitizeValueStrategy('sanitizeParameters');
2016-12-20 06:51:15 +08:00
$translateProvider.useUrlLoader(OC.generateUrl('/apps/passman/api/v2/language'));
$translateProvider.preferredLanguage('en');
2016-10-08 01:56:29 +08:00
});
2016-10-08 01:56:29 +08:00
/**
* jQuery for notification handling D:
**/
jQuery(document).ready(function () {
var findItemByID = function (id) {
var credentials, foundItem = false;
credentials = angular.element('#app-content-wrapper').scope().credentials;
angular.forEach(credentials, function (credential) {
if (credential.credential_id === id) {
foundItem = credential;
}
});
return foundItem;
};
jQuery(document).on('click', '.undoDelete', function () {
var credential = findItemByID($(this).attr('data-item-id'));
2016-10-08 01:56:29 +08:00
angular.element('#app-content-wrapper').scope().recoverCredential(credential);
//Outside anglular we need $apply
angular.element('#app-content-wrapper').scope().$apply();
});
2016-10-08 01:56:29 +08:00
jQuery(document).on('click', '.undoRestore', function () {
var credential = findItemByID($(this).attr('data-item-id'));
2016-10-08 01:56:29 +08:00
angular.element('#app-content-wrapper').scope().deleteCredential(credential);
//Outside anglular we need $apply
angular.element('#app-content-wrapper').scope().$apply();
2016-10-08 01:56:29 +08:00
});
});
}());