Merge branch 'master' into PHRAS-3425_fix-translation-dump_MASTER

This commit is contained in:
Nicolas Maillat
2021-04-22 11:01:39 +02:00
committed by GitHub
21 changed files with 232 additions and 78 deletions

View File

@@ -13,5 +13,5 @@ module.exports = {
setupDir: _root + 'tests/setup/node.js', setupDir: _root + 'tests/setup/node.js',
karmaConf: _root + 'config/karma.conf.js', karmaConf: _root + 'config/karma.conf.js',
// change this version when you change JS file for lazy loading // change this version when you change JS file for lazy loading
jsFileVersion: 16 jsFileVersion: 17
}; };

View File

@@ -96,7 +96,7 @@ return /******/ (function(modules) { // webpackBootstrap
/******/ if (__webpack_require__.nc) { /******/ if (__webpack_require__.nc) {
/******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ script.setAttribute("nonce", __webpack_require__.nc);
/******/ } /******/ }
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=16"; /******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=17";
/******/ var timeout = setTimeout(onScriptComplete, 120000); /******/ var timeout = setTimeout(onScriptComplete, 120000);
/******/ script.onerror = script.onload = onScriptComplete; /******/ script.onerror = script.onload = onScriptComplete;
/******/ function onScriptComplete() { /******/ function onScriptComplete() {

View File

@@ -96,7 +96,7 @@ return /******/ (function(modules) { // webpackBootstrap
/******/ if (__webpack_require__.nc) { /******/ if (__webpack_require__.nc) {
/******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ script.setAttribute("nonce", __webpack_require__.nc);
/******/ } /******/ }
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=16"; /******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=17";
/******/ var timeout = setTimeout(onScriptComplete, 120000); /******/ var timeout = setTimeout(onScriptComplete, 120000);
/******/ script.onerror = script.onload = onScriptComplete; /******/ script.onerror = script.onload = onScriptComplete;
/******/ function onScriptComplete() { /******/ function onScriptComplete() {

View File

@@ -91,7 +91,7 @@
/******/ if (__webpack_require__.nc) { /******/ if (__webpack_require__.nc) {
/******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ script.setAttribute("nonce", __webpack_require__.nc);
/******/ } /******/ }
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=16"; /******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=17";
/******/ var timeout = setTimeout(onScriptComplete, 120000); /******/ var timeout = setTimeout(onScriptComplete, 120000);
/******/ script.onerror = script.onload = onScriptComplete; /******/ script.onerror = script.onload = onScriptComplete;
/******/ function onScriptComplete() { /******/ function onScriptComplete() {

View File

@@ -91,7 +91,7 @@
/******/ if (__webpack_require__.nc) { /******/ if (__webpack_require__.nc) {
/******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ script.setAttribute("nonce", __webpack_require__.nc);
/******/ } /******/ }
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=16"; /******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=17";
/******/ var timeout = setTimeout(onScriptComplete, 120000); /******/ var timeout = setTimeout(onScriptComplete, 120000);
/******/ script.onerror = script.onload = onScriptComplete; /******/ script.onerror = script.onload = onScriptComplete;
/******/ function onScriptComplete() { /******/ function onScriptComplete() {

View File

@@ -27569,7 +27569,7 @@ MapboxTokens.prototype.listScopes = function(callback) {
/* 450 */ /* 450 */
/***/ (function(module, exports) { /***/ (function(module, exports) {
module.exports = {"_args":[["mapbox-gl-circle@1.6.5","/home/esokia-6/work/work41/Phraseanet/Phraseanet-production-client"]],"_from":"mapbox-gl-circle@1.6.5","_id":"mapbox-gl-circle@1.6.5","_inBundle":false,"_integrity":"sha512-VHA6lgxZE/WFtBXmMveU2zt7ZeVcBHe42k4U4b8xGEnrDSQs4/++EBPVywEMNqi01XQrbf1eiAhsIDZasR4drw==","_location":"/mapbox-gl-circle","_phantomChildren":{"@mapbox/geojson-area":"0.2.2","@mapbox/gl-matrix":"0.0.1","@mapbox/mapbox-gl-supported":"1.4.0","@mapbox/point-geometry":"0.1.0","@mapbox/shelf-pack":"3.2.0","@mapbox/tiny-sdf":"1.1.0","@mapbox/unitbezier":"0.0.0","@mapbox/vector-tile":"1.3.1","@mapbox/whoots-js":"3.1.0","brfs":"1.6.1","bubleify":"0.7.0","concat-stream":"1.6.2","csscolorparser":"1.0.3","earcut":"2.1.3","geojson-vt":"3.2.1","gray-matter":"3.1.1","grid-index":"1.1.0","jsonlint-lines-primitives":"1.6.0","minimist":"0.0.8","package-json-versionify":"1.0.4","pbf":"3.2.0","quickselect":"1.1.1","rw":"1.3.3","sharkdown":"0.1.1","shuffle-seed":"1.1.6","sort-object":"0.3.2","through2":"2.0.3","tinyqueue":"1.2.3","unassertify":"2.1.1","unflowify":"1.0.1","vt-pbf":"3.1.1","webworkify":"1.5.0"},"_requested":{"type":"version","registry":true,"raw":"mapbox-gl-circle@1.6.5","name":"mapbox-gl-circle","escapedName":"mapbox-gl-circle","rawSpec":"1.6.5","saveSpec":null,"fetchSpec":"1.6.5"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/mapbox-gl-circle/-/mapbox-gl-circle-1.6.5.tgz","_spec":"1.6.5","_where":"/home/esokia-6/work/work41/Phraseanet/Phraseanet-production-client","author":{"name":"Smith Micro Software, Inc."},"browserify":{"transform":["babelify"]},"bugs":{"url":"https://github.com/smithmicro/mapbox-gl-circle/issues"},"dependencies":{"@turf/bbox":"^4.7.3","@turf/bbox-polygon":"^4.7.3","@turf/bearing":"^4.5.2","@turf/circle":"^4.7.3","@turf/destination":"^4.7.3","@turf/distance":"^4.7.3","@turf/helpers":"^4.7.3","@turf/truncate":"^4.7.3","core-util-is":"^1.0.2","debug":"^3.0.0","events":"^1.1.1","fsevents":"^1.1.2","glob":"^7.1.2","inflight":"^1.0.6","inherits":"^2.0.3","jsonparse":"^1.3.1","lodash":"^4.17.5","lodash.debounce":"^4.0.8","mapbox-gl":"^0.44.1","minimatch":"^3.0.4","once":"^1.4.0","punycode":"^2.1.0","readable-stream":"^2.3.3","string_decoder":"^1.0.3","through2":"^2.0.3","util-deprecate":"^1.0.2","wrappy":"^1.0.2","xtend":"^4.0.1","yarn":"^0.27.5"},"description":"A google.maps.Circle replacement for Mapbox GL JS API","devDependencies":{"async-each":"^1.0.1","babel-preset-es2015":"^6.24.1","babelify":"^7.3.0","brfs":"^1.4.4","browserify":"^14.5.0","buble":"^0.15.2","budo":"^10.0.4","documentation":"^5.1.0","eslint":"^4.18.1","eslint-config-google":"^0.9.1","esutils":"^2.0.2","magic-string":"^0.22.4","uglify-js":"^3.3.12","vlq":"^0.2.3","watchify":"^3.10.0"},"directories":{"example":"example","lib":"lib"},"engines":{"node":">=7.6.0","npm":">=5.3.0"},"files":["lib/","example/","dist/"],"homepage":"https://github.com/smithmicro/mapbox-gl-circle#readme","keywords":["mapbox","circle","osm","gl"],"license":"ISC","main":"lib/main.js","name":"mapbox-gl-circle","optionalDependencies":{"core-util-is":"^1.0.2","debug":"^3.0.0","fsevents":"^1.1.2","glob":"^7.1.2","inflight":"^1.0.6","inherits":"^2.0.3","jsonparse":"^1.3.1","minimatch":"^3.0.4","once":"^1.4.0","punycode":"^2.1.0","readable-stream":"^2.3.3","string_decoder":"^1.0.3","through2":"^2.0.3","util-deprecate":"^1.0.2","wrappy":"^1.0.2","xtend":"^4.0.1","yarn":"^0.27.5"},"repository":{"type":"git","url":"git+ssh://git@github.com/smithmicro/mapbox-gl-circle.git"},"scripts":{"browserify":"mkdir -p dist && browserify lib/main.js -o dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.js --debug --delay=0 -v","docs":"documentation lint lib/main.js && documentation readme lib/main.js --access public --section=Usage","lint":"eslint lib","prepare":"mkdir -p dist && browserify --standalone MapboxCircle -t [ babelify --presets [ es2015 ] ] lib/main.js | uglifyjs -c -m > dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.min.js && cp -f dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.min.js dist/mapbox-gl-circle.min.js","start":"budo example/index.js --live --force-default-index --title budo/mapbox-gl-circle --verbose -- -t brfs","watchify":"mkdir -p dist && watchify lib/main.js -o dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.js --debug -v"},"version":"1.6.5"} module.exports = {"_args":[["mapbox-gl-circle@1.6.5","/var/alchemy/Phraseanet/Phraseanet-production-client"]],"_from":"mapbox-gl-circle@1.6.5","_id":"mapbox-gl-circle@1.6.5","_inBundle":false,"_integrity":"sha512-VHA6lgxZE/WFtBXmMveU2zt7ZeVcBHe42k4U4b8xGEnrDSQs4/++EBPVywEMNqi01XQrbf1eiAhsIDZasR4drw==","_location":"/mapbox-gl-circle","_phantomChildren":{"@mapbox/geojson-area":"0.2.2","@mapbox/gl-matrix":"0.0.1","@mapbox/mapbox-gl-supported":"1.4.0","@mapbox/point-geometry":"0.1.0","@mapbox/shelf-pack":"3.2.0","@mapbox/tiny-sdf":"1.1.0","@mapbox/unitbezier":"0.0.0","@mapbox/vector-tile":"1.3.1","@mapbox/whoots-js":"3.1.0","brfs":"1.6.1","bubleify":"0.7.0","concat-stream":"1.6.2","csscolorparser":"1.0.3","earcut":"2.1.3","geojson-vt":"3.2.1","gray-matter":"3.1.1","grid-index":"1.1.0","jsonlint-lines-primitives":"1.6.0","minimist":"0.0.8","package-json-versionify":"1.0.4","pbf":"3.2.0","quickselect":"1.1.1","rw":"1.3.3","sharkdown":"0.1.1","shuffle-seed":"1.1.6","sort-object":"0.3.2","through2":"2.0.3","tinyqueue":"1.2.3","unassertify":"2.1.1","unflowify":"1.0.1","vt-pbf":"3.1.1","webworkify":"1.5.0"},"_requested":{"type":"version","registry":true,"raw":"mapbox-gl-circle@1.6.5","name":"mapbox-gl-circle","escapedName":"mapbox-gl-circle","rawSpec":"1.6.5","saveSpec":null,"fetchSpec":"1.6.5"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/mapbox-gl-circle/-/mapbox-gl-circle-1.6.5.tgz","_spec":"1.6.5","_where":"/var/alchemy/Phraseanet/Phraseanet-production-client","author":{"name":"Smith Micro Software, Inc."},"browserify":{"transform":["babelify"]},"bugs":{"url":"https://github.com/smithmicro/mapbox-gl-circle/issues"},"dependencies":{"@turf/bbox":"^4.7.3","@turf/bbox-polygon":"^4.7.3","@turf/bearing":"^4.5.2","@turf/circle":"^4.7.3","@turf/destination":"^4.7.3","@turf/distance":"^4.7.3","@turf/helpers":"^4.7.3","@turf/truncate":"^4.7.3","core-util-is":"^1.0.2","debug":"^3.0.0","events":"^1.1.1","fsevents":"^1.1.2","glob":"^7.1.2","inflight":"^1.0.6","inherits":"^2.0.3","jsonparse":"^1.3.1","lodash":"^4.17.5","lodash.debounce":"^4.0.8","mapbox-gl":"^0.44.1","minimatch":"^3.0.4","once":"^1.4.0","punycode":"^2.1.0","readable-stream":"^2.3.3","string_decoder":"^1.0.3","through2":"^2.0.3","util-deprecate":"^1.0.2","wrappy":"^1.0.2","xtend":"^4.0.1","yarn":"^0.27.5"},"description":"A google.maps.Circle replacement for Mapbox GL JS API","devDependencies":{"async-each":"^1.0.1","babel-preset-es2015":"^6.24.1","babelify":"^7.3.0","brfs":"^1.4.4","browserify":"^14.5.0","buble":"^0.15.2","budo":"^10.0.4","documentation":"^5.1.0","eslint":"^4.18.1","eslint-config-google":"^0.9.1","esutils":"^2.0.2","magic-string":"^0.22.4","uglify-js":"^3.3.12","vlq":"^0.2.3","watchify":"^3.10.0"},"directories":{"example":"example","lib":"lib"},"engines":{"node":">=7.6.0","npm":">=5.3.0"},"files":["lib/","example/","dist/"],"homepage":"https://github.com/smithmicro/mapbox-gl-circle#readme","keywords":["mapbox","circle","osm","gl"],"license":"ISC","main":"lib/main.js","name":"mapbox-gl-circle","optionalDependencies":{"core-util-is":"^1.0.2","debug":"^3.0.0","fsevents":"^1.1.2","glob":"^7.1.2","inflight":"^1.0.6","inherits":"^2.0.3","jsonparse":"^1.3.1","minimatch":"^3.0.4","once":"^1.4.0","punycode":"^2.1.0","readable-stream":"^2.3.3","string_decoder":"^1.0.3","through2":"^2.0.3","util-deprecate":"^1.0.2","wrappy":"^1.0.2","xtend":"^4.0.1","yarn":"^0.27.5"},"repository":{"type":"git","url":"git+ssh://git@github.com/smithmicro/mapbox-gl-circle.git"},"scripts":{"browserify":"mkdir -p dist && browserify lib/main.js -o dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.js --debug --delay=0 -v","docs":"documentation lint lib/main.js && documentation readme lib/main.js --access public --section=Usage","lint":"eslint lib","prepare":"mkdir -p dist && browserify --standalone MapboxCircle -t [ babelify --presets [ es2015 ] ] lib/main.js | uglifyjs -c -m > dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.min.js && cp -f dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.min.js dist/mapbox-gl-circle.min.js","start":"budo example/index.js --live --force-default-index --title budo/mapbox-gl-circle --verbose -- -t brfs","watchify":"mkdir -p dist && watchify lib/main.js -o dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.js --debug -v"},"version":"1.6.5"}
/***/ }), /***/ }),
/* 451 */ /* 451 */

View File

@@ -27569,7 +27569,7 @@ MapboxTokens.prototype.listScopes = function(callback) {
/* 450 */ /* 450 */
/***/ (function(module, exports) { /***/ (function(module, exports) {
module.exports = {"_args":[["mapbox-gl-circle@1.6.5","/home/esokia-6/work/work41/Phraseanet/Phraseanet-production-client"]],"_from":"mapbox-gl-circle@1.6.5","_id":"mapbox-gl-circle@1.6.5","_inBundle":false,"_integrity":"sha512-VHA6lgxZE/WFtBXmMveU2zt7ZeVcBHe42k4U4b8xGEnrDSQs4/++EBPVywEMNqi01XQrbf1eiAhsIDZasR4drw==","_location":"/mapbox-gl-circle","_phantomChildren":{"@mapbox/geojson-area":"0.2.2","@mapbox/gl-matrix":"0.0.1","@mapbox/mapbox-gl-supported":"1.4.0","@mapbox/point-geometry":"0.1.0","@mapbox/shelf-pack":"3.2.0","@mapbox/tiny-sdf":"1.1.0","@mapbox/unitbezier":"0.0.0","@mapbox/vector-tile":"1.3.1","@mapbox/whoots-js":"3.1.0","brfs":"1.6.1","bubleify":"0.7.0","concat-stream":"1.6.2","csscolorparser":"1.0.3","earcut":"2.1.3","geojson-vt":"3.2.1","gray-matter":"3.1.1","grid-index":"1.1.0","jsonlint-lines-primitives":"1.6.0","minimist":"0.0.8","package-json-versionify":"1.0.4","pbf":"3.2.0","quickselect":"1.1.1","rw":"1.3.3","sharkdown":"0.1.1","shuffle-seed":"1.1.6","sort-object":"0.3.2","through2":"2.0.3","tinyqueue":"1.2.3","unassertify":"2.1.1","unflowify":"1.0.1","vt-pbf":"3.1.1","webworkify":"1.5.0"},"_requested":{"type":"version","registry":true,"raw":"mapbox-gl-circle@1.6.5","name":"mapbox-gl-circle","escapedName":"mapbox-gl-circle","rawSpec":"1.6.5","saveSpec":null,"fetchSpec":"1.6.5"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/mapbox-gl-circle/-/mapbox-gl-circle-1.6.5.tgz","_spec":"1.6.5","_where":"/home/esokia-6/work/work41/Phraseanet/Phraseanet-production-client","author":{"name":"Smith Micro Software, Inc."},"browserify":{"transform":["babelify"]},"bugs":{"url":"https://github.com/smithmicro/mapbox-gl-circle/issues"},"dependencies":{"@turf/bbox":"^4.7.3","@turf/bbox-polygon":"^4.7.3","@turf/bearing":"^4.5.2","@turf/circle":"^4.7.3","@turf/destination":"^4.7.3","@turf/distance":"^4.7.3","@turf/helpers":"^4.7.3","@turf/truncate":"^4.7.3","core-util-is":"^1.0.2","debug":"^3.0.0","events":"^1.1.1","fsevents":"^1.1.2","glob":"^7.1.2","inflight":"^1.0.6","inherits":"^2.0.3","jsonparse":"^1.3.1","lodash":"^4.17.5","lodash.debounce":"^4.0.8","mapbox-gl":"^0.44.1","minimatch":"^3.0.4","once":"^1.4.0","punycode":"^2.1.0","readable-stream":"^2.3.3","string_decoder":"^1.0.3","through2":"^2.0.3","util-deprecate":"^1.0.2","wrappy":"^1.0.2","xtend":"^4.0.1","yarn":"^0.27.5"},"description":"A google.maps.Circle replacement for Mapbox GL JS API","devDependencies":{"async-each":"^1.0.1","babel-preset-es2015":"^6.24.1","babelify":"^7.3.0","brfs":"^1.4.4","browserify":"^14.5.0","buble":"^0.15.2","budo":"^10.0.4","documentation":"^5.1.0","eslint":"^4.18.1","eslint-config-google":"^0.9.1","esutils":"^2.0.2","magic-string":"^0.22.4","uglify-js":"^3.3.12","vlq":"^0.2.3","watchify":"^3.10.0"},"directories":{"example":"example","lib":"lib"},"engines":{"node":">=7.6.0","npm":">=5.3.0"},"files":["lib/","example/","dist/"],"homepage":"https://github.com/smithmicro/mapbox-gl-circle#readme","keywords":["mapbox","circle","osm","gl"],"license":"ISC","main":"lib/main.js","name":"mapbox-gl-circle","optionalDependencies":{"core-util-is":"^1.0.2","debug":"^3.0.0","fsevents":"^1.1.2","glob":"^7.1.2","inflight":"^1.0.6","inherits":"^2.0.3","jsonparse":"^1.3.1","minimatch":"^3.0.4","once":"^1.4.0","punycode":"^2.1.0","readable-stream":"^2.3.3","string_decoder":"^1.0.3","through2":"^2.0.3","util-deprecate":"^1.0.2","wrappy":"^1.0.2","xtend":"^4.0.1","yarn":"^0.27.5"},"repository":{"type":"git","url":"git+ssh://git@github.com/smithmicro/mapbox-gl-circle.git"},"scripts":{"browserify":"mkdir -p dist && browserify lib/main.js -o dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.js --debug --delay=0 -v","docs":"documentation lint lib/main.js && documentation readme lib/main.js --access public --section=Usage","lint":"eslint lib","prepare":"mkdir -p dist && browserify --standalone MapboxCircle -t [ babelify --presets [ es2015 ] ] lib/main.js | uglifyjs -c -m > dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.min.js && cp -f dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.min.js dist/mapbox-gl-circle.min.js","start":"budo example/index.js --live --force-default-index --title budo/mapbox-gl-circle --verbose -- -t brfs","watchify":"mkdir -p dist && watchify lib/main.js -o dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.js --debug -v"},"version":"1.6.5"} module.exports = {"_args":[["mapbox-gl-circle@1.6.5","/var/alchemy/Phraseanet/Phraseanet-production-client"]],"_from":"mapbox-gl-circle@1.6.5","_id":"mapbox-gl-circle@1.6.5","_inBundle":false,"_integrity":"sha512-VHA6lgxZE/WFtBXmMveU2zt7ZeVcBHe42k4U4b8xGEnrDSQs4/++EBPVywEMNqi01XQrbf1eiAhsIDZasR4drw==","_location":"/mapbox-gl-circle","_phantomChildren":{"@mapbox/geojson-area":"0.2.2","@mapbox/gl-matrix":"0.0.1","@mapbox/mapbox-gl-supported":"1.4.0","@mapbox/point-geometry":"0.1.0","@mapbox/shelf-pack":"3.2.0","@mapbox/tiny-sdf":"1.1.0","@mapbox/unitbezier":"0.0.0","@mapbox/vector-tile":"1.3.1","@mapbox/whoots-js":"3.1.0","brfs":"1.6.1","bubleify":"0.7.0","concat-stream":"1.6.2","csscolorparser":"1.0.3","earcut":"2.1.3","geojson-vt":"3.2.1","gray-matter":"3.1.1","grid-index":"1.1.0","jsonlint-lines-primitives":"1.6.0","minimist":"0.0.8","package-json-versionify":"1.0.4","pbf":"3.2.0","quickselect":"1.1.1","rw":"1.3.3","sharkdown":"0.1.1","shuffle-seed":"1.1.6","sort-object":"0.3.2","through2":"2.0.3","tinyqueue":"1.2.3","unassertify":"2.1.1","unflowify":"1.0.1","vt-pbf":"3.1.1","webworkify":"1.5.0"},"_requested":{"type":"version","registry":true,"raw":"mapbox-gl-circle@1.6.5","name":"mapbox-gl-circle","escapedName":"mapbox-gl-circle","rawSpec":"1.6.5","saveSpec":null,"fetchSpec":"1.6.5"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/mapbox-gl-circle/-/mapbox-gl-circle-1.6.5.tgz","_spec":"1.6.5","_where":"/var/alchemy/Phraseanet/Phraseanet-production-client","author":{"name":"Smith Micro Software, Inc."},"browserify":{"transform":["babelify"]},"bugs":{"url":"https://github.com/smithmicro/mapbox-gl-circle/issues"},"dependencies":{"@turf/bbox":"^4.7.3","@turf/bbox-polygon":"^4.7.3","@turf/bearing":"^4.5.2","@turf/circle":"^4.7.3","@turf/destination":"^4.7.3","@turf/distance":"^4.7.3","@turf/helpers":"^4.7.3","@turf/truncate":"^4.7.3","core-util-is":"^1.0.2","debug":"^3.0.0","events":"^1.1.1","fsevents":"^1.1.2","glob":"^7.1.2","inflight":"^1.0.6","inherits":"^2.0.3","jsonparse":"^1.3.1","lodash":"^4.17.5","lodash.debounce":"^4.0.8","mapbox-gl":"^0.44.1","minimatch":"^3.0.4","once":"^1.4.0","punycode":"^2.1.0","readable-stream":"^2.3.3","string_decoder":"^1.0.3","through2":"^2.0.3","util-deprecate":"^1.0.2","wrappy":"^1.0.2","xtend":"^4.0.1","yarn":"^0.27.5"},"description":"A google.maps.Circle replacement for Mapbox GL JS API","devDependencies":{"async-each":"^1.0.1","babel-preset-es2015":"^6.24.1","babelify":"^7.3.0","brfs":"^1.4.4","browserify":"^14.5.0","buble":"^0.15.2","budo":"^10.0.4","documentation":"^5.1.0","eslint":"^4.18.1","eslint-config-google":"^0.9.1","esutils":"^2.0.2","magic-string":"^0.22.4","uglify-js":"^3.3.12","vlq":"^0.2.3","watchify":"^3.10.0"},"directories":{"example":"example","lib":"lib"},"engines":{"node":">=7.6.0","npm":">=5.3.0"},"files":["lib/","example/","dist/"],"homepage":"https://github.com/smithmicro/mapbox-gl-circle#readme","keywords":["mapbox","circle","osm","gl"],"license":"ISC","main":"lib/main.js","name":"mapbox-gl-circle","optionalDependencies":{"core-util-is":"^1.0.2","debug":"^3.0.0","fsevents":"^1.1.2","glob":"^7.1.2","inflight":"^1.0.6","inherits":"^2.0.3","jsonparse":"^1.3.1","minimatch":"^3.0.4","once":"^1.4.0","punycode":"^2.1.0","readable-stream":"^2.3.3","string_decoder":"^1.0.3","through2":"^2.0.3","util-deprecate":"^1.0.2","wrappy":"^1.0.2","xtend":"^4.0.1","yarn":"^0.27.5"},"repository":{"type":"git","url":"git+ssh://git@github.com/smithmicro/mapbox-gl-circle.git"},"scripts":{"browserify":"mkdir -p dist && browserify lib/main.js -o dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.js --debug --delay=0 -v","docs":"documentation lint lib/main.js && documentation readme lib/main.js --access public --section=Usage","lint":"eslint lib","prepare":"mkdir -p dist && browserify --standalone MapboxCircle -t [ babelify --presets [ es2015 ] ] lib/main.js | uglifyjs -c -m > dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.min.js && cp -f dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.min.js dist/mapbox-gl-circle.min.js","start":"budo example/index.js --live --force-default-index --title budo/mapbox-gl-circle --verbose -- -t brfs","watchify":"mkdir -p dist && watchify lib/main.js -o dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.js --debug -v"},"version":"1.6.5"}
/***/ }), /***/ }),
/* 451 */ /* 451 */

View File

@@ -8634,7 +8634,7 @@ module.exports = {
/* 87 */ /* 87 */
/***/ (function(module, exports) { /***/ (function(module, exports) {
module.exports = {"_args":[["mapbox.js@2.4.0","/home/esokia-6/work/work41/Phraseanet/Phraseanet-production-client"]],"_from":"mapbox.js@2.4.0","_id":"mapbox.js@2.4.0","_inBundle":false,"_integrity":"sha1-xDsISl3XEzTIPuHfKPpnRD1zwpw=","_location":"/mapbox.js","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"mapbox.js@2.4.0","name":"mapbox.js","escapedName":"mapbox.js","rawSpec":"2.4.0","saveSpec":null,"fetchSpec":"2.4.0"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/mapbox.js/-/mapbox.js-2.4.0.tgz","_spec":"2.4.0","_where":"/home/esokia-6/work/work41/Phraseanet/Phraseanet-production-client","author":{"name":"Mapbox"},"bugs":{"url":"https://github.com/mapbox/mapbox.js/issues"},"dependencies":{"corslite":"0.0.6","isarray":"0.0.1","leaflet":"0.7.7","mustache":"2.2.1","sanitize-caja":"0.1.3"},"description":"mapbox javascript api","devDependencies":{"browserify":"^13.0.0","clean-css":"~2.0.7","eslint":"^0.23.0","expect.js":"0.3.1","happen":"0.1.3","leaflet-fullscreen":"0.0.4","leaflet-hash":"0.2.1","marked":"~0.3.0","minifyify":"^6.1.0","minimist":"0.0.5","mocha":"2.4.5","mocha-phantomjs":"4.0.2","sinon":"1.10.2"},"engines":{"node":"*"},"homepage":"http://mapbox.com/","license":"BSD-3-Clause","main":"src/index.js","name":"mapbox.js","optionalDependencies":{},"repository":{"type":"git","url":"git://github.com/mapbox/mapbox.js.git"},"scripts":{"test":"eslint --no-eslintrc -c .eslintrc src && mocha-phantomjs test/index.html"},"version":"2.4.0"} module.exports = {"_args":[["mapbox.js@2.4.0","/var/alchemy/Phraseanet/Phraseanet-production-client"]],"_from":"mapbox.js@2.4.0","_id":"mapbox.js@2.4.0","_inBundle":false,"_integrity":"sha1-xDsISl3XEzTIPuHfKPpnRD1zwpw=","_location":"/mapbox.js","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"mapbox.js@2.4.0","name":"mapbox.js","escapedName":"mapbox.js","rawSpec":"2.4.0","saveSpec":null,"fetchSpec":"2.4.0"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/mapbox.js/-/mapbox.js-2.4.0.tgz","_spec":"2.4.0","_where":"/var/alchemy/Phraseanet/Phraseanet-production-client","author":{"name":"Mapbox"},"bugs":{"url":"https://github.com/mapbox/mapbox.js/issues"},"dependencies":{"corslite":"0.0.6","isarray":"0.0.1","leaflet":"0.7.7","mustache":"2.2.1","sanitize-caja":"0.1.3"},"description":"mapbox javascript api","devDependencies":{"browserify":"^13.0.0","clean-css":"~2.0.7","eslint":"^0.23.0","expect.js":"0.3.1","happen":"0.1.3","leaflet-fullscreen":"0.0.4","leaflet-hash":"0.2.1","marked":"~0.3.0","minifyify":"^6.1.0","minimist":"0.0.5","mocha":"2.4.5","mocha-phantomjs":"4.0.2","sinon":"1.10.2"},"engines":{"node":"*"},"homepage":"http://mapbox.com/","license":"BSD-3-Clause","main":"src/index.js","name":"mapbox.js","optionalDependencies":{},"repository":{"type":"git","url":"git://github.com/mapbox/mapbox.js.git"},"scripts":{"test":"eslint --no-eslintrc -c .eslintrc src && mocha-phantomjs test/index.html"},"version":"2.4.0"}
/***/ }), /***/ }),
/* 88 */ /* 88 */
@@ -50647,7 +50647,7 @@ module.exports = VTTRegion;
/* 148 */ /* 148 */
/***/ (function(module, exports) { /***/ (function(module, exports) {
module.exports = {"_args":[["videojs-swf@5.4.1","/home/esokia-6/work/work41/Phraseanet/Phraseanet-production-client"]],"_from":"videojs-swf@5.4.1","_id":"videojs-swf@5.4.1","_inBundle":false,"_integrity":"sha1-IHfvccdJ8seCPvSbq65N0qywj4c=","_location":"/videojs-swf","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"videojs-swf@5.4.1","name":"videojs-swf","escapedName":"videojs-swf","rawSpec":"5.4.1","saveSpec":null,"fetchSpec":"5.4.1"},"_requiredBy":["/videojs-flash"],"_resolved":"https://registry.npmjs.org/videojs-swf/-/videojs-swf-5.4.1.tgz","_spec":"5.4.1","_where":"/home/esokia-6/work/work41/Phraseanet/Phraseanet-production-client","author":{"name":"Brightcove"},"bugs":{"url":"https://github.com/videojs/video-js-swf/issues"},"copyright":"Copyright 2014 Brightcove, Inc. https://github.com/videojs/video-js-swf/blob/master/LICENSE","description":"The Flash-fallback video player for video.js (http://videojs.com)","devDependencies":{"async":"~0.2.9","chg":"^0.3.2","flex-sdk":"4.6.0-0","grunt":"~0.4.0","grunt-bumpup":"~0.5.0","grunt-cli":"~0.1.0","grunt-connect":"~0.2.0","grunt-contrib-jshint":"~0.4.3","grunt-contrib-qunit":"~0.2.1","grunt-contrib-watch":"~0.1.4","grunt-npm":"~0.0.2","grunt-prompt":"~0.1.2","grunt-shell":"~0.6.1","grunt-tagrelease":"~0.3.1","qunitjs":"~1.12.0","video.js":"^5.9.2"},"homepage":"http://videojs.com","keywords":["flash","video","player"],"name":"videojs-swf","repository":{"type":"git","url":"git+https://github.com/videojs/video-js-swf.git"},"scripts":{"version":"chg release -y && grunt dist && git add -f dist/ && git add CHANGELOG.md"},"version":"5.4.1"} module.exports = {"_args":[["videojs-swf@5.4.1","/var/alchemy/Phraseanet/Phraseanet-production-client"]],"_from":"videojs-swf@5.4.1","_id":"videojs-swf@5.4.1","_inBundle":false,"_integrity":"sha1-IHfvccdJ8seCPvSbq65N0qywj4c=","_location":"/videojs-swf","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"videojs-swf@5.4.1","name":"videojs-swf","escapedName":"videojs-swf","rawSpec":"5.4.1","saveSpec":null,"fetchSpec":"5.4.1"},"_requiredBy":["/videojs-flash"],"_resolved":"https://registry.npmjs.org/videojs-swf/-/videojs-swf-5.4.1.tgz","_spec":"5.4.1","_where":"/var/alchemy/Phraseanet/Phraseanet-production-client","author":{"name":"Brightcove"},"bugs":{"url":"https://github.com/videojs/video-js-swf/issues"},"copyright":"Copyright 2014 Brightcove, Inc. https://github.com/videojs/video-js-swf/blob/master/LICENSE","description":"The Flash-fallback video player for video.js (http://videojs.com)","devDependencies":{"async":"~0.2.9","chg":"^0.3.2","flex-sdk":"4.6.0-0","grunt":"~0.4.0","grunt-bumpup":"~0.5.0","grunt-cli":"~0.1.0","grunt-connect":"~0.2.0","grunt-contrib-jshint":"~0.4.3","grunt-contrib-qunit":"~0.2.1","grunt-contrib-watch":"~0.1.4","grunt-npm":"~0.0.2","grunt-prompt":"~0.1.2","grunt-shell":"~0.6.1","grunt-tagrelease":"~0.3.1","qunitjs":"~1.12.0","video.js":"^5.9.2"},"homepage":"http://videojs.com","keywords":["flash","video","player"],"name":"videojs-swf","repository":{"type":"git","url":"git+https://github.com/videojs/video-js-swf.git"},"scripts":{"version":"chg release -y && grunt dist && git add -f dist/ && git add CHANGELOG.md"},"version":"5.4.1"}
/***/ }), /***/ }),
/* 149 */ /* 149 */
@@ -64267,6 +64267,14 @@ var preferences = function preferences(services) {
appEvents.emit('search.doRefreshState'); appEvents.emit('search.doRefreshState');
}); });
$container.on('change', '#ADVSRCH_UNSET_FIELD_FACET', function (event) {
var $el = (0, _jquery2.default)(event.currentTarget);
event.preventDefault();
appCommons.userModule.setPref('show_unset_field_facet', $el.prop('checked') ? '1' : '0');
appEvents.emit('search.updateFacetData');
appEvents.emit('search.doRefreshState');
});
$container.on('click', '.open-preferences', function (event) { $container.on('click', '.open-preferences', function (event) {
event.preventDefault(); event.preventDefault();
openModal(event); openModal(event);
@@ -64328,18 +64336,6 @@ var preferences = function preferences(services) {
appCommons.userModule.setPref('technical_display', $el.val()); appCommons.userModule.setPref('technical_display', $el.val());
appEvents.emit('search.doRefreshState'); appEvents.emit('search.doRefreshState');
}); });
$container.on('change', '.preferences-options-rollover-preview', function (event) {
var $el = (0, _jquery2.default)(event.currentTarget);
event.preventDefault();
appCommons.userModule.setPref('technical_display', $el.val());
appEvents.emit('search.doRefreshState');
});
$container.on('change', '.preferences-options-rollover-preview', function (event) {
var $el = (0, _jquery2.default)(event.currentTarget);
event.preventDefault();
appCommons.userModule.setPref('technical_display', $el.val());
appEvents.emit('search.doRefreshState');
});
$container.on('change', '.preferences-options-doctype-display', function (event) { $container.on('change', '.preferences-options-doctype-display', function (event) {
var $el = (0, _jquery2.default)(event.currentTarget); var $el = (0, _jquery2.default)(event.currentTarget);

View File

@@ -8634,7 +8634,7 @@ module.exports = {
/* 87 */ /* 87 */
/***/ (function(module, exports) { /***/ (function(module, exports) {
module.exports = {"_args":[["mapbox.js@2.4.0","/home/esokia-6/work/work41/Phraseanet/Phraseanet-production-client"]],"_from":"mapbox.js@2.4.0","_id":"mapbox.js@2.4.0","_inBundle":false,"_integrity":"sha1-xDsISl3XEzTIPuHfKPpnRD1zwpw=","_location":"/mapbox.js","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"mapbox.js@2.4.0","name":"mapbox.js","escapedName":"mapbox.js","rawSpec":"2.4.0","saveSpec":null,"fetchSpec":"2.4.0"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/mapbox.js/-/mapbox.js-2.4.0.tgz","_spec":"2.4.0","_where":"/home/esokia-6/work/work41/Phraseanet/Phraseanet-production-client","author":{"name":"Mapbox"},"bugs":{"url":"https://github.com/mapbox/mapbox.js/issues"},"dependencies":{"corslite":"0.0.6","isarray":"0.0.1","leaflet":"0.7.7","mustache":"2.2.1","sanitize-caja":"0.1.3"},"description":"mapbox javascript api","devDependencies":{"browserify":"^13.0.0","clean-css":"~2.0.7","eslint":"^0.23.0","expect.js":"0.3.1","happen":"0.1.3","leaflet-fullscreen":"0.0.4","leaflet-hash":"0.2.1","marked":"~0.3.0","minifyify":"^6.1.0","minimist":"0.0.5","mocha":"2.4.5","mocha-phantomjs":"4.0.2","sinon":"1.10.2"},"engines":{"node":"*"},"homepage":"http://mapbox.com/","license":"BSD-3-Clause","main":"src/index.js","name":"mapbox.js","optionalDependencies":{},"repository":{"type":"git","url":"git://github.com/mapbox/mapbox.js.git"},"scripts":{"test":"eslint --no-eslintrc -c .eslintrc src && mocha-phantomjs test/index.html"},"version":"2.4.0"} module.exports = {"_args":[["mapbox.js@2.4.0","/var/alchemy/Phraseanet/Phraseanet-production-client"]],"_from":"mapbox.js@2.4.0","_id":"mapbox.js@2.4.0","_inBundle":false,"_integrity":"sha1-xDsISl3XEzTIPuHfKPpnRD1zwpw=","_location":"/mapbox.js","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"mapbox.js@2.4.0","name":"mapbox.js","escapedName":"mapbox.js","rawSpec":"2.4.0","saveSpec":null,"fetchSpec":"2.4.0"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/mapbox.js/-/mapbox.js-2.4.0.tgz","_spec":"2.4.0","_where":"/var/alchemy/Phraseanet/Phraseanet-production-client","author":{"name":"Mapbox"},"bugs":{"url":"https://github.com/mapbox/mapbox.js/issues"},"dependencies":{"corslite":"0.0.6","isarray":"0.0.1","leaflet":"0.7.7","mustache":"2.2.1","sanitize-caja":"0.1.3"},"description":"mapbox javascript api","devDependencies":{"browserify":"^13.0.0","clean-css":"~2.0.7","eslint":"^0.23.0","expect.js":"0.3.1","happen":"0.1.3","leaflet-fullscreen":"0.0.4","leaflet-hash":"0.2.1","marked":"~0.3.0","minifyify":"^6.1.0","minimist":"0.0.5","mocha":"2.4.5","mocha-phantomjs":"4.0.2","sinon":"1.10.2"},"engines":{"node":"*"},"homepage":"http://mapbox.com/","license":"BSD-3-Clause","main":"src/index.js","name":"mapbox.js","optionalDependencies":{},"repository":{"type":"git","url":"git://github.com/mapbox/mapbox.js.git"},"scripts":{"test":"eslint --no-eslintrc -c .eslintrc src && mocha-phantomjs test/index.html"},"version":"2.4.0"}
/***/ }), /***/ }),
/* 88 */ /* 88 */
@@ -50647,7 +50647,7 @@ module.exports = VTTRegion;
/* 148 */ /* 148 */
/***/ (function(module, exports) { /***/ (function(module, exports) {
module.exports = {"_args":[["videojs-swf@5.4.1","/home/esokia-6/work/work41/Phraseanet/Phraseanet-production-client"]],"_from":"videojs-swf@5.4.1","_id":"videojs-swf@5.4.1","_inBundle":false,"_integrity":"sha1-IHfvccdJ8seCPvSbq65N0qywj4c=","_location":"/videojs-swf","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"videojs-swf@5.4.1","name":"videojs-swf","escapedName":"videojs-swf","rawSpec":"5.4.1","saveSpec":null,"fetchSpec":"5.4.1"},"_requiredBy":["/videojs-flash"],"_resolved":"https://registry.npmjs.org/videojs-swf/-/videojs-swf-5.4.1.tgz","_spec":"5.4.1","_where":"/home/esokia-6/work/work41/Phraseanet/Phraseanet-production-client","author":{"name":"Brightcove"},"bugs":{"url":"https://github.com/videojs/video-js-swf/issues"},"copyright":"Copyright 2014 Brightcove, Inc. https://github.com/videojs/video-js-swf/blob/master/LICENSE","description":"The Flash-fallback video player for video.js (http://videojs.com)","devDependencies":{"async":"~0.2.9","chg":"^0.3.2","flex-sdk":"4.6.0-0","grunt":"~0.4.0","grunt-bumpup":"~0.5.0","grunt-cli":"~0.1.0","grunt-connect":"~0.2.0","grunt-contrib-jshint":"~0.4.3","grunt-contrib-qunit":"~0.2.1","grunt-contrib-watch":"~0.1.4","grunt-npm":"~0.0.2","grunt-prompt":"~0.1.2","grunt-shell":"~0.6.1","grunt-tagrelease":"~0.3.1","qunitjs":"~1.12.0","video.js":"^5.9.2"},"homepage":"http://videojs.com","keywords":["flash","video","player"],"name":"videojs-swf","repository":{"type":"git","url":"git+https://github.com/videojs/video-js-swf.git"},"scripts":{"version":"chg release -y && grunt dist && git add -f dist/ && git add CHANGELOG.md"},"version":"5.4.1"} module.exports = {"_args":[["videojs-swf@5.4.1","/var/alchemy/Phraseanet/Phraseanet-production-client"]],"_from":"videojs-swf@5.4.1","_id":"videojs-swf@5.4.1","_inBundle":false,"_integrity":"sha1-IHfvccdJ8seCPvSbq65N0qywj4c=","_location":"/videojs-swf","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"videojs-swf@5.4.1","name":"videojs-swf","escapedName":"videojs-swf","rawSpec":"5.4.1","saveSpec":null,"fetchSpec":"5.4.1"},"_requiredBy":["/videojs-flash"],"_resolved":"https://registry.npmjs.org/videojs-swf/-/videojs-swf-5.4.1.tgz","_spec":"5.4.1","_where":"/var/alchemy/Phraseanet/Phraseanet-production-client","author":{"name":"Brightcove"},"bugs":{"url":"https://github.com/videojs/video-js-swf/issues"},"copyright":"Copyright 2014 Brightcove, Inc. https://github.com/videojs/video-js-swf/blob/master/LICENSE","description":"The Flash-fallback video player for video.js (http://videojs.com)","devDependencies":{"async":"~0.2.9","chg":"^0.3.2","flex-sdk":"4.6.0-0","grunt":"~0.4.0","grunt-bumpup":"~0.5.0","grunt-cli":"~0.1.0","grunt-connect":"~0.2.0","grunt-contrib-jshint":"~0.4.3","grunt-contrib-qunit":"~0.2.1","grunt-contrib-watch":"~0.1.4","grunt-npm":"~0.0.2","grunt-prompt":"~0.1.2","grunt-shell":"~0.6.1","grunt-tagrelease":"~0.3.1","qunitjs":"~1.12.0","video.js":"^5.9.2"},"homepage":"http://videojs.com","keywords":["flash","video","player"],"name":"videojs-swf","repository":{"type":"git","url":"git+https://github.com/videojs/video-js-swf.git"},"scripts":{"version":"chg release -y && grunt dist && git add -f dist/ && git add CHANGELOG.md"},"version":"5.4.1"}
/***/ }), /***/ }),
/* 149 */ /* 149 */
@@ -64267,6 +64267,14 @@ var preferences = function preferences(services) {
appEvents.emit('search.doRefreshState'); appEvents.emit('search.doRefreshState');
}); });
$container.on('change', '#ADVSRCH_UNSET_FIELD_FACET', function (event) {
var $el = (0, _jquery2.default)(event.currentTarget);
event.preventDefault();
appCommons.userModule.setPref('show_unset_field_facet', $el.prop('checked') ? '1' : '0');
appEvents.emit('search.updateFacetData');
appEvents.emit('search.doRefreshState');
});
$container.on('click', '.open-preferences', function (event) { $container.on('click', '.open-preferences', function (event) {
event.preventDefault(); event.preventDefault();
openModal(event); openModal(event);
@@ -64328,18 +64336,6 @@ var preferences = function preferences(services) {
appCommons.userModule.setPref('technical_display', $el.val()); appCommons.userModule.setPref('technical_display', $el.val());
appEvents.emit('search.doRefreshState'); appEvents.emit('search.doRefreshState');
}); });
$container.on('change', '.preferences-options-rollover-preview', function (event) {
var $el = (0, _jquery2.default)(event.currentTarget);
event.preventDefault();
appCommons.userModule.setPref('technical_display', $el.val());
appEvents.emit('search.doRefreshState');
});
$container.on('change', '.preferences-options-rollover-preview', function (event) {
var $el = (0, _jquery2.default)(event.currentTarget);
event.preventDefault();
appCommons.userModule.setPref('technical_display', $el.val());
appEvents.emit('search.doRefreshState');
});
$container.on('change', '.preferences-options-doctype-display', function (event) { $container.on('change', '.preferences-options-doctype-display', function (event) {
var $el = (0, _jquery2.default)(event.currentTarget); var $el = (0, _jquery2.default)(event.currentTarget);

View File

@@ -1,5 +1,6 @@
import $ from 'jquery'; import $ from 'jquery';
import * as appCommons from './../../phraseanet-common'; import * as appCommons from './../../phraseanet-common';
let highlight = require('imports-loader?$=jquery!../utils/jquery-plugins/highlight'); let highlight = require('imports-loader?$=jquery!../utils/jquery-plugins/highlight');
let colorpicker = require('imports-loader?$=jquery!../utils/jquery-plugins/colorpicker/colorpicker'); let colorpicker = require('imports-loader?$=jquery!../utils/jquery-plugins/colorpicker/colorpicker');
const preferences = services => { const preferences = services => {
@@ -18,6 +19,14 @@ const preferences = services => {
appEvents.emit('search.doRefreshState'); appEvents.emit('search.doRefreshState');
}); });
$container.on('change', '#ADVSRCH_UNSET_FIELD_FACET', event => {
let $el = $(event.currentTarget);
event.preventDefault();
appCommons.userModule.setPref('show_unset_field_facet', $el.prop('checked') ? '1' : '0');
appEvents.emit('search.updateFacetData');
appEvents.emit('search.doRefreshState');
});
$container.on('click', '.open-preferences', event => { $container.on('click', '.open-preferences', event => {
event.preventDefault(); event.preventDefault();
openModal(event); openModal(event);
@@ -105,26 +114,6 @@ const preferences = services => {
appEvents.emit('search.doRefreshState'); appEvents.emit('search.doRefreshState');
} }
); );
$container.on(
'change',
'.preferences-options-rollover-preview',
event => {
let $el = $(event.currentTarget);
event.preventDefault();
appCommons.userModule.setPref('technical_display', $el.val());
appEvents.emit('search.doRefreshState');
}
);
$container.on(
'change',
'.preferences-options-rollover-preview',
event => {
let $el = $(event.currentTarget);
event.preventDefault();
appCommons.userModule.setPref('technical_display', $el.val());
appEvents.emit('search.doRefreshState');
}
);
$container.on( $container.on(
'change', 'change',

View File

@@ -97,6 +97,7 @@ match_key:
key: key:
geolocation_key() geolocation_key()
| native_key()
| timestamp_key() | timestamp_key()
| ::meta_prefix:: meta_key() | ::meta_prefix:: meta_key()
| ::field_prefix:: field_key() | ::field_prefix:: field_key()

View File

@@ -18,6 +18,7 @@ use Silex\Application;
use Silex\ControllerProviderInterface; use Silex\ControllerProviderInterface;
use Silex\ServiceProviderInterface; use Silex\ServiceProviderInterface;
class Preferences implements ControllerProviderInterface, ServiceProviderInterface class Preferences implements ControllerProviderInterface, ServiceProviderInterface
{ {
use ControllerProviderTrait; use ControllerProviderTrait;
@@ -41,9 +42,11 @@ class Preferences implements ControllerProviderInterface, ServiceProviderInterfa
{ {
$controllers = $this->createAuthenticatedCollection($app); $controllers = $this->createAuthenticatedCollection($app);
/* @uses UserPreferenceController::saveUserPref */
$controllers->post('/', 'controller.user.preferences:saveUserPref') $controllers->post('/', 'controller.user.preferences:saveUserPref')
->bind('save_pref'); ->bind('save_pref');
/* @uses UserPreferenceController::saveTemporaryPref */
$controllers->post('/temporary/', 'controller.user.preferences:saveTemporaryPref') $controllers->post('/temporary/', 'controller.user.preferences:saveTemporaryPref')
->bind('save_temp_pref'); ->bind('save_temp_pref');

View File

@@ -11,26 +11,26 @@
namespace Alchemy\Phrasea\Core\Provider; namespace Alchemy\Phrasea\Core\Provider;
use Alchemy\Phrasea\Application as PhraseaApplication;
use Alchemy\Phrasea\Core\LazyLocator; use Alchemy\Phrasea\Core\LazyLocator;
use Alchemy\Phrasea\SearchEngine\Elastic\DataboxFetcherFactory; use Alchemy\Phrasea\SearchEngine\Elastic\DataboxFetcherFactory;
use Alchemy\Phrasea\SearchEngine\Elastic\ElasticSearchEngine;
use Alchemy\Phrasea\SearchEngine\Elastic\ElasticsearchOptions; use Alchemy\Phrasea\SearchEngine\Elastic\ElasticsearchOptions;
use Alchemy\Phrasea\SearchEngine\Elastic\Index; use Alchemy\Phrasea\SearchEngine\Elastic\Index;
use Alchemy\Phrasea\SearchEngine\Elastic\IndexLocator;
use Alchemy\Phrasea\SearchEngine\Elastic\Search\QueryVisitor;
use Alchemy\Phrasea\SearchEngine\SearchEngineLogger;
use Alchemy\Phrasea\SearchEngine\Elastic\ElasticSearchEngine;
use Alchemy\Phrasea\SearchEngine\Elastic\Indexer; use Alchemy\Phrasea\SearchEngine\Elastic\Indexer;
use Alchemy\Phrasea\SearchEngine\Elastic\IndexerSubscriber;
use Alchemy\Phrasea\SearchEngine\Elastic\Indexer\RecordIndexer; use Alchemy\Phrasea\SearchEngine\Elastic\Indexer\RecordIndexer;
use Alchemy\Phrasea\SearchEngine\Elastic\Indexer\TermIndexer; use Alchemy\Phrasea\SearchEngine\Elastic\Indexer\TermIndexer;
use Alchemy\Phrasea\SearchEngine\Elastic\IndexerSubscriber;
use Alchemy\Phrasea\SearchEngine\Elastic\IndexLocator;
use Alchemy\Phrasea\SearchEngine\Elastic\RecordHelper; use Alchemy\Phrasea\SearchEngine\Elastic\RecordHelper;
use Alchemy\Phrasea\SearchEngine\Elastic\Search\Escaper; use Alchemy\Phrasea\SearchEngine\Elastic\Search\Escaper;
use Alchemy\Phrasea\SearchEngine\Elastic\Search\FacetsResponse; use Alchemy\Phrasea\SearchEngine\Elastic\Search\FacetsResponse;
use Alchemy\Phrasea\SearchEngine\Elastic\Search\QueryContextFactory;
use Alchemy\Phrasea\SearchEngine\Elastic\Search\QueryCompiler; use Alchemy\Phrasea\SearchEngine\Elastic\Search\QueryCompiler;
use Alchemy\Phrasea\SearchEngine\Elastic\Search\QueryContextFactory;
use Alchemy\Phrasea\SearchEngine\Elastic\Search\QueryVisitor;
use Alchemy\Phrasea\SearchEngine\Elastic\Thesaurus; use Alchemy\Phrasea\SearchEngine\Elastic\Thesaurus;
use Alchemy\Phrasea\SearchEngine\SearchEngineLogger;
use Alchemy\Phrasea\SearchEngine\SearchEngineStructure; use Alchemy\Phrasea\SearchEngine\SearchEngineStructure;
// use Alchemy\Phrasea\Utilities\Stopwatch;
use Elasticsearch\ClientBuilder; use Elasticsearch\ClientBuilder;
use Hoa\Compiler; use Hoa\Compiler;
use Hoa\File; use Hoa\File;
@@ -42,7 +42,7 @@ use Silex\ServiceProviderInterface;
use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\HttpKernel\KernelEvents; use Symfony\Component\HttpKernel\KernelEvents;
use \Alchemy\Phrasea\Application as PhraseaApplication; // use Alchemy\Phrasea\Utilities\Stopwatch;
class SearchEngineServiceProvider implements ServiceProviderInterface class SearchEngineServiceProvider implements ServiceProviderInterface
@@ -117,7 +117,7 @@ class SearchEngineServiceProvider implements ServiceProviderInterface
}); });
$app['elasticsearch.facets_response.factory'] = $app->protect(function (array $response) use ($app) { $app['elasticsearch.facets_response.factory'] = $app->protect(function (array $response) use ($app) {
return new FacetsResponse($app['elasticsearch.options'], new Escaper(), $response, $app['search_engine.global_structure']); return new FacetsResponse($app['elasticsearch.options'], new Escaper(), $app['translator'], $response, $app['search_engine.global_structure']);
}); });
return $app; return $app;

View File

@@ -0,0 +1,45 @@
<?php
namespace Alchemy\Phrasea\SearchEngine\Elastic\AST\KeyValue;
use Alchemy\Phrasea\SearchEngine\Elastic\AST\Node;
use Alchemy\Phrasea\SearchEngine\Elastic\Search\QueryContext;
use Alchemy\Phrasea\SearchEngine\Elastic\Search\QueryPostProcessor;
class ExistsExpression extends Node
{
const EXISTS_VALUE = '_filled_';
private $key;
private $value;
public function __construct(Key $key)
{
$this->key = $key;
}
public function buildQuery(QueryContext $context)
{
$query = [
'exists' => [
'field' => $this->key->getIndexField($context, true)
]
];
if ($this->key instanceof QueryPostProcessor) {
return $this->key->postProcessQuery($query, $context);
}
return $query;
}
public function getTermNodes()
{
return array();
}
public function __toString()
{
return sprintf('(<%s> == <%s>)', $this->key, self::EXISTS_VALUE);
}
}

View File

@@ -0,0 +1,49 @@
<?php
namespace Alchemy\Phrasea\SearchEngine\Elastic\AST\KeyValue;
use Alchemy\Phrasea\SearchEngine\Elastic\AST\Node;
use Alchemy\Phrasea\SearchEngine\Elastic\Search\QueryContext;
use Alchemy\Phrasea\SearchEngine\Elastic\Search\QueryPostProcessor;
class MissingExpression extends Node
{
const MISSING_VALUE = '_empty_';
private $key;
private $value;
public function __construct(Key $key)
{
$this->key = $key;
}
public function buildQuery(QueryContext $context)
{
$query = [
'bool' => [
'must_not' => [
'exists' => [
'field' => $this->key->getIndexField($context, true)
]
]
]
];
if ($this->key instanceof QueryPostProcessor) {
return $this->key->postProcessQuery($query, $context);
}
return $query;
}
public function getTermNodes()
{
return array();
}
public function __toString()
{
return sprintf('(<%s> == <%s>)', $this->key, self::MISSING_VALUE);
}
}

View File

@@ -760,6 +760,17 @@ class ElasticSearchEngine implements SearchEngineInterface
] ]
]; ];
$aggs[$name] = AggregationHelper::wrapPrivateFieldAggregation($field, $agg); $aggs[$name] = AggregationHelper::wrapPrivateFieldAggregation($field, $agg);
if($options->getIncludeUnsetFieldFacet() === true) {
$aggs[$name . '#empty'] = AggregationHelper::wrapPrivateFieldAggregation(
$field,
[
'missing' => [
'field' => $field->getIndexField(true),
]
]
);
}
} }
} }

View File

@@ -5,19 +5,20 @@ namespace Alchemy\Phrasea\SearchEngine\Elastic\Search;
use Alchemy\Phrasea\Exception\RuntimeException; use Alchemy\Phrasea\Exception\RuntimeException;
use Alchemy\Phrasea\SearchEngine\Elastic\ElasticsearchOptions; use Alchemy\Phrasea\SearchEngine\Elastic\ElasticsearchOptions;
use Alchemy\Phrasea\SearchEngine\Elastic\Structure\GlobalStructure; use Alchemy\Phrasea\SearchEngine\Elastic\Structure\GlobalStructure;
use Alchemy\Phrasea\SearchEngine\Elastic\Structure\Structure;
use Alchemy\Phrasea\SearchEngine\SearchEngineSuggestion; use Alchemy\Phrasea\SearchEngine\SearchEngineSuggestion;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use igorw; use Symfony\Component\Translation\TranslatorInterface;
class FacetsResponse class FacetsResponse
{ {
private $escaper; private $escaper;
private $facets = array(); private $facets = array();
private $translator;
public function __construct(ElasticsearchOptions $options, Escaper $escaper, array $response, GlobalStructure $structure) public function __construct(ElasticsearchOptions $options, Escaper $escaper, TranslatorInterface $translator, array $response, GlobalStructure $structure)
{ {
$this->escaper = $escaper; $this->escaper = $escaper;
$this->translator = $translator;
if (!isset($response['aggregations'])) { if (!isset($response['aggregations'])) {
return; return;
@@ -48,6 +49,20 @@ class FacetsResponse
} }
$values = []; $values = [];
// insert a fake bucket from the "empty" agg ?
if(array_key_exists($name.'#empty', $response['aggregations'])) {
if (!empty($aggregation['buckets'])) { // don't add to a field with no aggs (no buckets), since it will enforce display of the irrelevant facet
if($response['aggregations'][$name . '#empty']['doc_count'] > 0) { // don't add a facet for 0 results
$aggregation['buckets'][] = [
'key' => '_empty_',
'value' => sprintf($this->translator->trans('prod:workzone:facetstab:unset_field_facet_label_(%s)'), $name), // special homemade prop to display a human value instead of the key
'doc_count' => $response['aggregations'][$name . '#empty']['doc_count']
];
}
}
}
foreach ($aggregation['buckets'] as $bucket) { foreach ($aggregation['buckets'] as $bucket) {
if (!isset($bucket['key']) || !isset($bucket['doc_count'])) { if (!isset($bucket['key']) || !isset($bucket['doc_count'])) {
$this->throwAggregationResponseError(); $this->throwAggregationResponseError();
@@ -65,7 +80,7 @@ class FacetsResponse
else { else {
// the field is a normal field // the field is a normal field
$value = [ $value = [
'value' => $key, 'value' => array_key_exists('value', $bucket) ? $bucket['value'] : $key,
'raw_value' => $key, 'raw_value' => $key,
'count' => $bucket['doc_count'], 'count' => $bucket['doc_count'],
'query' => sprintf('field.%s=%s', $this->escaper->escapeWord($name), $this->escaper->quoteWord($key)) 'query' => sprintf('field.%s=%s', $this->escaper->escapeWord($name), $this->escaper->quoteWord($key))

View File

@@ -197,25 +197,36 @@ class QueryVisitor implements Visit
private function visitEqualNode(TreeNode $node) private function visitEqualNode(TreeNode $node)
{ {
return $this->handleBinaryExpression($node, function($left, $right) { return $this->handleBinaryExpression($node, function($left, $right) {
if($right === AST\KeyValue\MissingExpression::MISSING_VALUE) {
return new AST\KeyValue\MissingExpression($left);
}
if($right === AST\KeyValue\ExistsExpression::EXISTS_VALUE) {
return new AST\KeyValue\ExistsExpression($left);
}
if ($this->isDateKey($left)) { if ($this->isDateKey($left)) {
try { try {
// Try to create a range for incomplete dates // Try to create a range for incomplete dates
$range = QueryHelper::getRangeFromDateString($right); $range = QueryHelper::getRangeFromDateString($right);
if ($range['from'] === $range['to']) { if ($range['from'] === $range['to']) {
return new AST\KeyValue\EqualExpression($left, $range['from']); return new AST\KeyValue\EqualExpression($left, $range['from']);
} else { }
else {
return new AST\KeyValue\RangeExpression( return new AST\KeyValue\RangeExpression(
$left, $left,
$range['from'], true, $range['from'], true,
$range['to'], false $range['to'], false
); );
} }
} catch (\InvalidArgumentException $e) { }
catch (\InvalidArgumentException $e) {
// Fall back to equal expression // Fall back to equal expression
} }
} }
return new AST\KeyValue\EqualExpression($left, $right); return new AST\KeyValue\EqualExpression($left, $right);
}); });
} }

View File

@@ -16,6 +16,7 @@ use Alchemy\Phrasea\Authentication\ACLProvider;
use Alchemy\Phrasea\Authentication\Authenticator; use Alchemy\Phrasea\Authentication\Authenticator;
use Alchemy\Phrasea\Collection\Reference\CollectionReference; use Alchemy\Phrasea\Collection\Reference\CollectionReference;
use Alchemy\Phrasea\Collection\Reference\CollectionReferenceRepository; use Alchemy\Phrasea\Collection\Reference\CollectionReferenceRepository;
use Alchemy\Phrasea\Core\Configuration\DisplaySettingService;
use Assert\Assertion; use Assert\Assertion;
use databox_descriptionStructure; use databox_descriptionStructure;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
@@ -81,14 +82,13 @@ class SearchEngineOptions
/** @var int[] */ /** @var int[] */
protected $business_fields = []; protected $business_fields = [];
/** /** @var int */
* @var int
*/
private $max_results = 10; private $max_results = 10;
/** /** @var bool */
* @var int private $include_unset_field_facet = false;
*/
/** @var int */
private $first_result = 0; private $first_result = 0;
private static $serializable_properties = [ private static $serializable_properties = [
@@ -108,6 +108,7 @@ class SearchEngineOptions
'max_results', 'max_results',
'first_result', 'first_result',
'use_truncation', 'use_truncation',
'include_unset_field_facet',
]; ];
/** /**
@@ -252,6 +253,16 @@ class SearchEngineOptions
return $this->stemming; return $this->stemming;
} }
public function setIncludeUnsetFieldFacet(bool $include_unset_field_facet)
{
$this->include_unset_field_facet = $include_unset_field_facet;
}
public function getIncludeUnsetFieldFacet()
{
return $this->include_unset_field_facet;
}
/** /**
* Set document type to search for * Set document type to search for
* *
@@ -459,6 +470,15 @@ class SearchEngineOptions
$this->collectionReferenceRepository = $collectionReferenceRepository; $this->collectionReferenceRepository = $collectionReferenceRepository;
} }
/**
* @param $app
* @return DisplaySettingService
*/
static private function getSettings($app)
{
return $app['settings'];
}
/** /**
* Creates options based on a Symfony Request object * Creates options based on a Symfony Request object
* *
@@ -472,9 +492,17 @@ class SearchEngineOptions
/** @var Authenticator $authenticator */ /** @var Authenticator $authenticator */
$authenticator = $app->getAuthenticator(); $authenticator = $app->getAuthenticator();
$isAuthenticated = $authenticator->isAuthenticated(); $isAuthenticated = $authenticator->isAuthenticated();
$user = $authenticator->getUser();
$options = new static($app['repo.collection-references']); $options = new static($app['repo.collection-references']);
if($user) {
$options->setIncludeUnsetFieldFacet((Boolean)(self::getSettings($app)->getUserSetting($user, 'show_unset_field_facet', false)));
}
else {
$options->setIncludeUnsetFieldFacet(false);
}
$options->disallowBusinessFields(); $options->disallowBusinessFields();
$options->setLocale($app['locale']); $options->setLocale($app['locale']);
@@ -676,6 +704,7 @@ class SearchEngineOptions
}, },
'first_result' => $optionSetter('setFirstResult'), 'first_result' => $optionSetter('setFirstResult'),
'max_results' => $optionSetter('setMaxResults'), 'max_results' => $optionSetter('setMaxResults'),
'include_unset_field_facet' => $optionSetter('setIncludeUnsetFieldFacet'),
]; ];
} }

View File

@@ -59,7 +59,7 @@ class PhraseanetExtension extends \Twig_Extension
{ {
return [ return [
// change this version when you change JS file to force the navigation to reload js file // change this version when you change JS file to force the navigation to reload js file
'jsFileVersion' => 16 'jsFileVersion' => 17
]; ];
} }

View File

@@ -904,13 +904,22 @@
</form> </form>
</div> </div>
<div class="box"> <div class="box">
<h1>{{ 'index::advance_search: facet' | trans }}</h1>
{% set facetFilter = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'facet') %} {% set facetFilter = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'facet') %}
{% set _empty_facetFilter = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'show__empty__facet') %}
<h1>{{ 'index::advance_search: facet' | trans }}</h1>
<label class="checkbox inline" for="ADVSRCH_FILTER_FACET" style="margin-bottom: 1em"> <label class="checkbox inline" for="ADVSRCH_FILTER_FACET" style="margin-bottom: 1em">
<input id="ADVSRCH_FILTER_FACET" type="checkbox" name="filter_facet" {% if facetFilter == 'true' %}checked="checked"{% endif %}> <input id="ADVSRCH_FILTER_FACET" type="checkbox" name="filter_facet" {% if facetFilter == 'true' %}checked="checked"{% endif %}>
{{ 'index::advance_search: disable-facet' | trans }} {{ 'index::advance_search: disable-facet' | trans }}
</label> </label>
<br/>
<label class="checkbox inline" for="ADVSRCH_UNSET_FIELD_FACET" style="margin-bottom: 1em">
<input id="ADVSRCH_UNSET_FIELD_FACET" type="checkbox" name="show_unset_field_facet" {% if _empty_facetFilter == 'true' %}checked="checked"{% endif %}>
{{ 'index::advance_search: show-unset-field-facet' | trans }}
</label>
<h1>{{ 'index::advance_search: hidden-facet-values-order' | trans }}</h1> <h1>{{ 'index::advance_search: hidden-facet-values-order' | trans }}</h1>
<div class="hiddenFiltersListContainer"></div> <div class="hiddenFiltersListContainer"></div>
</div> </div>
</div> </div>