IM-784 : Create Editing Abilities For History
This commit is contained in:
parent
1abbe85d6d
commit
c744d88f23
|
@ -7,6 +7,7 @@ class PlayouthistoryController extends Zend_Controller_Action
|
|||
$ajaxContext = $this->_helper->getHelper('AjaxContext');
|
||||
$ajaxContext
|
||||
->addActionContext('playout-history-feed', 'json')
|
||||
->addActionContext('edit-aggregate-item', 'json')
|
||||
->initContext();
|
||||
}
|
||||
|
||||
|
@ -71,7 +72,7 @@ class PlayouthistoryController extends Zend_Controller_Action
|
|||
$endsDT = DateTime::createFromFormat("U", $ends_epoch, new DateTimeZone("UTC"));
|
||||
|
||||
$historyService = new Application_Service_HistoryService();
|
||||
$r = $historyService->getItems($startsDT, $endsDT, $params);
|
||||
$r = $historyService->getAggregateView($startsDT, $endsDT, $params);
|
||||
|
||||
$this->view->sEcho = $r["sEcho"];
|
||||
$this->view->iTotalDisplayRecords = $r["iTotalDisplayRecords"];
|
||||
|
@ -79,4 +80,25 @@ class PlayouthistoryController extends Zend_Controller_Action
|
|||
$this->view->history = $r["history"];
|
||||
}
|
||||
|
||||
public function editAggregateItemAction()
|
||||
{
|
||||
$file_id = $this->_getParam('id');
|
||||
|
||||
$historyService = new Application_Service_HistoryService();
|
||||
$form = $historyService->makeHistoryFileForm($file_id);
|
||||
|
||||
$this->view->form = $form;
|
||||
$this->view->dialog = $this->view->render('form/edit-history-file.phtml');
|
||||
|
||||
unset($this->view->form);
|
||||
}
|
||||
|
||||
public function updateAggregateItemAction()
|
||||
{
|
||||
$file_id = $this->_getParam('id');
|
||||
|
||||
$historyService = new Application_Service_HistoryService();
|
||||
$historyService->editPlayedFile($file_id);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,86 @@
|
|||
<?php
|
||||
|
||||
class Application_Form_EditHistoryFile extends Zend_Form
|
||||
{
|
||||
public function init() {
|
||||
|
||||
/*
|
||||
$this->setDecorators(
|
||||
array(
|
||||
array('ViewScript', array('viewScript' => 'form/edit-history-file.phtml'))
|
||||
)
|
||||
);
|
||||
*/
|
||||
|
||||
$this->setMethod('post');
|
||||
|
||||
|
||||
$this->addElement('hidden', 'file_id');
|
||||
|
||||
/* Title form element */
|
||||
$title = new Zend_Form_Element_Text('his_file_title');
|
||||
$title->setLabel(_('Title:'));
|
||||
$title->setAttrib('class', 'input_text');
|
||||
$title->addFilter('StringTrim');
|
||||
//$title->setDecorators(array('viewHelper'));
|
||||
$this->addElement($title);
|
||||
|
||||
/* Creator form element */
|
||||
$creator = new Zend_Form_Element_Text('his_file_creator');
|
||||
$creator->setLabel(_('Creator:'));
|
||||
$creator->setAttrib('class', 'input_text');
|
||||
$creator->addFilter('StringTrim');
|
||||
//$creator->setDecorators(array('viewHelper'));
|
||||
$this->addElement($creator);
|
||||
|
||||
/* Composer form element */
|
||||
$composer = new Zend_Form_Element_Text('his_file_composer');
|
||||
$composer->setLabel(_('Composer:'));
|
||||
$composer->setAttrib('class', 'input_text');
|
||||
$composer->addFilter('StringTrim');
|
||||
//$composer->setDecorators(array('viewHelper'));
|
||||
$this->addElement($composer);
|
||||
|
||||
/* Copyright form element */
|
||||
$copyright = new Zend_Form_Element_Text('his_file_copyright');
|
||||
$copyright->setLabel(_('Copyright:'));
|
||||
$copyright->setAttrib('class', 'input_text');
|
||||
$copyright->addFilter('StringTrim');
|
||||
//$copyright->setDecorators(array('viewHelper'));
|
||||
$this->addElement($copyright);
|
||||
|
||||
// Add the submit button
|
||||
$this->addElement('button', 'his_file_save', array(
|
||||
'ignore' => true,
|
||||
'class' => 'btn',
|
||||
'label' => _('Save'),
|
||||
'decorators' => array(
|
||||
'ViewHelper'
|
||||
)
|
||||
));
|
||||
|
||||
// Add the cancel button
|
||||
$this->addElement('button', 'his_file_cancel', array(
|
||||
'ignore' => true,
|
||||
'class' => 'btn',
|
||||
'label' => _('Cancel'),
|
||||
'decorators' => array(
|
||||
'ViewHelper'
|
||||
)
|
||||
));
|
||||
|
||||
$this->addDisplayGroup(
|
||||
array(
|
||||
'his_file_save',
|
||||
'his_file_cancel'
|
||||
),
|
||||
'submitButtons',
|
||||
array(
|
||||
'decorators' => array(
|
||||
'FormElements',
|
||||
'DtDdWrapper'
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
<?php
|
||||
|
||||
class Application_Form_EditHistoryItem extends Zend_Form
|
||||
{
|
||||
public function init() {
|
||||
|
||||
}
|
||||
}
|
|
@ -29,11 +29,13 @@ class Application_Service_HistoryService
|
|||
{
|
||||
for ($i = 0; $i < $opts["iColumns"]; $i++) {
|
||||
|
||||
if ($opts["bSearchable_{$i}"] === "true") {
|
||||
$opts["mDataProp_{$i}"] = $this->mDataPropMap[$opts["mDataProp_{$i}"]];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getItems($startDT, $endDT, $opts)
|
||||
public function getAggregateView($startDT, $endDT, $opts)
|
||||
{
|
||||
$this->translateColumns($opts);
|
||||
|
||||
|
@ -118,4 +120,25 @@ class Application_Service_HistoryService
|
|||
}
|
||||
}
|
||||
|
||||
public function makeHistoryItemForm() {
|
||||
|
||||
}
|
||||
|
||||
public function makeHistoryFileForm($id) {
|
||||
|
||||
$form = new Application_Form_EditHistoryFile();
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
/* id is an id in cc_playout_history */
|
||||
public function editPlayedItem($id) {
|
||||
|
||||
}
|
||||
|
||||
/* id is an id in cc_files */
|
||||
public function editPlayedFile($id) {
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
<div class="ui-widget ui-widget-content block-shadow simple-formblock clearfix padded-strong" id="edit-history-file">
|
||||
<?php echo $this->form; ?>
|
||||
</div>
|
|
@ -1,17 +1,20 @@
|
|||
function getFileName(ext){
|
||||
var filename = $("#his_date_start").val()+"_"+$("#his_time_start").val()+"m--"+$("#his_date_end").val()+"_"+$("#his_time_end").val()+"m"
|
||||
filename = filename.replace(/:/g,"h")
|
||||
var filename = $("#his_date_start").val()+"_"+$("#his_time_start").val()+"m--"+$("#his_date_end").val()+"_"+$("#his_time_end").val()+"m";
|
||||
filename = filename.replace(/:/g,"h");
|
||||
|
||||
if (ext == "pdf"){
|
||||
filename = filename+".pdf"
|
||||
}else{
|
||||
filename = filename+".csv"
|
||||
filename = filename+".pdf";
|
||||
}
|
||||
else {
|
||||
filename = filename+".csv";
|
||||
}
|
||||
return filename;
|
||||
}
|
||||
|
||||
function setFlashFileName( nButton, oConfig, oFlash ) {
|
||||
var filename = getFileName(oConfig.sExtends)
|
||||
var filename = getFileName(oConfig.sExtends);
|
||||
oFlash.setFileName( filename );
|
||||
|
||||
if (oConfig.sExtends == "pdf") {
|
||||
this.fnSetText( oFlash,
|
||||
"title:"+ this.fnGetTitle(oConfig) +"\n"+
|
||||
|
@ -21,9 +24,9 @@ function setFlashFileName( nButton, oConfig, oFlash ) {
|
|||
"size:"+ oConfig.sPdfSize +"\n"+
|
||||
"--/TableToolsOpts--\n" +
|
||||
this.fnGetTableData(oConfig));
|
||||
}else{
|
||||
this.fnSetText( oFlash,
|
||||
this.fnGetTableData(oConfig));
|
||||
}
|
||||
else {
|
||||
this.fnSetText(oFlash, this.fnGetTableData(oConfig));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -60,6 +63,16 @@ var AIRTIME = (function(AIRTIME) {
|
|||
"data": aoData,
|
||||
"success": fnCallback
|
||||
} );
|
||||
},
|
||||
|
||||
fnRowCallback = function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
|
||||
var url = baseUrl+"Playouthistory/edit-aggregate-item/format/json/id/"+aData.file_id,
|
||||
$link = $("<a/>", {
|
||||
"href": url,
|
||||
"text": $.i18n._("Edit")
|
||||
});
|
||||
|
||||
$('td.his_edit', nRow).html($link);
|
||||
};
|
||||
|
||||
oTable = historyTableDiv.dataTable( {
|
||||
|
@ -70,7 +83,8 @@ var AIRTIME = (function(AIRTIME) {
|
|||
{"sTitle": $.i18n._("Played"), "mDataProp": "played", "sClass": "his_artist"}, /* times played */
|
||||
{"sTitle": $.i18n._("Length"), "mDataProp": "length", "sClass": "his_length library_length"}, /* Length */
|
||||
{"sTitle": $.i18n._("Composer"), "mDataProp": "composer", "sClass": "his_composer"}, /* Composer */
|
||||
{"sTitle": $.i18n._("Copyright"), "mDataProp": "copyright", "sClass": "his_copyright"} /* Copyright */
|
||||
{"sTitle": $.i18n._("Copyright"), "mDataProp": "copyright", "sClass": "his_copyright"}, /* Copyright */
|
||||
{"sTitle" : $.i18n._("Admin"), "mDataProp": "file_id", "bSearchable" : false, "sClass": "his_edit"}, /* id of history item */
|
||||
],
|
||||
|
||||
"bProcessing": true,
|
||||
|
@ -80,6 +94,8 @@ var AIRTIME = (function(AIRTIME) {
|
|||
|
||||
"fnServerData": fnServerData,
|
||||
|
||||
"fnRowCallback": fnRowCallback,
|
||||
|
||||
"oLanguage": datatables_dict,
|
||||
|
||||
"aLengthMenu": [[50, 100, 500, -1], [50, 100, 500, $.i18n._("All")]],
|
||||
|
@ -184,6 +200,27 @@ $(document).ready(function(){
|
|||
history_content.find(dateEndId).datepicker(oBaseDatePickerSettings);
|
||||
history_content.find(timeEndId).timepicker(oBaseTimePickerSettings);
|
||||
|
||||
history_content.on("click", "td.his_edit", function(e) {
|
||||
var url = e.target.href;
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
$.get(url, function(json) {
|
||||
var dialog = $(json.dialog);
|
||||
|
||||
dialog.dialog({
|
||||
autoOpen: false,
|
||||
title: $.i18n._("Edit History Record"),
|
||||
//width: 460,
|
||||
//height: 660,
|
||||
modal: true
|
||||
//close: closeDialogLibrary
|
||||
});
|
||||
|
||||
dialog.dialog('open');
|
||||
|
||||
}, "json");
|
||||
});
|
||||
|
||||
history_content.find("#his_submit").click(function(ev){
|
||||
var fn,
|
||||
|
|
Loading…
Reference in New Issue