[Pkg-owncloud-commits] [owncloud] 40/70: When changing the mountpoint of an external storage, ensure the old one is removed

David Prévot taffit at moszumanska.debian.org
Mon Jul 14 17:38:07 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository owncloud.

commit 18f5f851600ba0ef98123ca64fd2accf7e07799e
Author: Robin Appelman <icewind at owncloud.com>
Date:   Mon Jul 7 15:40:01 2014 +0200

    When changing the mountpoint of an external storage, ensure the old one is removed
---
 apps/files_external/ajax/addMountPoint.php | 19 +++++++++++++------
 apps/files_external/js/settings.js         |  9 +++++++--
 apps/files_external/templates/settings.php |  1 +
 3 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/apps/files_external/ajax/addMountPoint.php b/apps/files_external/ajax/addMountPoint.php
index 9100d47..4903120 100644
--- a/apps/files_external/ajax/addMountPoint.php
+++ b/apps/files_external/ajax/addMountPoint.php
@@ -10,10 +10,17 @@ if ($_POST['isPersonal'] == 'true') {
 	OCP\JSON::checkAdminUser();
 	$isPersonal = false;
 }
-$status = OC_Mount_Config::addMountPoint($_POST['mountPoint'],
-							   $_POST['class'],
-							   $_POST['classOptions'],
-							   $_POST['mountType'],
-							   $_POST['applicable'],
-							   $isPersonal);
+
+$mountPoint = $_POST['mountPoint'];
+$oldMountPoint = $_POST['oldMountPoint'];
+$class = $_POST['class'];
+$options = $_POST['classOptions'];
+$type = $_POST['mountType'];
+$applicable = $_POST['applicable'];
+
+if ($oldMountPoint and $oldMountPoint !== $mountPoint) {
+	OC_Mount_Config::removeMountPoint($oldMountPoint, $type, $applicable, $isPersonal);
+}
+
+$status = OC_Mount_Config::addMountPoint($mountPoint, $class, $options, $type, $applicable, $isPersonal);
 OCP\JSON::success(array('data' => array('message' => $status)));
diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js
index 348fecf..be6860b 100644
--- a/apps/files_external/js/settings.js
+++ b/apps/files_external/js/settings.js
@@ -14,6 +14,7 @@ function updateStatus(statusEl, result){
 OC.MountConfig={
 	saveStorage:function(tr, callback) {
 		var mountPoint = $(tr).find('.mountPoint input').val();
+		var oldMountPoint = $(tr).find('.mountPoint input').data('mountpoint');
 		if (mountPoint == '') {
 			return false;
 		}
@@ -80,9 +81,11 @@ OC.MountConfig={
 							classOptions: classOptions,
 							mountType: mountType,
 							applicable: applicable,
-							isPersonal: isPersonal
+							isPersonal: isPersonal,
+							oldMountPoint: oldMountPoint
 						},
 						success: function(result) {
+							$(tr).find('.mountPoint input').data('mountpoint', mountPoint);
 							status = updateStatus(statusSpan, result);
 							if (callback) {
 								callback(status);
@@ -139,9 +142,11 @@ OC.MountConfig={
 						classOptions: classOptions,
 						mountType: mountType,
 						applicable: applicable,
-						isPersonal: isPersonal
+						isPersonal: isPersonal,
+						oldMountPoint: oldMountPoint
 					},
 					success: function(result) {
+						$(tr).find('.mountPoint input').data('mountpoint', mountPoint);
 						status = updateStatus(statusSpan, result);
 						if (callback) {
 							callback(status);
diff --git a/apps/files_external/templates/settings.php b/apps/files_external/templates/settings.php
index 98fcf4a..dcf3938 100644
--- a/apps/files_external/templates/settings.php
+++ b/apps/files_external/templates/settings.php
@@ -24,6 +24,7 @@
 				</td>
 				<td class="mountPoint"><input type="text" name="mountPoint"
 											  value="<?php p(isset($mount['mountpoint']) ? $mount['mountpoint'] : ''); ?>"
+											  data-mountpoint="<?php p(isset($mount['mountpoint']) ? $mount['mountpoint'] : ''); ?>"
 											  placeholder="<?php p($l->t('Folder name')); ?>" /></td>
 				<?php if (!isset($mount['mountpoint'])): ?>
 					<td class="backend">

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list