summaryrefslogtreecommitdiffstats
path: root/settings
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2014-02-03 12:48:17 +0100
committerVincent Petry <pvince81@owncloud.com>2014-09-23 16:58:19 +0200
commit2013404e0a5ccb4d0fce73ee3ff6af2ece0a1c70 (patch)
treea30b6888a48bd5c6f2fef5f5eebba96b35bf0c89 /settings
parentfbcd80ac083ca595d944564cab604405445b5571 (diff)
downloadnextcloud-server-2013404e0a5ccb4d0fce73ee3ff6af2ece0a1c70.tar.gz
nextcloud-server-2013404e0a5ccb4d0fce73ee3ff6af2ece0a1c70.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 Backport of e65ceb08fc4a56d0fb9e4be5d51ba04168cbb59a from master
Diffstat (limited to 'settings')
-rwxr-xr-xsettings/admin.php9
-rw-r--r--settings/ajax/checksetup.php23
-rw-r--r--settings/css/settings.css14
-rw-r--r--settings/js/admin.js21
-rw-r--r--settings/routes.php2
-rw-r--r--settings/templates/admin.php41
6 files changed, 74 insertions, 36 deletions
diff --git a/settings/admin.php b/settings/admin.php
index 7d4fc31f0dd..9b1a822bbdc 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,10 +42,8 @@ $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('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 a62a971b831..8989bad6891 100644
--- a/settings/css/settings.css
+++ b/settings/css/settings.css
@@ -163,7 +163,7 @@ table.grid td.date{
}
/* ADMIN */
-span.securitywarning, span.connectionwarning {
+span.securitywarning, span.connectionwarning, .setupwarning {
color:#C33;
font-weight:bold;
}
@@ -254,3 +254,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 d98497ee617..19bbe0f133f 100644
--- a/settings/routes.php
+++ b/settings/routes.php
@@ -94,3 +94,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 057eb1bae64..a7d64d8d9cf 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']) {
?>
@@ -169,20 +154,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">
@@ -196,7 +167,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);
}