diff --git a/core/js/share.js b/core/js/share.js index e45dc7dd42416047ffbc637c00bdff3ecb999d15..36ee39d8eabe2698cfcb8e973fe5be04351806bf 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 6ef984732b921f2ca682c378f6d333c06c4ff170..1039d6f0dbfe492b975f2338a95ba59f75e759e1 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']));