From f967bfc9566c2b5a6ca393f1ac5e2e8b0ff1ac7e Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Tue, 25 Sep 2012 23:54:46 -0400 Subject: Properly format the share expiration time for the database, fixes bug oc-1779 --- lib/public/share.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'lib/public') diff --git a/lib/public/share.php b/lib/public/share.php index b215d7f9389..6ef984732b9 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -418,11 +418,16 @@ class Share { } public static function setExpirationDate($itemType, $itemSource, $date) { - if ($item = self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), self::FORMAT_NONE, null, 1, false)) { - error_log('setting'); - $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `expiration` = ? WHERE `id` = ?'); - $query->execute(array($date, $item['id'])); - return true; + if ($items = self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), self::FORMAT_NONE, null, -1, false)) { + if (!empty($items)) { + $date = new \DateTime($date); + $date = date('Y-m-d H:i', $date->format('U') - $date->getOffset()); + $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `expiration` = ? WHERE `id` = ?'); + foreach ($items as $item) { + $query->execute(array($date, $item['id'])); + } + return true; + } } return false; } -- cgit v1.2.3 From b4e40b1c21fc3cd465a467278b4960565e07ca0d Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Wed, 26 Sep 2012 00:09:35 -0400 Subject: Fix unsetting share expiration date --- core/js/share.js | 9 ++++++++- lib/public/share.php | 8 ++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) (limited to 'lib/public') diff --git a/core/js/share.js b/core/js/share.js index e45dc7dd424..36ee39d8eab 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -482,7 +482,14 @@ $(document).ready(function() { if (this.checked) { OC.Share.showExpirationDate(''); } else { - $('#expirationDate').hide(); + var itemType = $('#dropdown').data('item-type'); + var itemSource = $('#dropdown').data('item-source'); + $.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'setExpirationDate', itemType: itemType, itemSource: itemSource, date: '' }, function(result) { + if (!result || result.status !== 'success') { + OC.dialogs.alert(t('core', 'Error'), t('core', 'Error unsetting expiration date')); + } + $('#expirationDate').hide(); + }); } }); diff --git a/lib/public/share.php b/lib/public/share.php index 6ef984732b9..1039d6f0dbf 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -420,8 +420,12 @@ class Share { public static function setExpirationDate($itemType, $itemSource, $date) { if ($items = self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), self::FORMAT_NONE, null, -1, false)) { if (!empty($items)) { - $date = new \DateTime($date); - $date = date('Y-m-d H:i', $date->format('U') - $date->getOffset()); + if ($date == '') { + $date = null; + } else { + $date = new \DateTime($date); + $date = date('Y-m-d H:i', $date->format('U') - $date->getOffset()); + } $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `expiration` = ? WHERE `id` = ?'); foreach ($items as $item) { $query->execute(array($date, $item['id'])); -- cgit v1.2.3