Explorar el Código

Display storage status as tooltip

tags/v9.0beta1
Robin McCorkell hace 8 años
padre
commit
9a4d37f626

+ 14
- 2
apps/files_external/controller/storagescontroller.php Ver fichero

@@ -237,9 +237,21 @@ abstract class StoragesController extends Controller {
)
);
} catch (InsufficientDataForMeaningfulAnswerException $e) {
$storage->setStatus(\OC_Mount_Config::STATUS_INDETERMINATE);
$storage->setStatus(
\OC_Mount_Config::STATUS_INDETERMINATE,
$this->l10n->t('Insufficient data: %s', [$e->getMessage()])
);
} catch (StorageNotAvailableException $e) {
$storage->setStatus(\OC_Mount_Config::STATUS_ERROR);
$storage->setStatus(
\OC_Mount_Config::STATUS_ERROR,
$e->getMessage()
);
} catch (\Exception $e) {
// FIXME: convert storage exceptions to StorageNotAvailableException
$storage->setStatus(
\OC_Mount_Config::STATUS_ERROR,
get_class($e).': '.$e->getMessage()
);
}
}


+ 9
- 3
apps/files_external/js/settings.js Ver fichero

@@ -643,6 +643,10 @@ MountConfigListView.prototype = _.extend({
});

addSelect2(this.$el.find('tr:not(#addMountPoint) .applicableUsers'), this._userListLimit);
this.$el.tooltip({
selector: '.status span',
container: 'body'
});

this._initEvents();

@@ -947,7 +951,7 @@ MountConfigListView.prototype = _.extend({
if (concurrentTimer === undefined
|| $tr.data('save-timer') === concurrentTimer
) {
self.updateStatus($tr, result.status);
self.updateStatus($tr, result.status, result.statusMessage);
$tr.attr('data-id', result.id);

if (_.isFunction(callback)) {
@@ -981,7 +985,7 @@ MountConfigListView.prototype = _.extend({
this.updateStatus($tr, StorageConfig.Status.IN_PROGRESS);
storage.recheck({
success: function(result) {
self.updateStatus($tr, result.status);
self.updateStatus($tr, result.status, result.statusMessage);
},
error: function() {
self.updateStatus($tr, StorageConfig.Status.ERROR);
@@ -994,8 +998,9 @@ MountConfigListView.prototype = _.extend({
*
* @param {jQuery} $tr
* @param {int} status
* @param {string} message
*/
updateStatus: function($tr, status) {
updateStatus: function($tr, status, message) {
var $statusSpan = $tr.find('.status span');
$statusSpan.removeClass('loading-small success indeterminate error');
switch (status) {
@@ -1014,6 +1019,7 @@ MountConfigListView.prototype = _.extend({
default:
$statusSpan.addClass('error');
}
$statusSpan.attr('data-original-title', (typeof message === 'string') ? message : '');
},

/**

+ 1
- 0
apps/files_external/lib/config.php Ver fichero

@@ -269,6 +269,7 @@ class OC_Mount_Config {
}
} catch (Exception $exception) {
\OCP\Util::logException('files_external', $exception);
throw $e;
}
}
return self::STATUS_ERROR;

+ 23
- 2
apps/files_external/lib/storageconfig.php Ver fichero

@@ -72,6 +72,13 @@ class StorageConfig implements \JsonSerializable {
*/
private $status;

/**
* Status message
*
* @var string
*/
private $statusMessage;

/**
* Priority
*
@@ -295,7 +302,7 @@ class StorageConfig implements \JsonSerializable {
}

/**
* Sets the storage status, whether the config worked last time
* Gets the storage status, whether the config worked last time
*
* @return int $status status
*/
@@ -303,13 +310,24 @@ class StorageConfig implements \JsonSerializable {
return $this->status;
}

/**
* Gets the message describing the storage status
*
* @return string|null
*/
public function getStatusMessage() {
return $this->statusMessage;
}

/**
* Sets the storage status, whether the config worked last time
*
* @param int $status status
* @param string|null $message optional message
*/
public function setStatus($status) {
public function setStatus($status, $message = null) {
$this->status = $status;
$this->statusMessage = $message;
}

/**
@@ -341,6 +359,9 @@ class StorageConfig implements \JsonSerializable {
if (!is_null($this->status)) {
$result['status'] = $this->status;
}
if (!is_null($this->statusMessage)) {
$result['statusMessage'] = $this->statusMessage;
}
return $result;
}
}

Cargando…
Cancelar
Guardar