From c277e5ebff9ad9770c948019ccd7dbccadbcf3eb Mon Sep 17 00:00:00 2001 From: aynsix Date: Fri, 3 Dec 2021 17:52:56 +0300 Subject: [PATCH] fix multiple click on publish publication --- Phraseanet-production-client/config/config.js | 2 +- Phraseanet-production-client/dist/authenticate.js | 2 +- .../dist/authenticate.min.js | 2 +- Phraseanet-production-client/dist/commons.js | 2 +- Phraseanet-production-client/dist/commons.min.js | 2 +- Phraseanet-production-client/dist/production.js | 13 +++++++++---- Phraseanet-production-client/dist/production.min.js | 13 +++++++++---- .../src/components/publication/index.js | 13 +++++++++---- lib/Alchemy/Phrasea/Twig/PhraseanetExtension.php | 2 +- 9 files changed, 33 insertions(+), 18 deletions(-) diff --git a/Phraseanet-production-client/config/config.js b/Phraseanet-production-client/config/config.js index 673a80f503..7c87bc1c59 100644 --- a/Phraseanet-production-client/config/config.js +++ b/Phraseanet-production-client/config/config.js @@ -13,5 +13,5 @@ module.exports = { setupDir: _root + 'tests/setup/node.js', karmaConf: _root + 'config/karma.conf.js', // change this version when you change JS file for lazy loading - assetFileVersion: 30 + assetFileVersion: 31 }; diff --git a/Phraseanet-production-client/dist/authenticate.js b/Phraseanet-production-client/dist/authenticate.js index 9fe7bc0004..ed3240bf27 100644 --- a/Phraseanet-production-client/dist/authenticate.js +++ b/Phraseanet-production-client/dist/authenticate.js @@ -96,7 +96,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } -/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=30"; +/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=31"; /******/ var timeout = setTimeout(onScriptComplete, 120000); /******/ script.onerror = script.onload = onScriptComplete; /******/ function onScriptComplete() { diff --git a/Phraseanet-production-client/dist/authenticate.min.js b/Phraseanet-production-client/dist/authenticate.min.js index d807d93523..b17752b1c9 100644 --- a/Phraseanet-production-client/dist/authenticate.min.js +++ b/Phraseanet-production-client/dist/authenticate.min.js @@ -96,7 +96,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } -/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=30"; +/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=31"; /******/ var timeout = setTimeout(onScriptComplete, 120000); /******/ script.onerror = script.onload = onScriptComplete; /******/ function onScriptComplete() { diff --git a/Phraseanet-production-client/dist/commons.js b/Phraseanet-production-client/dist/commons.js index ab12731581..d56b474cc9 100644 --- a/Phraseanet-production-client/dist/commons.js +++ b/Phraseanet-production-client/dist/commons.js @@ -91,7 +91,7 @@ /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } -/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=30"; +/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=31"; /******/ var timeout = setTimeout(onScriptComplete, 120000); /******/ script.onerror = script.onload = onScriptComplete; /******/ function onScriptComplete() { diff --git a/Phraseanet-production-client/dist/commons.min.js b/Phraseanet-production-client/dist/commons.min.js index bbcb9e079a..f46ce31bcf 100644 --- a/Phraseanet-production-client/dist/commons.min.js +++ b/Phraseanet-production-client/dist/commons.min.js @@ -91,7 +91,7 @@ /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } -/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=30"; +/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=31"; /******/ var timeout = setTimeout(onScriptComplete, 120000); /******/ script.onerror = script.onload = onScriptComplete; /******/ function onScriptComplete() { diff --git a/Phraseanet-production-client/dist/production.js b/Phraseanet-production-client/dist/production.js index e1087c5bd8..44cdf41b93 100644 --- a/Phraseanet-production-client/dist/production.js +++ b/Phraseanet-production-client/dist/production.js @@ -3343,6 +3343,8 @@ var publication = function publication(services) { var onSubmitPublication = function onSubmitPublication() { var $dialog = _dialog2.default.get(1); var error = false; + (0, _jquery2.default)('.publish-dialog button').prop('disabled', true); + var $form = (0, _jquery2.default)('form.main_form', $dialog.getDomElement()); (0, _jquery2.default)('.required_text', $form).each(function (i, el) { @@ -3354,6 +3356,7 @@ var publication = function publication(services) { if (error) { alert(localeService.t('feed_require_fields')); + (0, _jquery2.default)('.publish-dialog button').prop('disabled', false); } if ((0, _jquery2.default)('input[name="feed_id"]', $form).val() === '') { @@ -3362,6 +3365,7 @@ var publication = function publication(services) { } if (error) { + (0, _jquery2.default)('.publish-dialog button').prop('disabled', false); return false; } @@ -3371,19 +3375,19 @@ var publication = function publication(services) { data: $form.serializeArray(), dataType: 'json', beforeSend: function beforeSend() { - (0, _jquery2.default)('button', $dialog.getDomElement()).prop('disabled', true); + (0, _jquery2.default)('.publish-dialog button').prop('disabled', true); }, error: function error() { - (0, _jquery2.default)('button', $dialog.getDomElement()).prop('disabled', false); + (0, _jquery2.default)('.publish-dialog button').prop('disabled', false); }, timeout: function timeout() { - (0, _jquery2.default)('button', $dialog.getDomElement()).prop('disabled', false); + (0, _jquery2.default)('.publish-dialog button').prop('disabled', false); }, success: function success(data) { (0, _jquery2.default)('.state-navigation').trigger('click'); - (0, _jquery2.default)('button', $dialog.getDomElement()).prop('disabled', false); if (data.error === true) { alert(data.message); + (0, _jquery2.default)('.publish-dialog button').prop('disabled', false); return; } @@ -3401,6 +3405,7 @@ var publication = function publication(services) { }); } + (0, _jquery2.default)('.publish-dialog button').prop('disabled', false); $dialog.close(1); } }); diff --git a/Phraseanet-production-client/dist/production.min.js b/Phraseanet-production-client/dist/production.min.js index e1087c5bd8..44cdf41b93 100644 --- a/Phraseanet-production-client/dist/production.min.js +++ b/Phraseanet-production-client/dist/production.min.js @@ -3343,6 +3343,8 @@ var publication = function publication(services) { var onSubmitPublication = function onSubmitPublication() { var $dialog = _dialog2.default.get(1); var error = false; + (0, _jquery2.default)('.publish-dialog button').prop('disabled', true); + var $form = (0, _jquery2.default)('form.main_form', $dialog.getDomElement()); (0, _jquery2.default)('.required_text', $form).each(function (i, el) { @@ -3354,6 +3356,7 @@ var publication = function publication(services) { if (error) { alert(localeService.t('feed_require_fields')); + (0, _jquery2.default)('.publish-dialog button').prop('disabled', false); } if ((0, _jquery2.default)('input[name="feed_id"]', $form).val() === '') { @@ -3362,6 +3365,7 @@ var publication = function publication(services) { } if (error) { + (0, _jquery2.default)('.publish-dialog button').prop('disabled', false); return false; } @@ -3371,19 +3375,19 @@ var publication = function publication(services) { data: $form.serializeArray(), dataType: 'json', beforeSend: function beforeSend() { - (0, _jquery2.default)('button', $dialog.getDomElement()).prop('disabled', true); + (0, _jquery2.default)('.publish-dialog button').prop('disabled', true); }, error: function error() { - (0, _jquery2.default)('button', $dialog.getDomElement()).prop('disabled', false); + (0, _jquery2.default)('.publish-dialog button').prop('disabled', false); }, timeout: function timeout() { - (0, _jquery2.default)('button', $dialog.getDomElement()).prop('disabled', false); + (0, _jquery2.default)('.publish-dialog button').prop('disabled', false); }, success: function success(data) { (0, _jquery2.default)('.state-navigation').trigger('click'); - (0, _jquery2.default)('button', $dialog.getDomElement()).prop('disabled', false); if (data.error === true) { alert(data.message); + (0, _jquery2.default)('.publish-dialog button').prop('disabled', false); return; } @@ -3401,6 +3405,7 @@ var publication = function publication(services) { }); } + (0, _jquery2.default)('.publish-dialog button').prop('disabled', false); $dialog.close(1); } }); diff --git a/Phraseanet-production-client/src/components/publication/index.js b/Phraseanet-production-client/src/components/publication/index.js index daba2be519..cfa78ad65a 100644 --- a/Phraseanet-production-client/src/components/publication/index.js +++ b/Phraseanet-production-client/src/components/publication/index.js @@ -308,6 +308,8 @@ const publication = (services) => { const onSubmitPublication = () => { var $dialog = dialog.get(1); var error = false; + $('.publish-dialog button').prop('disabled', true); + var $form = $('form.main_form', $dialog.getDomElement()); $('.required_text', $form).each(function (i, el) { @@ -319,6 +321,7 @@ const publication = (services) => { if (error) { alert(localeService.t('feed_require_fields')); + $('.publish-dialog button').prop('disabled', false); } if ($('input[name="feed_id"]', $form).val() === '') { @@ -327,6 +330,7 @@ const publication = (services) => { } if (error) { + $('.publish-dialog button').prop('disabled', false); return false; } @@ -336,19 +340,19 @@ const publication = (services) => { data: $form.serializeArray(), dataType: 'json', beforeSend: function () { - $('button', $dialog.getDomElement()).prop('disabled', true); + $('.publish-dialog button').prop('disabled', true); }, error: function () { - $('button', $dialog.getDomElement()).prop('disabled', false); + $('.publish-dialog button').prop('disabled', false); }, timeout: function () { - $('button', $dialog.getDomElement()).prop('disabled', false); + $('.publish-dialog button').prop('disabled', false); }, success: function (data) { $('.state-navigation').trigger('click'); - $('button', $dialog.getDomElement()).prop('disabled', false); if (data.error === true) { alert(data.message); + $('.publish-dialog button').prop('disabled', false); return; } @@ -366,6 +370,7 @@ const publication = (services) => { }); } + $('.publish-dialog button').prop('disabled', false); $dialog.close(1); } }); diff --git a/lib/Alchemy/Phrasea/Twig/PhraseanetExtension.php b/lib/Alchemy/Phrasea/Twig/PhraseanetExtension.php index 0ff1b8c35e..bef1273c2d 100644 --- a/lib/Alchemy/Phrasea/Twig/PhraseanetExtension.php +++ b/lib/Alchemy/Phrasea/Twig/PhraseanetExtension.php @@ -59,7 +59,7 @@ class PhraseanetExtension extends \Twig_Extension { return [ // change this version when you change JS file to force the navigation to reload js file - 'assetFileVersion' => 30 + 'assetFileVersion' => 31 ]; }