mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-17 23:13:15 +00:00
add functionality to navigate between records in mobile version of lightbox
This commit is contained in:
@@ -78,17 +78,39 @@ class LightboxController extends Controller
|
|||||||
{
|
{
|
||||||
/** @var BasketElementRepository $repository */
|
/** @var BasketElementRepository $repository */
|
||||||
$repository = $this->app['repo.basket-elements'];
|
$repository = $this->app['repo.basket-elements'];
|
||||||
|
|
||||||
$basketElement = $repository->findUserElement($sselcont_id, $this->getAuthenticatedUser());
|
$basketElement = $repository->findUserElement($sselcont_id, $this->getAuthenticatedUser());
|
||||||
|
|
||||||
|
$basket = $basketElement->getBasket();
|
||||||
|
|
||||||
|
$elements = $basket->getElements();
|
||||||
|
for ($i = 0; $i < count($elements); ++$i) {
|
||||||
|
if ($sselcont_id == $elements[$i]->getId()) {
|
||||||
|
$nextKey = $i + 1;
|
||||||
|
$prevKey = $i - 1;
|
||||||
|
if ($nextKey < count($elements)) {
|
||||||
|
$nextId = $elements[$nextKey]->getId();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$nextId = null;
|
||||||
|
}
|
||||||
|
if ($prevKey >= 0) {
|
||||||
|
$prevId = $elements[$prevKey]->getId();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$prevId = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->app['browser']->isMobile()) {
|
if ($this->app['browser']->isMobile()) {
|
||||||
return $this->renderResponse('lightbox/basket_element.html.twig', [
|
return $this->renderResponse('lightbox/basket_element.html.twig', [
|
||||||
'basket_element' => $basketElement,
|
'basket_element' => $basketElement,
|
||||||
'module_name' => $basketElement->getRecord($this->app)->get_title()
|
'module_name' => $basketElement->getRecord($this->app)->get_title(),
|
||||||
|
'nextId' => $nextId,
|
||||||
|
'prevId' => $prevId
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$basket = $basketElement->getBasket();
|
|
||||||
|
|
||||||
$ret = [];
|
$ret = [];
|
||||||
$ret['number'] = $basketElement->getRecord($this->app)->getNumber();
|
$ret['number'] = $basketElement->getRecord($this->app)->getNumber();
|
||||||
|
@@ -1 +1,15 @@
|
|||||||
@import './jquery-mobile/jquery-validator';
|
@import './jquery-mobile/jquery-validator';
|
||||||
|
|
||||||
|
.nav_button {
|
||||||
|
width: 90%;
|
||||||
|
margin: 0px auto;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#left-btn {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#right-btn {
|
||||||
|
float: right;
|
||||||
|
}
|
@@ -37,14 +37,31 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% set record = basket_element.getRecord(app) %}
|
{% set record = basket_element.getRecord(app) %}
|
||||||
<div data-role="page" id="page">
|
|
||||||
|
|
||||||
|
<div data-role="page" id="page">
|
||||||
<div data-role="header">
|
<div data-role="header">
|
||||||
<a href="{{ path('lightbox_validation', { 'basket' : basket_element.getBasket().getId() }) }}" data-rel="back" data-icon="arrow-l">Back</a>
|
<a href="{{ path('lightbox_validation', { 'basket' : basket_element.getBasket().getId() }) }}"
|
||||||
|
data-icon="arrow-l">{{ 'Back' | trans }}</a>
|
||||||
<h1>{{basket_element.getOrd()}} - {{record.get_title()}}</h1>
|
<h1>{{basket_element.getOrd()}} - {{record.get_title()}}</h1>
|
||||||
<a rel="external" href="{{ path('lightbox') }}" data-icon="home" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home">Home</a>
|
<a rel="external" href="{{ path('lightbox') }}" data-icon="home" data-iconpos="notext" data-direction="reverse"
|
||||||
|
class="ui-btn-right jqm-home">{{ 'Home' | trans }}</a>
|
||||||
</div>
|
</div>
|
||||||
<div id="content" data-role="content">
|
<div id="content" data-role="content">
|
||||||
{{ thumbnail.format100percent(record.get_preview()) }}
|
{{ thumbnail.format100percent(record.get_preview()) }}
|
||||||
|
<div class="nav_button">
|
||||||
|
{% if prevId != NULL %}
|
||||||
|
<a data-ajax="false" id="left-btn"
|
||||||
|
href="{{ path('lightbox_ajax_load_basketelement', { 'sselcont_id' : prevId }) }}"
|
||||||
|
class="ui-btn ui-shadow ui-corner-all ui-icon-carat-l ui-btn-icon-notext">Left</a>
|
||||||
|
{% endif %}
|
||||||
|
{% if nextId != NULL %}
|
||||||
|
<a data-ajax="false" id="right-btn" data-ajax="false"
|
||||||
|
href="{{ path('lightbox_ajax_load_basketelement', { 'sselcont_id' : nextId }) }}"
|
||||||
|
class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext">Right</a>
|
||||||
|
{% endif %}
|
||||||
|
<div style="clear: both;"></div>
|
||||||
|
</div>
|
||||||
{% if basket_element.getBasket().getValidation() %}
|
{% if basket_element.getBasket().getValidation() %}
|
||||||
{% if basket_element.getBasket().getValidation().getParticipant(app.getAuthenticatedUser()).getCanAgree() %}
|
{% if basket_element.getBasket().getValidation().getParticipant(app.getAuthenticatedUser()).getCanAgree() %}
|
||||||
<fieldset data-role="controlgroup" data-type="horizontal" style="text-align:center;">
|
<fieldset data-role="controlgroup" data-type="horizontal" style="text-align:center;">
|
||||||
@@ -70,4 +87,5 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@@ -82,7 +82,7 @@
|
|||||||
|
|
||||||
<div id="validation" data-role="page">
|
<div id="validation" data-role="page">
|
||||||
<div data-role="header">
|
<div data-role="header">
|
||||||
<a href="#home" data-rel="back" data-icon="arrow-l">{{ 'Back' | trans }}</a>
|
<a rel="external" href="#home" data-icon="arrow-l">{{ 'Back' | trans }}</a>
|
||||||
<h1>{{ 'Validations' | trans }}</h1>
|
<h1>{{ 'Validations' | trans }}</h1>
|
||||||
</div>
|
</div>
|
||||||
<div data-role="content">
|
<div data-role="content">
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
|
|
||||||
<div id="baskets" data-role="page">
|
<div id="baskets" data-role="page">
|
||||||
<div data-role="header">
|
<div data-role="header">
|
||||||
<a href="#home" data-rel="back" data-icon="arrow-l">{{ 'Back' | trans }}</a>
|
<a rel="external" href="#home" data-icon="arrow-l">{{ 'Back' | trans }}</a>
|
||||||
<h1>{{ 'Paniers' | trans }}</h1>
|
<h1>{{ 'Paniers' | trans }}</h1>
|
||||||
</div>
|
</div>
|
||||||
<div data-role="content">
|
<div data-role="content">
|
||||||
|
@@ -26,7 +26,9 @@
|
|||||||
{% block content %}
|
{% block content %}
|
||||||
<div id="home" data-role="page">
|
<div id="home" data-role="page">
|
||||||
<div data-role="header">
|
<div data-role="header">
|
||||||
<a href="{{ path('lightbox') }}{% if basket.getValidation() %}#validation{% else %}#baskets{% endif %}" data-rel="back" data-icon="arrow-l">{{ 'Back' | trans }}</a>
|
<a rel="external"
|
||||||
|
href="{{ path('lightbox') }}{% if basket.getValidation() %}#validation{% else %}#baskets{% endif %}"
|
||||||
|
data-icon="arrow-l">{{ 'Back' | trans }}</a>
|
||||||
<h1>{{basket.getName()}}</h1>
|
<h1>{{basket.getName()}}</h1>
|
||||||
<a rel="external" href="{{ path('lightbox') }}" data-icon="home" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home">{{ 'Home' | trans }}</a>
|
<a rel="external" href="{{ path('lightbox') }}" data-icon="home" data-iconpos="notext" data-direction="reverse" class="ui-btn-right jqm-home">{{ 'Home' | trans }}</a>
|
||||||
</div>
|
</div>
|
||||||
|
Reference in New Issue
Block a user