From fd0f221d64cfefd628a48df935c40de2cff06b4e Mon Sep 17 00:00:00 2001 From: Loic Blot <loic.blot@unix-experience.fr> Date: Thu, 28 Dec 2017 18:18:03 +0100 Subject: [PATCH] Try to migrate settings to a better model --- js/devel/legacy.js | 34 ++++++++++++++-------------------- js/devel/settings.js | 16 ++++++++++++++++ templates/main.php | 12 ++++++------ 3 files changed, 36 insertions(+), 26 deletions(-) create mode 100644 js/devel/settings.js diff --git a/js/devel/legacy.js b/js/devel/legacy.js index 15453ea..d0a2cf2 100644 --- a/js/devel/legacy.js +++ b/js/devel/legacy.js @@ -41,10 +41,7 @@ app.controller('OcSmsController', ['$scope', '$interval', '$timeout', '$compile' {text: "Send"} ]; - $scope.setting_msgLimit = 100; - $scope.setting_enableNotifications = 1; - $scope.setting_contactOrder = 'lastmsg'; - $scope.setting_contactOrderReverse = true; + $scope.vsettings = SmsSettings; $scope.contacts = []; $scope.messages = []; @@ -68,25 +65,22 @@ app.controller('OcSmsController', ['$scope', '$interval', '$timeout', '$compile' }; $scope.setMessageLimit = function () { - if ($scope.setting_msgLimit === null || $scope.setting_msgLimit === undefined) { - return; - } - $.post($scope.generateUrl('/set/msglimit'), {'limit': $scope.setting_msgLimit}); + $.post($scope.generateUrl('/set/msglimit'), {'limit': SmsSettings.messageLimit}); }; $scope.setNotificationSetting = function () { - if ($scope.setting_enableNotifications < 0 || $scope.setting_enableNotifications > 2) { - $scope.setting_enableNotifications = 0; - return; - } - $.post($scope.generateUrl('/set/notification_state'), {'notification': $scope.setting_enableNotifications}); + $.post($scope.generateUrl('/set/notification_state'), + { + 'notification': SmsSettings.enableNotifications ? 1 : 0 + } + ); }; $scope.setContactOrderSetting = function () { $.post($scope.generateUrl('/set/contact_order'), { - 'attribute': $scope.setting_contactOrder, - 'reverse': $scope.setting_contactOrderReverse + 'attribute': SmsSettings.contactOrderBy, + 'reverse': SmsSettings.reverseContactOrder } ); }; @@ -334,10 +328,10 @@ app.controller('OcSmsController', ['$scope', '$interval', '$timeout', '$compile' $('select[name=setting_contact_order]').val(jsondata["contact_order"]); $('input[name=setting_contact_order_reverse]').val(toBool(jsondata["contact_order_reverse"])); - $scope.setting_msgLimit = parseInt(jsondata["message_limit"]); - $scope.setting_enableNotifications = jsondata["notification_state"]; - $scope.setting_contactOrder = jsondata["contact_order"]; - $scope.setting_contactOrderReverse = toBool(jsondata["contact_order_reverse"]); + SmsSettings.messageLimit = parseInt(jsondata["message_limit"]); + SmsSettings.enableNotifications = parseInt(jsondata["notification_state"]) !== 0; + SmsSettings.contactOrderBy = jsondata["contact_order"]; + SmsSettings.reverseContactOrder = toBool(jsondata["contact_order_reverse"]); } }); }; @@ -426,7 +420,7 @@ app.controller('OcSmsController', ['$scope', '$interval', '$timeout', '$compile' }; $scope.desktopNotify = function (msg) { - if ($scope.setting_enableNotifications === 0) { + if (!SmsSettings.enableNotifications) { return; } diff --git a/js/devel/settings.js b/js/devel/settings.js new file mode 100644 index 0000000..967ccad --- /dev/null +++ b/js/devel/settings.js @@ -0,0 +1,16 @@ +/** + * Nextcloud - Phone Sync + * + * This file is licensed under the Affero General Public License version 3 or + * later. See the COPYING file. + * + * @author Loic Blot <loic.blot@unix-experience.fr> + * @copyright Loic Blot 2014-2017 + */ + +var SmsSettings = { + messageLimit: 100, + enableNotifications: true, + contactOrderBy: 'lastmsg', + reverseContactOrder: true +}; \ No newline at end of file diff --git a/templates/main.php b/templates/main.php index 2c61223..6a6840e 100644 --- a/templates/main.php +++ b/templates/main.php @@ -12,7 +12,7 @@ use \OCA\OcSms\Lib\CountryCodes; <div id="app-contacts-loader" class="icon-loading" ng-show="isContactsLoading"> </div> <ul class="contact-list" ng-show="!isContactsLoading"> - <li ng-repeat="contact in contacts | orderBy:setting_contactOrder:setting_contactOrderReverse" peer-label="{{ contact.label }}" ng-click="loadConversation(contact);" href="#"> + <li ng-repeat="contact in contacts | orderBy:vsettings.contactOrderBy:vsettings.reverseContactOrder" peer-label="{{ contact.label }}" ng-click="loadConversation(contact);" href="#"> <img class="ocsms-plavatar" ng-src="{{ contact.avatar }}" ng-show="contact.avatar !== undefined" /> <div class="ocsms-plavatar" ng-show="contact.avatar === undefined" ng-style="{'background-color': (contact.uid | peerColor)}">{{ contact.label | firstCharacter }}</div> <a class="ocsms-plname" style="{{ contact.unread > 0 ? 'font-weight:bold;' : ''}}" mailbox-label="{{ contact.label }}" mailbox-navigation="{{ contact.nav }}">{{ contact.label }}{{ contact.unread > 0 ? ' (' + contact.unread + ') ' : '' }}</a> @@ -25,8 +25,8 @@ use \OCA\OcSms\Lib\CountryCodes; </div> <div id="app-settings-content"> <div><label for="setting_msg_per_page">Max messages on tab loading</label> - <input type="number" min="10" max="10000" name="setting_msg_per_page" ng-model="setting_msgLimit" ng-change="setMessageLimit()" to-int /> - <span class="label-invalid-input" ng-if="setting_msgLimit == null || setting_msgLimit == undefined">Invalid message limit</span> + <input type="number" min="10" max="10000" name="setting_msg_per_page" ng-model="vsettings.messageLimit" ng-change="setMessageLimit()" to-int /> + <span class="label-invalid-input" ng-if="vsettings.messageLimit == null || vsettings.messageLimit == undefined">Invalid message limit</span> </div> <div><label for="intl_phone">Country code</label> @@ -40,17 +40,17 @@ use \OCA\OcSms\Lib\CountryCodes; <div> <label for="setting_contact_order">Contact ordering</label> - <select name="setting_contact_order" ng-model="setting_contactOrder" ng-change="setContactOrderSetting()"> + <select name="setting_contact_order" ng-model="vsettings.contactOrderBy" ng-change="setContactOrderSetting()"> <option value="lastmsg">Last message</option> <option value="label">Label</option> </select> <label for "setting_contact_order_reverse">Reverse ?</label> - <input type="checkbox" ng-model="setting_contactOrderReverse" ng-change="setContactOrderSetting()" /> + <input type="checkbox" ng-model="vsettings.reverseContactOrder" ng-change="setContactOrderSetting()" /> </div> <div> <label for"setting_notif">Notification settings</label> - <select name="setting_notif" ng-model="setting_enableNotifications" ng-change="setNotificationSetting()"> + <select name="setting_notif" ng-model="vsetting.enableNotifications" ng-change="setNotificationSetting()"> <option value="1">Enable</option> <option value="0">Disable</option> </select>