diff options
author | Hendrik Leppelsack <hendrik@leppelsack.de> | 2015-10-27 18:52:09 +0100 |
---|---|---|
committer | Hendrik Leppelsack <hendrik@leppelsack.de> | 2015-10-27 18:59:35 +0100 |
commit | 3bf54638eb9b7e6b8b37dba987463f7c28469698 (patch) | |
tree | 839c71fba7145f7627d0b6b5f7c64d8ff99c27b2 /js/main.js | |
parent | 62b3d5b626301c2c1733bf0dc1dc74267fd958ff (diff) |
add build system (gulp)
Diffstat (limited to 'js/main.js')
-rw-r--r-- | js/main.js | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/js/main.js b/js/main.js new file mode 100644 index 00000000..0cb8f6fe --- /dev/null +++ b/js/main.js @@ -0,0 +1,86 @@ +/** + * ownCloud - contactsrework + * + * This file is licensed under the Affero General Public License version 3 or + * later. See the COPYING file. + * + * @author Hendrik Leppelsack <hendrik@leppelsack.de> + * @copyright Hendrik Leppelsack 2015 + */ + +var app = angular.module('contactsApp', ['ui.router']); + +app.run(function($rootScope) { + $rootScope.addressBooks = []; +}); + +app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider){ + $urlRouterProvider.otherwise('/'); + + $stateProvider + .state('home', { + url: '/', + template: '<div>Home</div>' + }) + .state('contactlist',{ + url: '/:addressBookId', + template: '<contactlist data-addressbook="addressBook"></contactlist>', + resolve: { + addressBook: function(AddressBookService, DavClient, $stateParams) { + return AddressBookService.then(function (addressBooks) { + var addressBook = addressBooks.filter(function (element) { + return element.displayName === $stateParams.addressBookId; + })[0]; + return DavClient.syncAddressBook(addressBook, {accept: 'application/vCard+json'}); + }).then(function (addressBook) { + return addressBook; + }); + } + }, + controller: function($scope, addressBook) { + $scope.addressBook = addressBook; + } + }) +}]); + +app.service('DavClient', function() { + var xhr = new dav.transport.Basic( + new dav.Credentials() + ); + return new dav.Client(xhr); +}); + +app.service('DavService', ['DavClient', function(client) { + return client.createAccount({ + server: OC.linkToRemoteBase('carddav'), + accountType: 'carddav' + }); +}]); + +app.service('AddressBookService', ['DavService', function(DavService){ + return DavService.then(function(account) { + return account.addressBooks; + }); +}]); + +app.filter('JSON2vCard', function() { + return vCard.generate; +}); + +app.filter('vCard2JSON', function() { + return function(input, prop) { + var result = vCard.parse(input); + if(prop === undefined) { + return result; + } + if(result[prop] === undefined) { + return undefined; + } + result = result[prop][0]; + if(result.value instanceof Array) { + return result.value.join(' '); + } else { + return result.value; + } + } +}); |