From 803c44611ad12cf6a1023bac4dc9867bdfc4416a Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Mon, 14 May 2012 15:48:09 +0200 Subject: [PATCH] CC-3819 : Add View on Soundcloud context menu option on calendar page --- .../application/controllers/LibraryController.php | 12 ++++++------ .../controllers/ScheduleController.php | 13 +++++++++++-- airtime_mvc/public/css/jquery.contextMenu.css | 9 +++++++-- .../public/js/airtime/schedule/schedule.js | 15 ++++++++++++--- 4 files changed, 36 insertions(+), 13 deletions(-) diff --git a/airtime_mvc/application/controllers/LibraryController.php b/airtime_mvc/application/controllers/LibraryController.php index 08f250fea..78c2e253b 100644 --- a/airtime_mvc/application/controllers/LibraryController.php +++ b/airtime_mvc/application/controllers/LibraryController.php @@ -80,7 +80,12 @@ class LibraryController extends Zend_Controller_Action //create a sub menu for Soundcloud actions. $menu["soundcloud"] = array("name" => "Soundcloud", "icon" => "soundcloud", "items" => array()); - $scid = $file->getSoundCloudId(); + $scid = $file->getSoundCloudId(); + + if ($scid > 0){ + $url = $file->getSoundCloudLinkToFile(); + $menu["soundcloud"]["items"]["view"] = array("name" => "View on Soundcloud", "icon" => "soundcloud", "url" => $url); + } if (!is_null($scid)){ $text = "Re-upload to SoundCloud"; @@ -90,11 +95,6 @@ class LibraryController extends Zend_Controller_Action } $menu["soundcloud"]["items"]["upload"] = array("name" => $text, "icon" => "soundcloud", "url" => "/library/upload-file-soundcloud/id/{$id}"); - - if ($scid > 0){ - $url = $file->getSoundCloudLinkToFile(); - $menu["soundcloud"]["items"]["view"] = array("name" => "View on Soundcloud", "icon" => "soundcloud", "url" => $url); - } } $this->view->items = $menu; diff --git a/airtime_mvc/application/controllers/ScheduleController.php b/airtime_mvc/application/controllers/ScheduleController.php index a83970ac6..f98c06f33 100644 --- a/airtime_mvc/application/controllers/ScheduleController.php +++ b/airtime_mvc/application/controllers/ScheduleController.php @@ -257,9 +257,18 @@ class ScheduleController extends Zend_Controller_Action if ($showEndLocalDT->getTimestamp() <= $epochNow && $instance->isRecorded() && Application_Model_Preference::GetUploadToSoundcloudOption()) { + + $file = $instance->getRecordedFile(); + $fileId = $file->getId(); + $scid = $instance->getSoundCloudFileId(); + + if ($scid > 0){ + $url = $file->getSoundCloudLinkToFile(); + $menu["soundcloud_view"] = array("name" => "View on Soundcloud", "icon" => "soundcloud", "url" => $url); + } - $text = is_null($instance->getSoundCloudFileId()) ? 'Upload to SoundCloud' : 'Re-upload to SoundCloud'; - $menu["soundcloud"] = array("name"=> $text, "icon" => "soundcloud"); + $text = is_null($scid) ? 'Upload to SoundCloud' : 'Re-upload to SoundCloud'; + $menu["soundcloud_upload"] = array("name"=> $text, "icon" => "soundcloud"); } if ($showStartLocalDT->getTimestamp() <= $epochNow && diff --git a/airtime_mvc/public/css/jquery.contextMenu.css b/airtime_mvc/public/css/jquery.contextMenu.css index ac0c8332a..dd6ad991f 100755 --- a/airtime_mvc/public/css/jquery.contextMenu.css +++ b/airtime_mvc/public/css/jquery.contextMenu.css @@ -35,17 +35,22 @@ font-size: 11px; } -.context-menu-item.icon { - padding: 2px 2px 2px 28px; +.context-menu-item { + padding: 2px 5px; background-color: #f0f0f0; position: relative; min-height: 18px; -moz-user-select: -moz-none; } +.context-menu-item.icon { + padding: 2px 2px 2px 28px; +} + .context-menu-separator { padding-bottom:0; border-bottom: 1px solid #DDD; + min-height: 2px; } .context-menu-item > label { diff --git a/airtime_mvc/public/js/airtime/schedule/schedule.js b/airtime_mvc/public/js/airtime/schedule/schedule.js index 2b5d91113..a06e3a1a2 100644 --- a/airtime_mvc/public/js/airtime/schedule/schedule.js +++ b/airtime_mvc/public/js/airtime/schedule/schedule.js @@ -336,13 +336,22 @@ $(document).ready(function() { oItems.content.callback = callback; } - //define a soundcloud callback. - if (oItems.soundcloud !== undefined) { + //define a soundcloud upload callback. + if (oItems.soundcloud_upload !== undefined) { callback = function() { uploadToSoundCloud(data.id); }; - oItems.soundcloud.callback = callback; + oItems.soundcloud_upload.callback = callback; + } + + //define a view on soundcloud callback. + if (oItems.soundcloud_view !== undefined) { + + callback = function() { + window.open(oItems.soundcloud_view.url); + }; + oItems.soundcloud_view.callback = callback; } //define a cancel recorded show callback.