From 062740ef81d25db891f75e22cbb79ebbb7eb1d78 Mon Sep 17 00:00:00 2001 From: denise Date: Wed, 5 Dec 2012 13:16:25 -0500 Subject: [PATCH] CC-4735: Library: Edit metadata selection should be a popup instead of going to a new page -done --- .../controllers/LibraryController.php | 11 ++++- airtime_mvc/application/forms/EditAudioMD.php | 12 ++++-- .../views/scripts/library/edit-file-md.phtml | 2 +- .../public/js/airtime/library/library.js | 42 ++++++++++++++++++- 4 files changed, 60 insertions(+), 7 deletions(-) diff --git a/airtime_mvc/application/controllers/LibraryController.php b/airtime_mvc/application/controllers/LibraryController.php index 3e5be64d2..002b26952 100644 --- a/airtime_mvc/application/controllers/LibraryController.php +++ b/airtime_mvc/application/controllers/LibraryController.php @@ -18,6 +18,7 @@ class LibraryController extends Zend_Controller_Action ->addActionContext('upload-file-soundcloud', 'json') ->addActionContext('get-upload-to-soundcloud-status', 'json') ->addActionContext('set-num-entries', 'json') + ->addActionContext('edit-file-md', 'json') ->initContext(); } @@ -382,14 +383,19 @@ class LibraryController extends Zend_Controller_Action if (!$isAdminOrPM && $file->getFileOwnerId() != $user->getId()) { return; } - + $form = new Application_Form_EditAudioMD(); + $form->startForm($file_id); $form->populate($file->getDbColMetadata()); if ($request->isPost()) { if ($form->isValid($request->getPost())) { - $formdata = $form->getValues(); + $formValues = $this->_getParam('data', null); + $formdata = array(); + foreach ($formValues as $val) { + $formdata[$val["name"]] = $val["value"]; + } $file->setDbColMetadata($formdata); $data = $file->getMetadata(); @@ -404,6 +410,7 @@ class LibraryController extends Zend_Controller_Action } $this->view->form = $form; + $this->view->dialog = $this->view->render('library/edit-file-md.phtml'); } public function getFileMetadataAction() diff --git a/airtime_mvc/application/forms/EditAudioMD.php b/airtime_mvc/application/forms/EditAudioMD.php index 913efd43c..8153cb23c 100644 --- a/airtime_mvc/application/forms/EditAudioMD.php +++ b/airtime_mvc/application/forms/EditAudioMD.php @@ -2,12 +2,18 @@ class Application_Form_EditAudioMD extends Zend_Form { - public function init() + + public function init() {} + + public function startForm($p_id) { $baseUrl = Application_Common_OsPath::getBaseDir(); // Set the method for the display form to POST $this->setMethod('post'); + $this->addElement('hidden', 'file_id', array( + 'value' => $p_id + )); // Add title field $this->addElement('text', 'track_title', array( 'label' => _('Title:'), @@ -122,7 +128,7 @@ class Application_Form_EditAudioMD extends Zend_Form )); // Add the submit button - $this->addElement('submit', 'submit', array( + $this->addElement('button', 'editmdsave', array( 'ignore' => true, 'class' => 'btn', 'label' => _('Save'), @@ -142,7 +148,7 @@ class Application_Form_EditAudioMD extends Zend_Form ) )); - $this->addDisplayGroup(array('submit', 'cancel'), 'submitButtons', array( + $this->addDisplayGroup(array('editmdsave', 'cancel'), 'submitButtons', array( 'decorators' => array( 'FormElements', 'DtDdWrapper' diff --git a/airtime_mvc/application/views/scripts/library/edit-file-md.phtml b/airtime_mvc/application/views/scripts/library/edit-file-md.phtml index 3c1d28675..21d3273ea 100644 --- a/airtime_mvc/application/views/scripts/library/edit-file-md.phtml +++ b/airtime_mvc/application/views/scripts/library/edit-file-md.phtml @@ -1,4 +1,4 @@ -
+

form->setAction($this->url()); diff --git a/airtime_mvc/public/js/airtime/library/library.js b/airtime_mvc/public/js/airtime/library/library.js index 3d5af4570..55689c43f 100644 --- a/airtime_mvc/public/js/airtime/library/library.js +++ b/airtime_mvc/public/js/airtime/library/library.js @@ -796,7 +796,9 @@ var AIRTIME = (function(AIRTIME) { if (data.ftype === "audioclip") { callback = function() { - document.location.href = oItems.edit.url; + $.get(oItems.edit.url, {format: "json"}, function(json){ + buildEditMetadataDialog(json); + }); }; } else if (data.ftype === "playlist" || data.ftype === "block") { callback = function() { @@ -940,6 +942,34 @@ var AIRTIME = (function(AIRTIME) { }(AIRTIME || {})); +function buildEditMetadataDialog (json){ + var dialog = $(json.dialog); + + dialog.dialog({ + autoOpen: false, + title: $.i18n._("Edit Metadata"), + width: 460, + height: 700, + modal: true, + close: closeDialog, + buttons: [ + { + text: $.i18n._("Ok"), + "class": "btn", + click: function() { + dialog.remove(); + } + } + ] + }); + + dialog.dialog('open'); +} + +function closeDialog(event, ui) { + $(this).remove(); +} + function checkImportStatus() { $.getJSON(baseUrl+'/Preference/is-import-in-progress', function(data){ var div = $('#import_status'); @@ -1234,3 +1264,13 @@ var validationTypes = { "info_url" : "s", "year" : "i" }; + +$(document).ready(function() { + $('#editmdsave').live("click", function() { + var file_id = $('#file_id').val(), + data = $("#edit-md-dialog form").serializeArray(); + $.post(baseUrl+'/library/edit-file-md', {format: "json", id: file_id, data: data}, function() { + $("#edit-md-dialog").dialog().remove(); + }); + }); +});