From b8921e507d07b824e49a4337d67d8b127b931520 Mon Sep 17 00:00:00 2001 From: aynsix Date: Thu, 2 Sep 2021 14:26:56 +0300 Subject: [PATCH 1/3] PHRAS-3515 escape value from user --- templates/web/admin/editusers.html.twig | 2 +- templates/web/api/auth/end_user_authorization.html.twig | 2 +- templates/web/api/auth/native_app_access_token.html.twig | 2 +- templates/web/prod/WorkZone/Browser/Basket.html.twig | 2 +- templates/web/prod/WorkZone/Browser/Results.html.twig | 4 ++-- templates/web/prod/WorkZone/ExposeNew.html.twig | 2 +- templates/web/prod/WorkZone/Macros.html.twig | 2 +- templates/web/prod/actions/Push.html.twig | 2 +- templates/web/prod/notification.html.twig | 2 +- templates/web/prod/orders/order_item.html.twig | 4 ++-- templates/web/prod/preview/short_history.html.twig | 2 +- templates/web/prod/upload/lazaret.html.twig | 2 +- 12 files changed, 14 insertions(+), 14 deletions(-) diff --git a/templates/web/admin/editusers.html.twig b/templates/web/admin/editusers.html.twig index be5512cbe0..000453fbab 100644 --- a/templates/web/admin/editusers.html.twig +++ b/templates/web/admin/editusers.html.twig @@ -99,7 +99,7 @@ {{ 'Reglages:: reglages d inscitpition automatisee' | trans }} {% endif %} {% else %} - {% set display_name = main_user.getDisplayName() %} + {% set display_name = main_user.getDisplayName() | e %} {% trans with {'%display_name%' : display_name} %}Edition des droits de %display_name%{% endtrans %} {% endif %} {% else %} diff --git a/templates/web/api/auth/end_user_authorization.html.twig b/templates/web/api/auth/end_user_authorization.html.twig index 7c34d3dd60..f0808a3f00 100644 --- a/templates/web/api/auth/end_user_authorization.html.twig +++ b/templates/web/api/auth/end_user_authorization.html.twig @@ -76,7 +76,7 @@ {% else %} {% if user is not none %} - {% set username = '' ~ app.getAuthenticatedUser().getDisplayName() ~ '' %} + {% set username = '' ~ app.getAuthenticatedUser().getDisplayName() | e ~ '' %}
{% if app.getAuthenticatedUser() is not none %} - {% set username = '' ~ app.getAuthenticatedUser().getDisplayName() ~ '' %} + {% set username = '' ~ app.getAuthenticatedUser().getDisplayName() | e ~ '' %}

- {% set user_name = '' ~ Basket.getPusher(app).getDisplayName() ~ '' %} + {% set user_name = '' ~ Basket.getPusher(app).getDisplayName() | e ~ '' %} {% trans with {'%user_name%' : user_name} %}Received from %user_name%{% endtrans %}

{% endif %} @@ -66,7 +66,7 @@ {% endif %} {% set list_participants = list_participants ~ '' %} - {% set list_participants = list_participants ~ Participant.getUser().getDisplayName() %} + {% set list_participants = list_participants ~ Participant.getUser().getDisplayName() | e %} {% set list_participants = list_participants ~ '' %} {% endfor %} {% trans with {'%list_participants%' : list_participants} %}Sent for validation to %list_participants%{% endtrans %} diff --git a/templates/web/prod/WorkZone/ExposeNew.html.twig b/templates/web/prod/WorkZone/ExposeNew.html.twig index 6020c96e9f..4f82cfa0ea 100644 --- a/templates/web/prod/WorkZone/ExposeNew.html.twig +++ b/templates/web/prod/WorkZone/ExposeNew.html.twig @@ -9,7 +9,7 @@
- + diff --git a/templates/web/prod/WorkZone/Macros.html.twig b/templates/web/prod/WorkZone/Macros.html.twig index dd2957156f..58577fe1ad 100644 --- a/templates/web/prod/WorkZone/Macros.html.twig +++ b/templates/web/prod/WorkZone/Macros.html.twig @@ -148,7 +148,7 @@ {% endif %} {% if basket.getPusher() %} - {% set pusher = basket.getPusher().getDisplayName() %} + {% set pusher = basket.getPusher().getDisplayName() | e %} ' ~ '' - ~ user.getDisplayName() + ~ user.getDisplayName() | e ~ '' %} {% endif %} {% endfor %} diff --git a/templates/web/prod/notification.html.twig b/templates/web/prod/notification.html.twig index 04d525422f..b93bdd8237 100644 --- a/templates/web/prod/notification.html.twig +++ b/templates/web/prod/notification.html.twig @@ -6,7 +6,7 @@ - {{notification['text']|raw}} + {{notification['text'] | e | raw}} {{notification['created_on']}} diff --git a/templates/web/prod/orders/order_item.html.twig b/templates/web/prod/orders/order_item.html.twig index 119d34bd38..d3f20c7384 100644 --- a/templates/web/prod/orders/order_item.html.twig +++ b/templates/web/prod/orders/order_item.html.twig @@ -136,7 +136,7 @@ {% if element.getOrderMaster() %} - {% set name = element.getOrderMaster().getDisplayName() %} + {% set name = element.getOrderMaster().getDisplayName() | e %} {% if element.getDeny() == true %} {% set title %} {% trans with {'%name%' : name} %}Document refuse par %name%{% endtrans %} @@ -239,7 +239,7 @@ + {{ order.getId() }} + ' {{ 'order-manager::order-item: of' |trans }} ' + '{{ order.getCreatedOn()|date('d/m/Y') }}' + ' {{ 'order-manager::order-item: by' |trans }} ' - + '{{ order.getUser().getDisplayName() }}'; + + '{{ order.getUser().getDisplayName() | e('js') }}'; var orderItemData = { path: '{{ path('prod_orders') }}', diff --git a/templates/web/prod/preview/short_history.html.twig b/templates/web/prod/preview/short_history.html.twig index 146e553a85..05874c2b67 100644 --- a/templates/web/prod/preview/short_history.html.twig +++ b/templates/web/prod/preview/short_history.html.twig @@ -52,7 +52,7 @@ {% if app.getAclForUser(app.getAuthenticatedUser()).has_right_on_base(record.get_base_id(), constant('\\ACL::CANREPORT')) %} {% if done['user'] and done['user'].getId() != app.getAuthenticatedUser().getId() %} - {% set user_infos = done['user'].getDisplayName() %} + {% set user_infos = done['user'].getDisplayName() | e %} {% trans with {'%user_infos%' : user_infos} %}report:: par %user_infos%{% endtrans %} {% endif %} {% endif %} diff --git a/templates/web/prod/upload/lazaret.html.twig b/templates/web/prod/upload/lazaret.html.twig index 95abc53385..95f3b00e9f 100644 --- a/templates/web/prod/upload/lazaret.html.twig +++ b/templates/web/prod/upload/lazaret.html.twig @@ -439,7 +439,7 @@

{{ "Date" | trans }} : {{ app['date-formatter'].getPrettyString(file.getCreated()) }}

{% if file.getSession().getUser() is not none %}

- {% set username = '' ~ file.getSession().getUser().getDisplayName() ~ '' %} + {% set username = '' ~ file.getSession().getUser().getDisplayName() | e ~ '' %} {% trans with {'%username%' : username} %}Uploaded by : %username%{% endtrans %}

