From cc5cc30c2422b9c56c5d52a3f5b4c8bf41188743 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Mon, 9 Nov 2015 14:46:30 -0500 Subject: [PATCH] (js) Improve addressbook renaming The AddressBook instance to list the cards is now the same as the one from the list of addressbooks. Therefore, when renaming an addressbook, the addressbook name in the list is automatically updated. --- .../ContactsUI/UIxContactFolderProperties.wox | 6 +++--- .../js/Contacts/AddressBook.service.js | 10 ++++++---- .../js/Contacts/AddressBooksController.js | 11 +++++++---- UI/WebServerResources/js/Contacts/Contacts.app.js | 10 +++++++--- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/UI/Templates/ContactsUI/UIxContactFolderProperties.wox b/UI/Templates/ContactsUI/UIxContactFolderProperties.wox index a43293f60..7c5f0b2f7 100644 --- a/UI/Templates/ContactsUI/UIxContactFolderProperties.wox +++ b/UI/Templates/ContactsUI/UIxContactFolderProperties.wox @@ -6,7 +6,7 @@ xmlns:const="http://www.skyrix.com/od/constant" xmlns:label="OGo:label" > - +
@@ -33,10 +33,10 @@ -
+ -
+ diff --git a/UI/WebServerResources/js/Contacts/AddressBook.service.js b/UI/WebServerResources/js/Contacts/AddressBook.service.js index 9b105b15d..1904f2871 100644 --- a/UI/WebServerResources/js/Contacts/AddressBook.service.js +++ b/UI/WebServerResources/js/Contacts/AddressBook.service.js @@ -215,10 +215,12 @@ * @desc Extend instance with new data and compute additional attributes. * @param {object} data - attributes of addressbook */ - AddressBook.prototype.init = function(data) { - this.$isLoading = true; - this.$cards = []; - this.cards = []; + AddressBook.prototype.init = function(data, options) { + if (!this.$cards) { + this.$isLoading = true; + this.$cards = []; + this.cards = []; + } angular.extend(this, data); // Add 'isOwned' and 'isSubscription' attributes based on active user (TODO: add it server-side?) this.isOwned = AddressBook.activeUser.isSuperUser || this.owner == AddressBook.activeUser.login; diff --git a/UI/WebServerResources/js/Contacts/AddressBooksController.js b/UI/WebServerResources/js/Contacts/AddressBooksController.js index 7163efbab..54df1434c 100644 --- a/UI/WebServerResources/js/Contacts/AddressBooksController.js +++ b/UI/WebServerResources/js/Contacts/AddressBooksController.js @@ -249,10 +249,13 @@ vm.close = close; function saveProperties() { - vm.addressbook.$save(); - // Refresh list instance - srcAddressBook.init(vm.addressbook.$omit()); - $mdDialog.hide(); + vm.addressbook.$save().then(function() { + // Refresh list instance + srcAddressBook.init(vm.addressbook.$omit()); + $mdDialog.hide(); + }, function() { + // TODO handle error + }); } function close() { diff --git a/UI/WebServerResources/js/Contacts/Contacts.app.js b/UI/WebServerResources/js/Contacts/Contacts.app.js index c42a2dfcc..0f85f415f 100644 --- a/UI/WebServerResources/js/Contacts/Contacts.app.js +++ b/UI/WebServerResources/js/Contacts/Contacts.app.js @@ -102,9 +102,13 @@ /** * @ngInject */ - stateAddressbook.$inject = ['$stateParams', 'AddressBook']; - function stateAddressbook($stateParams, AddressBook) { - return AddressBook.$find($stateParams.addressbookId).$futureAddressBookData; + stateAddressbook.$inject = ['$stateParams', 'stateAddressbooks', 'AddressBook']; + function stateAddressbook($stateParams, stateAddressbooks, AddressBook) { + var addressbook = _.find(stateAddressbooks, function(addressbook) { + return addressbook.id == $stateParams.addressbookId; + }); + addressbook.$reload(); + return addressbook; } /**