Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/jsxc.nextcloud.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorsualko <klaus@jsxc.org>2018-05-17 11:37:21 +0300
committersualko <klaus@jsxc.org>2018-05-17 11:37:21 +0300
commitbf3d09901854f8f89a294cb1ca453cda7a45629a (patch)
treefa4a4a86812bae930c723f8ceb9f628074bdd166 /js
parent91d1b828ee38961785ddfccbe6d8322621804ebb (diff)
add admin setting to change log in behavior (fix jsxc/jsxc#477)
Global enable/disable chat on log in. User defined option overwrites global default.
Diffstat (limited to 'js')
-rw-r--r--js/ojsxc.js20
-rw-r--r--js/settings/personal.js17
2 files changed, 30 insertions, 7 deletions
diff --git a/js/ojsxc.js b/js/ojsxc.js
index 3a52f77..53cfcad 100644
--- a/js/ojsxc.js
+++ b/js/ojsxc.js
@@ -11,6 +11,8 @@
MANAGED: 2
};
+ var forceLoginFormEnable;
+
function observeContactsMenu() {
var target = document.getElementById('contactsmenu');
@@ -212,6 +214,11 @@
success: function(d) {
if (d.result === 'success' && d.data && d.data.serverType !== 'internal' && d.data.xmpp.url !== '' && d.data.xmpp.url !== null) {
jsxc.storage.setItem('serverType', serverTypes[d.data.serverType.toUpperCase()]);
+
+ if (forceLoginFormEnable) {
+ d.data.loginForm.enable = true;
+ }
+
cb(d.data);
} else if (d.data && d.data.serverType === 'internal') {
jsxc.storage.setItem('serverType', serverTypes.INTERNAL);
@@ -294,6 +301,7 @@
}
function addChatSubmitButton() {
+ var defaultEnable = OJSXC_CONFIG.defaultLoginFormEnable;
var submitWrapperElement = $('#submit-wrapper');
var jsxcSubmitWrapperElement = $('<div>');
jsxcSubmitWrapperElement.attr('id', 'jsxc_submit_wrapper');
@@ -304,10 +312,16 @@
id: 'jsxc_submit',
});
submitElement.addClass('login primary');
- submitElement.val($.t('Log_in_without_chat'));
+ submitElement.val(defaultEnable ? $.t('Log_in_without_chat') : $.t('Log_in_with_chat'));
submitElement.click(function() {
- jsxc.storage.setItem('login_without_chat', true);
- jsxc.submitLoginForm();
+ jsxc.storage.setItem('login_without_chat', defaultEnable);
+
+ if (defaultEnable) { // log in without chat
+ jsxc.submitLoginForm();
+ } else { // log in with chat
+ forceLoginFormEnable = true;
+ $(jsxc.options.loginForm.form).submit();
+ }
});
jsxcSubmitWrapperElement.append(submitElement);
diff --git a/js/settings/personal.js b/js/settings/personal.js
index a8cfc2b..23639c3 100644
--- a/js/settings/personal.js
+++ b/js/settings/personal.js
@@ -6,12 +6,21 @@
$(function() {
$('#ojsxc-settings [name="loginFormEnable"]').change(function() {
var loginFormData = {
- enable: $(this).prop('checked')
+ enable: $(this).val().match(/^true|false$/) ? JSON.parse($(this).val()) : null
};
if (jsxc.bid) {
- loginFormData = $.extend(jsxc.options.get('loginForm'), loginFormData);
- jsxc.options.set('loginForm', loginFormData);
+ var options = jsxc.storage.getUserItem('options');
+
+ if (loginFormData.enable === null && options.loginForm) {
+ delete options.loginForm.enable;
+
+ jsxc.storage.setUserItem('options', options);
+ } else {
+ loginFormData = $.extend(jsxc.options.get('loginForm'), loginFormData);
+
+ jsxc.options.set('loginForm', loginFormData);
+ }
}
$.ajax({
@@ -22,7 +31,7 @@
},
success: function(data) {
if (data && data.status === 'success') {
- console.log('loginFormEnable saved.');
+ jsxc.debug('loginFormEnable saved.');
}
}
});