{% endif %} From 0f93e09106ad6df1e69bd1cd20dc6d12ad444f5d Mon Sep 17 00:00:00 2001 From: aynsix Date: Fri, 3 Sep 2021 11:58:56 +0300 Subject: [PATCH 2/3] fix text in register form --- Phraseanet-production-client/config/config.js | 2 +- Phraseanet-production-client/dist/account.js | 4 +- .../dist/account.min.js | 4 +- .../dist/authenticate.js | 268 ++++++++- .../dist/authenticate.min.js | 268 ++++++++- Phraseanet-production-client/dist/commons.js | 6 +- .../dist/commons.min.js | 6 +- Phraseanet-production-client/dist/lazy-0.js | 2 +- .../dist/lazy-0.min.js | 2 +- Phraseanet-production-client/dist/lazy-1.js | 2 +- .../dist/lazy-1.min.js | 2 +- Phraseanet-production-client/dist/lightbox.js | 2 +- .../dist/lightbox.min.js | 2 +- .../dist/production.js | 526 +++++++++--------- .../dist/production.min.js | 526 +++++++++--------- .../src/components/authentication/index.js | 10 +- .../Phrasea/Twig/PhraseanetExtension.php | 2 +- templates/web/login/common/macros.html.twig | 2 +- 18 files changed, 1043 insertions(+), 593 deletions(-) diff --git a/Phraseanet-production-client/config/config.js b/Phraseanet-production-client/config/config.js index 65ed5953b5..ad4f549088 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 - jsFileVersion: 25 + jsFileVersion: 26 }; diff --git a/Phraseanet-production-client/dist/account.js b/Phraseanet-production-client/dist/account.js index 1b55699a86..eedab071c4 100644 --- a/Phraseanet-production-client/dist/account.js +++ b/Phraseanet-production-client/dist/account.js @@ -4043,7 +4043,7 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _geonames = __webpack_require__(54); +var _geonames = __webpack_require__(55); var _geonames2 = _interopRequireDefault(_geonames); @@ -22692,7 +22692,7 @@ module.exports = g; /***/ }), -/***/ 54: +/***/ 55: /***/ (function(module, exports, __webpack_require__) { "use strict"; diff --git a/Phraseanet-production-client/dist/account.min.js b/Phraseanet-production-client/dist/account.min.js index 1b55699a86..eedab071c4 100644 --- a/Phraseanet-production-client/dist/account.min.js +++ b/Phraseanet-production-client/dist/account.min.js @@ -4043,7 +4043,7 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _geonames = __webpack_require__(54); +var _geonames = __webpack_require__(55); var _geonames2 = _interopRequireDefault(_geonames); @@ -22692,7 +22692,7 @@ module.exports = g; /***/ }), -/***/ 54: +/***/ 55: /***/ (function(module, exports, __webpack_require__) { "use strict"; diff --git a/Phraseanet-production-client/dist/authenticate.js b/Phraseanet-production-client/dist/authenticate.js index e657bc9a67..d4805c3103 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=25"; +/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=26"; /******/ var timeout = setTimeout(onScriptComplete, 120000); /******/ script.onerror = script.onload = onScriptComplete; /******/ function onScriptComplete() { @@ -3864,8 +3864,12 @@ var _changePassword = __webpack_require__(278); var _changePassword2 = _interopRequireDefault(_changePassword); +var _sprintfJs = __webpack_require__(45); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +__webpack_require__(279); // multiselect + /* * This file is part of Phraseanet * @@ -3875,8 +3879,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de * file that was distributed with this source code. */ -__webpack_require__(279); // multiselect - var authentication = function authentication(services) { var configService = services.configService, localeService = services.localeService, @@ -3900,12 +3902,10 @@ var authentication = function authentication(services) { selectAllText: localeService.t('all_collections'), buttonText: function buttonText(options, select) { if (options.length === 0) { - return localeService.t('no_collection_selected') + ''; + return localeService.t('no_collection_selected'); } else { - return localeService.t(options.length === 1 ? 'one_collection_selected' : 'collections_selected', { - postProcess: 'sprintf', - sprintf: [options.length] - }) + ' '; + + return (0, _sprintfJs.sprintf)(localeService.t(options.length === 1 ? 'one_collection_selected' : 'collections_selected'), options.length); } } }); @@ -4454,7 +4454,7 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _backbone = __webpack_require__(52); +var _backbone = __webpack_require__(53); var _backbone2 = _interopRequireDefault(_backbone); @@ -4531,7 +4531,7 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _backbone = __webpack_require__(52); +var _backbone = __webpack_require__(53); var _backbone2 = _interopRequireDefault(_backbone); @@ -4706,7 +4706,7 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _passwordSetter = __webpack_require__(53); +var _passwordSetter = __webpack_require__(54); var _passwordSetter2 = _interopRequireDefault(_passwordSetter); @@ -4729,7 +4729,7 @@ var renewPassword = function renewPassword(services) { var initialize = function initialize() { __webpack_require__.e/* require.ensure */(0/* duplicate */).then((function () { - services.zxcvbn = __webpack_require__(55); + services.zxcvbn = __webpack_require__(56); new _passwordSetter2.default({ services: services, el: (0, _jquery2.default)('form[name=passwordRenewForm]'), @@ -4777,11 +4777,11 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _passwordSetter = __webpack_require__(53); +var _passwordSetter = __webpack_require__(54); var _passwordSetter2 = _interopRequireDefault(_passwordSetter); -var _geonames = __webpack_require__(54); +var _geonames = __webpack_require__(55); var _geonames2 = _interopRequireDefault(_geonames); @@ -4871,7 +4871,7 @@ var regiser = function regiser(services) { var $form = (0, _jquery2.default)('form[name=registerForm]'); __webpack_require__.e/* require.ensure */(0/* duplicate */).then((function () { - services.zxcvbn = __webpack_require__(55); + services.zxcvbn = __webpack_require__(56); new _passwordSetter2.default({ el: $form, rules: rules, @@ -5109,7 +5109,7 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _passwordSetter = __webpack_require__(53); +var _passwordSetter = __webpack_require__(54); var _passwordSetter2 = _interopRequireDefault(_passwordSetter); @@ -5132,7 +5132,7 @@ var changePassword = function changePassword(services) { var initialize = function initialize() { __webpack_require__.e/* require.ensure */(0/* duplicate */).then((function () { - services.zxcvbn = __webpack_require__(55); + services.zxcvbn = __webpack_require__(56); new _passwordSetter2.default({ services: services, el: (0, _jquery2.default)('form[name=passwordChangeForm]'), @@ -25169,7 +25169,7 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _backbone = __webpack_require__(52); +var _backbone = __webpack_require__(53); var _backbone2 = _interopRequireDefault(_backbone); @@ -25266,6 +25266,232 @@ var Form = _backbone2.default.View.extend({ exports.default = Form; +/***/ }), + +/***/ 45: +/***/ (function(module, exports, __webpack_require__) { + +var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ + +!function() { + 'use strict' + + var re = { + not_string: /[^s]/, + not_bool: /[^t]/, + not_type: /[^T]/, + not_primitive: /[^v]/, + number: /[diefg]/, + numeric_arg: /[bcdiefguxX]/, + json: /[j]/, + not_json: /[^j]/, + text: /^[^\x25]+/, + modulo: /^\x25{2}/, + placeholder: /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, + key: /^([a-z_][a-z_\d]*)/i, + key_access: /^\.([a-z_][a-z_\d]*)/i, + index_access: /^\[(\d+)\]/, + sign: /^[\+\-]/ + } + + function sprintf(key) { + // `arguments` is not an array, but should be fine for this call + return sprintf_format(sprintf_parse(key), arguments) + } + + function vsprintf(fmt, argv) { + return sprintf.apply(null, [fmt].concat(argv || [])) + } + + function sprintf_format(parse_tree, argv) { + var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, match, pad, pad_character, pad_length, is_positive, sign + for (i = 0; i < tree_length; i++) { + if (typeof parse_tree[i] === 'string') { + output += parse_tree[i] + } + else if (Array.isArray(parse_tree[i])) { + match = parse_tree[i] // convenience purposes only + if (match[2]) { // keyword argument + arg = argv[cursor] + for (k = 0; k < match[2].length; k++) { + if (!arg.hasOwnProperty(match[2][k])) { + throw new Error(sprintf('[sprintf] property "%s" does not exist', match[2][k])) + } + arg = arg[match[2][k]] + } + } + else if (match[1]) { // positional argument (explicit) + arg = argv[match[1]] + } + else { // positional argument (implicit) + arg = argv[cursor++] + } + + if (re.not_type.test(match[8]) && re.not_primitive.test(match[8]) && arg instanceof Function) { + arg = arg() + } + + if (re.numeric_arg.test(match[8]) && (typeof arg !== 'number' && isNaN(arg))) { + throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) + } + + if (re.number.test(match[8])) { + is_positive = arg >= 0 + } + + switch (match[8]) { + case 'b': + arg = parseInt(arg, 10).toString(2) + break + case 'c': + arg = String.fromCharCode(parseInt(arg, 10)) + break + case 'd': + case 'i': + arg = parseInt(arg, 10) + break + case 'j': + arg = JSON.stringify(arg, null, match[6] ? parseInt(match[6]) : 0) + break + case 'e': + arg = match[7] ? parseFloat(arg).toExponential(match[7]) : parseFloat(arg).toExponential() + break + case 'f': + arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg) + break + case 'g': + arg = match[7] ? String(Number(arg.toPrecision(match[7]))) : parseFloat(arg) + break + case 'o': + arg = (parseInt(arg, 10) >>> 0).toString(8) + break + case 's': + arg = String(arg) + arg = (match[7] ? arg.substring(0, match[7]) : arg) + break + case 't': + arg = String(!!arg) + arg = (match[7] ? arg.substring(0, match[7]) : arg) + break + case 'T': + arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() + arg = (match[7] ? arg.substring(0, match[7]) : arg) + break + case 'u': + arg = parseInt(arg, 10) >>> 0 + break + case 'v': + arg = arg.valueOf() + arg = (match[7] ? arg.substring(0, match[7]) : arg) + break + case 'x': + arg = (parseInt(arg, 10) >>> 0).toString(16) + break + case 'X': + arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() + break + } + if (re.json.test(match[8])) { + output += arg + } + else { + if (re.number.test(match[8]) && (!is_positive || match[3])) { + sign = is_positive ? '+' : '-' + arg = arg.toString().replace(re.sign, '') + } + else { + sign = '' + } + pad_character = match[4] ? match[4] === '0' ? '0' : match[4].charAt(1) : ' ' + pad_length = match[6] - (sign + arg).length + pad = match[6] ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' + output += match[5] ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) + } + } + } + return output + } + + var sprintf_cache = Object.create(null) + + function sprintf_parse(fmt) { + if (sprintf_cache[fmt]) { + return sprintf_cache[fmt] + } + + var _fmt = fmt, match, parse_tree = [], arg_names = 0 + while (_fmt) { + if ((match = re.text.exec(_fmt)) !== null) { + parse_tree.push(match[0]) + } + else if ((match = re.modulo.exec(_fmt)) !== null) { + parse_tree.push('%') + } + else if ((match = re.placeholder.exec(_fmt)) !== null) { + if (match[2]) { + arg_names |= 1 + var field_list = [], replacement_field = match[2], field_match = [] + if ((field_match = re.key.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { + if ((field_match = re.key_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else if ((field_match = re.index_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + } + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + match[2] = field_list + } + else { + arg_names |= 2 + } + if (arg_names === 3) { + throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') + } + parse_tree.push(match) + } + else { + throw new SyntaxError('[sprintf] unexpected placeholder') + } + _fmt = _fmt.substring(match[0].length) + } + return sprintf_cache[fmt] = parse_tree + } + + /** + * export to either browser or node.js + */ + /* eslint-disable quote-props */ + if (true) { + exports['sprintf'] = sprintf + exports['vsprintf'] = vsprintf + } + if (typeof window !== 'undefined') { + window['sprintf'] = sprintf + window['vsprintf'] = vsprintf + + if (true) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { + return { + 'sprintf': sprintf, + 'vsprintf': vsprintf + } + }).call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) + } + } + /* eslint-enable quote-props */ +}() + + /***/ }), /***/ 5: @@ -25296,7 +25522,7 @@ module.exports = g; /***/ }), -/***/ 52: +/***/ 53: /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Backbone.js 1.3.3 @@ -27225,7 +27451,7 @@ module.exports = g; /***/ }), -/***/ 53: +/***/ 54: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -27322,7 +27548,7 @@ exports.default = PasswordSetterForm; /***/ }), -/***/ 54: +/***/ 55: /***/ (function(module, exports, __webpack_require__) { "use strict"; diff --git a/Phraseanet-production-client/dist/authenticate.min.js b/Phraseanet-production-client/dist/authenticate.min.js index 305907a74d..718ef22771 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=25"; +/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=26"; /******/ var timeout = setTimeout(onScriptComplete, 120000); /******/ script.onerror = script.onload = onScriptComplete; /******/ function onScriptComplete() { @@ -3864,8 +3864,12 @@ var _changePassword = __webpack_require__(278); var _changePassword2 = _interopRequireDefault(_changePassword); +var _sprintfJs = __webpack_require__(45); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +__webpack_require__(279); // multiselect + /* * This file is part of Phraseanet * @@ -3875,8 +3879,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de * file that was distributed with this source code. */ -__webpack_require__(279); // multiselect - var authentication = function authentication(services) { var configService = services.configService, localeService = services.localeService, @@ -3900,12 +3902,10 @@ var authentication = function authentication(services) { selectAllText: localeService.t('all_collections'), buttonText: function buttonText(options, select) { if (options.length === 0) { - return localeService.t('no_collection_selected') + ''; + return localeService.t('no_collection_selected'); } else { - return localeService.t(options.length === 1 ? 'one_collection_selected' : 'collections_selected', { - postProcess: 'sprintf', - sprintf: [options.length] - }) + ' '; + + return (0, _sprintfJs.sprintf)(localeService.t(options.length === 1 ? 'one_collection_selected' : 'collections_selected'), options.length); } } }); @@ -4454,7 +4454,7 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _backbone = __webpack_require__(52); +var _backbone = __webpack_require__(53); var _backbone2 = _interopRequireDefault(_backbone); @@ -4531,7 +4531,7 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _backbone = __webpack_require__(52); +var _backbone = __webpack_require__(53); var _backbone2 = _interopRequireDefault(_backbone); @@ -4706,7 +4706,7 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _passwordSetter = __webpack_require__(53); +var _passwordSetter = __webpack_require__(54); var _passwordSetter2 = _interopRequireDefault(_passwordSetter); @@ -4729,7 +4729,7 @@ var renewPassword = function renewPassword(services) { var initialize = function initialize() { __webpack_require__.e/* require.ensure */(0/* duplicate */).then((function () { - services.zxcvbn = __webpack_require__(55); + services.zxcvbn = __webpack_require__(56); new _passwordSetter2.default({ services: services, el: (0, _jquery2.default)('form[name=passwordRenewForm]'), @@ -4777,11 +4777,11 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _passwordSetter = __webpack_require__(53); +var _passwordSetter = __webpack_require__(54); var _passwordSetter2 = _interopRequireDefault(_passwordSetter); -var _geonames = __webpack_require__(54); +var _geonames = __webpack_require__(55); var _geonames2 = _interopRequireDefault(_geonames); @@ -4871,7 +4871,7 @@ var regiser = function regiser(services) { var $form = (0, _jquery2.default)('form[name=registerForm]'); __webpack_require__.e/* require.ensure */(0/* duplicate */).then((function () { - services.zxcvbn = __webpack_require__(55); + services.zxcvbn = __webpack_require__(56); new _passwordSetter2.default({ el: $form, rules: rules, @@ -5109,7 +5109,7 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _passwordSetter = __webpack_require__(53); +var _passwordSetter = __webpack_require__(54); var _passwordSetter2 = _interopRequireDefault(_passwordSetter); @@ -5132,7 +5132,7 @@ var changePassword = function changePassword(services) { var initialize = function initialize() { __webpack_require__.e/* require.ensure */(0/* duplicate */).then((function () { - services.zxcvbn = __webpack_require__(55); + services.zxcvbn = __webpack_require__(56); new _passwordSetter2.default({ services: services, el: (0, _jquery2.default)('form[name=passwordChangeForm]'), @@ -25169,7 +25169,7 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _backbone = __webpack_require__(52); +var _backbone = __webpack_require__(53); var _backbone2 = _interopRequireDefault(_backbone); @@ -25266,6 +25266,232 @@ var Form = _backbone2.default.View.extend({ exports.default = Form; +/***/ }), + +/***/ 45: +/***/ (function(module, exports, __webpack_require__) { + +var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ + +!function() { + 'use strict' + + var re = { + not_string: /[^s]/, + not_bool: /[^t]/, + not_type: /[^T]/, + not_primitive: /[^v]/, + number: /[diefg]/, + numeric_arg: /[bcdiefguxX]/, + json: /[j]/, + not_json: /[^j]/, + text: /^[^\x25]+/, + modulo: /^\x25{2}/, + placeholder: /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, + key: /^([a-z_][a-z_\d]*)/i, + key_access: /^\.([a-z_][a-z_\d]*)/i, + index_access: /^\[(\d+)\]/, + sign: /^[\+\-]/ + } + + function sprintf(key) { + // `arguments` is not an array, but should be fine for this call + return sprintf_format(sprintf_parse(key), arguments) + } + + function vsprintf(fmt, argv) { + return sprintf.apply(null, [fmt].concat(argv || [])) + } + + function sprintf_format(parse_tree, argv) { + var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, match, pad, pad_character, pad_length, is_positive, sign + for (i = 0; i < tree_length; i++) { + if (typeof parse_tree[i] === 'string') { + output += parse_tree[i] + } + else if (Array.isArray(parse_tree[i])) { + match = parse_tree[i] // convenience purposes only + if (match[2]) { // keyword argument + arg = argv[cursor] + for (k = 0; k < match[2].length; k++) { + if (!arg.hasOwnProperty(match[2][k])) { + throw new Error(sprintf('[sprintf] property "%s" does not exist', match[2][k])) + } + arg = arg[match[2][k]] + } + } + else if (match[1]) { // positional argument (explicit) + arg = argv[match[1]] + } + else { // positional argument (implicit) + arg = argv[cursor++] + } + + if (re.not_type.test(match[8]) && re.not_primitive.test(match[8]) && arg instanceof Function) { + arg = arg() + } + + if (re.numeric_arg.test(match[8]) && (typeof arg !== 'number' && isNaN(arg))) { + throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) + } + + if (re.number.test(match[8])) { + is_positive = arg >= 0 + } + + switch (match[8]) { + case 'b': + arg = parseInt(arg, 10).toString(2) + break + case 'c': + arg = String.fromCharCode(parseInt(arg, 10)) + break + case 'd': + case 'i': + arg = parseInt(arg, 10) + break + case 'j': + arg = JSON.stringify(arg, null, match[6] ? parseInt(match[6]) : 0) + break + case 'e': + arg = match[7] ? parseFloat(arg).toExponential(match[7]) : parseFloat(arg).toExponential() + break + case 'f': + arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg) + break + case 'g': + arg = match[7] ? String(Number(arg.toPrecision(match[7]))) : parseFloat(arg) + break + case 'o': + arg = (parseInt(arg, 10) >>> 0).toString(8) + break + case 's': + arg = String(arg) + arg = (match[7] ? arg.substring(0, match[7]) : arg) + break + case 't': + arg = String(!!arg) + arg = (match[7] ? arg.substring(0, match[7]) : arg) + break + case 'T': + arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() + arg = (match[7] ? arg.substring(0, match[7]) : arg) + break + case 'u': + arg = parseInt(arg, 10) >>> 0 + break + case 'v': + arg = arg.valueOf() + arg = (match[7] ? arg.substring(0, match[7]) : arg) + break + case 'x': + arg = (parseInt(arg, 10) >>> 0).toString(16) + break + case 'X': + arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() + break + } + if (re.json.test(match[8])) { + output += arg + } + else { + if (re.number.test(match[8]) && (!is_positive || match[3])) { + sign = is_positive ? '+' : '-' + arg = arg.toString().replace(re.sign, '') + } + else { + sign = '' + } + pad_character = match[4] ? match[4] === '0' ? '0' : match[4].charAt(1) : ' ' + pad_length = match[6] - (sign + arg).length + pad = match[6] ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' + output += match[5] ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) + } + } + } + return output + } + + var sprintf_cache = Object.create(null) + + function sprintf_parse(fmt) { + if (sprintf_cache[fmt]) { + return sprintf_cache[fmt] + } + + var _fmt = fmt, match, parse_tree = [], arg_names = 0 + while (_fmt) { + if ((match = re.text.exec(_fmt)) !== null) { + parse_tree.push(match[0]) + } + else if ((match = re.modulo.exec(_fmt)) !== null) { + parse_tree.push('%') + } + else if ((match = re.placeholder.exec(_fmt)) !== null) { + if (match[2]) { + arg_names |= 1 + var field_list = [], replacement_field = match[2], field_match = [] + if ((field_match = re.key.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { + if ((field_match = re.key_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else if ((field_match = re.index_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + } + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + match[2] = field_list + } + else { + arg_names |= 2 + } + if (arg_names === 3) { + throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') + } + parse_tree.push(match) + } + else { + throw new SyntaxError('[sprintf] unexpected placeholder') + } + _fmt = _fmt.substring(match[0].length) + } + return sprintf_cache[fmt] = parse_tree + } + + /** + * export to either browser or node.js + */ + /* eslint-disable quote-props */ + if (true) { + exports['sprintf'] = sprintf + exports['vsprintf'] = vsprintf + } + if (typeof window !== 'undefined') { + window['sprintf'] = sprintf + window['vsprintf'] = vsprintf + + if (true) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { + return { + 'sprintf': sprintf, + 'vsprintf': vsprintf + } + }).call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) + } + } + /* eslint-enable quote-props */ +}() + + /***/ }), /***/ 5: @@ -25296,7 +25522,7 @@ module.exports = g; /***/ }), -/***/ 52: +/***/ 53: /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Backbone.js 1.3.3 @@ -27225,7 +27451,7 @@ module.exports = g; /***/ }), -/***/ 53: +/***/ 54: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -27322,7 +27548,7 @@ exports.default = PasswordSetterForm; /***/ }), -/***/ 54: +/***/ 55: /***/ (function(module, exports, __webpack_require__) { "use strict"; diff --git a/Phraseanet-production-client/dist/commons.js b/Phraseanet-production-client/dist/commons.js index 2af9569c5d..fa3126a0df 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=25"; +/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=26"; /******/ var timeout = setTimeout(onScriptComplete, 120000); /******/ script.onerror = script.onload = onScriptComplete; /******/ function onScriptComplete() { @@ -37409,7 +37409,8 @@ $.widget( "ui.tooltip", { /* 53 */, /* 54 */, /* 55 */, -/* 56 */ +/* 56 */, +/* 57 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -37540,7 +37541,6 @@ var utilsModule = function () { exports.default = utilsModule; /***/ }), -/* 57 */, /* 58 */, /* 59 */, /* 60 */, diff --git a/Phraseanet-production-client/dist/commons.min.js b/Phraseanet-production-client/dist/commons.min.js index 69e6060aac..a8f84b0b04 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=25"; +/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=26"; /******/ var timeout = setTimeout(onScriptComplete, 120000); /******/ script.onerror = script.onload = onScriptComplete; /******/ function onScriptComplete() { @@ -37409,7 +37409,8 @@ $.widget( "ui.tooltip", { /* 53 */, /* 54 */, /* 55 */, -/* 56 */ +/* 56 */, +/* 57 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -37540,7 +37541,6 @@ var utilsModule = function () { exports.default = utilsModule; /***/ }), -/* 57 */, /* 58 */, /* 59 */, /* 60 */, diff --git a/Phraseanet-production-client/dist/lazy-0.js b/Phraseanet-production-client/dist/lazy-0.js index f8629ab13c..f93fe61fba 100644 --- a/Phraseanet-production-client/dist/lazy-0.js +++ b/Phraseanet-production-client/dist/lazy-0.js @@ -1641,7 +1641,7 @@ module.exports = feedback; /***/ }), -/***/ 55: +/***/ 56: /***/ (function(module, exports, __webpack_require__) { // Generated by CoffeeScript 1.10.0 diff --git a/Phraseanet-production-client/dist/lazy-0.min.js b/Phraseanet-production-client/dist/lazy-0.min.js index f8629ab13c..f93fe61fba 100644 --- a/Phraseanet-production-client/dist/lazy-0.min.js +++ b/Phraseanet-production-client/dist/lazy-0.min.js @@ -1641,7 +1641,7 @@ module.exports = feedback; /***/ }), -/***/ 55: +/***/ 56: /***/ (function(module, exports, __webpack_require__) { // Generated by CoffeeScript 1.10.0 diff --git a/Phraseanet-production-client/dist/lazy-1.js b/Phraseanet-production-client/dist/lazy-1.js index 58eb5517fe..923ffc3444 100644 --- a/Phraseanet-production-client/dist/lazy-1.js +++ b/Phraseanet-production-client/dist/lazy-1.js @@ -48859,7 +48859,7 @@ var _rangeItem2 = _interopRequireDefault(_rangeItem); var _utils = __webpack_require__(314); -var _alert = __webpack_require__(46); +var _alert = __webpack_require__(47); var _alert2 = _interopRequireDefault(_alert); diff --git a/Phraseanet-production-client/dist/lazy-1.min.js b/Phraseanet-production-client/dist/lazy-1.min.js index 58eb5517fe..923ffc3444 100644 --- a/Phraseanet-production-client/dist/lazy-1.min.js +++ b/Phraseanet-production-client/dist/lazy-1.min.js @@ -48859,7 +48859,7 @@ var _rangeItem2 = _interopRequireDefault(_rangeItem); var _utils = __webpack_require__(314); -var _alert = __webpack_require__(46); +var _alert = __webpack_require__(47); var _alert2 = _interopRequireDefault(_alert); diff --git a/Phraseanet-production-client/dist/lightbox.js b/Phraseanet-production-client/dist/lightbox.js index 6717513e42..4eef6fcb31 100644 --- a/Phraseanet-production-client/dist/lightbox.js +++ b/Phraseanet-production-client/dist/lightbox.js @@ -223,7 +223,7 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _utils = __webpack_require__(56); +var _utils = __webpack_require__(57); var _utils2 = _interopRequireDefault(_utils); diff --git a/Phraseanet-production-client/dist/lightbox.min.js b/Phraseanet-production-client/dist/lightbox.min.js index 6717513e42..4eef6fcb31 100644 --- a/Phraseanet-production-client/dist/lightbox.min.js +++ b/Phraseanet-production-client/dist/lightbox.min.js @@ -223,7 +223,7 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _utils = __webpack_require__(56); +var _utils = __webpack_require__(57); var _utils2 = _interopRequireDefault(_utils); diff --git a/Phraseanet-production-client/dist/production.js b/Phraseanet-production-client/dist/production.js index a1c4229b6d..2d946bbc7a 100644 --- a/Phraseanet-production-client/dist/production.js +++ b/Phraseanet-production-client/dist/production.js @@ -44,11 +44,11 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); -var _user = __webpack_require__(47); +var _user = __webpack_require__(48); var _user2 = _interopRequireDefault(_user); -var _utils = __webpack_require__(56); +var _utils = __webpack_require__(57); var _utils2 = _interopRequireDefault(_utils); @@ -1272,6 +1272,231 @@ module.exports = win; /* 45 */ /***/ (function(module, exports, __webpack_require__) { +var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ + +!function() { + 'use strict' + + var re = { + not_string: /[^s]/, + not_bool: /[^t]/, + not_type: /[^T]/, + not_primitive: /[^v]/, + number: /[diefg]/, + numeric_arg: /[bcdiefguxX]/, + json: /[j]/, + not_json: /[^j]/, + text: /^[^\x25]+/, + modulo: /^\x25{2}/, + placeholder: /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, + key: /^([a-z_][a-z_\d]*)/i, + key_access: /^\.([a-z_][a-z_\d]*)/i, + index_access: /^\[(\d+)\]/, + sign: /^[\+\-]/ + } + + function sprintf(key) { + // `arguments` is not an array, but should be fine for this call + return sprintf_format(sprintf_parse(key), arguments) + } + + function vsprintf(fmt, argv) { + return sprintf.apply(null, [fmt].concat(argv || [])) + } + + function sprintf_format(parse_tree, argv) { + var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, match, pad, pad_character, pad_length, is_positive, sign + for (i = 0; i < tree_length; i++) { + if (typeof parse_tree[i] === 'string') { + output += parse_tree[i] + } + else if (Array.isArray(parse_tree[i])) { + match = parse_tree[i] // convenience purposes only + if (match[2]) { // keyword argument + arg = argv[cursor] + for (k = 0; k < match[2].length; k++) { + if (!arg.hasOwnProperty(match[2][k])) { + throw new Error(sprintf('[sprintf] property "%s" does not exist', match[2][k])) + } + arg = arg[match[2][k]] + } + } + else if (match[1]) { // positional argument (explicit) + arg = argv[match[1]] + } + else { // positional argument (implicit) + arg = argv[cursor++] + } + + if (re.not_type.test(match[8]) && re.not_primitive.test(match[8]) && arg instanceof Function) { + arg = arg() + } + + if (re.numeric_arg.test(match[8]) && (typeof arg !== 'number' && isNaN(arg))) { + throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) + } + + if (re.number.test(match[8])) { + is_positive = arg >= 0 + } + + switch (match[8]) { + case 'b': + arg = parseInt(arg, 10).toString(2) + break + case 'c': + arg = String.fromCharCode(parseInt(arg, 10)) + break + case 'd': + case 'i': + arg = parseInt(arg, 10) + break + case 'j': + arg = JSON.stringify(arg, null, match[6] ? parseInt(match[6]) : 0) + break + case 'e': + arg = match[7] ? parseFloat(arg).toExponential(match[7]) : parseFloat(arg).toExponential() + break + case 'f': + arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg) + break + case 'g': + arg = match[7] ? String(Number(arg.toPrecision(match[7]))) : parseFloat(arg) + break + case 'o': + arg = (parseInt(arg, 10) >>> 0).toString(8) + break + case 's': + arg = String(arg) + arg = (match[7] ? arg.substring(0, match[7]) : arg) + break + case 't': + arg = String(!!arg) + arg = (match[7] ? arg.substring(0, match[7]) : arg) + break + case 'T': + arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() + arg = (match[7] ? arg.substring(0, match[7]) : arg) + break + case 'u': + arg = parseInt(arg, 10) >>> 0 + break + case 'v': + arg = arg.valueOf() + arg = (match[7] ? arg.substring(0, match[7]) : arg) + break + case 'x': + arg = (parseInt(arg, 10) >>> 0).toString(16) + break + case 'X': + arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() + break + } + if (re.json.test(match[8])) { + output += arg + } + else { + if (re.number.test(match[8]) && (!is_positive || match[3])) { + sign = is_positive ? '+' : '-' + arg = arg.toString().replace(re.sign, '') + } + else { + sign = '' + } + pad_character = match[4] ? match[4] === '0' ? '0' : match[4].charAt(1) : ' ' + pad_length = match[6] - (sign + arg).length + pad = match[6] ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' + output += match[5] ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) + } + } + } + return output + } + + var sprintf_cache = Object.create(null) + + function sprintf_parse(fmt) { + if (sprintf_cache[fmt]) { + return sprintf_cache[fmt] + } + + var _fmt = fmt, match, parse_tree = [], arg_names = 0 + while (_fmt) { + if ((match = re.text.exec(_fmt)) !== null) { + parse_tree.push(match[0]) + } + else if ((match = re.modulo.exec(_fmt)) !== null) { + parse_tree.push('%') + } + else if ((match = re.placeholder.exec(_fmt)) !== null) { + if (match[2]) { + arg_names |= 1 + var field_list = [], replacement_field = match[2], field_match = [] + if ((field_match = re.key.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { + if ((field_match = re.key_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else if ((field_match = re.index_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + } + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + match[2] = field_list + } + else { + arg_names |= 2 + } + if (arg_names === 3) { + throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') + } + parse_tree.push(match) + } + else { + throw new SyntaxError('[sprintf] unexpected placeholder') + } + _fmt = _fmt.substring(match[0].length) + } + return sprintf_cache[fmt] = parse_tree + } + + /** + * export to either browser or node.js + */ + /* eslint-disable quote-props */ + if (true) { + exports['sprintf'] = sprintf + exports['vsprintf'] = vsprintf + } + if (typeof window !== 'undefined') { + window['sprintf'] = sprintf + window['vsprintf'] = vsprintf + + if (true) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { + return { + 'sprintf': sprintf, + 'vsprintf': vsprintf + } + }).call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) + } + } + /* eslint-enable quote-props */ +}() + + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + "use strict"; @@ -1287,7 +1512,7 @@ module.exports = { /***/ }), -/* 46 */ +/* 47 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1353,7 +1578,7 @@ var Alerts = alert; exports.default = Alerts; /***/ }), -/* 47 */ +/* 48 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1409,7 +1634,7 @@ function setPref(name, value) { exports.default = { setPref: setPref }; /***/ }), -/* 48 */ +/* 49 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1421,7 +1646,7 @@ module.exports = Function.prototype.bind || implementation; /***/ }), -/* 49 */ +/* 50 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1465,7 +1690,7 @@ module.exports = function isCallable(value) { /***/ }), -/* 50 */ +/* 51 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2675,7 +2900,7 @@ var leafletMap = function leafletMap(services) { exports.default = leafletMap; /***/ }), -/* 51 */ +/* 52 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2791,12 +3016,12 @@ var FieldCollection = function () { exports.default = FieldCollection; /***/ }), -/* 52 */, /* 53 */, /* 54 */, /* 55 */, /* 56 */, -/* 57 */ +/* 57 */, +/* 58 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2816,7 +3041,7 @@ var _dialog2 = _interopRequireDefault(_dialog); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var lazyload = __webpack_require__(58); +var lazyload = __webpack_require__(59); var publication = function publication(services) { @@ -3259,7 +3484,7 @@ var publication = function publication(services) { exports.default = publication; /***/ }), -/* 58 */ +/* 59 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(jQuery) {/*** IMPORTS FROM imports-loader ***/ @@ -3511,231 +3736,6 @@ exports.default = publication; }.call(window)); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) -/***/ }), -/* 59 */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ - -!function() { - 'use strict' - - var re = { - not_string: /[^s]/, - not_bool: /[^t]/, - not_type: /[^T]/, - not_primitive: /[^v]/, - number: /[diefg]/, - numeric_arg: /[bcdiefguxX]/, - json: /[j]/, - not_json: /[^j]/, - text: /^[^\x25]+/, - modulo: /^\x25{2}/, - placeholder: /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, - key: /^([a-z_][a-z_\d]*)/i, - key_access: /^\.([a-z_][a-z_\d]*)/i, - index_access: /^\[(\d+)\]/, - sign: /^[\+\-]/ - } - - function sprintf(key) { - // `arguments` is not an array, but should be fine for this call - return sprintf_format(sprintf_parse(key), arguments) - } - - function vsprintf(fmt, argv) { - return sprintf.apply(null, [fmt].concat(argv || [])) - } - - function sprintf_format(parse_tree, argv) { - var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, match, pad, pad_character, pad_length, is_positive, sign - for (i = 0; i < tree_length; i++) { - if (typeof parse_tree[i] === 'string') { - output += parse_tree[i] - } - else if (Array.isArray(parse_tree[i])) { - match = parse_tree[i] // convenience purposes only - if (match[2]) { // keyword argument - arg = argv[cursor] - for (k = 0; k < match[2].length; k++) { - if (!arg.hasOwnProperty(match[2][k])) { - throw new Error(sprintf('[sprintf] property "%s" does not exist', match[2][k])) - } - arg = arg[match[2][k]] - } - } - else if (match[1]) { // positional argument (explicit) - arg = argv[match[1]] - } - else { // positional argument (implicit) - arg = argv[cursor++] - } - - if (re.not_type.test(match[8]) && re.not_primitive.test(match[8]) && arg instanceof Function) { - arg = arg() - } - - if (re.numeric_arg.test(match[8]) && (typeof arg !== 'number' && isNaN(arg))) { - throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) - } - - if (re.number.test(match[8])) { - is_positive = arg >= 0 - } - - switch (match[8]) { - case 'b': - arg = parseInt(arg, 10).toString(2) - break - case 'c': - arg = String.fromCharCode(parseInt(arg, 10)) - break - case 'd': - case 'i': - arg = parseInt(arg, 10) - break - case 'j': - arg = JSON.stringify(arg, null, match[6] ? parseInt(match[6]) : 0) - break - case 'e': - arg = match[7] ? parseFloat(arg).toExponential(match[7]) : parseFloat(arg).toExponential() - break - case 'f': - arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg) - break - case 'g': - arg = match[7] ? String(Number(arg.toPrecision(match[7]))) : parseFloat(arg) - break - case 'o': - arg = (parseInt(arg, 10) >>> 0).toString(8) - break - case 's': - arg = String(arg) - arg = (match[7] ? arg.substring(0, match[7]) : arg) - break - case 't': - arg = String(!!arg) - arg = (match[7] ? arg.substring(0, match[7]) : arg) - break - case 'T': - arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() - arg = (match[7] ? arg.substring(0, match[7]) : arg) - break - case 'u': - arg = parseInt(arg, 10) >>> 0 - break - case 'v': - arg = arg.valueOf() - arg = (match[7] ? arg.substring(0, match[7]) : arg) - break - case 'x': - arg = (parseInt(arg, 10) >>> 0).toString(16) - break - case 'X': - arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() - break - } - if (re.json.test(match[8])) { - output += arg - } - else { - if (re.number.test(match[8]) && (!is_positive || match[3])) { - sign = is_positive ? '+' : '-' - arg = arg.toString().replace(re.sign, '') - } - else { - sign = '' - } - pad_character = match[4] ? match[4] === '0' ? '0' : match[4].charAt(1) : ' ' - pad_length = match[6] - (sign + arg).length - pad = match[6] ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' - output += match[5] ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) - } - } - } - return output - } - - var sprintf_cache = Object.create(null) - - function sprintf_parse(fmt) { - if (sprintf_cache[fmt]) { - return sprintf_cache[fmt] - } - - var _fmt = fmt, match, parse_tree = [], arg_names = 0 - while (_fmt) { - if ((match = re.text.exec(_fmt)) !== null) { - parse_tree.push(match[0]) - } - else if ((match = re.modulo.exec(_fmt)) !== null) { - parse_tree.push('%') - } - else if ((match = re.placeholder.exec(_fmt)) !== null) { - if (match[2]) { - arg_names |= 1 - var field_list = [], replacement_field = match[2], field_match = [] - if ((field_match = re.key.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { - if ((field_match = re.key_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else if ((field_match = re.index_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - } - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - match[2] = field_list - } - else { - arg_names |= 2 - } - if (arg_names === 3) { - throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') - } - parse_tree.push(match) - } - else { - throw new SyntaxError('[sprintf] unexpected placeholder') - } - _fmt = _fmt.substring(match[0].length) - } - return sprintf_cache[fmt] = parse_tree - } - - /** - * export to either browser or node.js - */ - /* eslint-disable quote-props */ - if (true) { - exports['sprintf'] = sprintf - exports['vsprintf'] = vsprintf - } - if (typeof window !== 'undefined') { - window['sprintf'] = sprintf - window['vsprintf'] = vsprintf - - if (true) { - !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { - return { - 'sprintf': sprintf, - 'vsprintf': vsprintf - } - }).call(exports, __webpack_require__, exports, module), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) - } - } - /* eslint-enable quote-props */ -}() - - /***/ }), /* 60 */ /***/ (function(module, exports, __webpack_require__) { @@ -4368,7 +4368,7 @@ var _recordPreview = __webpack_require__(231); var _recordPreview2 = _interopRequireDefault(_recordPreview); -var _alert = __webpack_require__(46); +var _alert = __webpack_require__(47); var _alert2 = _interopRequireDefault(_alert); @@ -6508,7 +6508,7 @@ module.exports = defineProperties; "use strict"; -var bind = __webpack_require__(48); +var bind = __webpack_require__(49); var ES = __webpack_require__(131); var replace = bind.call(Function.call, String.prototype.replace); @@ -6631,7 +6631,7 @@ module.exports = createBrowserClient; var parseToken = __webpack_require__(70); var MapiRequest = __webpack_require__(167); -var constants = __webpack_require__(45); +var constants = __webpack_require__(46); /** * A low-level Mapbox API client. Use it to create service clients @@ -9527,7 +9527,7 @@ var _phraseanetCommon = __webpack_require__(11); var AppCommons = _interopRequireWildcard(_phraseanetCommon); -var _publication = __webpack_require__(57); +var _publication = __webpack_require__(58); var _publication2 = _interopRequireDefault(_publication); @@ -9904,7 +9904,7 @@ var _selectable = __webpack_require__(22); var _selectable2 = _interopRequireDefault(_selectable); -var _alert = __webpack_require__(46); +var _alert = __webpack_require__(47); var _alert2 = _interopRequireDefault(_alert); @@ -11480,7 +11480,7 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _sprintfJs = __webpack_require__(59); +var _sprintfJs = __webpack_require__(45); var _phraseanetCommon = __webpack_require__(11); @@ -19946,7 +19946,7 @@ var appCommons = _interopRequireWildcard(_phraseanetCommon); var _utils = __webpack_require__(42); -var _sprintfJs = __webpack_require__(59); +var _sprintfJs = __webpack_require__(45); var _layout = __webpack_require__(118); @@ -19972,7 +19972,7 @@ var _geonameDatasource = __webpack_require__(148); var _geonameDatasource2 = _interopRequireDefault(_geonameDatasource); -var _mapbox = __webpack_require__(50); +var _mapbox = __webpack_require__(51); var _mapbox2 = _interopRequireDefault(_mapbox); @@ -19984,7 +19984,7 @@ var _recordCollection = __webpack_require__(200); var _recordCollection2 = _interopRequireDefault(_recordCollection); -var _fieldCollection = __webpack_require__(51); +var _fieldCollection = __webpack_require__(52); var _fieldCollection2 = _interopRequireDefault(_fieldCollection); @@ -47958,7 +47958,7 @@ module.exports = function (headers) { "use strict"; -var bind = __webpack_require__(48); +var bind = __webpack_require__(49); var define = __webpack_require__(64); var implementation = __webpack_require__(65); @@ -48226,7 +48226,7 @@ var $isFinite = __webpack_require__(134); var sign = __webpack_require__(135); var mod = __webpack_require__(136); -var IsCallable = __webpack_require__(49); +var IsCallable = __webpack_require__(50); var toPrimitive = __webpack_require__(137); var has = __webpack_require__(139); @@ -48688,7 +48688,7 @@ var toStr = Object.prototype.toString; var isPrimitive = __webpack_require__(138); -var isCallable = __webpack_require__(49); +var isCallable = __webpack_require__(50); // https://es5.github.io/#x8.12 var ES5internalSlots = { @@ -48737,7 +48737,7 @@ module.exports = function isPrimitive(value) { "use strict"; -var bind = __webpack_require__(48); +var bind = __webpack_require__(49); module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); @@ -48766,7 +48766,7 @@ module.exports = function shimStringTrim() { "use strict"; -var isCallable = __webpack_require__(49); +var isCallable = __webpack_require__(50); var toStr = Object.prototype.toString; var hasOwnProperty = Object.prototype.hasOwnProperty; @@ -53877,7 +53877,7 @@ module.exports = client; var MapiResponse = __webpack_require__(162); var MapiError = __webpack_require__(164); -var constants = __webpack_require__(45); +var constants = __webpack_require__(46); var parseHeaders = __webpack_require__(165); // Keys are request IDs, values are XHRs. @@ -54156,7 +54156,7 @@ module.exports = parseLinkHeader; "use strict"; -var constants = __webpack_require__(45); +var constants = __webpack_require__(46); /** * A Mapbox API error. @@ -54452,7 +54452,7 @@ var parseToken = __webpack_require__(70); var xtend = __webpack_require__(37); var EventEmitter = __webpack_require__(168); var urlUtils = __webpack_require__(169); -var constants = __webpack_require__(45); +var constants = __webpack_require__(46); var requestId = 1; @@ -59284,7 +59284,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _fieldCollection = __webpack_require__(51); +var _fieldCollection = __webpack_require__(52); var _fieldCollection2 = _interopRequireDefault(_fieldCollection); @@ -62010,7 +62010,7 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); -var _publication = __webpack_require__(57); +var _publication = __webpack_require__(58); var _publication2 = _interopRequireDefault(_publication); @@ -63402,7 +63402,7 @@ var _videojsFlash = __webpack_require__(63); var _videojsFlash2 = _interopRequireDefault(_videojsFlash); -var _fieldCollection = __webpack_require__(51); +var _fieldCollection = __webpack_require__(52); var _fieldCollection2 = _interopRequireDefault(_fieldCollection); @@ -65940,7 +65940,7 @@ var _emitter = __webpack_require__(15); var _emitter2 = _interopRequireDefault(_emitter); -var _mapbox = __webpack_require__(50); +var _mapbox = __webpack_require__(51); var _mapbox2 = _interopRequireDefault(_mapbox); @@ -66962,7 +66962,7 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); -var _alert = __webpack_require__(46); +var _alert = __webpack_require__(47); var _alert2 = _interopRequireDefault(_alert); @@ -67699,7 +67699,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } -var lazyload = __webpack_require__(58); +var lazyload = __webpack_require__(59); __webpack_require__(14); __webpack_require__(19); @@ -68391,7 +68391,7 @@ var _resultInfos = __webpack_require__(80); var _resultInfos2 = _interopRequireDefault(_resultInfos); -var _user = __webpack_require__(47); +var _user = __webpack_require__(48); var _user2 = _interopRequireDefault(_user); @@ -68594,7 +68594,7 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _user = __webpack_require__(47); +var _user = __webpack_require__(48); var _user2 = _interopRequireDefault(_user); @@ -69247,7 +69247,7 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); -var _mapbox = __webpack_require__(50); +var _mapbox = __webpack_require__(51); var _mapbox2 = _interopRequireDefault(_mapbox); diff --git a/Phraseanet-production-client/dist/production.min.js b/Phraseanet-production-client/dist/production.min.js index a1c4229b6d..2d946bbc7a 100644 --- a/Phraseanet-production-client/dist/production.min.js +++ b/Phraseanet-production-client/dist/production.min.js @@ -44,11 +44,11 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); -var _user = __webpack_require__(47); +var _user = __webpack_require__(48); var _user2 = _interopRequireDefault(_user); -var _utils = __webpack_require__(56); +var _utils = __webpack_require__(57); var _utils2 = _interopRequireDefault(_utils); @@ -1272,6 +1272,231 @@ module.exports = win; /* 45 */ /***/ (function(module, exports, __webpack_require__) { +var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ + +!function() { + 'use strict' + + var re = { + not_string: /[^s]/, + not_bool: /[^t]/, + not_type: /[^T]/, + not_primitive: /[^v]/, + number: /[diefg]/, + numeric_arg: /[bcdiefguxX]/, + json: /[j]/, + not_json: /[^j]/, + text: /^[^\x25]+/, + modulo: /^\x25{2}/, + placeholder: /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, + key: /^([a-z_][a-z_\d]*)/i, + key_access: /^\.([a-z_][a-z_\d]*)/i, + index_access: /^\[(\d+)\]/, + sign: /^[\+\-]/ + } + + function sprintf(key) { + // `arguments` is not an array, but should be fine for this call + return sprintf_format(sprintf_parse(key), arguments) + } + + function vsprintf(fmt, argv) { + return sprintf.apply(null, [fmt].concat(argv || [])) + } + + function sprintf_format(parse_tree, argv) { + var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, match, pad, pad_character, pad_length, is_positive, sign + for (i = 0; i < tree_length; i++) { + if (typeof parse_tree[i] === 'string') { + output += parse_tree[i] + } + else if (Array.isArray(parse_tree[i])) { + match = parse_tree[i] // convenience purposes only + if (match[2]) { // keyword argument + arg = argv[cursor] + for (k = 0; k < match[2].length; k++) { + if (!arg.hasOwnProperty(match[2][k])) { + throw new Error(sprintf('[sprintf] property "%s" does not exist', match[2][k])) + } + arg = arg[match[2][k]] + } + } + else if (match[1]) { // positional argument (explicit) + arg = argv[match[1]] + } + else { // positional argument (implicit) + arg = argv[cursor++] + } + + if (re.not_type.test(match[8]) && re.not_primitive.test(match[8]) && arg instanceof Function) { + arg = arg() + } + + if (re.numeric_arg.test(match[8]) && (typeof arg !== 'number' && isNaN(arg))) { + throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) + } + + if (re.number.test(match[8])) { + is_positive = arg >= 0 + } + + switch (match[8]) { + case 'b': + arg = parseInt(arg, 10).toString(2) + break + case 'c': + arg = String.fromCharCode(parseInt(arg, 10)) + break + case 'd': + case 'i': + arg = parseInt(arg, 10) + break + case 'j': + arg = JSON.stringify(arg, null, match[6] ? parseInt(match[6]) : 0) + break + case 'e': + arg = match[7] ? parseFloat(arg).toExponential(match[7]) : parseFloat(arg).toExponential() + break + case 'f': + arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg) + break + case 'g': + arg = match[7] ? String(Number(arg.toPrecision(match[7]))) : parseFloat(arg) + break + case 'o': + arg = (parseInt(arg, 10) >>> 0).toString(8) + break + case 's': + arg = String(arg) + arg = (match[7] ? arg.substring(0, match[7]) : arg) + break + case 't': + arg = String(!!arg) + arg = (match[7] ? arg.substring(0, match[7]) : arg) + break + case 'T': + arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() + arg = (match[7] ? arg.substring(0, match[7]) : arg) + break + case 'u': + arg = parseInt(arg, 10) >>> 0 + break + case 'v': + arg = arg.valueOf() + arg = (match[7] ? arg.substring(0, match[7]) : arg) + break + case 'x': + arg = (parseInt(arg, 10) >>> 0).toString(16) + break + case 'X': + arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() + break + } + if (re.json.test(match[8])) { + output += arg + } + else { + if (re.number.test(match[8]) && (!is_positive || match[3])) { + sign = is_positive ? '+' : '-' + arg = arg.toString().replace(re.sign, '') + } + else { + sign = '' + } + pad_character = match[4] ? match[4] === '0' ? '0' : match[4].charAt(1) : ' ' + pad_length = match[6] - (sign + arg).length + pad = match[6] ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' + output += match[5] ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) + } + } + } + return output + } + + var sprintf_cache = Object.create(null) + + function sprintf_parse(fmt) { + if (sprintf_cache[fmt]) { + return sprintf_cache[fmt] + } + + var _fmt = fmt, match, parse_tree = [], arg_names = 0 + while (_fmt) { + if ((match = re.text.exec(_fmt)) !== null) { + parse_tree.push(match[0]) + } + else if ((match = re.modulo.exec(_fmt)) !== null) { + parse_tree.push('%') + } + else if ((match = re.placeholder.exec(_fmt)) !== null) { + if (match[2]) { + arg_names |= 1 + var field_list = [], replacement_field = match[2], field_match = [] + if ((field_match = re.key.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { + if ((field_match = re.key_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else if ((field_match = re.index_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]) + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + } + } + else { + throw new SyntaxError('[sprintf] failed to parse named argument key') + } + match[2] = field_list + } + else { + arg_names |= 2 + } + if (arg_names === 3) { + throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') + } + parse_tree.push(match) + } + else { + throw new SyntaxError('[sprintf] unexpected placeholder') + } + _fmt = _fmt.substring(match[0].length) + } + return sprintf_cache[fmt] = parse_tree + } + + /** + * export to either browser or node.js + */ + /* eslint-disable quote-props */ + if (true) { + exports['sprintf'] = sprintf + exports['vsprintf'] = vsprintf + } + if (typeof window !== 'undefined') { + window['sprintf'] = sprintf + window['vsprintf'] = vsprintf + + if (true) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { + return { + 'sprintf': sprintf, + 'vsprintf': vsprintf + } + }).call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) + } + } + /* eslint-enable quote-props */ +}() + + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + "use strict"; @@ -1287,7 +1512,7 @@ module.exports = { /***/ }), -/* 46 */ +/* 47 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1353,7 +1578,7 @@ var Alerts = alert; exports.default = Alerts; /***/ }), -/* 47 */ +/* 48 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1409,7 +1634,7 @@ function setPref(name, value) { exports.default = { setPref: setPref }; /***/ }), -/* 48 */ +/* 49 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1421,7 +1646,7 @@ module.exports = Function.prototype.bind || implementation; /***/ }), -/* 49 */ +/* 50 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1465,7 +1690,7 @@ module.exports = function isCallable(value) { /***/ }), -/* 50 */ +/* 51 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2675,7 +2900,7 @@ var leafletMap = function leafletMap(services) { exports.default = leafletMap; /***/ }), -/* 51 */ +/* 52 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2791,12 +3016,12 @@ var FieldCollection = function () { exports.default = FieldCollection; /***/ }), -/* 52 */, /* 53 */, /* 54 */, /* 55 */, /* 56 */, -/* 57 */ +/* 57 */, +/* 58 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2816,7 +3041,7 @@ var _dialog2 = _interopRequireDefault(_dialog); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var lazyload = __webpack_require__(58); +var lazyload = __webpack_require__(59); var publication = function publication(services) { @@ -3259,7 +3484,7 @@ var publication = function publication(services) { exports.default = publication; /***/ }), -/* 58 */ +/* 59 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(jQuery) {/*** IMPORTS FROM imports-loader ***/ @@ -3511,231 +3736,6 @@ exports.default = publication; }.call(window)); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) -/***/ }), -/* 59 */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */ - -!function() { - 'use strict' - - var re = { - not_string: /[^s]/, - not_bool: /[^t]/, - not_type: /[^T]/, - not_primitive: /[^v]/, - number: /[diefg]/, - numeric_arg: /[bcdiefguxX]/, - json: /[j]/, - not_json: /[^j]/, - text: /^[^\x25]+/, - modulo: /^\x25{2}/, - placeholder: /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, - key: /^([a-z_][a-z_\d]*)/i, - key_access: /^\.([a-z_][a-z_\d]*)/i, - index_access: /^\[(\d+)\]/, - sign: /^[\+\-]/ - } - - function sprintf(key) { - // `arguments` is not an array, but should be fine for this call - return sprintf_format(sprintf_parse(key), arguments) - } - - function vsprintf(fmt, argv) { - return sprintf.apply(null, [fmt].concat(argv || [])) - } - - function sprintf_format(parse_tree, argv) { - var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, match, pad, pad_character, pad_length, is_positive, sign - for (i = 0; i < tree_length; i++) { - if (typeof parse_tree[i] === 'string') { - output += parse_tree[i] - } - else if (Array.isArray(parse_tree[i])) { - match = parse_tree[i] // convenience purposes only - if (match[2]) { // keyword argument - arg = argv[cursor] - for (k = 0; k < match[2].length; k++) { - if (!arg.hasOwnProperty(match[2][k])) { - throw new Error(sprintf('[sprintf] property "%s" does not exist', match[2][k])) - } - arg = arg[match[2][k]] - } - } - else if (match[1]) { // positional argument (explicit) - arg = argv[match[1]] - } - else { // positional argument (implicit) - arg = argv[cursor++] - } - - if (re.not_type.test(match[8]) && re.not_primitive.test(match[8]) && arg instanceof Function) { - arg = arg() - } - - if (re.numeric_arg.test(match[8]) && (typeof arg !== 'number' && isNaN(arg))) { - throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg)) - } - - if (re.number.test(match[8])) { - is_positive = arg >= 0 - } - - switch (match[8]) { - case 'b': - arg = parseInt(arg, 10).toString(2) - break - case 'c': - arg = String.fromCharCode(parseInt(arg, 10)) - break - case 'd': - case 'i': - arg = parseInt(arg, 10) - break - case 'j': - arg = JSON.stringify(arg, null, match[6] ? parseInt(match[6]) : 0) - break - case 'e': - arg = match[7] ? parseFloat(arg).toExponential(match[7]) : parseFloat(arg).toExponential() - break - case 'f': - arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg) - break - case 'g': - arg = match[7] ? String(Number(arg.toPrecision(match[7]))) : parseFloat(arg) - break - case 'o': - arg = (parseInt(arg, 10) >>> 0).toString(8) - break - case 's': - arg = String(arg) - arg = (match[7] ? arg.substring(0, match[7]) : arg) - break - case 't': - arg = String(!!arg) - arg = (match[7] ? arg.substring(0, match[7]) : arg) - break - case 'T': - arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() - arg = (match[7] ? arg.substring(0, match[7]) : arg) - break - case 'u': - arg = parseInt(arg, 10) >>> 0 - break - case 'v': - arg = arg.valueOf() - arg = (match[7] ? arg.substring(0, match[7]) : arg) - break - case 'x': - arg = (parseInt(arg, 10) >>> 0).toString(16) - break - case 'X': - arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() - break - } - if (re.json.test(match[8])) { - output += arg - } - else { - if (re.number.test(match[8]) && (!is_positive || match[3])) { - sign = is_positive ? '+' : '-' - arg = arg.toString().replace(re.sign, '') - } - else { - sign = '' - } - pad_character = match[4] ? match[4] === '0' ? '0' : match[4].charAt(1) : ' ' - pad_length = match[6] - (sign + arg).length - pad = match[6] ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' - output += match[5] ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) - } - } - } - return output - } - - var sprintf_cache = Object.create(null) - - function sprintf_parse(fmt) { - if (sprintf_cache[fmt]) { - return sprintf_cache[fmt] - } - - var _fmt = fmt, match, parse_tree = [], arg_names = 0 - while (_fmt) { - if ((match = re.text.exec(_fmt)) !== null) { - parse_tree.push(match[0]) - } - else if ((match = re.modulo.exec(_fmt)) !== null) { - parse_tree.push('%') - } - else if ((match = re.placeholder.exec(_fmt)) !== null) { - if (match[2]) { - arg_names |= 1 - var field_list = [], replacement_field = match[2], field_match = [] - if ((field_match = re.key.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { - if ((field_match = re.key_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else if ((field_match = re.index_access.exec(replacement_field)) !== null) { - field_list.push(field_match[1]) - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - } - } - else { - throw new SyntaxError('[sprintf] failed to parse named argument key') - } - match[2] = field_list - } - else { - arg_names |= 2 - } - if (arg_names === 3) { - throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported') - } - parse_tree.push(match) - } - else { - throw new SyntaxError('[sprintf] unexpected placeholder') - } - _fmt = _fmt.substring(match[0].length) - } - return sprintf_cache[fmt] = parse_tree - } - - /** - * export to either browser or node.js - */ - /* eslint-disable quote-props */ - if (true) { - exports['sprintf'] = sprintf - exports['vsprintf'] = vsprintf - } - if (typeof window !== 'undefined') { - window['sprintf'] = sprintf - window['vsprintf'] = vsprintf - - if (true) { - !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { - return { - 'sprintf': sprintf, - 'vsprintf': vsprintf - } - }).call(exports, __webpack_require__, exports, module), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) - } - } - /* eslint-enable quote-props */ -}() - - /***/ }), /* 60 */ /***/ (function(module, exports, __webpack_require__) { @@ -4368,7 +4368,7 @@ var _recordPreview = __webpack_require__(231); var _recordPreview2 = _interopRequireDefault(_recordPreview); -var _alert = __webpack_require__(46); +var _alert = __webpack_require__(47); var _alert2 = _interopRequireDefault(_alert); @@ -6508,7 +6508,7 @@ module.exports = defineProperties; "use strict"; -var bind = __webpack_require__(48); +var bind = __webpack_require__(49); var ES = __webpack_require__(131); var replace = bind.call(Function.call, String.prototype.replace); @@ -6631,7 +6631,7 @@ module.exports = createBrowserClient; var parseToken = __webpack_require__(70); var MapiRequest = __webpack_require__(167); -var constants = __webpack_require__(45); +var constants = __webpack_require__(46); /** * A low-level Mapbox API client. Use it to create service clients @@ -9527,7 +9527,7 @@ var _phraseanetCommon = __webpack_require__(11); var AppCommons = _interopRequireWildcard(_phraseanetCommon); -var _publication = __webpack_require__(57); +var _publication = __webpack_require__(58); var _publication2 = _interopRequireDefault(_publication); @@ -9904,7 +9904,7 @@ var _selectable = __webpack_require__(22); var _selectable2 = _interopRequireDefault(_selectable); -var _alert = __webpack_require__(46); +var _alert = __webpack_require__(47); var _alert2 = _interopRequireDefault(_alert); @@ -11480,7 +11480,7 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _sprintfJs = __webpack_require__(59); +var _sprintfJs = __webpack_require__(45); var _phraseanetCommon = __webpack_require__(11); @@ -19946,7 +19946,7 @@ var appCommons = _interopRequireWildcard(_phraseanetCommon); var _utils = __webpack_require__(42); -var _sprintfJs = __webpack_require__(59); +var _sprintfJs = __webpack_require__(45); var _layout = __webpack_require__(118); @@ -19972,7 +19972,7 @@ var _geonameDatasource = __webpack_require__(148); var _geonameDatasource2 = _interopRequireDefault(_geonameDatasource); -var _mapbox = __webpack_require__(50); +var _mapbox = __webpack_require__(51); var _mapbox2 = _interopRequireDefault(_mapbox); @@ -19984,7 +19984,7 @@ var _recordCollection = __webpack_require__(200); var _recordCollection2 = _interopRequireDefault(_recordCollection); -var _fieldCollection = __webpack_require__(51); +var _fieldCollection = __webpack_require__(52); var _fieldCollection2 = _interopRequireDefault(_fieldCollection); @@ -47958,7 +47958,7 @@ module.exports = function (headers) { "use strict"; -var bind = __webpack_require__(48); +var bind = __webpack_require__(49); var define = __webpack_require__(64); var implementation = __webpack_require__(65); @@ -48226,7 +48226,7 @@ var $isFinite = __webpack_require__(134); var sign = __webpack_require__(135); var mod = __webpack_require__(136); -var IsCallable = __webpack_require__(49); +var IsCallable = __webpack_require__(50); var toPrimitive = __webpack_require__(137); var has = __webpack_require__(139); @@ -48688,7 +48688,7 @@ var toStr = Object.prototype.toString; var isPrimitive = __webpack_require__(138); -var isCallable = __webpack_require__(49); +var isCallable = __webpack_require__(50); // https://es5.github.io/#x8.12 var ES5internalSlots = { @@ -48737,7 +48737,7 @@ module.exports = function isPrimitive(value) { "use strict"; -var bind = __webpack_require__(48); +var bind = __webpack_require__(49); module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); @@ -48766,7 +48766,7 @@ module.exports = function shimStringTrim() { "use strict"; -var isCallable = __webpack_require__(49); +var isCallable = __webpack_require__(50); var toStr = Object.prototype.toString; var hasOwnProperty = Object.prototype.hasOwnProperty; @@ -53877,7 +53877,7 @@ module.exports = client; var MapiResponse = __webpack_require__(162); var MapiError = __webpack_require__(164); -var constants = __webpack_require__(45); +var constants = __webpack_require__(46); var parseHeaders = __webpack_require__(165); // Keys are request IDs, values are XHRs. @@ -54156,7 +54156,7 @@ module.exports = parseLinkHeader; "use strict"; -var constants = __webpack_require__(45); +var constants = __webpack_require__(46); /** * A Mapbox API error. @@ -54452,7 +54452,7 @@ var parseToken = __webpack_require__(70); var xtend = __webpack_require__(37); var EventEmitter = __webpack_require__(168); var urlUtils = __webpack_require__(169); -var constants = __webpack_require__(45); +var constants = __webpack_require__(46); var requestId = 1; @@ -59284,7 +59284,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _fieldCollection = __webpack_require__(51); +var _fieldCollection = __webpack_require__(52); var _fieldCollection2 = _interopRequireDefault(_fieldCollection); @@ -62010,7 +62010,7 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); -var _publication = __webpack_require__(57); +var _publication = __webpack_require__(58); var _publication2 = _interopRequireDefault(_publication); @@ -63402,7 +63402,7 @@ var _videojsFlash = __webpack_require__(63); var _videojsFlash2 = _interopRequireDefault(_videojsFlash); -var _fieldCollection = __webpack_require__(51); +var _fieldCollection = __webpack_require__(52); var _fieldCollection2 = _interopRequireDefault(_fieldCollection); @@ -65940,7 +65940,7 @@ var _emitter = __webpack_require__(15); var _emitter2 = _interopRequireDefault(_emitter); -var _mapbox = __webpack_require__(50); +var _mapbox = __webpack_require__(51); var _mapbox2 = _interopRequireDefault(_mapbox); @@ -66962,7 +66962,7 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); -var _alert = __webpack_require__(46); +var _alert = __webpack_require__(47); var _alert2 = _interopRequireDefault(_alert); @@ -67699,7 +67699,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } -var lazyload = __webpack_require__(58); +var lazyload = __webpack_require__(59); __webpack_require__(14); __webpack_require__(19); @@ -68391,7 +68391,7 @@ var _resultInfos = __webpack_require__(80); var _resultInfos2 = _interopRequireDefault(_resultInfos); -var _user = __webpack_require__(47); +var _user = __webpack_require__(48); var _user2 = _interopRequireDefault(_user); @@ -68594,7 +68594,7 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _user = __webpack_require__(47); +var _user = __webpack_require__(48); var _user2 = _interopRequireDefault(_user); @@ -69247,7 +69247,7 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); -var _mapbox = __webpack_require__(50); +var _mapbox = __webpack_require__(51); var _mapbox2 = _interopRequireDefault(_mapbox); diff --git a/Phraseanet-production-client/src/components/authentication/index.js b/Phraseanet-production-client/src/components/authentication/index.js index 926791ea67..051f0528ee 100644 --- a/Phraseanet-production-client/src/components/authentication/index.js +++ b/Phraseanet-production-client/src/components/authentication/index.js @@ -15,6 +15,7 @@ import registerService from './register'; import registerProviderService from './registerProvider'; import renewEmailService from './renewEmail'; import changePasswordService from './changePassword'; +import { sprintf } from 'sprintf-js'; require('bootstrap-multiselect'); // multiselect const authentication = (services) => { @@ -37,13 +38,10 @@ const authentication = (services) => { selectAllText: localeService.t('all_collections'), buttonText: function (options, select) { if (options.length === 0) { - return localeService.t('no_collection_selected') + ''; + return localeService.t('no_collection_selected'); } else { - return localeService.t( - options.length === 1 ? 'one_collection_selected' : 'collections_selected', { - postProcess: 'sprintf', - sprintf: [options.length] - }) + ' '; + + return sprintf(localeService.t(options.length === 1 ? 'one_collection_selected' : 'collections_selected'), options.length); } } }); diff --git a/lib/Alchemy/Phrasea/Twig/PhraseanetExtension.php b/lib/Alchemy/Phrasea/Twig/PhraseanetExtension.php index cafded5170..54710e463c 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 - 'jsFileVersion' => 25 + 'jsFileVersion' => 26 ]; } diff --git a/templates/web/login/common/macros.html.twig b/templates/web/login/common/macros.html.twig index b659ef4b02..3bc405c4ae 100644 --- a/templates/web/login/common/macros.html.twig +++ b/templates/web/login/common/macros.html.twig @@ -39,7 +39,7 @@ {% macro checkboxInput(field, label = '') %}
{{ form_errors(field) }} From 3d1bb65a3db947c5bc6c8601b6c1f7da9fbcc4c6 Mon Sep 17 00:00:00 2001 From: aynsix Date: Fri, 3 Sep 2021 15:19:54 +0300 Subject: [PATCH 3/3] fix term of use link on export --- templates/web/common/dialog_export.html.twig | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/templates/web/common/dialog_export.html.twig b/templates/web/common/dialog_export.html.twig index 3fd75a85b1..f99c0ad756 100644 --- a/templates/web/common/dialog_export.html.twig +++ b/templates/web/common/dialog_export.html.twig @@ -152,7 +152,7 @@ {% set beginning_link = '' %} {% set end_link = '' %} - {{ "By checking this box, you accept %beginning_link% Terms of Use %end_link%" | trans({'%beginning_link%' : beginning_link, '%end_link%' : end_link}) }} + {{ "By checking this box, you accept %beginning_link% Terms of Use %end_link%" | trans({'%beginning_link%' : beginning_link , '%end_link%' : end_link }) | raw }}
{% endif %} @@ -240,7 +240,7 @@ {% set beginning_link = '' %} {% set end_link = '' %} - {{ "By checking this box, you accept %beginning_link% Terms of Use %end_link%" | trans({'%beginning_link%' : beginning_link, '%end_link%' : end_link}) }} + {{ "By checking this box, you accept %beginning_link% Terms of Use %end_link%" | trans({'%beginning_link%' : beginning_link, '%end_link%' : end_link}) | raw }} {% endif %} @@ -393,7 +393,7 @@ {% set beginning_link = '' %} {% set end_link = '' %} - {{ "By checking this box, you accept %beginning_link% Terms of Use %end_link%" | trans({'%beginning_link%' : beginning_link, '%end_link%' : end_link}) }} + {{ "By checking this box, you accept %beginning_link% Terms of Use %end_link%" | trans({'%beginning_link%' : beginning_link, '%end_link%' : end_link}) | raw }} {% endif %} @@ -474,7 +474,7 @@ {% set beginning_link = '' %} {% set end_link = '' %} - {{ "By checking this box, you accept %beginning_link% Terms of Use %end_link%" | trans({'%beginning_link%' : beginning_link, '%end_link%' : end_link}) }} + {{ "By checking this box, you accept %beginning_link% Terms of Use %end_link%" | trans({'%beginning_link%' : beginning_link, '%end_link%' : end_link}) | raw }} {% endif %}