passman/js/app/app.js

109 lines
3.2 KiB
JavaScript
Raw Normal View History

'use strict';
/**
* @ngdoc overview
* @name passmanApp
* @description
* # passmanApp
*
* Main module of the application.
*/
angular
.module('passmanApp', [
'ngAnimate',
'ngCookies',
'ngResource',
'ngRoute',
'ngSanitize',
'ngTouch',
'templates-main',
2016-09-12 04:14:11 +08:00
'LocalStorageModule',
2016-09-12 05:40:06 +08:00
'offClick',
'ngPasswordMeter',
2016-09-14 05:03:12 +08:00
'ngclipboard',
'xeditable',
2016-09-16 03:21:34 +08:00
'ngTagsInput'
])
.config(function ($routeProvider) {
$routeProvider
.when('/', {
2016-09-11 05:30:17 +08:00
templateUrl: 'views/vaults.html',
controller: 'VaultCtrl'
})
2016-09-12 02:47:29 +08:00
.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'
})
.otherwise({
redirectTo: '/'
});
}).config(['$httpProvider', function ($httpProvider) {
$httpProvider.defaults.headers.common.requesttoken = oc_requesttoken;
}]).config(function (localStorageServiceProvider) {
localStorageServiceProvider
.setNotify(true, true);
});
/**
* 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;
console.log(id, 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'));
angular.element('#app-content-wrapper').scope().recoverCredential(credential);
angular.element('#app-content-wrapper').scope().$apply();
});
jQuery(document).on('click', '.undoRestore', function () {
var credential = findItemByID($(this).attr('data-item-id'));
angular.element('#app-content-wrapper').scope().deleteCredential(credential);
angular.element('#app-content-wrapper').scope().$apply();
});
2016-09-21 02:51:41 +08:00
var adjustControlsWidth = function() {
if($('#controls').length) {
var controlsWidth;
// if there is a scrollbar …
if($('#app-content').get(0).scrollHeight > $('#app-content').height()) {
if($(window).width() > 768) {
controlsWidth = $('#content').width() - $('#app-navigation').width() - OC.Util.getScrollBarWidth();
if (!$('#app-sidebar').hasClass('hidden') && !$('#app-sidebar').hasClass('disappear')) {
controlsWidth -= $('#app-sidebar').width();
}
} else {
controlsWidth = $('#content').width() - OC.Util.getScrollBarWidth();
}
} else { // if there is none
if($(window).width() > 768) {
controlsWidth = $('#content').width() - $('#app-navigation').width();
if (!$('#app-sidebar').hasClass('hidden') && !$('#app-sidebar').hasClass('disappear')) {
//controlsWidth -= $('#app-sidebar').width();
}
} else {
controlsWidth = $('#content').width();
}
}
$('#controls').css('width', controlsWidth);
$('#controls').css('min-width', controlsWidth);
}
};
$(window).resize(_.debounce(adjustControlsWidth, 256));
adjustControlsWidth()
});