From f95e40f0b825d314ab7c5c4178a742a827ce1d62 Mon Sep 17 00:00:00 2001 From: Mike Ng Date: Thu, 8 Mar 2018 13:02:07 +0400 Subject: [PATCH] Port PHRAS-1381 to 4.1 --- .../Prod/MoveCollectionController.php | 30 +++++++++++++ package-lock.json | 42 +++++++++---------- yarn.lock | 32 ++++---------- 3 files changed, 60 insertions(+), 44 deletions(-) diff --git a/lib/Alchemy/Phrasea/Controller/Prod/MoveCollectionController.php b/lib/Alchemy/Phrasea/Controller/Prod/MoveCollectionController.php index 0c540b4c4d..c4fe729538 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/MoveCollectionController.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/MoveCollectionController.php @@ -110,6 +110,9 @@ class MoveCollectionController extends Controller return $this->app->json($datas); } + /** @var \collection[] $trashCollectionsBySbasId */ + $trashCollectionsBySbasId = []; + foreach ($records as $record) { $record->move_to_collection($collection, $this->getApplicationBox()); @@ -121,6 +124,33 @@ class MoveCollectionController extends Controller } } } + + $sbasId = $record->getDatabox()->get_sbas_id(); + if (!array_key_exists($sbasId, $trashCollectionsBySbasId)) { + $trashCollectionsBySbasId[$sbasId] = $record->getDatabox()->getTrashCollection(); + } + if ($trashCollectionsBySbasId[$sbasId] !== null) { + if ($record->getCollection()->get_coll_id() == $trashCollectionsBySbasId[$sbasId]->get_coll_id() && $collection->get_coll_id() !== $trashCollectionsBySbasId[$sbasId]->get_coll_id()) { + // record is already in trash so active it + foreach ($record->get_subdefs() as $subdef) { + if (($pl = $subdef->get_permalink())) { + $pl->set_is_activated(true); + } + } + if ($request->request->get("chg_coll_son") == "1") { + /** @var \record_adapter $child */ + foreach ($record->getChildren() as $child) { + if ($this->getAclForUser()->has_right_on_base($child->getBaseId(), \ACL::CANDELETERECORD)) { + foreach ($child->get_subdefs() as $childSubdef) { + if (($childPl = $childSubdef->get_permalink())) { + $childPl->set_is_activated(true); + } + } + } + } + } + } + } } $ret = [ diff --git a/package-lock.json b/package-lock.json index c28e160c1a..5afe08612a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -941,9 +941,9 @@ "dev": true }, "commander": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", - "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.0.tgz", + "integrity": "sha512-7B1ilBwtYSbetCgTY1NJFg+gVpestg0fdA1MhC1Vs4ssyfSXnCAjFr+QcQM9/RedXC0EaUx1sG8Smgw2VfgKEg==", "dev": true }, "component-bind": { @@ -3323,9 +3323,9 @@ "dev": true }, "hosted-git-info": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==" }, "html5shiv": { "version": "3.7.3", @@ -7842,9 +7842,9 @@ } }, "phraseanet-production-client": { - "version": "0.33.4", - "resolved": "https://registry.npmjs.org/phraseanet-production-client/-/phraseanet-production-client-0.33.4.tgz", - "integrity": "sha512-8WLRAE4fQ8YE6Eer6fNw/VVkyO7Ye3x3kLR0CjD6mOAvd+P61kOAX7Ve6enQybw1F+axvf+YdeQPT4NLTK9Aiw==", + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/phraseanet-production-client/-/phraseanet-production-client-0.33.5.tgz", + "integrity": "sha512-mu/XHMW4MUT5cGjt30g6CBXJgacnnQGTwrOHK9XyzMboyjXjOfocAc6jEXZXdn5CFem+BXJbg1OmGZPbf/aaAA==", "dependencies": { "blueimp-canvas-to-blob": { "version": "3.5.0", @@ -7895,9 +7895,9 @@ "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==" }, "video.js": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/video.js/-/video.js-6.6.3.tgz", - "integrity": "sha512-kSTpyEEBt29LAiNHHK5HCnyWfTsnsSWEjTAjuHcAPfhChmw4uLN/vL9iVMNeDP8t/wf/9CL30hzOa42VdRcmTg==" + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/video.js/-/video.js-6.7.3.tgz", + "integrity": "sha512-sJ3CF08r4BwbKCzT2R7QTw5rPjRA/fpP2J6IkFxVvh7MDDnvZG9+zrBiChXDXrurtIDO8eUqSNC+pBT/lIICQA==" }, "videojs-font": { "version": "2.1.0", @@ -7910,9 +7910,9 @@ "integrity": "sha1-oj09hgitcZK2nGB3/E64SJmNNdk=" }, "videojs-vtt.js": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.12.4.tgz", - "integrity": "sha1-OPJJnjHvs/qTWQ3a1MtmMnWksWE=" + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.12.5.tgz", + "integrity": "sha1-MoUnMnQci056QxTKos2TZGqcLUA=" }, "xhr": { "version": "2.4.0", @@ -9480,9 +9480,9 @@ "integrity": "sha512-ZuuG5jrrfrYTmi5ggg1km0jbR9g/eRKtvCHw1wzBucsM+tvRKq2oiK1Vz9cs0w7Vk/hw3mMLmLHWEQZOgdrJaQ==", "dependencies": { "video.js": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/video.js/-/video.js-6.6.3.tgz", - "integrity": "sha512-kSTpyEEBt29LAiNHHK5HCnyWfTsnsSWEjTAjuHcAPfhChmw4uLN/vL9iVMNeDP8t/wf/9CL30hzOa42VdRcmTg==" + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/video.js/-/video.js-6.7.3.tgz", + "integrity": "sha512-sJ3CF08r4BwbKCzT2R7QTw5rPjRA/fpP2J6IkFxVvh7MDDnvZG9+zrBiChXDXrurtIDO8eUqSNC+pBT/lIICQA==" }, "videojs-font": { "version": "2.1.0", @@ -9500,9 +9500,9 @@ "integrity": "sha1-IHfvccdJ8seCPvSbq65N0qywj4c=" }, "videojs-vtt.js": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.12.4.tgz", - "integrity": "sha1-OPJJnjHvs/qTWQ3a1MtmMnWksWE=" + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.12.5.tgz", + "integrity": "sha1-MoUnMnQci056QxTKos2TZGqcLUA=" }, "xhr": { "version": "2.4.0", diff --git a/yarn.lock b/yarn.lock index f6bea36bfe..d47a8ce65a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1339,7 +1339,7 @@ debug@~2.2.0: dependencies: ms "0.7.1" -debuglog@*, debuglog@^1.0.1: +debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -3020,7 +3020,7 @@ imports-loader@^0.7.1: loader-utils "^1.0.2" source-map "^0.5.6" -imurmurhash@*, imurmurhash@^0.1.4: +imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -3805,10 +3805,6 @@ lodash._basefor@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2" -lodash._baseindexof@*: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" - lodash._basetostring@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" @@ -3824,14 +3820,10 @@ lodash._basevalues@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" -lodash._bindcallback@*, lodash._bindcallback@^3.0.0: +lodash._bindcallback@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" -lodash._cacheindexof@*: - version "3.0.2" - resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" - lodash._createassigner@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" @@ -3840,12 +3832,6 @@ lodash._createassigner@^3.0.0: lodash._isiterateecall "^3.0.0" lodash.restparam "^3.0.0" -lodash._createcache@*: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" - dependencies: - lodash._getnative "^3.0.0" - lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" @@ -3860,7 +3846,7 @@ lodash._escapestringchar@~2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/lodash._escapestringchar/-/lodash._escapestringchar-2.4.1.tgz#ecfe22618a2ade50bfeea43937e51df66f0edb72" -lodash._getnative@*, lodash._getnative@^3.0.0: +lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" @@ -4027,7 +4013,7 @@ lodash.mergewith@^4.6.0: version "4.6.1" resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" -lodash.restparam@*, lodash.restparam@^3.0.0: +lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" @@ -5330,8 +5316,8 @@ phraseanet-common@^0.4.1: pym.js "^1.3.1" phraseanet-production-client@^0.33.0: - version "0.33.4" - resolved "https://registry.yarnpkg.com/phraseanet-production-client/-/phraseanet-production-client-0.33.4.tgz#a03f8e34c5b7b7db8d99b6830617b8944939f8c5" + version "0.33.5" + resolved "https://registry.yarnpkg.com/phraseanet-production-client/-/phraseanet-production-client-0.33.5.tgz#f73066ac98786a473ee5ff918aa6f14babb9580e" dependencies: axios "^0.16.2" backbone "^1.3.3" @@ -5740,7 +5726,7 @@ readable-stream@~1.1.10, readable-stream@~1.1.9: isarray "0.0.1" string_decoder "~0.10.x" -readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0: +readdir-scoped-modules@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" dependencies: @@ -7073,7 +7059,7 @@ v8flags@^2.0.2: dependencies: user-home "^1.1.1" -validate-npm-package-license@*, validate-npm-package-license@^3.0.1: +validate-npm-package-license@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" dependencies: