aboutsummaryrefslogtreecommitdiffstats
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 11:16:14 +0200
commite65ceb08fc4a56d0fb9e4be5d51ba04168cbb59a (patch)
tree72f9a407f9f0a653ad534a1aec4df76837d15ef8 /settings
parentfc42a64e6c848adc21bb069da01398f7d39fcc4a (diff)
downloadnextcloud-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-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 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);
}