W.I.P of Calendar holiday report:

- Handle holiday_report preference on server-side
This commit is contained in:
Hadi Nategh 2016-11-02 18:38:10 +01:00
parent 1764ee826c
commit 035c544529
3 changed files with 15 additions and 16 deletions

View File

@ -57,7 +57,7 @@ class calendar_holiday_report extends calendar_ui{
if (is_null($content))
{
$cats = $cat->return_sorted_array($start=0, false, '', 'ASC', 'cat_name', true, 0, true);
$cats_status = $GLOBALS['egw_info']['user']['preferences']['calendar']['holiday_report'];
foreach ($cats as &$value)
{
$content['grid'][] = array(
@ -69,6 +69,10 @@ class calendar_holiday_report extends calendar_ui{
'enable' => true
);
}
if (is_array($cats_status))
{
$content['grid'] = array_replace_recursive($content['grid'], $cats_status);
}
}
else
{
@ -81,7 +85,11 @@ class calendar_holiday_report extends calendar_ui{
// report button pressed
if (!empty($button))
{
Api\Preferences::change_preference($content, $name, $value);
// shift the grid content by one because of the reserved first row
// for the header.
array_shift($content['grid']);
Api\Framework::ajax_set_preference('calendar', 'holiday_report',$content['grid']);
foreach ($content['grid'] as $row)
{
if ($row['enable'])
@ -138,6 +146,8 @@ class calendar_holiday_report extends calendar_ui{
}
}
}
// Add an extra row for the grid header
array_unshift($content['grid'],array(''=> ''));
$preserv = $content;
$this->tmpl->exec('calendar.calendar_holiday_report.index', $content, array(), array(), $preserv, 2);
}

View File

@ -3749,7 +3749,7 @@ app.classes.calendar = (function(){ "use strict"; return AppJS.extend(
holiday_report_init: function ()
{
var content = this.et2.getArrayMgr('content').data;
for (var i=0;i<content.grid.length;i++)
for (var i=1;i<content.grid.length;i++)
{
if (content.grid[i] != null) this.holiday_report_enable({name:i+'', checked:content.grid[i]['enable']});
}
@ -3766,22 +3766,11 @@ app.classes.calendar = (function(){ "use strict"; return AppJS.extend(
var widgets = ['[user]','[weekend]','[holidays]','[min_days]'];
var row_id = _widget.name.match(/\d+/);
var w = {};
for (var i=0;i<widgets.length;i++)
for (var i=1;i<widgets.length;i++)
{
w = this.et2.getWidgetById(row_id+widgets[i]);
if (w) w.set_readonly(!_widget.checked);
}
},
/**
*
* @param {type} _widget
* @returns {undefined}
*/
holiday_report_send: function (_widget)
{
var content = this.et2.getArrayMgr('content').data;
egw.set_preference('calendar','holiday_report',JSON.stringify(content.grid));
this.et2._inst.submit(_widget);
}
});}).call(this);

View File

@ -58,7 +58,7 @@ Egroupware
<description value="Date range"/>
<date id="start" label="Start"/>
<date id="end" label="End"/>
<button id="button[report]" label="Report" background_image="1" image="template" onclick="app.calendar.holiday_report_send" />
<button id="button[report]" label="Report" background_image="1" image="template"/>
</hbox>
</template>
</overlay>