From 4242fecd3425ba6ee6a6a04e191773f75eff6db7 Mon Sep 17 00:00:00 2001 From: James Date: Tue, 20 Nov 2012 18:03:13 -0500 Subject: [PATCH 01/13] CC-4615: Now Playing page: Fail to get soundcloud file id in Schedule - fixed --- airtime_mvc/public/js/airtime/library/library.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/airtime_mvc/public/js/airtime/library/library.js b/airtime_mvc/public/js/airtime/library/library.js index b463610bc..144ce7e9c 100644 --- a/airtime_mvc/public/js/airtime/library/library.js +++ b/airtime_mvc/public/js/airtime/library/library.js @@ -975,7 +975,6 @@ function addProgressIcon(id) { } function checkLibrarySCUploadStatus(){ - var url = '/Library/get-upload-to-soundcloud-status', span, id; @@ -1028,15 +1027,22 @@ function addQtipToSCIcons(){ }); } else if($(this).hasClass("soundcloud")){ + var sc_id = $(this).parent().parent().data("aData").soundcloud_id; $(this).qtip({ content: { + //text: "The soundcloud id for this file is: "+sc_id text: "Retrieving data from the server...", ajax: { url: "/Library/get-upload-to-soundcloud-status", type: "post", data: ({format: "json", id : id, type: "file"}), success: function(json, status){ - this.set('content.text', "The soundcloud id for this file is: "+json.sc_id); + id = sc_id; + if (id == undefined) { + id = json.sc_id; + } + + this.set('content.text', "The soundcloud id for this file is: "+id); } } }, From 8cc162f7a900bf685d9585193ca67173cd68e752 Mon Sep 17 00:00:00 2001 From: james Date: Wed, 21 Nov 2012 17:34:07 -0500 Subject: [PATCH 02/13] CC-4716: Cannot hear fade in & fade out - fixed --- python_apps/pypo/liquidsoap_scripts/ls_script.liq | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/python_apps/pypo/liquidsoap_scripts/ls_script.liq b/python_apps/pypo/liquidsoap_scripts/ls_script.liq index 962b20b2c..5cec2301b 100644 --- a/python_apps/pypo/liquidsoap_scripts/ls_script.liq +++ b/python_apps/pypo/liquidsoap_scripts/ls_script.liq @@ -43,17 +43,15 @@ just_switched = ref false #web_stream = on_metadata(notify_stream, web_stream) #output.dummy(fallible=true, web_stream) - -http = input.http_restart(id="http") -http = cross_http(http_input_id="http",http) -stream_queue = http_fallback(http_input_id="http",http=http,default=queue) - # the crossfade function controls fade in/out queue = crossfade_airtime(queue) queue = on_metadata(notify, queue) queue = map_metadata(update=false, append_title, queue) output.dummy(fallible=true, queue) +http = input.http_restart(id="http") +http = cross_http(http_input_id="http",http) +stream_queue = http_fallback(http_input_id="http",http=http,default=queue) #stream_queue = switch(id="stream_queue_switch", track_sensitive=false, # transitions=[transition, transition], From 8483439551991d324385ee52d3c3ca963d28309e Mon Sep 17 00:00:00 2001 From: James Date: Thu, 22 Nov 2012 10:29:40 -0500 Subject: [PATCH 03/13] CC-4709: Exception happens when DJ try to click a Webstream not belongs to himself - fixed --- airtime_mvc/application/models/Webstream.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/airtime_mvc/application/models/Webstream.php b/airtime_mvc/application/models/Webstream.php index ef3f32605..ad6ca7f76 100644 --- a/airtime_mvc/application/models/Webstream.php +++ b/airtime_mvc/application/models/Webstream.php @@ -34,7 +34,7 @@ class Application_Model_Webstream implements Application_Model_LibraryEditable public function getCreatorId() { - return $this->Webstream->getCcSubjs()->getDbId(); + return $this->webstream->getDbCreatorId(); } public function getLastModified($p_type) @@ -51,7 +51,7 @@ class Application_Model_Webstream implements Application_Model_LibraryEditable $di = new DateInterval("PT{$hours}H{$min}M{$sec}S"); return $di->format("%Hh %Im"); - } + } return ""; } From acf2ffc9d548562380d452b4419440dff43e0d6b Mon Sep 17 00:00:00 2001 From: James Date: Thu, 22 Nov 2012 11:18:42 -0500 Subject: [PATCH 04/13] CC-4707: Webstream: Preview for Webstream in Scheduler is forbidden - fixed --- .../airtime/audiopreview/preview_jplayer.js | 22 ++++++++++++++----- .../public/js/airtime/common/audioplaytest.js | 3 ++- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/airtime_mvc/public/js/airtime/audiopreview/preview_jplayer.js b/airtime_mvc/public/js/airtime/audiopreview/preview_jplayer.js index e7435ee2e..a18f31d5d 100644 --- a/airtime_mvc/public/js/airtime/audiopreview/preview_jplayer.js +++ b/airtime_mvc/public/js/airtime/audiopreview/preview_jplayer.js @@ -153,12 +153,24 @@ function buildplaylist(p_url, p_playIndex) { continue; } } else if (data[index]['type'] == 1) { - media = {title: data[index]['element_title'], - artist: data[index]['element_artist'], - mp3:data[index]['uri'] - }; + var mime = data[index]['mime']; + if (mime.search(/mp3/i) > 0 || mime.search(/mpeg/i) > 0) { + key = "mp3"; + } else if (mime.search(/og(g|a)/i) > 0 || mime.search(/vorbis/i) > 0) { + key = "oga"; + } else if (mime.search(/mp4/i) > 0) { + key = "m4a"; + } else if (mime.search(/wav/i) > 0) { + key = "wav"; + } + + if (key) { + media = {title: data[index]['element_title'], + artist: data[index]['element_artist'] + }; + media[key] = data[index]['uri'] + } } - console.log(data[index]); if (media && isAudioSupported(data[index]['mime'])) { // javascript doesn't support associative array with numeric key // so we need to remove the gap if we skip any of tracks due to diff --git a/airtime_mvc/public/js/airtime/common/audioplaytest.js b/airtime_mvc/public/js/airtime/common/audioplaytest.js index f96ad09af..078d8f1e4 100644 --- a/airtime_mvc/public/js/airtime/common/audioplaytest.js +++ b/airtime_mvc/public/js/airtime/common/audioplaytest.js @@ -15,5 +15,6 @@ function isAudioSupported(mime){ //is adding a javascript library to do the work for you, which seems like overkill.... return (!!audio.canPlayType && audio.canPlayType(bMime) != "") || (mime.indexOf("mp3") != -1 && navigator.mimeTypes ["application/x-shockwave-flash"] != undefined) || - (mime.indexOf("mp4") != -1 && navigator.mimeTypes ["application/x-shockwave-flash"] != undefined); + (mime.indexOf("mp4") != -1 && navigator.mimeTypes ["application/x-shockwave-flash"] != undefined) || + (mime.indexOf("mpeg") != -1 && navigator.mimeTypes ["application/x-shockwave-flash"] != undefined); } From 3a1945a818e1af428e42216502799e16cf66f0a9 Mon Sep 17 00:00:00 2001 From: Martin Konecny Date: Thu, 22 Nov 2012 11:40:44 -0500 Subject: [PATCH 05/13] CC-4702Webstream: When webstream is playing, it isn't marked as 'media_item_played' in cc_schedule -fixed --- .../application/controllers/ApiController.php | 42 ++++++++++--------- .../pypo/liquidsoap_scripts/ls_script.liq | 5 --- python_apps/pypo/pyponotify.py | 1 + 3 files changed, 23 insertions(+), 25 deletions(-) diff --git a/airtime_mvc/application/controllers/ApiController.php b/airtime_mvc/application/controllers/ApiController.php index 1a1876ce9..89fd93467 100644 --- a/airtime_mvc/application/controllers/ApiController.php +++ b/airtime_mvc/application/controllers/ApiController.php @@ -926,31 +926,33 @@ class ApiController extends Zend_Controller_Action $data_arr = json_decode($data); - if (!is_null($media_id) && isset($data_arr->title) && strlen($data_arr->title) < 1024) { + if (!is_null($media_id)) { + if (isset($data_arr->title) && + strlen($data_arr->title) < 1024) { - $previous_metadata = CcWebstreamMetadataQuery::create() - ->orderByDbStartTime('desc') - ->filterByDbInstanceId($media_id) - ->findOne(); + $previous_metadata = CcWebstreamMetadataQuery::create() + ->orderByDbStartTime('desc') + ->filterByDbInstanceId($media_id) + ->findOne(); - $do_insert = true; - if ($previous_metadata) { - if ($previous_metadata->getDbLiquidsoapData() == $data_arr->title) { - Logging::debug("Duplicate found: ".$data_arr->title); - $do_insert = false; + $do_insert = true; + if ($previous_metadata) { + if ($previous_metadata->getDbLiquidsoapData() == $data_arr->title) { + Logging::debug("Duplicate found: ".$data_arr->title); + $do_insert = false; + } + } + + if ($do_insert) { + $webstream_metadata = new CcWebstreamMetadata(); + $webstream_metadata->setDbInstanceId($media_id); + $webstream_metadata->setDbStartTime(new DateTime("now", new DateTimeZone("UTC"))); + $webstream_metadata->setDbLiquidsoapData($data_arr->title); + $webstream_metadata->save(); } } - - if ($do_insert) { - $webstream_metadata = new CcWebstreamMetadata(); - $webstream_metadata->setDbInstanceId($media_id); - $webstream_metadata->setDbStartTime(new DateTime("now", new DateTimeZone("UTC"))); - $webstream_metadata->setDbLiquidsoapData($data_arr->title); - $webstream_metadata->save(); - } - } else { - throw new Error("Unexpected error. media_id $media_id has a null stream value in cc_schedule!"); + throw new Exception("Null value of media_id"); } $this->view->response = $data; diff --git a/python_apps/pypo/liquidsoap_scripts/ls_script.liq b/python_apps/pypo/liquidsoap_scripts/ls_script.liq index 5cec2301b..ac0e380e9 100644 --- a/python_apps/pypo/liquidsoap_scripts/ls_script.liq +++ b/python_apps/pypo/liquidsoap_scripts/ls_script.liq @@ -53,11 +53,6 @@ http = input.http_restart(id="http") http = cross_http(http_input_id="http",http) stream_queue = http_fallback(http_input_id="http",http=http,default=queue) -#stream_queue = switch(id="stream_queue_switch", track_sensitive=false, -# transitions=[transition, transition], -# [({!webstream_enabled},web_stream), -# ({true}, queue)]) - ignore(output.dummy(stream_queue, fallible=true)) server.register(namespace="vars", diff --git a/python_apps/pypo/pyponotify.py b/python_apps/pypo/pyponotify.py index 9c2f1688c..96b358e9c 100644 --- a/python_apps/pypo/pyponotify.py +++ b/python_apps/pypo/pyponotify.py @@ -114,6 +114,7 @@ class Notify: self.notify_source_status(options.source_name, options.source_status) elif options.webstream: self.notify_webstream_data(options.webstream, options.media_id) + self.notify_media_start_playing(options.media_id) elif options.media_id: self.notify_media_start_playing(options.media_id) elif options.liquidsoap_started: From 612ac415d29c76245f334f85d697652e2d993148 Mon Sep 17 00:00:00 2001 From: Martin Konecny Date: Thu, 22 Nov 2012 12:24:59 -0500 Subject: [PATCH 06/13] cc-4708: cue points not working -fixed --- python_apps/pypo/liquidsoap_scripts/ls_script.liq | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/python_apps/pypo/liquidsoap_scripts/ls_script.liq b/python_apps/pypo/liquidsoap_scripts/ls_script.liq index ac0e380e9..c291c9876 100644 --- a/python_apps/pypo/liquidsoap_scripts/ls_script.liq +++ b/python_apps/pypo/liquidsoap_scripts/ls_script.liq @@ -11,11 +11,7 @@ set("server.telnet.port", 1234) webstream_enabled = ref false time = ref string_of(gettimeofday()) -queue = audio_to_stereo(id="queue_src", mksafe(request.equeue(id="queue", length=0.5))) -queue = cue_cut(queue) -queue = amplify(1., override="replay_gain", queue) -#fallback between queue and input.harbor (for restreaming other web-streams) #live stream setup set("harbor.bind_addr", "0.0.0.0") @@ -43,6 +39,10 @@ just_switched = ref false #web_stream = on_metadata(notify_stream, web_stream) #output.dummy(fallible=true, web_stream) +queue = audio_to_stereo(id="queue_src", request.equeue(id="queue", length=0.5)) +queue = cue_cut(queue) +queue = amplify(1., override="replay_gain", queue) + # the crossfade function controls fade in/out queue = crossfade_airtime(queue) queue = on_metadata(notify, queue) @@ -222,6 +222,7 @@ end s = switch(id="default_switch", track_sensitive=false, transitions=[transition_default, transition], [({!scheduled_play_enabled}, stream_queue),({true},default)]) + s = append_dj_inputs(master_live_stream_port, master_live_stream_mp, dj_live_stream_port, dj_live_stream_mp, s) From 87d0383533c6203b1b605fc5aa8c3b16b24e403b Mon Sep 17 00:00:00 2001 From: James Date: Thu, 22 Nov 2012 14:37:57 -0500 Subject: [PATCH 07/13] CC-4703: Now Playing duration column ignores any cue point set - fixed --- airtime_mvc/application/common/DateHelper.php | 20 +++++++++---------- .../application/models/ShowBuilder.php | 8 ++++++-- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/airtime_mvc/application/common/DateHelper.php b/airtime_mvc/application/common/DateHelper.php index c13543d8e..a22a26b4a 100644 --- a/airtime_mvc/application/common/DateHelper.php +++ b/airtime_mvc/application/common/DateHelper.php @@ -48,7 +48,7 @@ class Application_Common_DateHelper /** * Get the week start date of this week in the format * YYYY-MM-DD - * + * * @return String - week start date */ function getWeekStartDate() @@ -231,7 +231,7 @@ class Application_Common_DateHelper if (2 !== substr_count($p_time, ":")){ return FALSE; } - + if (1 === substr_count($p_time, ".")){ list($hhmmss, $ms) = explode(".", $p_time); } else { @@ -275,17 +275,17 @@ class Application_Common_DateHelper return $dateTime; } - /* Convenience method to return a date formatted into a String rather than a + /* Convenience method to return a date formatted into a String rather than a * DateTime object. Note that if an empty string is provided for $p_dateString - * then the current time is provided. - * + * then the current time is provided. + * * @param $p_dateString * Date string in UTC timezone. * @param $p_format * Format which the string should be returned in. - * - * @return string - * Date String in localtime + * + * @return string + * Date String in localtime * */ public static function ConvertToLocalDateTimeString($p_dateString, $p_format="Y-m-d H:i:s"){ if (is_null($p_dateString) || strlen($p_dateString) == 0) @@ -302,7 +302,7 @@ class Application_Common_DateHelper /* * Example input: "00:02:32.746562". Output is a DateInterval object * representing that 2 minute, 32.746562 second interval. - * + * */ public static function getDateIntervalFromString($p_interval){ list($hour_min_sec, $subsec) = explode(".", $p_interval); @@ -335,7 +335,7 @@ class Application_Common_DateHelper $retVal['errMsg'] = "The year '$year' must be within the range of 1753 - 9999"; } else if (!checkdate($month, $day, $year)) { $retVal['success'] = false; - $retVal['errMsg'] = "'$year-$month-$day' is not a valid date"; + $retVal['errMsg'] = "'$year-$month-$day' is not a valid date"; } else { // check time if (isset($timeInfo)) { diff --git a/airtime_mvc/application/models/ShowBuilder.php b/airtime_mvc/application/models/ShowBuilder.php index 789d5990a..175e61dfd 100644 --- a/airtime_mvc/application/models/ShowBuilder.php +++ b/airtime_mvc/application/models/ShowBuilder.php @@ -266,8 +266,12 @@ class Application_Model_ShowBuilder $row["instance"] = intval($p_item["si_id"]); $row["starts"] = $schedStartDT->format("H:i:s"); $row["ends"] = $schedEndDT->format("H:i:s"); - - $formatter = new LengthFormatter($p_item['file_length']); + + $cue_out = Application_Common_DateHelper::calculateLengthInSeconds($p_item['cue_out']); + $cue_in = Application_Common_DateHelper::calculateLengthInSeconds($p_item['cue_in']); + $run_time = $cue_out-$cue_in; + + $formatter = new LengthFormatter(Application_Common_DateHelper::ConvertMSToHHMMSSmm($run_time*1000)); $row['runtime'] = $formatter->format(); $row["title"] = $p_item["file_track_title"]; From 75adf9b6a10ff8d5390e493e921e80d4bfa851b7 Mon Sep 17 00:00:00 2001 From: martin Date: Fri, 23 Nov 2012 14:03:31 -0500 Subject: [PATCH 08/13] CC-4701: same webstream played twice in a row does not work. -fixed --- airtime_mvc/application/models/Schedule.php | 56 +++++++++++++++++---- 1 file changed, 45 insertions(+), 11 deletions(-) diff --git a/airtime_mvc/application/models/Schedule.php b/airtime_mvc/application/models/Schedule.php index f4acdf886..bc98168d3 100644 --- a/airtime_mvc/application/models/Schedule.php +++ b/airtime_mvc/application/models/Schedule.php @@ -833,26 +833,60 @@ SQL; } } + + /* Check if two events are less than or equal to 1 second apart + */ + public static function areEventsLinked($event1, $event2) { + $dt1 = DateTime::createFromFormat("Y-m-d-H-i-s", $event1['start']); + $dt2 = DateTime::createFromFormat("Y-m-d-H-i-s", $event2['start']); + + $seconds = $dt2->getTimestamp() - $dt1->getTimestamp(); + return $seconds <= 1; + } /** - * Purpose of this function is to iterate through the entire - * schedule array that was just built and fix the data up a bit. For - * example, if we have two consecutive webstreams, we don't need the - * first webstream to shutdown the output, when the second one will - * just switch it back on. Preventing this behaviour stops hiccups - * in output sound. + * Streams are a 4 stage process. + * 1) start buffering stream 5 seconds ahead of its start time + * 2) at the start time tell liquidsoap to switch to this source + * 3) at the end time, tell liquidsoap to stop reading this stream + * 4) at the end time, tell liquidsoap to switch away from input.http source. + * + * When we have two streams back-to-back, some of these steps are unnecessary + * for the second stream. Instead of sending commands 1,2,3,4,1,2,3,4 we should + * send 1,2,1,2,3,4 - We don't need to tell liquidsoap to stop reading (#3), because #1 + * of the next stream implies this when we pass in a new url. We also don't need #4. + * + * There's a special case here is well. When the back-to-back streams are the same, we + * can collapse the instructions 1,2,(3,4,1,2),3,4 to 1,2,3,4. We basically cut out the + * middle part. This function handles this. */ - private static function filterData(&$data) + private static function foldData(&$data) { $previous_key = null; $previous_val = null; + $previous_previous_key = null; + $previous_previous_val = null; + $previous_previous_previous_key = null; + $previous_previous_previous_val = null; foreach ($data as $k => $v) { - if ($v["type"] == "stream_buffer_start" - && !is_null($previous_val) - && $previous_val["type"] == "stream_output_end") { + if ($v["type"] == "stream_output_start" + && !is_null($previous_previous_val) + && $previous_previous_val["type"] == "stream_output_end" + && self::areEventsLinked($previous_previous_val, $v)) { + + unset($data[$previous_previous_previous_key]); + unset($data[$previous_previous_key]); unset($data[$previous_key]); + if ($previous_previous_val['uri'] == $v['uri']) { + unset($data[$k]); + } } + + $previous_previous_previous_key = $previous_previous_key; + $previous_previous_previous_val = $previous_previous_val; + $previous_previous_key = $previous_key; + $previous_previous_val = $previous_val; $previous_key = $k; $previous_val = $v; } @@ -870,7 +904,7 @@ SQL; self::createInputHarborKickTimes($data, $range_start, $range_end); self::createScheduledEvents($data, $range_start, $range_end); - self::filterData($data["media"]); + self::foldData($data["media"]); return $data; } From 50bdeeef266834a82836d710dbd68969a8a3f3e1 Mon Sep 17 00:00:00 2001 From: martin Date: Fri, 23 Nov 2012 16:00:10 -0500 Subject: [PATCH 09/13] CC-4702: Webstream: When webstream is playing, it isn't marked as 'media_item_played' in cc_schedule --- python_apps/pypo/liquidsoap_scripts/ls_script.liq | 4 +++- python_apps/pypo/pyponotify.py | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/python_apps/pypo/liquidsoap_scripts/ls_script.liq b/python_apps/pypo/liquidsoap_scripts/ls_script.liq index c291c9876..3a9468512 100644 --- a/python_apps/pypo/liquidsoap_scripts/ls_script.liq +++ b/python_apps/pypo/liquidsoap_scripts/ls_script.liq @@ -81,7 +81,9 @@ server.register(namespace="dynamic_source", description="Enable webstream output", usage='start', "output_start", - fun (s) -> begin log("dynamic_source.output_start") webstream_enabled := true "enabled" end) + fun (s) -> begin log("dynamic_source.output_start") + notify([("schedule_table_id", !current_dyn_id)]) + webstream_enabled := true "enabled" end) server.register(namespace="dynamic_source", description="Enable webstream output", usage='stop', diff --git a/python_apps/pypo/pyponotify.py b/python_apps/pypo/pyponotify.py index 96b358e9c..9c2f1688c 100644 --- a/python_apps/pypo/pyponotify.py +++ b/python_apps/pypo/pyponotify.py @@ -114,7 +114,6 @@ class Notify: self.notify_source_status(options.source_name, options.source_status) elif options.webstream: self.notify_webstream_data(options.webstream, options.media_id) - self.notify_media_start_playing(options.media_id) elif options.media_id: self.notify_media_start_playing(options.media_id) elif options.liquidsoap_started: From 04f6ae5c1a9f1d924746eae92179e48a6a16b190 Mon Sep 17 00:00:00 2001 From: denise Date: Fri, 23 Nov 2012 16:53:51 -0500 Subject: [PATCH 10/13] CC-4607: Library: Please make the 'Add x items' following mouse's point -fixed --- .../public/js/airtime/library/events/library_showbuilder.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js b/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js index ba03586d0..0cd236aa2 100644 --- a/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js +++ b/airtime_mvc/public/js/airtime/library/events/library_showbuilder.js @@ -81,6 +81,10 @@ var AIRTIME = (function(AIRTIME) { return container; }, cursor : 'pointer', + cursorAt: { + top: 30, + left: 100 + }, connectToSortable : '#show_builder_table' }); }; From 3b124e6f5dd3a3e97d222da64a38b49dcb916ac6 Mon Sep 17 00:00:00 2001 From: denise Date: Mon, 26 Nov 2012 15:05:27 -0500 Subject: [PATCH 11/13] CC-4668: Blocks/Playlists: Length includes deleted tracks -saving block length was including files that do not exist --- airtime_mvc/application/models/Block.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/airtime_mvc/application/models/Block.php b/airtime_mvc/application/models/Block.php index 551578dd7..e6dd311f8 100644 --- a/airtime_mvc/application/models/Block.php +++ b/airtime_mvc/application/models/Block.php @@ -360,8 +360,10 @@ SQL; { $sql = <<$this->id), 'all', PDO::FETCH_NUM); return $result[0][0]; From 7249e3608161ccf9ae11f754569c85fea349ecc8 Mon Sep 17 00:00:00 2001 From: Martin Konecny Date: Tue, 27 Nov 2012 12:07:51 -0500 Subject: [PATCH 12/13] -2.2.1 upgrade scripts --- VERSION | 2 +- install_minimal/include/airtime-constants.php | 2 +- install_minimal/include/airtime-upgrade.php | 4 ++++ .../upgrades/airtime-2.2.1/DbUpgrade.php | 24 +++++++++++++++++++ .../airtime-2.2.1/airtime-upgrade.php | 8 +++++++ .../upgrades/airtime-2.2.1/data/upgrade.sql | 9 +++++++ python_apps/api_clients/api_client.py | 2 +- 7 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 install_minimal/upgrades/airtime-2.2.1/DbUpgrade.php create mode 100644 install_minimal/upgrades/airtime-2.2.1/airtime-upgrade.php create mode 100644 install_minimal/upgrades/airtime-2.2.1/data/upgrade.sql diff --git a/VERSION b/VERSION index c7aac0e6d..491e6ae5c 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ PRODUCT_ID=Airtime -PRODUCT_RELEASE=2.2.0 +PRODUCT_RELEASE=2.2.1 diff --git a/install_minimal/include/airtime-constants.php b/install_minimal/include/airtime-constants.php index 8d028ec63..2968cab36 100644 --- a/install_minimal/include/airtime-constants.php +++ b/install_minimal/include/airtime-constants.php @@ -1,3 +1,3 @@ &1 | grep -v \"will create implicit index\""); + } +} diff --git a/install_minimal/upgrades/airtime-2.2.1/airtime-upgrade.php b/install_minimal/upgrades/airtime-2.2.1/airtime-upgrade.php new file mode 100644 index 000000000..042b92d05 --- /dev/null +++ b/install_minimal/upgrades/airtime-2.2.1/airtime-upgrade.php @@ -0,0 +1,8 @@ + Date: Mon, 3 Dec 2012 14:36:47 +0000 Subject: [PATCH 13/13] Added copyright and contact headers to gettext files --- .../locale/en_CA/LC_MESSAGES/airtime.po | 12 ++++++------ .../locale/ko_KR/LC_MESSAGES/airtime.po | 18 +++++++++--------- airtime_mvc/locale/template/airtime.po | 8 ++++---- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/airtime_mvc/locale/en_CA/LC_MESSAGES/airtime.po b/airtime_mvc/locale/en_CA/LC_MESSAGES/airtime.po index bbbb7033c..7062255d6 100644 --- a/airtime_mvc/locale/en_CA/LC_MESSAGES/airtime.po +++ b/airtime_mvc/locale/en_CA/LC_MESSAGES/airtime.po @@ -1,16 +1,16 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# CANADIAN (en_CA) translation for Airtime. +# Copyright (C) 2012 Sourcefabric +# This file is distributed under the same license as the Airtime package. +# Sourcefabric , 2012. # msgid "" msgstr "" "Project-Id-Version: Airtime 2.3\n" -"Report-Msgid-Bugs-To: \n" +"Report-Msgid-Bugs-To: contact@sourcefabric.org\n" "POT-Creation-Date: 2012-11-28 16:00-0500\n" "PO-Revision-Date: 2012-11-29 11:31-0500\n" "Last-Translator: Denise Rigato \n" -"Language-Team: Airtime\n" +"Language-Team: Canadian Localization \n" "Language: en_CA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/airtime_mvc/locale/ko_KR/LC_MESSAGES/airtime.po b/airtime_mvc/locale/ko_KR/LC_MESSAGES/airtime.po index f7fb0a98d..5036ea923 100644 --- a/airtime_mvc/locale/ko_KR/LC_MESSAGES/airtime.po +++ b/airtime_mvc/locale/ko_KR/LC_MESSAGES/airtime.po @@ -1,17 +1,17 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# KOREAN (ko_KR) translation for Airtime. +# Copyright (C) 2012 Sourcefabric +# This file is distributed under the same license as the Airtime package. +# Sourcefabric , 2012. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" +"Project-Id-Version: Airtime 2.3\n" +"Report-Msgid-Bugs-To: contact@sourcefabric.org\n" "POT-Creation-Date: 2012-11-26 14:16-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2012-11-26 14:16-0500\n" +"Last-Translator: James Moon \n" +"Language-Team: Korean Localization \n" "Language: ko_KR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/airtime_mvc/locale/template/airtime.po b/airtime_mvc/locale/template/airtime.po index 9eca69f28..c21ad9471 100644 --- a/airtime_mvc/locale/template/airtime.po +++ b/airtime_mvc/locale/template/airtime.po @@ -1,7 +1,7 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# LANGUAGE (xx_XX) translation for Airtime. +# Copyright (C) 2012 Sourcefabric +# This file is distributed under the same license as the Airtime package. +# Sourcefabric , 2012. # #, fuzzy msgid ""