mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-17 15:03:25 +00:00
Merge pull request #2394 from mike-esokia/PHRAS-1726_PORT_PHRAS-1559_1560
PORT PHRAS-1559 and PHRAS-1560 to 4.1
This commit is contained in:
@@ -36,6 +36,31 @@ class MoveCollectionController extends Controller
|
||||
} else {
|
||||
// is able to move:
|
||||
$success = true;
|
||||
|
||||
/** @var DisplaySettingService $settings */
|
||||
$settings = $this->app['settings'];
|
||||
$userOrderSetting = $settings->getUserSetting($this->app->getAuthenticatedUser(), 'order_collection_by');
|
||||
// a temporary array to sort the collections
|
||||
$aName = array();
|
||||
list($ukey, $uorder) = ["order", SORT_ASC]; // default ORDER_BY_ADMIN
|
||||
switch ($userOrderSetting) {
|
||||
case $settings::ORDER_ALPHA_ASC :
|
||||
list($ukey, $uorder) = ["name", SORT_ASC];
|
||||
break;
|
||||
case $settings::ORDER_ALPHA_DESC :
|
||||
list($ukey, $uorder) = ["name", SORT_DESC];
|
||||
break;
|
||||
}
|
||||
foreach ($collections as $key => $row) {
|
||||
if($ukey == "order") {
|
||||
$aName[$key] = $row->get_ord();
|
||||
}else {
|
||||
$aName[$key] = $row->get_name();
|
||||
}
|
||||
}
|
||||
// sort the collections
|
||||
array_multisort($aName, $uorder, SORT_REGULAR, $collections);
|
||||
|
||||
$parameters = [
|
||||
'records' => $records,
|
||||
'message' => '',
|
||||
|
@@ -243,20 +243,45 @@ class UploadController extends Controller
|
||||
{
|
||||
$collections = [];
|
||||
|
||||
foreach ($acl->get_granted_base([\ACL::CANADDRECORD]) as $collection) {
|
||||
$databox = $collection->get_databox();
|
||||
|
||||
if ( ! isset($collections[$databox->get_sbas_id()])) {
|
||||
$collections[$databox->get_sbas_id()] = [
|
||||
'databox' => $databox,
|
||||
'databox_collections' => []
|
||||
];
|
||||
foreach ($acl->get_granted_sbas() as $databox) {
|
||||
$sbasId = $databox->get_sbas_id();
|
||||
foreach ($acl->get_granted_base([\ACL::CANADDRECORD], [$sbasId]) as $collection) {
|
||||
$databox = $collection->get_databox();
|
||||
if ( ! isset($collections[$sbasId])) {
|
||||
$collections[$databox->get_sbas_id()] = [
|
||||
'databox' => $databox,
|
||||
'databox_collections' => []
|
||||
];
|
||||
}
|
||||
$collections[$databox->get_sbas_id()]['databox_collections'][] = $collection;
|
||||
/** @var DisplaySettingService $settings */
|
||||
$settings = $this->app['settings'];
|
||||
$userOrderSetting = $settings->getUserSetting($this->app->getAuthenticatedUser(), 'order_collection_by');
|
||||
// a temporary array to sort the collections
|
||||
$aName = [];
|
||||
list($ukey, $uorder) = ["order", SORT_ASC]; // default ORDER_BY_ADMIN
|
||||
switch ($userOrderSetting) {
|
||||
case $settings::ORDER_ALPHA_ASC :
|
||||
list($ukey, $uorder) = ["name", SORT_ASC];
|
||||
break;
|
||||
case $settings::ORDER_ALPHA_DESC :
|
||||
list($ukey, $uorder) = ["name", SORT_DESC];
|
||||
break;
|
||||
}
|
||||
foreach ($collections[$databox->get_sbas_id()]['databox_collections'] as $key => $row) {
|
||||
if ($ukey == "order") {
|
||||
$aName[$key] = $row->get_ord();
|
||||
}
|
||||
else {
|
||||
$aName[$key] = $row->get_name();
|
||||
}
|
||||
}
|
||||
// sort the collections
|
||||
array_multisort($aName, $uorder, SORT_REGULAR, $collections[$databox->get_sbas_id()]['databox_collections']);
|
||||
}
|
||||
|
||||
$collections[$databox->get_sbas_id()]['databox_collections'][] = $collection;
|
||||
}
|
||||
|
||||
return $collections;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -15,6 +15,10 @@ use Alchemy\Phrasea\Model\Entities\User;
|
||||
|
||||
class DisplaySettingService
|
||||
{
|
||||
const ORDER_ALPHA_ASC = "ORDER_ALPHA_ASC";
|
||||
const ORDER_ALPHA_DESC = "ORDER_ALPHA_DESC";
|
||||
const ORDER_BY_ADMIN = "ORDER_BY_ADMIN";
|
||||
|
||||
/**
|
||||
* The default user settings.
|
||||
*
|
||||
@@ -34,6 +38,7 @@ class DisplaySettingService
|
||||
'client_basket_status' => '1',
|
||||
'css' => '000000',
|
||||
'start_page_query' => '',
|
||||
'order_collection_by' => self::ORDER_BY_ADMIN,
|
||||
'start_page' => 'QUERY',
|
||||
'rollover_thumbnail' => 'caption',
|
||||
'technical_display' => '1',
|
||||
|
@@ -46,10 +46,34 @@ class Prod extends Helper
|
||||
$selected = $saveSettings ? ((isset($searchSet['bases']) && isset($searchSet['bases'][$sbasId])) ? (in_array($coll->get_base_id(), $searchSet['bases'][$sbasId])) : true) : true;
|
||||
$bases[$sbasId]['collections'][] = array(
|
||||
'selected' => $selected,
|
||||
'base_id' => $coll->get_base_id()
|
||||
'base_id' => $coll->get_base_id(),
|
||||
'name' => $coll->get_name(),
|
||||
'order' => $coll->get_ord()
|
||||
);
|
||||
}
|
||||
|
||||
/** @var DisplaySettingService $settings */
|
||||
$settings = $this->app['settings'];
|
||||
$userOrderSetting = $settings->getUserSetting($this->app->getAuthenticatedUser(), 'order_collection_by');
|
||||
|
||||
// a temporary array to sort the collections
|
||||
$aName = array();
|
||||
list($ukey, $uorder) = ["order", SORT_ASC]; // default ORDER_BY_ADMIN
|
||||
switch ($userOrderSetting) {
|
||||
case $settings::ORDER_ALPHA_ASC :
|
||||
list($ukey, $uorder) = ["name", SORT_ASC];
|
||||
break;
|
||||
|
||||
case $settings::ORDER_ALPHA_DESC :
|
||||
list($ukey, $uorder) = ["name", SORT_DESC];
|
||||
break;
|
||||
}
|
||||
foreach ($bases[$sbasId]['collections'] as $key => $row) {
|
||||
$aName[$key] = $row[$ukey];
|
||||
}
|
||||
// sort the collections
|
||||
array_multisort($aName, $uorder, SORT_REGULAR, $bases[$sbasId]['collections']);
|
||||
|
||||
foreach ($databox->get_meta_structure() as $fieldMeta) {
|
||||
if (!$fieldMeta->is_indexable()) {
|
||||
continue;
|
||||
|
@@ -669,6 +669,19 @@
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<h1>{{ 'Collection order' | trans }}</h1>
|
||||
<form class="form-inline">
|
||||
{% set order_collection_by = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'order_collection_by') %}
|
||||
<label class="select" for="orderByName">
|
||||
<select class="preferences-options-collection-order" name="orderByName">
|
||||
<option {% if order_collection_by == constant('Alchemy\\Phrasea\\Core\\Configuration\\DisplaySettingService::ORDER_BY_ADMIN') %} selected="selected" {% endif %} value="{{ constant('Alchemy\\Phrasea\\Core\\Configuration\\DisplaySettingService::ORDER_BY_ADMIN') }}">{{ 'Defined by admin' | trans }}</option>
|
||||
<option {% if order_collection_by == constant('Alchemy\\Phrasea\\Core\\Configuration\\DisplaySettingService::ORDER_ALPHA_ASC') %} selected="selected" {% endif %} value="{{ constant('Alchemy\\Phrasea\\Core\\Configuration\\DisplaySettingService::ORDER_ALPHA_ASC') }}">{{ 'Alphabetic asc' | trans }}</option>
|
||||
<option {% if order_collection_by == constant('Alchemy\\Phrasea\\Core\\Configuration\\DisplaySettingService::ORDER_ALPHA_DESC') %} selected="selected" {% endif %} value="{{ constant('Alchemy\\Phrasea\\Core\\Configuration\\DisplaySettingService::ORDER_ALPHA_DESC') }}">{{ 'Alphabetic desc' | trans }}</option>
|
||||
</select>
|
||||
</label>
|
||||
</form>
|
||||
</div>
|
||||
<div class="box">
|
||||
<h1>{{ 'index::advance_search: facet' | trans }}</h1>
|
||||
{% set facetFilter = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'facet') %}
|
||||
|
Reference in New Issue
Block a user