diff --git a/ajax/settings.php b/ajax/settings.php new file mode 100644 --- /dev/null +++ b/ajax/settings.php @@ -0,0 +1,39 @@ + array( "message" => $l->t("Not submitted for us.") ))); + return false; +} + +OCP\JSON::success(array('data' => array( 'message' => $l->t('Application settings successfully stored.') ))); +return true; diff --git a/css/settings.css b/css/settings.css new file mode 100644 --- /dev/null +++ b/css/settings.css @@ -0,0 +1,14 @@ +.statusmessage { + background-color: #DDDDFF; +} +.errormessage { + background-color: #FFDDDD; +} +.successmessage { + background-color: #DDFFDD; +} +.statusmessage,.errormessage,.successmessage{ + display:none; + padding: 1; +} + diff --git a/js/settings.js b/js/settings.js --- a/js/settings.js +++ b/js/settings.js @@ -1,1 +1,45 @@ -// +// declare namespace +var user_sql = user_sql || {}; + +/** + * init admin settings view + */ +user_sql.adminSettingsUI = function() { + + if ($('#sql').length > 0) { + // enable tabs on settings page + $('#sql').tabs(); + + $('#sqlSubmit').click(function(event) { + event.preventDefault(); + + var self = $(this); + var post = $('#sqlForm').serialize(); + $('#sql_update_message').show(); + $('#sql_success_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; + }); + } +} + +$(document).ready(function() { + if ($('#sql')) { + user_sql.adminSettingsUI(); + } +}); + diff --git a/settings.php b/settings.php --- a/settings.php +++ b/settings.php @@ -1,64 +1,75 @@ * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE * License as published by the Free Software Foundation; either * version 3 of the License, or any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU AFFERO GENERAL PUBLIC LICENSE for more details. * * You should have received a copy of the GNU Affero General Public * License along with this library. If not, see . * */ -$params = array('sql_host', 'sql_user', 'sql_database', 'sql_password', 'sql_table', 'sql_column_username', 'sql_column_password', 'sql_type', 'sql_column_active', 'strip_domain', 'default_domain', 'crypt_type', 'sql_column_displayname'); +$params = array('sql_host', 'sql_user', 'sql_database', 'sql_password', + 'sql_table', 'sql_column_username', 'sql_column_password', + 'sql_type', 'sql_column_active', 'strip_domain', 'default_domain', + 'crypt_type', 'sql_column_displayname'); -OCP\Util::addscript('user_sql', 'settings'); +OCP\Util::addStyle('user_sql', 'settings'); +OCP\Util::addScript('user_sql', 'settings'); OCP\User::checkAdminUser(); +/* if ($_POST) { OCP\JSON::callCheck(); foreach($params as $param){ if(isset($_POST[$param])) { OCP\Config::setAppValue('user_sql', $param, $_POST[$param]); } elseif($param == 'strip_domain') { OCP\Config::setAppValue('user_sql', $param, 0); } } } +*/ // fill template $tmpl = new OCP\Template( 'user_sql', 'settings'); foreach($params as $param){ $value = htmlentities(OCP\Config::getAppValue('user_sql', $param,'')); $tmpl->assign($param, $value); } // settings with default values $tmpl->assign( 'sql_host', OCP\Config::getAppValue('user_sql', 'sql_host', OC_USER_BACKEND_SQL_DEFAULT_HOST)); $tmpl->assign( 'sql_user', OCP\Config::getAppValue('user_sql', 'sql_user', OC_USER_BACKEND_SQL_DEFAULT_USER)); $tmpl->assign( 'sql_database', OCP\Config::getAppValue( 'user_sql', 'sql_database', OC_USER_BACKEND_SQL_DEFAULT_DB)); $tmpl->assign( 'sql_password', OCP\Config::getAppValue( 'user_sql', 'sql_password', OC_USER_BACKEND_SQL_DEFAULT_PASSWORD)); $tmpl->assign( 'sql_table', OCP\Config::getAppValue( 'user_sql', 'sql_table', OC_USER_BACKEND_SQL_DEFAULT_TABLE)); $tmpl->assign( 'sql_column_password', OCP\Config::getAppValue( 'user_sql', 'sql_column_password', OC_USER_BACKEND_SQL_DEFAULT_PW_COLUMN)); $tmpl->assign( 'sql_column_username', OCP\Config::getAppValue( 'user_sql', 'sql_column_username', OC_USER_BACKEND_SQL_DEFAULT_USER_COLUMN)); $tmpl->assign( 'sql_type', OCP\Config::getAppValue( 'user_sql', 'sql_type', OC_USER_BACKEND_SQL_DEFAULT_DRIVER)); $tmpl->assign( 'sql_column_active', OCP\Config::getAppValue( 'user_sql', 'sql_column_active', '')); $tmpl->assign( 'strip_domain', OCP\Config::getAppValue( 'user_sql', 'strip_domain', 0)); $tmpl->assign( 'default_domain', OCP\Config::getAppValue( 'user_sql', 'default_domain', '')); $tmpl->assign( 'crypt_type', OCP\Config::getAppValue( 'user_sql', 'crypt_type', 'mysql_encrypt')); $tmpl->assign( 'sql_column_displayname', OCP\Config::getAppValue( 'user_sql', 'sql_column_displayname', '')); +// workaround to detect OC version +$ocVersion = @reset(OCP\Util::getVersion()); +$tmpl->assign('ocVersion', $ocVersion); + + return $tmpl->fetchPage(); diff --git a/templates/settings.php b/templates/settings.php --- a/templates/settings.php +++ b/templates/settings.php @@ -1,47 +1,72 @@ -
-
- t('SQL'); ?> -

+= 7 ? 'section' : 'personalblock'; + +?> + + + + +

+ t('SQL'); ?> + + +
+ + 'MySQL', 'pgsql' => 'PostgreSQL');?> - + -

-

-

-

-

-

-

-

-

+

+ + + + +
-

+
+
+
+ + + + + 'MD5', 'md5crypt' => 'MD5 Crypt', 'cleartext' => 'Cleartext', 'mysql_encrypt' => 'mySQL ENCRYPT()', 'system' => 'System (crypt)', 'mysql_password' => 'mySQL PASSWORD()', 'joomla' => 'Joomla MD5 Encryption');?> - + + + + +
-

-

-

title="Strip Domain Part from Username when logging in and retrieving username lists">

-

+
title="Strip Domain Part from Username when logging in and retrieving username lists">
+
- -
+ + +
t('Saving...'); ?>
+
+
+