From 90a93e9a6c326c91d69a0de6b523ec1bee4b8846 Mon Sep 17 00:00:00 2001 From: denise Date: Mon, 5 Nov 2012 13:58:11 -0500 Subject: [PATCH 01/15] CC-4664: Playlist/Block preview: Tracks deleted from library still get played -fixed --- airtime_mvc/application/models/Block.php | 17 +++++++++++++++-- airtime_mvc/application/models/Playlist.php | 16 +++++++++++++++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/airtime_mvc/application/models/Block.php b/airtime_mvc/application/models/Block.php index 57018ad5f..da1972f81 100644 --- a/airtime_mvc/application/models/Block.php +++ b/airtime_mvc/application/models/Block.php @@ -210,10 +210,23 @@ FROM cc_blockcontents AS pc LEFT JOIN cc_files AS f ON pc.file_id=f.id LEFT JOIN cc_block AS bl ON pc.block_id = bl.id WHERE pc.block_id = :block_id -ORDER BY pc.position + SQL; - $rows = Application_Common_Database::prepareAndExecute($sql, array(':block_id'=>$this->id)); + if ($filterFiles) { + $sql .= <<$this->id); + if ($filterFiles) { + $params[':file_exists'] = $filterFiles; + } + $rows = Application_Common_Database::prepareAndExecute($sql, $params); $offset = 0; foreach ($rows as &$row) { diff --git a/airtime_mvc/application/models/Playlist.php b/airtime_mvc/application/models/Playlist.php index c99fbb019..f70012b73 100644 --- a/airtime_mvc/application/models/Playlist.php +++ b/airtime_mvc/application/models/Playlist.php @@ -176,6 +176,14 @@ class Application_Model_Playlist implements Application_Model_LibraryEditable FROM cc_playlistcontents AS pc JOIN cc_files AS f ON pc.file_id=f.id WHERE pc.playlist_id = :playlist_id1 +SQL; + + if ($filterFiles) { + $sql .= <<$this->id, ':playlist_id2'=>$this->id, ':playlist_id3'=>$this->id)); + $params = array( + ':playlist_id1'=>$this->id, ':playlist_id2'=>$this->id, ':playlist_id3'=>$this->id); + if ($filterFiles) { + $params[':file_exists'] = $filterFiles; + } + + $rows = Application_Common_Database::prepareAndExecute($sql, $params); $offset = 0; foreach ($rows as &$row) { From 6ef646124ed4f8549d9f1c599f8184bba0f14d3b Mon Sep 17 00:00:00 2001 From: denise Date: Tue, 6 Nov 2012 10:58:25 -0500 Subject: [PATCH 02/15] CC-4668: Blocks/Playlists: Length includes deleted tracks -fixed --- airtime_mvc/application/models/StoredFile.php | 19 ++++++++++++++++++- .../application/models/airtime/CcBlock.php | 10 ++++++++-- .../application/models/airtime/CcPlaylist.php | 8 +++++++- 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/airtime_mvc/application/models/StoredFile.php b/airtime_mvc/application/models/StoredFile.php index 51693f46d..fb924ac5c 100644 --- a/airtime_mvc/application/models/StoredFile.php +++ b/airtime_mvc/application/models/StoredFile.php @@ -359,9 +359,26 @@ SQL; Application_Model_RabbitMq::SendMessageToMediaMonitor("file_delete", $data); } - // set file_exists falg to false + // set file_exists flag to false $this->_file->setDbFileExists(false); $this->_file->save(); + + // need to explicitly update any playlist's and block's length + // that contains the file getting deleted + $fileId = $this->_file->getDbId(); + $plRows = CcPlaylistcontentsQuery::create()->filterByDbFileId()->find(); + foreach ($plRows as $row) { + $pl = CcPlaylistQuery::create()->filterByDbId($row->getDbPlaylistId($fileId))->findOne(); + $pl->setDbLength($pl->computeDbLength(Propel::getConnection(CcPlaylistPeer::DATABASE_NAME))); + $pl->save(); + } + + $blRows = CcBlockcontentsQuery::create()->filterByDbFileId($fileId)->find(); + foreach ($blRows as $row) { + $bl = CcBlockQuery::create()->filterByDbId($row->getDbBlockId())->findOne(); + $bl->setDbLength($bl->computeDbLength(Propel::getConnection(CcBlockPeer::DATABASE_NAME))); + $bl->save(); + } } /** diff --git a/airtime_mvc/application/models/airtime/CcBlock.php b/airtime_mvc/application/models/airtime/CcBlock.php index da43e76f0..84a3cb8c8 100644 --- a/airtime_mvc/application/models/airtime/CcBlock.php +++ b/airtime_mvc/application/models/airtime/CcBlock.php @@ -86,8 +86,14 @@ class CcBlock extends BaseCcBlock { */ public function computeDbLength(PropelPDO $con) { - $stmt = $con->prepare('SELECT SUM(cliplength) FROM "cc_blockcontents" WHERE cc_blockcontents.BLOCK_ID = :p1'); - $stmt->bindValue(':p1', $this->getDbId()); + $sql = <<prepare($sql); + $stmt->bindValue(':b1', $this->getDbId()); $stmt->execute(); $length = $stmt->fetchColumn(); diff --git a/airtime_mvc/application/models/airtime/CcPlaylist.php b/airtime_mvc/application/models/airtime/CcPlaylist.php index d152cf61f..bfa1e5354 100644 --- a/airtime_mvc/application/models/airtime/CcPlaylist.php +++ b/airtime_mvc/application/models/airtime/CcPlaylist.php @@ -87,7 +87,13 @@ class CcPlaylist extends BaseCcPlaylist { */ public function computeDbLength(PropelPDO $con) { - $stmt = $con->prepare('SELECT SUM(cliplength) FROM "cc_playlistcontents" WHERE cc_playlistcontents.PLAYLIST_ID = :p1'); + $sql = <<prepare($sql); $stmt->bindValue(':p1', $this->getDbId()); $stmt->execute(); $length = $stmt->fetchColumn(); From a99191f4bd868f29d45cc2074884218c7b2bf391 Mon Sep 17 00:00:00 2001 From: denise Date: Tue, 6 Nov 2012 11:14:40 -0500 Subject: [PATCH 03/15] CC-4669: Smart Blocks: Dynamic length of less than 1 hour shows 0.0 -fixed --- airtime_mvc/application/models/Block.php | 1 + 1 file changed, 1 insertion(+) diff --git a/airtime_mvc/application/models/Block.php b/airtime_mvc/application/models/Block.php index da1972f81..3aa0a1882 100644 --- a/airtime_mvc/application/models/Block.php +++ b/airtime_mvc/application/models/Block.php @@ -323,6 +323,7 @@ SQL; $hour = "00"; $mins = "00"; if ($modifier == "minutes") { + $mins = $value; if ($value >59) { $hour = intval($value/60); $mins = $value%60; From 2cbba6003729276a0665cd7fc28b6a8b37ac6119 Mon Sep 17 00:00:00 2001 From: denise Date: Tue, 6 Nov 2012 11:54:24 -0500 Subject: [PATCH 04/15] CC-4673: Smart Block: Exception happens when create a smart block with 5 criteria -fixed --- .../application/views/scripts/form/smart-block-criteria.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airtime_mvc/application/views/scripts/form/smart-block-criteria.phtml b/airtime_mvc/application/views/scripts/form/smart-block-criteria.phtml index 3c5ab4643..05f8bbb26 100644 --- a/airtime_mvc/application/views/scripts/form/smart-block-criteria.phtml +++ b/airtime_mvc/application/views/scripts/form/smart-block-criteria.phtml @@ -38,7 +38,7 @@ if ($j == $this->modRowMap[$i]-1 && $i < 25) { $n = $i+1; $nextIndex = $n."_0"; - } elseif ($j+1 < $this->modRowMap[$i]-1) { + } elseif ($j+1 <= $this->modRowMap[$i]-1) { $n = $j+1; $nextIndex = $i."_".$n; From de89686d484836ce062a6606e9a749eb42fda3ac Mon Sep 17 00:00:00 2001 From: denise Date: Tue, 6 Nov 2012 12:03:49 -0500 Subject: [PATCH 05/15] CC-4536: Smart block criteria use AND logic, but additional modifiers use OR logic, without labels to show the difference -added comments --- .../views/scripts/form/smart-block-criteria.phtml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/airtime_mvc/application/views/scripts/form/smart-block-criteria.phtml b/airtime_mvc/application/views/scripts/form/smart-block-criteria.phtml index 05f8bbb26..1e95b6e04 100644 --- a/airtime_mvc/application/views/scripts/form/smart-block-criteria.phtml +++ b/airtime_mvc/application/views/scripts/form/smart-block-criteria.phtml @@ -29,10 +29,16 @@
- criteriasLength; $i++) {?> + criteriasLength; $i++) { + // modRowMap holds the number of modifier rows for each criteria element + // i.e. if we have 'Album contains 1' and 'Album contains 2' the modRowMap + // for Album is 2 + ?> modRowMap[$i]; $j++) { + // determine if logic label should be 'and' or 'or' if ($this->modRowMap[$i] > 1 && $j != $this->modRowMap[$i]-1) $logicLabel = 'or'; else $logicLabel = 'and'; + $disabled = $this->element->getElement("sp_criteria_field_".$i."_".$j)->getAttrib('disabled') == 'disabled'?true:false; // determine if the next row is disabled and only display the logic label if it isn't if ($j == $this->modRowMap[$i]-1 && $i < 25) { From e262d48eec36bf4ccedd25cf79de5d05d15b7cd1 Mon Sep 17 00:00:00 2001 From: denise Date: Tue, 6 Nov 2012 12:17:45 -0500 Subject: [PATCH 06/15] CC-4675: Preferences: Error messages are hidden -fixed --- airtime_mvc/application/views/scripts/form/preferences.phtml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/airtime_mvc/application/views/scripts/form/preferences.phtml b/airtime_mvc/application/views/scripts/form/preferences.phtml index 1e1589117..9baf71cf5 100644 --- a/airtime_mvc/application/views/scripts/form/preferences.phtml +++ b/airtime_mvc/application/views/scripts/form/preferences.phtml @@ -4,14 +4,14 @@ isSaas) { ?>

Email / Mail Server Settings

-
- isSaas ){?>
@@ -105,14 +104,13 @@ -
element->getElement('master_dj_connection_url')->setValue($this->master_dj_connection_url) ?> - isSaas && !$this->isDemo){?> + isDemo){?> Override  
@@ -121,7 +119,6 @@ OK RESET
- isSaas ){?>
@@ -150,14 +147,13 @@ -
element->getElement('live_dj_connection_url')->setValue($this->live_dj_connection_url) ?> - isSaas && !$this->isDemo ){?> + isDemo ){?> Override  
diff --git a/airtime_mvc/application/views/scripts/form/support-setting.phtml b/airtime_mvc/application/views/scripts/form/support-setting.phtml index f35a6eab1..ad15671f6 100644 --- a/airtime_mvc/application/views/scripts/form/support-setting.phtml +++ b/airtime_mvc/application/views/scripts/form/support-setting.phtml @@ -1,5 +1,4 @@
-isSaas ){?>
@@ -38,8 +37,7 @@
(In order to promote your station, "Send support feedback" must be enabled).

- -
;"> +
;">
-isSaas ){?>
Show me what I am sending @@ -182,5 +179,4 @@ Sourcefabric Privacy Policy
- diff --git a/airtime_mvc/application/views/scripts/menu.phtml b/airtime_mvc/application/views/scripts/menu.phtml index 0e6eb8dc1..f6f82c173 100644 --- a/airtime_mvc/application/views/scripts/menu.phtml +++ b/airtime_mvc/application/views/scripts/menu.phtml @@ -1,9 +1,3 @@ -