mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-18 15:33:15 +00:00
PORT PHRAS-1559 and PHRAS-1560 to 4.1
This commit is contained in:
@@ -36,6 +36,31 @@ class MoveCollectionController extends Controller
|
|||||||
} else {
|
} else {
|
||||||
// is able to move:
|
// is able to move:
|
||||||
$success = true;
|
$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 = [
|
$parameters = [
|
||||||
'records' => $records,
|
'records' => $records,
|
||||||
'message' => '',
|
'message' => '',
|
||||||
|
@@ -243,20 +243,45 @@ class UploadController extends Controller
|
|||||||
{
|
{
|
||||||
$collections = [];
|
$collections = [];
|
||||||
|
|
||||||
foreach ($acl->get_granted_base([\ACL::CANADDRECORD]) as $collection) {
|
foreach ($acl->get_granted_sbas() as $databox) {
|
||||||
$databox = $collection->get_databox();
|
$sbasId = $databox->get_sbas_id();
|
||||||
|
foreach ($acl->get_granted_base([\ACL::CANADDRECORD], [$sbasId]) as $collection) {
|
||||||
if ( ! isset($collections[$databox->get_sbas_id()])) {
|
$databox = $collection->get_databox();
|
||||||
$collections[$databox->get_sbas_id()] = [
|
if ( ! isset($collections[$sbasId])) {
|
||||||
'databox' => $databox,
|
$collections[$databox->get_sbas_id()] = [
|
||||||
'databox_collections' => []
|
'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;
|
return $collections;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -15,6 +15,10 @@ use Alchemy\Phrasea\Model\Entities\User;
|
|||||||
|
|
||||||
class DisplaySettingService
|
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.
|
* The default user settings.
|
||||||
*
|
*
|
||||||
@@ -34,6 +38,7 @@ class DisplaySettingService
|
|||||||
'client_basket_status' => '1',
|
'client_basket_status' => '1',
|
||||||
'css' => '000000',
|
'css' => '000000',
|
||||||
'start_page_query' => '',
|
'start_page_query' => '',
|
||||||
|
'order_collection_by' => self::ORDER_BY_ADMIN,
|
||||||
'start_page' => 'QUERY',
|
'start_page' => 'QUERY',
|
||||||
'rollover_thumbnail' => 'caption',
|
'rollover_thumbnail' => 'caption',
|
||||||
'technical_display' => '1',
|
'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;
|
$selected = $saveSettings ? ((isset($searchSet['bases']) && isset($searchSet['bases'][$sbasId])) ? (in_array($coll->get_base_id(), $searchSet['bases'][$sbasId])) : true) : true;
|
||||||
$bases[$sbasId]['collections'][] = array(
|
$bases[$sbasId]['collections'][] = array(
|
||||||
'selected' => $selected,
|
'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) {
|
foreach ($databox->get_meta_structure() as $fieldMeta) {
|
||||||
if (!$fieldMeta->is_indexable()) {
|
if (!$fieldMeta->is_indexable()) {
|
||||||
continue;
|
continue;
|
||||||
|
@@ -664,6 +664,19 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</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">
|
<div class="box">
|
||||||
<h1>{{ 'index::advance_search: facet' | trans }}</h1>
|
<h1>{{ 'index::advance_search: facet' | trans }}</h1>
|
||||||
{% set facetFilter = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'facet') %}
|
{% set facetFilter = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'facet') %}
|
||||||
|
Reference in New Issue
Block a user