From bb36556bb901f36b944fb27ca98977e2418bddb8 Mon Sep 17 00:00:00 2001 From: Martin Konecny Date: Tue, 30 Apr 2013 13:35:28 -0400 Subject: [PATCH] IM-629 -filter by using instance id instead of show id Conflicts: airtime_mvc/application/models/Schedule.php --- .../application/controllers/ShowbuilderController.php | 4 +++- airtime_mvc/application/models/Schedule.php | 10 ++++------ airtime_mvc/application/models/ShowBuilder.php | 5 ++++- airtime_mvc/public/js/airtime/schedule/schedule.js | 7 ++++--- airtime_mvc/public/js/airtime/showbuilder/builder.js | 1 + .../public/js/airtime/showbuilder/main_builder.js | 1 + 6 files changed, 17 insertions(+), 11 deletions(-) diff --git a/airtime_mvc/application/controllers/ShowbuilderController.php b/airtime_mvc/application/controllers/ShowbuilderController.php index 2c4fd4b16..91c47bb1b 100644 --- a/airtime_mvc/application/controllers/ShowbuilderController.php +++ b/airtime_mvc/application/controllers/ShowbuilderController.php @@ -269,7 +269,9 @@ class ShowbuilderController extends Zend_Controller_Action $startsDT = DateTime::createFromFormat("U", $starts_epoch, new DateTimeZone("UTC")); $endsDT = DateTime::createFromFormat("U", $ends_epoch, new DateTimeZone("UTC")); - $opts = array("myShows" => $my_shows, "showFilter" => $show_filter); + $opts = array("myShows" => $my_shows, + "showFilter" => $show_filter, + "showInstanceFilter" => $show_filter); $showBuilder = new Application_Model_ShowBuilder($startsDT, $endsDT, $opts); $data = $showBuilder->getItems(); diff --git a/airtime_mvc/application/models/Schedule.php b/airtime_mvc/application/models/Schedule.php index 3759254d4..a8f31b620 100644 --- a/airtime_mvc/application/models/Schedule.php +++ b/airtime_mvc/application/models/Schedule.php @@ -309,13 +309,11 @@ SQL; * @return array $scheduledItems * */ - public static function GetScheduleDetailItems($p_start, $p_end, $p_shows) + public static function GetScheduleDetailItems($p_start, $p_end, $p_shows, $p_show_instances) { $p_start_str = $p_start->format("Y-m-d H:i:s"); $p_end_str = $p_end->format("Y-m-d H:i:s"); - $paramMap = array(); - //We need to search 24 hours before and after the show times so that that we //capture all of the show's contents. $p_track_start= $p_start->sub(new DateInterval("PT24H"))->format("Y-m-d H:i:s"); @@ -355,7 +353,7 @@ SQL; AND sched.ends >= :fj_ts_6)) ) SQL; - $map = array( + $paramMap = array( ":fj_ts_1" => $p_track_start, ":fj_ts_2" => $p_track_end, ":fj_ts_3" => $p_track_start, @@ -363,8 +361,6 @@ SQL; ":fj_ts_5" => $p_track_start, ":fj_ts_6" => $p_track_end, ); - $paramMap = $paramMap + $map; - $filesSql = str_replace("%%columns%%", $filesColumns, @@ -426,6 +422,8 @@ SQL; $showPredicate = " AND show_id IN (".implode(",", $params).")"; $paramMap = $paramMap + $map; + } else if (count($p_show_instances) > 0) { + $showPredicate = " AND si_id IN (".implode(",", $p_show_instances).")"; } $sql = <<opts["myShows"] === 1) { $shows = $this->getUsersShows(); } elseif ($this->opts["showFilter"] !== 0) { $shows[] = $this->opts["showFilter"]; + } elseif ($this->opts["showInstanceFilter"] !== 0) { + $showInstance[] = $this->opts["showInstanceFilter"]; } $scheduled_items = Application_Model_Schedule::GetScheduleDetailItems( - $this->startDT, $this->endDT, $shows); + $this->startDT, $this->endDT, $shows, $showInstance); for ($i = 0, $rows = count($scheduled_items); $i < $rows; $i++) { diff --git a/airtime_mvc/public/js/airtime/schedule/schedule.js b/airtime_mvc/public/js/airtime/schedule/schedule.js index add20984a..82531a726 100644 --- a/airtime_mvc/public/js/airtime/schedule/schedule.js +++ b/airtime_mvc/public/js/airtime/schedule/schedule.js @@ -180,7 +180,8 @@ function buildScheduleDialog (json, instance_id) { fnServer.start = json.start; fnServer.end = json.end; fnServer.ops = {}; - fnServer.ops.showFilter = instance_id; + fnServer.ops.showFilter = 0; + fnServer.ops.showInstanceFilter = instance_id; fnServer.ops.myShows = 0; AIRTIME.library.libraryInit(); @@ -354,8 +355,8 @@ $(document).ready(function() { callback = function() { - $.post(oItems.schedule.url, {format: "json", id: data.showId}, function(json){ - buildScheduleDialog(json, data.showId); + $.post(oItems.schedule.url, {format: "json", id: data.id}, function(json){ + buildScheduleDialog(json, data.id); }); }; diff --git a/airtime_mvc/public/js/airtime/showbuilder/builder.js b/airtime_mvc/public/js/airtime/showbuilder/builder.js index 65826d643..30076dd67 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/builder.js @@ -359,6 +359,7 @@ var AIRTIME = (function(AIRTIME){ if (mod.fnServerData.hasOwnProperty("ops")) { aoData.push( { name: "myShows", value: mod.fnServerData.ops.myShows} ); aoData.push( { name: "showFilter", value: mod.fnServerData.ops.showFilter} ); + aoData.push( { name: "showInstanceFilter", value: mod.fnServerData.ops.showInstanceFilter} ); } $.ajax({ diff --git a/airtime_mvc/public/js/airtime/showbuilder/main_builder.js b/airtime_mvc/public/js/airtime/showbuilder/main_builder.js index ee19e85fd..38c3ef05a 100644 --- a/airtime_mvc/public/js/airtime/showbuilder/main_builder.js +++ b/airtime_mvc/public/js/airtime/showbuilder/main_builder.js @@ -266,6 +266,7 @@ AIRTIME = (function(AIRTIME) { if (fn.hasOwnProperty("ops")) { data["myShows"] = fn.ops.myShows; data["showFilter"] = fn.ops.showFilter; + data["showFilter"] = fn.ops.showInstanceFilter; } $.ajax( {