diff options
author | Vincent Petry <pvince81@owncloud.com> | 2014-02-03 12:48:17 +0100 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2014-09-23 11:16:14 +0200 |
commit | e65ceb08fc4a56d0fb9e4be5d51ba04168cbb59a (patch) | |
tree | 72f9a407f9f0a653ad534a1aec4df76837d15ef8 /settings | |
parent | fc42a64e6c848adc21bb069da01398f7d39fcc4a (diff) | |
download | nextcloud-server-e65ceb08fc4a56d0fb9e4be5d51ba04168cbb59a.tar.gz nextcloud-server-e65ceb08fc4a56d0fb9e4be5d51ba04168cbb59a.zip |
Moved WebDAV and internet checks to client side JS
- Added setup checks in JavaScript
- Moved isWebDAVWorking to JS using SetupChecks
- Moved internet connection checks to an ajax call that goes through the
server
Diffstat (limited to 'settings')
-rwxr-xr-x | settings/admin.php | 9 | ||||
-rw-r--r-- | settings/ajax/checksetup.php | 23 | ||||
-rw-r--r-- | settings/css/settings.css | 14 | ||||
-rw-r--r-- | settings/js/admin.js | 21 | ||||
-rw-r--r-- | settings/routes.php | 2 | ||||
-rw-r--r-- | settings/templates/admin.php | 41 |
6 files changed, 74 insertions, 36 deletions
diff --git a/settings/admin.php b/settings/admin.php index 6b93e6e3f03..f77145e0340 100755 --- a/settings/admin.php +++ b/settings/admin.php @@ -9,11 +9,12 @@ OC_Util::checkAdminUser(); OCP\Util::addStyle('settings', 'settings'); OCP\Util::addScript('settings', 'settings'); -OC_Util::addScript( "settings", "admin" ); -OC_Util::addScript( "settings", "log" ); -OC_Util::addScript( 'core', 'multiselect' ); +OCP\Util::addScript( "settings", "admin" ); +OCP\Util::addScript( "settings", "log" ); +OCP\Util::addScript( 'core', 'multiselect' ); OCP\Util::addScript('core', 'select2/select2'); OCP\Util::addStyle('core', 'select2/select2'); +OCP\Util::addScript('core', 'setupchecks'); OC_App::setActiveNavigationEntry( "admin" ); $tmpl = new OC_Template( 'settings', 'admin', 'user'); @@ -41,11 +42,9 @@ $tmpl->assign('mail_smtppassword', OC_Config::getValue( "mail_smtppassword", '' $tmpl->assign('entries', $entries); $tmpl->assign('entriesremain', $entriesremain); $tmpl->assign('htaccessworking', $htaccessworking); -$tmpl->assign('internetconnectionworking', OC_Util::isInternetConnectionEnabled() ? OC_Util::isInternetConnectionWorking() : 'disabled'); $tmpl->assign('isLocaleWorking', OC_Util::isSetLocaleWorking()); $tmpl->assign('isPhpCharSetUtf8', OC_Util::isPhpCharSetUtf8()); $tmpl->assign('isAnnotationsWorking', OC_Util::isAnnotationsWorking()); -$tmpl->assign('isWebDavWorking', OC_Util::isWebDAVWorking()); $tmpl->assign('has_fileinfo', OC_Util::fileInfoLoaded()); $tmpl->assign('old_php', OC_Util::isPHPoutdated()); $tmpl->assign('backgroundjobs_mode', OC_Appconfig::getValue('core', 'backgroundjobs_mode', 'ajax')); diff --git a/settings/ajax/checksetup.php b/settings/ajax/checksetup.php new file mode 100644 index 00000000000..6bf5bc5642e --- /dev/null +++ b/settings/ajax/checksetup.php @@ -0,0 +1,23 @@ +<?php +/** + * Copyright (c) 2014, Vincent Petry <pvince81@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + */ + +OCP\JSON::checkAdminUser(); +OCP\JSON::callCheck(); + +\OC::$server->getSession()->close(); + +// no warning when has_internet_connection is false in the config +$hasInternet = true; +if (OC_Util::isInternetConnectionEnabled()) { + $hasInternet = OC_Util::isInternetConnectionWorking(); +} + +OCP\JSON::success( + array( + 'serverhasinternetconnection' => $hasInternet + ) +); diff --git a/settings/css/settings.css b/settings/css/settings.css index 95fab85df97..581904591d0 100644 --- a/settings/css/settings.css +++ b/settings/css/settings.css @@ -165,7 +165,7 @@ table.grid td.date{ } /* ADMIN */ -span.securitywarning, span.connectionwarning { +span.securitywarning, span.connectionwarning, .setupwarning { color:#C33; font-weight:bold; } @@ -256,3 +256,15 @@ doesnotexist:-o-prefocus, .strengthify-wrapper { border: 0; overflow: auto; } + +#postsetupchecks .loading { + height: 50px; +} + +#postsetupchecks.section .loading { + background-position: left center; +} + +#postsetupchecks .hint, #postsetupchecks .setupwarning { + margin-top: 15px; +} diff --git a/settings/js/admin.js b/settings/js/admin.js index 95be13d2288..d8cdae9d11b 100644 --- a/settings/js/admin.js +++ b/settings/js/admin.js @@ -122,4 +122,25 @@ $(document).ready(function(){ $('#shareapiExcludeGroups').change(function() { $("#selectExcludedGroups").toggleClass('hidden', !this.checked); }); + + // run setup checks then gather error messages + $.when( + OC.SetupChecks.checkWebDAV(), + OC.SetupChecks.checkSetup() + ).then(function(check1, check2) { + var errors = [].concat(check1, check2); + var $el = $('#postsetupchecks'); + var $errorsEl; + $el.find('.loading').addClass('hidden'); + if (errors.length === 0) { + $el.find('.success').removeClass('hidden'); + } else { + $errorsEl = $el.find('.errors'); + for (var i = 0; i < errors.length; i++ ) { + $errorsEl.append('<div class="setupwarning">' + errors[i] + '</div>'); + } + $errorsEl.removeClass('hidden'); + $el.find('.hint').removeClass('hidden'); + } + }); }); diff --git a/settings/routes.php b/settings/routes.php index 86d6049551c..25a8b1da7e0 100644 --- a/settings/routes.php +++ b/settings/routes.php @@ -98,3 +98,5 @@ $this->create('settings_ajax_setsecurity', '/settings/ajax/setsecurity.php') ->actionInclude('settings/ajax/setsecurity.php'); $this->create('settings_ajax_excludegroups', '/settings/ajax/excludegroups.php') ->actionInclude('settings/ajax/excludegroups.php'); +$this->create('settings_ajax_checksetup', '/settings/ajax/checksetup') + ->actionInclude('settings/ajax/checksetup.php'); diff --git a/settings/templates/admin.php b/settings/templates/admin.php index 9ceebad4ee1..1209cf86d8d 100644 --- a/settings/templates/admin.php +++ b/settings/templates/admin.php @@ -72,21 +72,6 @@ if (!$_['htaccessworking']) { <?php } -// is WebDAV working ? -if (!$_['isWebDavWorking']) { - ?> -<div class="section"> - <h2><?php p($l->t('Setup Warning'));?></h2> - - <span class="securitywarning"> - <?php p($l->t('Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken.')); ?> - <?php print_unescaped($l->t('Please double check the <a href="%s">installation guides</a>.', link_to_docs('admin-install'))); ?> - </span> - -</div> -<?php -} - // Are doc blocks accessible? if (!$_['isAnnotationsWorking']) { ?> @@ -183,20 +168,6 @@ if (!$_['isLocaleWorking']) { <?php } -// is internet connection working ? -if ($_['internetconnectionworking'] === false) { - ?> - <div class="section"> - <h2><?php p($l->t('Internet connection not working'));?></h2> - - <span class="connectionwarning"> - <?php p($l->t('This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps donĀ“t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features.')); ?> - </span> - - </div> -<?php -} - if ($_['suggestedOverwriteWebroot']) { ?> <div class="section"> @@ -210,7 +181,17 @@ if ($_['suggestedOverwriteWebroot']) { <?php } ?> - +<div id="postsetupchecks" class="section"> + <h2><?php p($l->t('Connectivity checks'));?></h2> + <div class="loading"></div> + <div class="success hidden"><?php p($l->t('No problems found'));?></div> + <div class="errors hidden"></div> + <div class="hint hidden"> + <span class="setupwarning"><?php + print_unescaped($l->t('Please double check the <a href=\'%s\'>installation guides</a>.', \OC_Helper::linkToDocs('admin-install'))); + ?></span> + </div> +</div> <?php foreach ($_['forms'] as $form) { print_unescaped($form); } |