Skip to content
Snippets Groups Projects
Commit fb638c43 authored by Laurent's avatar Laurent
Browse files

dev #14409 filters in calendar box

filters title show selected value
parent b3823214
Branches
Tags
2 merge requests!529Hotline 6.56,!407Dev/14409 filters in calendar box
......@@ -103,12 +103,9 @@ abstract class ZendAfi_View_Helper_Calendar_FilterElements extends Zend_View_Hel
[$filter => null]);
$available_filters = (new Class_Systeme_ModulesAccueil_Calendrier())->getAvailableFilters();
$title = isset($available_filters[$filter]) ? $available_filters[$filter] : '';
return
'<li class="' . $filter . '">'
. '<h2>' . $title . '</h2>'
. '<h2>' . $this->_renderTitle($active_filters, $elements, $filter ) . '</h2>'
. '<ul>'
. $this->_renderFilterItems($active_filters, $url_base_params, $filter, $elements)
. '</ul>'
......@@ -116,6 +113,25 @@ abstract class ZendAfi_View_Helper_Calendar_FilterElements extends Zend_View_Hel
}
protected function _renderTitle($active_filters, $elements, $filter ) {
$available_filters = (new Class_Systeme_ModulesAccueil_Calendrier())->getAvailableFilters();
if (!isset($available_filters[$filter]))
return '';
$title = $available_filters[$filter];
if (!isset($active_filters[$filter]))
return $title;
$current_value = $active_filters[$filter];
if (!isset($elements[$current_value]))
return $title;
$current_label = $elements[$current_value];
return $title . ': '. $current_label;
}
protected function _renderFilterItems($active_filters, $url_base_params, $filter, $elements) {
$output = $this->_renderAnyValueItem($url_base_params, !isset($active_filters[$filter]));
......
......@@ -163,22 +163,24 @@ class CmsControllerCalendarActionWithFiltersTest extends CmsControllerCalendarAc
'custom_fields' => [2 => 'opac'],
'published' => true];
$this->_date = date('Y-m', mktime(0, 0, 0, date('n') + 5));
$time_source = new TimeSourceForTest('2014-06-06 14:14:14');
ZendAfi_View_Helper_CalendarContent::setTimeSource($time_source);
ZendAfi_View_Helper_Calendar_Months::setTimeSource($time_source);
Class_Article::getLoader()
->whenCalled('getArticlesByPreferences')
->with(array_merge($common_preferences, ['event_date' => $this->_date]))
->with(array_merge($common_preferences, ['event_date' => '2014-07']))
->answers([$this->_opac4])
->whenCalled('getArticlesByPreferences')
->with(array_merge($common_preferences, ['event_date' => '',
'event_start_after' => $this->_date,
'event_start_after' => '2014-07',
'event_end_after' => '',
'limit' => 3]))
->answers([])
->beStrict();
$this->dispatch('/cms/calendar/id_profil/3/id_module/1/date/' . $this->_date . '/custom_field_2/opac/render/ajax', true);
$this->dispatch('/cms/calendar/id_profil/3/id_module/1/date/2014-07/custom_field_2/opac/render/ajax', true);
}
......@@ -198,21 +200,27 @@ class CmsControllerCalendarActionWithFiltersTest extends CmsControllerCalendarAc
/** @test */
public function selectedMonthFilterShouldHaveClassSelected() {
$this->assertXPath('//li[@class="date"]//li[@class="selected"]/a[contains(@href, "/cms/calendar/id_module/1/custom_field_2/opac/date/' . $this->_date . '")]');
$this->assertXPath('//li[@class="date"]//li[@class="selected"]/a[contains(@href, "/cms/calendar/id_module/1/custom_field_2/opac/date/2014-07")]');
}
/** @test */
public function themeFilterShouldContainsDate() {
$this->assertXPathContentContains('//li[@class="custom_field_2"]//li//a[contains(@href, "/cms/calendar/id_module/1/custom_field_2/sigb/date/' . $this->_date . '")]',
$this->assertXPathContentContains('//li[@class="custom_field_2"]//li//a[contains(@href, "/cms/calendar/id_module/1/custom_field_2/sigb/date/2014-07")]',
'sigb');
}
/** @test */
public function monthFilterShouldHaveTitleMois() {
public function themeFilterHeaderShouldBeThemeOPAC() {
$this->assertXPathContentContains('//li[@class="custom_field_2"]/h2', 'Theme: opac');
}
/** @test */
public function monthFilterShouldHaveTitleMoisJuillet() {
$this->assertXPathContentContains('//ul[@class="filters"]/li[@class="date"]/h2',
'Mois');
'Mois: Juillet');
}
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment