Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2014-03-19 18:53:08 +0400
committerVincent Petry <pvince81@owncloud.com>2014-03-19 18:53:08 +0400
commit6252c248c23661beef6484cf1ffa24db406e28ae (patch)
tree724a05b26de55b6325448f49e05bb4f58cd0fc8f /core
parent4f95adfb7680deafa8dba60ecd138f049afdc673 (diff)
parent7ab2632085440d3e792b4ccca3c527d26f10cad2 (diff)
Merge pull request #7557 from owncloud/issue/7297
Do not allow setting an expiration date in the past
Diffstat (limited to 'core')
-rw-r--r--core/ajax/share.php8
-rw-r--r--core/js/share.js14
2 files changed, 21 insertions, 1 deletions
diff --git a/core/ajax/share.php b/core/ajax/share.php
index ca1951ec9ae..3f04e1e4ad1 100644
--- a/core/ajax/share.php
+++ b/core/ajax/share.php
@@ -80,6 +80,14 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
break;
case 'setExpirationDate':
if (isset($_POST['date'])) {
+ $l = OC_L10N::get('core');
+ $date = new \DateTime($_POST['date']);
+ $today = new \DateTime('now');
+
+ if ($date < $today) {
+ OC_JSON::error(array('data' => array('message' => $l->t('Expiration date is in the past.'))));
+ return;
+ }
$return = OCP\Share::setExpirationDate($_POST['itemType'], $_POST['itemSource'], $_POST['date']);
($return) ? OC_JSON::success() : OC_JSON::error();
}
diff --git a/core/js/share.js b/core/js/share.js
index 129e50b22d5..9ee50ff6963 100644
--- a/core/js/share.js
+++ b/core/js/share.js
@@ -718,9 +718,21 @@ $(document).ready(function() {
$(document).on('change', '#dropdown #expirationDate', function() {
var itemType = $('#dropdown').data('item-type');
var itemSource = $('#dropdown').data('item-source');
+
+ $(this).tipsy('hide');
+ $(this).removeClass('error');
+
$.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'setExpirationDate', itemType: itemType, itemSource: itemSource, date: $(this).val() }, function(result) {
if (!result || result.status !== 'success') {
- OC.dialogs.alert(t('core', 'Error setting expiration date'), t('core', 'Error'));
+ var expirationDateField = $('#dropdown #expirationDate');
+ if (!result.data.message) {
+ expirationDateField.attr('original-title', t('core', 'Error setting expiration date'));
+ } else {
+ expirationDateField.attr('original-title', result.data.message);
+ }
+ expirationDateField.tipsy({gravity: 'n', fade: true});
+ expirationDateField.tipsy('show');
+ expirationDateField.addClass('error');
}
});
});