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

github.com/nextcloud/user_sql.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorMarcin Łojewski <marcin.lojewski@mlojewski.me>2018-06-02 09:30:49 +0300
committerMarcin Łojewski <marcin.lojewski@mlojewski.me>2018-06-10 10:40:18 +0300
commit28f7da0c0d45a76091b3331ef18fd1c3597522f0 (patch)
treee2120b8bce3cb606025f6205a50187e3ad12abdf /js
parentc1cc89f456231ecb853fc7d3a4d47ec6dcaa41f0 (diff)
admin site template
Diffstat (limited to 'js')
-rw-r--r--js/settings.js365
1 files changed, 71 insertions, 294 deletions
diff --git a/js/settings.js b/js/settings.js
index 4b63b53..0098601 100644
--- a/js/settings.js
+++ b/js/settings.js
@@ -1,321 +1,98 @@
-// settings.js of user_sql
+var user_sql = user_sql || {};
+var form_id = "#user_sql";
-// declare namespace
-var user_sql = user_sql ||
- {};
-
-/**
- * init admin settings view
- */
user_sql.adminSettingsUI = function () {
+ var app_id = "user_sql";
- if ($('#sqlDiv').length > 0) {
- // enable tabs on settings page
- $('#sqlDiv').tabs();
-
- // Attach auto-completion to all column fields
- $('#col_username, #col_password, #col_displayname, #col_active, #col_email, #col_gethome').autocomplete({
- source: function (request, response) {
- var post = $('#sqlForm').serializeArray();
- var domain = $('#sql_domain_chooser option:selected').val();
-
- post.push({
- name: 'function',
- value: 'getColumnAutocomplete'
- });
-
- post.push({
- name: 'domain',
- value: domain
- });
-
- post.push({
- name: 'request',
- value: request.term
- });
-
- // Ajax foobar
- $.post(OC.filePath('user_sql', 'ajax', 'settings.php'), post, response, 'json');
- },
- minLength: 0,
- open: function () {
- $(this).attr('state', 'open');
- },
- close: function () {
- $(this).attr('state', 'closed');
- }
- }).focus(function () {
- if ($(this).attr('state') != 'open') {
- $(this).autocomplete("search");
- }
- });
-
- // Attach auto-completion to all group column fields
- $('#col_group_name, #col_group_username').autocomplete({
- source: function (request, response) {
- var post = $('#sqlForm').serializeArray();
- var domain = $('#sql_domain_chooser option:selected').val();
-
- post.push({
- name: 'groupTable',
- value: 'true'
- });
-
- post.push({
- name: 'function',
- value: 'getColumnAutocomplete'
- });
-
- post.push({
- name: 'domain',
- value: domain
- });
+ if ($(form_id).length > 0) {
- post.push({
- name: 'request',
- value: request.term
- });
-
- // Ajax foobar
- $.post(OC.filePath('user_sql', 'ajax', 'settings.php'), post, response, 'json');
- },
- minLength: 0,
- open: function () {
- $(this).attr('state', 'open');
- },
- close: function () {
- $(this).attr('state', 'closed');
- }
- }).focus(function () {
- if ($(this).attr('state') != 'open') {
- $(this).autocomplete("search");
- }
- });
-
- // Attach auto-completion to all table fields
- $('#sql_table, #sql_group_table').autocomplete({
- source: function (request, response) {
- var post = $('#sqlForm').serializeArray();
- var domain = $('#sql_domain_chooser option:selected').val();
-
- post.push({
- name: 'function',
- value: 'getTableAutocomplete'
- });
-
- post.push({
- name: 'domain',
- value: domain
- });
-
- post.push({
- name: 'request',
- value: request.term
- });
-
- // Ajax foobar
- $.post(OC.filePath('user_sql', 'ajax', 'settings.php'), post, response, 'json');
- },
- minLength: 0,
- open: function () {
- $(this).attr('state', 'open');
- },
- close: function () {
- $(this).attr('state', 'closed');
- }
- }).focus(function () {
- if ($(this).attr('state') != 'open') {
- $(this).autocomplete("search");
- }
- });
-
- // Verify the SQL database settings
- $('#sqlVerify').click(function (event) {
+ var click = function (event, path) {
event.preventDefault();
- var post = $('#sqlForm').serializeArray();
- var domain = $('#sql_domain_chooser option:selected').val();
+ var post = $(form_id).serializeArray();
+ var msg = $("#user_sql-msg");
+ var msg_body = $("#user_sql-msg-body");
- post.push({
- name: 'function',
- value: 'verifySettings'
- });
+ msg_body.html(t(app_id, "Waiting..."));
+ msg.addClass("waiting");
+ msg.slideDown();
- post.push({
- name: 'domain',
- value: domain
- });
+ $.post(OC.generateUrl(path), post, function (data) {
+ msg_body.html(data.data.message);
+ msg.removeClass("error");
+ msg.removeClass("success");
+ msg.removeClass("waiting");
- $('#sql_verify_message').show();
- $('#sql_success_message').hide();
- $('#sql_error_message').hide();
- $('#sql_update_message').hide();
- // Ajax foobar
- $.post(OC.filePath('user_sql', 'ajax', 'settings.php'), post, function (data) {
- $('#sql_verify_message').hide();
- if (data.status == 'success') {
- $('#sql_success_message').html(data.data.message);
- $('#sql_success_message').show();
- window.setTimeout(function () {
- $('#sql_success_message').hide();
- }, 10000);
+ if (data.status === "success") {
+ msg.addClass("success");
} else {
- $('#sql_error_message').html(data.data.message);
- $('#sql_error_message').show();
+ msg.addClass("error");
}
- }, 'json');
- return false;
- });
-
- // Save the settings for a domain
- $('#sqlSubmit').click(function (event) {
- event.preventDefault();
-
- var post = $('#sqlForm').serializeArray();
- var domain = $('#sql_domain_chooser option:selected').val();
- post.push({
- name: 'function',
- value: 'saveSettings'
- });
+ window.setTimeout(function () {
+ msg.slideUp();
+ }, 10000);
+ }, "json");
- post.push({
- name: 'domain',
- value: domain
- });
-
- $('#sql_update_message').show();
- $('#sql_success_message').hide();
- $('#sql_verify_message').hide();
- $('#sql_error_message').hide();
- // Ajax foobar
- $.post(OC.filePath('user_sql', 'ajax', 'settings.php'), post, function (data) {
- $('#sql_update_message').hide();
- if (data.status == 'success') {
- $('#sql_success_message').html(data.data.message);
- $('#sql_success_message').show();
- window.setTimeout(function () {
- $('#sql_success_message').hide();
- }, 10000);
- } else {
- $('#sql_error_message').html(data.data.message);
- $('#sql_error_message').show();
- }
- }, 'json');
return false;
- });
+ };
+
+ var autocomplete = function (ids, path) {
+ $(ids).autocomplete({
+ source: function (request, response) {
+ var post = $(form_id).serializeArray();
+ $.post(OC.generateUrl(path), post, response, "json");
+ },
+ minLength: 0,
+ open: function () {
+ $(this).attr("state", "open");
+ },
+ close: function () {
+ $(this).attr("state", "closed");
+ }
+ }).focus(function () {
+ if ($(this).attr("state") !== "open") {
+ $(this).autocomplete("search");
+ }
+ });
+ };
- // Attach event handler to the domain chooser
- $('#sql_domain_chooser').change(function () {
- user_sql.loadDomainSettings($('#sql_domain_chooser option:selected').val());
+ $("#user_sql-db_connection_verify").click(function (event) {
+ return click(event, "/apps/user_sql/settings/db/verify");
});
- $('#set_gethome_mode').change(function () {
- user_sql.setGethomeMode();
+ $("#user_sql-clear_cache").click(function (event) {
+ return click(event, "/apps/user_sql/settings/cache/clear");
});
- $('#set_enable_gethome').change(function () {
- user_sql.setGethomeMode();
+ $("#user_sql-save").click(function (event) {
+ return click(event, "/apps/user_sql/settings/properties");
});
- }
-};
-user_sql.setGethomeMode = function () {
- var enabled = $('#set_enable_gethome').prop('checked');
- if (enabled) {
- $('#set_gethome_mode').prop('disabled', false);
- var val = $('#set_gethome_mode option:selected').val();
- if (val === 'query') {
- $('#set_gethome').prop('disabled', true);
- $('#col_gethome').prop('disabled', false);
- }
- else if (val === 'static') {
- $('#set_gethome').prop('disabled', false);
- $('#col_gethome').prop('disabled', true);
- }
- else {
- $('#set_gethome').prop('disabled', true);
- $('#col_gethome').prop('disabled', true);
- }
- }
- else {
- $('#set_gethome_mode').prop('disabled', true);
- $('#set_gethome').prop('disabled', true);
- $('#col_gethome').prop('disabled', true);
+ autocomplete(
+ "#db-table-user, #db-table-user_group, #db-table-group",
+ "/apps/user_sql/settings/autocomplete/table"
+ );
+
+ autocomplete(
+ "#db-table-user-column-uid, #db-table-user-column-email, #db-table-user-column-home, #db-table-user-column-password, #db-table-user-column-name, #db-table-user-column-avatar",
+ "/apps/user_sql/settings/autocomplete/table/user"
+ );
+
+ autocomplete(
+ "#db-table-user_group-column-uid, #db-table-user_group-column-gid",
+ "/apps/user_sql/settings/autocomplete/table/user_group"
+ );
+
+ autocomplete(
+ "#db-table-group-column-admin, #db-table-group-column-name, #db-table-group-column-gid",
+ "/apps/user_sql/settings/autocomplete/table/group"
+ );
}
};
-/**
- * Load the settings for the selected domain
- * @param string domain The domain to load
- */
-user_sql.loadDomainSettings = function (domain) {
- $('#sql_success_message').hide();
- $('#sql_error_message').hide();
- $('#sql_verify_message').hide();
- $('#sql_loading_message').show();
- var post = [
- {
- name: 'appname',
- value: 'user_sql'
- },
- {
- name: 'function',
- value: 'loadSettingsForDomain'
- },
- {
- name: 'domain',
- value: domain
- }
- ];
- $.post(OC.filePath('user_sql', 'ajax', 'settings.php'), post, function (data) {
- $('#sql_loading_message').hide();
- if (data.status == 'success') {
- for (key in data.settings) {
- if (key == 'set_strip_domain') {
- if (data.settings[key] == 'true')
- $('#' + key).prop('checked', true);
- else
- $('#' + key).prop('checked', false);
- }
- else if (key == 'set_allow_pwchange') {
- if (data.settings[key] == 'true')
- $('#' + key).prop('checked', true);
- else
- $('#' + key).prop('checked', false);
- }
- else if (key == 'set_active_invert') {
- if (data.settings[key] == 'true')
- $('#' + key).prop('checked', true);
- else
- $('#' + key).prop('checked', false);
- }
- else if (key == 'set_enable_gethome') {
- if (data.settings[key] == 'true')
- $('#' + key).prop('checked', true);
- else
- $('#' + key).prop('checked', false);
- }
- else {
- $('#' + key).val(data.settings[key]);
- }
- }
- }
- else {
- $('#sql_error_message').html(data.data.message);
- $('#sql_error_message').show();
- }
- user_sql.setGethomeMode();
- }, 'json'
- );
-};
-
-// Run our JS if the SQL settings are present
$(document).ready(function () {
- if ($('#sqlDiv')) {
+ if ($(form_id)) {
user_sql.adminSettingsUI();
- user_sql.loadDomainSettings($('#sql_domain_chooser option:selected').val());
- user_sql.setGethomeMode();
}
-});
-
+}); \ No newline at end of file