From 75cd410ba461533d1993c3efe0f9be5386f1730f Mon Sep 17 00:00:00 2001 From: naomiaro Date: Mon, 3 Jan 2011 11:47:21 -0500 Subject: [PATCH 01/22] search uses pagination --- application/controllers/LibraryController.php | 40 ++++++++++++++--- application/controllers/SearchController.php | 23 +++------- application/forms/AdvancedSearch.php | 9 ++++ application/models/StoredFile.php | 40 ++++++++++++----- .../views/scripts/library/contents.phtml | 12 +++++ .../views/scripts/library/paginator.phtml | 44 +++++++++++++++++++ .../views/scripts/library/update.phtml | 3 +- .../views/scripts/search/display.phtml | 2 +- .../js/campcaster/library/advancedsearch.js | 27 ------------ 9 files changed, 136 insertions(+), 64 deletions(-) create mode 100644 application/views/scripts/library/paginator.phtml diff --git a/application/controllers/LibraryController.php b/application/controllers/LibraryController.php index 7af3b62fd..b12a98bbe 100644 --- a/application/controllers/LibraryController.php +++ b/application/controllers/LibraryController.php @@ -33,8 +33,7 @@ class LibraryController extends Zend_Controller_Action $this->_helper->layout->setLayout('library'); unset($this->search_sess->md); - unset($this->search_sess->order); - + $this->_helper->actionStack('contents', 'library'); $this->_helper->actionStack('index', 'sideplaylist'); } @@ -59,7 +58,7 @@ class LibraryController extends Zend_Controller_Action } $menu[] = array('action' => array('type' => 'gourl', 'url' => '/Library/edit-file-md/id/#id#'), - 'title' => 'Info'); + 'title' => 'Edit Metadata'); } else if($type === "pl") { @@ -124,13 +123,40 @@ class LibraryController extends Zend_Controller_Action $this->_helper->viewRenderer->setResponseSegment('library'); - $order["category"] = $this->_getParam('ob', "dc:creator"); - $order["order"] = $this->_getParam('order', "asc"); + $cat = $this->_getParam('ob', null); + $or = $this->_getParam('order', null); + $page = $this->_getParam('page', null); + + if(!is_null($cat) && !is_null($or)) { + $order["category"] = $cat; + $order["order"] = $or; + $this->search_sess->order = $order; + } + else if(isset($this->search_sess->order)){ + $order = $this->search_sess->order; + } + else{ + $order = null; + } + + if (isset($this->search_sess->page)) { + $last_page = $this->search_sess->page; + } + else{ + $last_page = null; + } + + $currpage = isset($page) ? $page : $last_page; + $this->search_sess->page = $currpage; - $this->search_sess->order = $order; $md = isset($this->search_sess->md) ? $this->search_sess->md : array(); - $this->view->files = StoredFile::searchFiles($md, $order); + $count = StoredFile::searchFiles($md, $order, true); + + $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Null($count)); + $paginator->setCurrentPageNumber($currpage); + $this->view->paginator = $paginator; + $this->view->files = StoredFile::searchFiles($md, $order, false, $paginator->getCurrentPageNumber(), $paginator->getItemCountPerPage()); } public function editFileMdAction() diff --git a/application/controllers/SearchController.php b/application/controllers/SearchController.php index a96248964..05b218a39 100644 --- a/application/controllers/SearchController.php +++ b/application/controllers/SearchController.php @@ -15,7 +15,6 @@ class SearchController extends Zend_Controller_Action $ajaxContext = $this->_helper->getHelper('AjaxContext'); $ajaxContext->addActionContext('newfield', 'html') - ->addActionContext('display', 'json') ->initContext(); $this->form = new Application_Form_AdvancedSearch(); @@ -30,8 +29,8 @@ class SearchController extends Zend_Controller_Action $this->view->headScript()->appendFile('/js/contextmenu/jjmenu.js','text/javascript'); $this->view->headLink()->appendStylesheet('/css/contextmenu.css'); - $this->_helper->actionStack('display', 'search'); $this->_helper->actionStack('contents', 'library'); + $this->_helper->actionStack('display', 'search'); $this->_helper->actionStack('index', 'sideplaylist'); } @@ -46,18 +45,15 @@ class SearchController extends Zend_Controller_Action $this->form = new Application_Form_AdvancedSearch(); $form = $this->form; + $this->view->form = $form; // Form has not been submitted - displayed using layouts if (!$request->isPost()) { - unset($this->search_sess->md); - unset($this->search_sess->order); - $sub = new Application_Form_AdvancedSearchRow(1); $form->addSubForm($sub, 'row_1'); $form->getSubForm('row_1')->removeDecorator('DtDdWrapper'); - $this->view->form = $form; return; } @@ -65,24 +61,15 @@ class SearchController extends Zend_Controller_Action $form->preValidation($request->getPost()); if (!$form->isValid($request->getPost())) { - $this->view->form = $form->__toString(); return; } - // form was submitted, send back strings to json response. + // valid form was submitted set as search criteria. $info = $form->getValues(); $this->search_sess->md = $info; - $order = isset($this->search_sess->order) ? $this->search_sess->order : NULL; - $this->view->files = StoredFile::searchFiles($info, $order); - - if (count($this->view->files) > 0) { - $this->view->results = $this->view->render('library/update.phtml'); - } - else { - $this->view->results = "No Results"; - } - unset($this->view->files); + //make sure to start on first page of new results. + unset($this->search_sess->page); } public function newfieldAction() diff --git a/application/forms/AdvancedSearch.php b/application/forms/AdvancedSearch.php index 4c915c38e..a23ebc712 100644 --- a/application/forms/AdvancedSearch.php +++ b/application/forms/AdvancedSearch.php @@ -9,6 +9,13 @@ class Application_Form_AdvancedSearch extends Zend_Form 'value' => 2 )); $this->getElement('search_next_id')->removeDecorator('Label')->removeDecorator('HtmlTag'); + + // Add the submit button + $this->addElement('submit', 'submit', array( + 'ignore' => true, + 'label' => 'Submit', + 'order' => '-1' + )); } public function preValidation(array $data) { @@ -30,6 +37,8 @@ class Application_Form_AdvancedSearch extends Zend_Form $id = findId($field); $this->addNewField($data, $id); } + + } public function addNewField($data, $id) { diff --git a/application/models/StoredFile.php b/application/models/StoredFile.php index 50fca75d7..cab6c3b71 100644 --- a/application/models/StoredFile.php +++ b/application/models/StoredFile.php @@ -1741,7 +1741,7 @@ class StoredFile { return $CC_CONFIG['accessDir']."/$p_token.$p_ext"; } - public static function searchFiles($md, $order=NULL) + public static function searchFiles($md, $order=NULL, $count=false, $page=null, $limit=null) { global $CC_CONFIG, $CC_DBC, $g_metadata_xml_to_db_mapping; @@ -1755,9 +1755,6 @@ class StoredFile { "6" => "!=", ); - //$sql = "SELECT * FROM ".$CC_CONFIG['filesTable']; - - $plSelect = "SELECT "; $fileSelect = "SELECT "; $_SESSION["br"] = ""; @@ -1785,7 +1782,14 @@ class StoredFile { } } - $sql = "SELECT * FROM ((".$plSelect."PL.id, 'playlist' AS ftype + if($count) { + $selector = "SELECT COUNT(*)"; + } + else { + $selector = "SELECT *"; + } + + $from = " FROM ((".$plSelect."PL.id, 'playlist' AS ftype FROM ".$CC_CONFIG["playListTable"]." AS PL LEFT JOIN ".$CC_CONFIG['playListTimeView']." PLT ON PL.id = PLT.id) @@ -1793,6 +1797,8 @@ class StoredFile { (".$fileSelect."id, ftype FROM ".$CC_CONFIG["filesTable"]." AS FILES)) AS RESULTS "; + $sql = $selector." ".$from; + $cond = array(); foreach(array_keys($md) as $key) { if(strpos($key, 'row') !== false){ @@ -1817,13 +1823,27 @@ class StoredFile { $sql = $sql . $where; } - if(!is_null($order)) { - $ob = " ORDER BY ".$g_metadata_xml_to_db_mapping[$order["category"]]; - $sql = $sql . $ob . " " .$order["order"]; + if($count) { + return $CC_DBC->getOne($sql); } - //echo $sql; - return $CC_DBC->getAll($sql); + if(!is_null($order)) { + $ob = " ORDER BY ".$g_metadata_xml_to_db_mapping[$order["category"]]. ", id " .$order["order"]; + $sql = $sql . $ob; + } + else{ + $ob = " ORDER BY artist_name, id asc"; + $sql = $sql . $ob; + } + + if(!is_null($page) && !is_null($limit)) { + $offset = $page * $limit - ($limit); + $paginate = " LIMIT ".$limit. " OFFSET " .$offset; + $sql = $sql . $paginate; + } + echo $sql; + + return $CC_DBC->getAll($sql); } } diff --git a/application/views/scripts/library/contents.phtml b/application/views/scripts/library/contents.phtml index 4cee3f9bb..a365602df 100644 --- a/application/views/scripts/library/contents.phtml +++ b/application/views/scripts/library/contents.phtml @@ -20,3 +20,15 @@ } ?> +page; +echo "curr: " . $this->curr; + +echo $this->paginationControl($this->paginator, + 'Sliding', + 'library/paginator.phtml'); + + +?> + diff --git a/application/views/scripts/library/paginator.phtml b/application/views/scripts/library/paginator.phtml new file mode 100644 index 000000000..ee091e39c --- /dev/null +++ b/application/views/scripts/library/paginator.phtml @@ -0,0 +1,44 @@ + +pageCount): ?> +
+firstItemNumber; ?> - lastItemNumber; ?> +of totalItemCount; ?> + + +previous)): ?> + + First + | + + First | + + + +previous)): ?> + + < Previous + | + + < Previous | + + + +next)): ?> + + Next > + | + + Next > | + + + +next)): ?> + + Last + + + Last + + +
+ diff --git a/application/views/scripts/library/update.phtml b/application/views/scripts/library/update.phtml index 113029e1d..52eb9608b 100644 --- a/application/views/scripts/library/update.phtml +++ b/application/views/scripts/library/update.phtml @@ -1,2 +1,3 @@ partialLoop('library/libraryTablePartial.phtml', $this->files); + + echo $this->partialLoop('library/libraryTablePartial.phtml', $this->files); diff --git a/application/views/scripts/search/display.phtml b/application/views/scripts/search/display.phtml index d742638df..bfa74f5d0 100644 --- a/application/views/scripts/search/display.phtml +++ b/application/views/scripts/search/display.phtml @@ -1,6 +1,6 @@ form->setAction($this->url()); echo $this->form; ?> Add -Submit diff --git a/public/js/campcaster/library/advancedsearch.js b/public/js/campcaster/library/advancedsearch.js index 07b9ea9cb..7f64090d5 100644 --- a/public/js/campcaster/library/advancedsearch.js +++ b/public/js/campcaster/library/advancedsearch.js @@ -28,36 +28,9 @@ function ajaxAddField() { }); } -function searchLibrary() { - var url, data; - - url = '/Search/display/format/json'; - data = $("form").serializeArray(); - - $.post(url, data, function(json){ - - if(json.form) { - $("#search") - .empty() - .append(json.form); - } - - - if(json.results) { - $("#library_display tr:not(:first-child)").remove(); - $("#library_display tbody").append(json.results); - - //in campcaster/library.js - addLibraryItemEvents(); - } - - }); -} - function setUpSearch() { $("#search_add").click(ajaxAddField); - $("#search_submit").click(searchLibrary); $('[id^="fieldset-row_"]').each(function(i, el){ addRemove(el); From cf4e7841295b93a277490f228dd91a967924e0cf Mon Sep 17 00:00:00 2001 From: naomiaro Date: Mon, 3 Jan 2011 13:29:57 -0500 Subject: [PATCH 02/22] CC-1749 added pagination to media files display. --- application/controllers/LibraryController.php | 1 + application/models/StoredFile.php | 2 +- .../views/scripts/library/contents.phtml | 3 - .../views/scripts/library/paginator.phtml | 100 ++++++++++-------- 4 files changed, 58 insertions(+), 48 deletions(-) diff --git a/application/controllers/LibraryController.php b/application/controllers/LibraryController.php index b12a98bbe..824d3b158 100644 --- a/application/controllers/LibraryController.php +++ b/application/controllers/LibraryController.php @@ -32,6 +32,7 @@ class LibraryController extends Zend_Controller_Action $this->_helper->layout->setLayout('library'); + unset($this->search_sess->page); unset($this->search_sess->md); $this->_helper->actionStack('contents', 'library'); diff --git a/application/models/StoredFile.php b/application/models/StoredFile.php index cab6c3b71..930db0dd1 100644 --- a/application/models/StoredFile.php +++ b/application/models/StoredFile.php @@ -1841,7 +1841,7 @@ class StoredFile { $paginate = " LIMIT ".$limit. " OFFSET " .$offset; $sql = $sql . $paginate; } - echo $sql; + //echo $sql; return $CC_DBC->getAll($sql); } diff --git a/application/views/scripts/library/contents.phtml b/application/views/scripts/library/contents.phtml index a365602df..1ea505484 100644 --- a/application/views/scripts/library/contents.phtml +++ b/application/views/scripts/library/contents.phtml @@ -22,9 +22,6 @@ page; -echo "curr: " . $this->curr; - echo $this->paginationControl($this->paginator, 'Sliding', 'library/paginator.phtml'); diff --git a/application/views/scripts/library/paginator.phtml b/application/views/scripts/library/paginator.phtml index ee091e39c..3e2c78656 100644 --- a/application/views/scripts/library/paginator.phtml +++ b/application/views/scripts/library/paginator.phtml @@ -1,44 +1,56 @@ - -pageCount): ?> -
-firstItemNumber; ?> - lastItemNumber; ?> -of totalItemCount; ?> - - -previous)): ?> - - First - | - - First | - - - -previous)): ?> - - < Previous - | - - < Previous | - - - -next)): ?> - - Next > - | - - Next > | - - - -next)): ?> - - Last - - - Last - - -
- +

+ pageCount): ?> +

+ firstItemNumber; ?> - lastItemNumber; ?> + of totalItemCount; ?> +

+ +

+ + previous)): ?> + + First + | + + First | + + + + previous)): ?> + + < Previous + | + + < Previous | + + + + pagesInRange as $page): ?> + current != $page): ?> + + + + + + + + next)): ?> + + Next > + | + + Next > | + + + + next)): ?> + + Last + + + Last + + +

+ +

From 583654807588b8f1707956d9e5ea73e661e933df Mon Sep 17 00:00:00 2001 From: naomiaro Date: Mon, 3 Jan 2011 14:19:09 -0500 Subject: [PATCH 03/22] CC-1750 hours needed floor for 5min show. --- public/js/campcaster/schedule/schedule.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/js/campcaster/schedule/schedule.js b/public/js/campcaster/schedule/schedule.js index a85ca6587..072c5d219 100644 --- a/public/js/campcaster/schedule/schedule.js +++ b/public/js/campcaster/schedule/schedule.js @@ -255,7 +255,7 @@ function eventMenu(action, el, pos) { length = event.end.getTime() - event.start.getTime(); - h = length / (1000*60*60); + h = Math.floor(length / (1000*60*60)); m = (length % (1000*60*60)) / (1000*60); s = ((length % (1000*60*60)) % (1000*60)) / 1000; From 58a25186bbd33eb58c1592e9f8e066eb3ec414bb Mon Sep 17 00:00:00 2001 From: naomiaro Date: Mon, 3 Jan 2011 14:19:38 -0500 Subject: [PATCH 04/22] moving add button above. --- application/views/scripts/search/display.phtml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/application/views/scripts/search/display.phtml b/application/views/scripts/search/display.phtml index bfa74f5d0..f1a8d2be7 100644 --- a/application/views/scripts/search/display.phtml +++ b/application/views/scripts/search/display.phtml @@ -1,6 +1,7 @@ +Add form->setAction($this->url()); echo $this->form; ?> -Add + From f6a56c01a95d1da432f6157085ac67047683ab53 Mon Sep 17 00:00:00 2001 From: naomiaro Date: Mon, 3 Jan 2011 15:15:00 -0500 Subject: [PATCH 05/22] buttons part of zend form. --- application/forms/AdvancedSearch.php | 11 ++++++++++- application/views/scripts/search/display.phtml | 1 - 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/application/forms/AdvancedSearch.php b/application/forms/AdvancedSearch.php index a23ebc712..0baa5f806 100644 --- a/application/forms/AdvancedSearch.php +++ b/application/forms/AdvancedSearch.php @@ -10,12 +10,21 @@ class Application_Form_AdvancedSearch extends Zend_Form )); $this->getElement('search_next_id')->removeDecorator('Label')->removeDecorator('HtmlTag'); + // Add the add button + $this->addElement('button', 'search_add', array( + 'ignore' => true, + 'label' => 'Add', + 'order' => '-2' + )); + $this->getElement('search_add')->removeDecorator('DtDdWrapper'); + // Add the submit button - $this->addElement('submit', 'submit', array( + $this->addElement('submit', 'search_submit', array( 'ignore' => true, 'label' => 'Submit', 'order' => '-1' )); + $this->getElement('search_submit')->removeDecorator('DtDdWrapper'); } public function preValidation(array $data) { diff --git a/application/views/scripts/search/display.phtml b/application/views/scripts/search/display.phtml index f1a8d2be7..f9d4507cf 100644 --- a/application/views/scripts/search/display.phtml +++ b/application/views/scripts/search/display.phtml @@ -1,4 +1,3 @@ -Add form->setAction($this->url()); From 101b6fafa6c86f41b965a3d4444701e282e3d154 Mon Sep 17 00:00:00 2001 From: naomiaro Date: Tue, 4 Jan 2011 19:18:44 -0500 Subject: [PATCH 06/22] searching includes groups for and/or --- .zfproject.xml | 9 +++ application/controllers/LibraryController.php | 51 +++++++++++- application/controllers/SearchController.php | 80 +++++++++++++------ application/forms/AdvancedSearch.php | 58 +++++++------- application/forms/AdvancedSearchGroup.php | 29 +++++++ application/forms/AdvancedSearchRow.php | 23 ++---- application/layouts/scripts/library.phtml | 1 + application/models/Playlist.php | 3 +- application/models/StoredFile.php | 37 +++++---- .../views/scripts/library/quick-search.phtml | 2 + .../views/scripts/search/display.phtml | 1 + .../views/scripts/search/newfield.ajax.phtml | 1 - .../views/scripts/search/newgroup.phtml | 1 + .../js/campcaster/library/advancedsearch.js | 34 +++++--- public/js/campcaster/library/quicksearch.js | 15 ++++ public/js/campcaster/onready/library.js | 1 + 16 files changed, 244 insertions(+), 102 deletions(-) create mode 100644 application/forms/AdvancedSearchGroup.php create mode 100644 application/views/scripts/library/quick-search.phtml delete mode 100644 application/views/scripts/search/newfield.ajax.phtml create mode 100644 application/views/scripts/search/newgroup.phtml create mode 100644 public/js/campcaster/library/quicksearch.js diff --git a/.zfproject.xml b/.zfproject.xml index a3af0c944..5e3fee1e6 100644 --- a/.zfproject.xml +++ b/.zfproject.xml @@ -35,6 +35,7 @@ + @@ -45,6 +46,7 @@ + @@ -85,6 +87,7 @@ + @@ -229,6 +232,12 @@ + + + + + + diff --git a/application/controllers/LibraryController.php b/application/controllers/LibraryController.php index 824d3b158..56770c1da 100644 --- a/application/controllers/LibraryController.php +++ b/application/controllers/LibraryController.php @@ -2,7 +2,9 @@ class LibraryController extends Zend_Controller_Action { + protected $pl_sess = null; + protected $search_sess = null; public function init() @@ -18,6 +20,7 @@ class LibraryController extends Zend_Controller_Action ->addActionContext('upload', 'json') ->addActionContext('delete', 'json') ->addActionContext('context-menu', 'json') + ->addActionContext('quick-search', 'json') ->initContext(); $this->pl_sess = new Zend_Session_Namespace(UI_PLAYLIST_SESSNAME); @@ -36,6 +39,7 @@ class LibraryController extends Zend_Controller_Action unset($this->search_sess->md); $this->_helper->actionStack('contents', 'library'); + $this->_helper->actionStack('quick-search', 'library'); $this->_helper->actionStack('index', 'sideplaylist'); } @@ -94,7 +98,7 @@ class LibraryController extends Zend_Controller_Action public function deleteAction() { $id = $this->_getParam('id'); - + if (!is_null($id)) { $file = StoredFile::Recall($id); @@ -121,7 +125,7 @@ class LibraryController extends Zend_Controller_Action public function contentsAction() { $this->view->headScript()->appendFile('/js/campcaster/library/library.js','text/javascript'); - + $this->_helper->viewRenderer->setResponseSegment('library'); $cat = $this->_getParam('ob', null); @@ -183,7 +187,48 @@ class LibraryController extends Zend_Controller_Action $this->view->form = $form; } + public function quickSearchAction() + { + $this->view->headScript()->appendFile('/js/campcaster/library/quicksearch.js','text/javascript'); + $this->_helper->viewRenderer->setResponseSegment('quick_search'); + + $search = $this->_getParam('search', null); + $format = $this->_getParam('format', 'layout'); + + if($format !== 'json') + return; + + $categories = array("dc:title", "dc:creator", "dc:source"); + $keywords = explode(" ", $search); + + $md = array(); + + $i = 0; + foreach($keywords as $word) { + + foreach($categories as $cat) { + $md["row_".$i]["metadata_".$i] = $cat; + $md["row_".$i]["match_".$i] = 0; + $md["row_".$i]["search_".$i] = $word; + + $i = $i + 1; + } + } + + $currpage = isset($this->search_sess->page) ? $this->search_sess->page : null; + $order = isset($this->search_sess->order) ? $this->search_sess->order : null; + $count = StoredFile::searchFiles($md, $order, true); + + $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Null($count)); + $paginator->setCurrentPageNumber($currpage); + $this->view->paginator = $paginator; + $this->view->files = StoredFile::searchFiles($md, $order, false, $paginator->getCurrentPageNumber(), $paginator->getItemCountPerPage()); + + $this->view->html = $this->view->render('library/contents.phtml'); + unset($this->view->files); + unset($this->view->paginator); + } } @@ -200,3 +245,5 @@ class LibraryController extends Zend_Controller_Action + + diff --git a/application/controllers/SearchController.php b/application/controllers/SearchController.php index 05b218a39..59db1195d 100644 --- a/application/controllers/SearchController.php +++ b/application/controllers/SearchController.php @@ -2,29 +2,49 @@ class SearchController extends Zend_Controller_Action { + protected $search_sess = null; - protected $form; - protected $search_sess = null; + private function addGroup($group_id) { + + $form = new Application_Form_AdvancedSearch(); + + $form->addGroup($group_id, 1); + $group = $form->getSubForm('group_'.$group_id); + + return $group->__toString(); + } + + private function addFieldToGroup($group_id, $row_id) { + + $form = new Application_Form_AdvancedSearch(); + + $form->addGroup($group_id); + $group = $form->getSubForm('group_'.$group_id); + + $group->addRow($row_id); + + return $group->__toString(); + } public function init() { - if(!Zend_Auth::getInstance()->hasIdentity()) + if(!Zend_Auth::getInstance()->hasIdentity()) { $this->_redirect('login/index'); } $ajaxContext = $this->_helper->getHelper('AjaxContext'); - $ajaxContext->addActionContext('newfield', 'html') + $ajaxContext->addActionContext('newfield', 'json') + ->addActionContext('newgroup', 'json') ->initContext(); - $this->form = new Application_Form_AdvancedSearch(); $this->search_sess = new Zend_Session_Namespace("search"); } public function indexAction() { - $this->_helper->layout->setLayout('search'); - + $this->_helper->layout->setLayout('search'); + $this->view->headScript()->appendFile('/js/campcaster/onready/search.js','text/javascript'); $this->view->headScript()->appendFile('/js/contextmenu/jjmenu.js','text/javascript'); $this->view->headLink()->appendStylesheet('/css/contextmenu.css'); @@ -36,28 +56,30 @@ class SearchController extends Zend_Controller_Action public function displayAction() { - $this->view->headScript()->appendFile('/js/campcaster/library/advancedsearch.js','text/javascript'); - $this->view->headLink()->appendStylesheet('/css/library_search.css'); + $this->view->headScript()->appendFile('/js/campcaster/library/advancedsearch.js','text/javascript'); + //$this->view->headLink()->appendStylesheet('/css/library_search.css'); $this->_helper->viewRenderer->setResponseSegment('search'); $request = $this->getRequest(); - $this->form = new Application_Form_AdvancedSearch(); - $form = $this->form; + $form = new Application_Form_AdvancedSearch(); $this->view->form = $form; // Form has not been submitted - displayed using layouts if (!$request->isPost()) { - $sub = new Application_Form_AdvancedSearchRow(1); - $form->addSubForm($sub, 'row_1'); - $form->getSubForm('row_1')->removeDecorator('DtDdWrapper'); + $form->addGroup(1, 1); + + $this->search_sess->next_group = 2; + $this->search_sess->next_row[1] = 2; return; } - // Form has been submitted - run data through preValidation() + $this->view->md = $request->getPost(); + + // Form has been submitted $form->preValidation($request->getPost()); if (!$form->isValid($request->getPost())) { @@ -65,8 +87,8 @@ class SearchController extends Zend_Controller_Action } // valid form was submitted set as search criteria. - $info = $form->getValues(); - $this->search_sess->md = $info; + $this->view->md = $form->getValues(); + $this->search_sess->md = $form->getValues(); //make sure to start on first page of new results. unset($this->search_sess->page); @@ -74,19 +96,31 @@ class SearchController extends Zend_Controller_Action public function newfieldAction() { - $id = $this->_getParam('id', 1); + $group_id = $this->_getParam('group', 1); + $row_id = $this->search_sess->next_row[$group_id]; - $this->form->addSubForm(new Application_Form_AdvancedSearchRow($id), 'row_'.$id, $id); + $this->view->html = $this->addFieldToGroup($group_id, $row_id); + $this->view->row = $row_id; - $this->form->getSubForm('row_'.$id)->removeDecorator('DtDdWrapper'); - $e = $this->form->getSubForm('row_'.$id); - - $this->view->field = $e->__toString(); + $this->search_sess->next_row[$group_id] = $row_id + 1; } + public function newgroupAction() + { + $group_id = $this->search_sess->next_group; + + $this->view->html = $this->addGroup($group_id); + + $this->search_sess->next_group = $group_id + 1; + $this->search_sess->next_row[$group_id] = 2; + } + + } + + diff --git a/application/forms/AdvancedSearch.php b/application/forms/AdvancedSearch.php index 0baa5f806..f8fae8705 100644 --- a/application/forms/AdvancedSearch.php +++ b/application/forms/AdvancedSearch.php @@ -5,18 +5,13 @@ class Application_Form_AdvancedSearch extends Zend_Form public function init() { - $this->addElement('hidden', 'search_next_id', array( - 'value' => 2 - )); - $this->getElement('search_next_id')->removeDecorator('Label')->removeDecorator('HtmlTag'); - // Add the add button - $this->addElement('button', 'search_add', array( + $this->addElement('button', 'search_add_group', array( 'ignore' => true, 'label' => 'Add', 'order' => '-2' )); - $this->getElement('search_add')->removeDecorator('DtDdWrapper'); + $this->getElement('search_add_group')->removeDecorator('DtDdWrapper'); // Add the submit button $this->addElement('submit', 'search_submit', array( @@ -27,6 +22,17 @@ class Application_Form_AdvancedSearch extends Zend_Form $this->getElement('search_submit')->removeDecorator('DtDdWrapper'); } + public function addGroup($group_id, $row_id=null) { + + $this->addSubForm(new Application_Form_AdvancedSearchGroup(), 'group_'.$group_id, $group_id); + $this->getSubForm('group_'.$group_id)->removeDecorator('DtDdWrapper'); + + if(!is_null($row_id)) { + $subGroup = $this->getSubForm('group_'.$group_id); + $subGroup->addRow($row_id); + } + } + public function preValidation(array $data) { function findId($name) { @@ -34,36 +40,26 @@ class Application_Form_AdvancedSearch extends Zend_Form return $t[1]; } - // array_filter callback function findFields($field) { - return strpos($field, 'row') !== false; + return strpos($field, 'group') !== false; } - $fields = array_filter(array_keys($data), 'findFields'); + $groups = array_filter(array_keys($data), 'findFields'); - foreach ($fields as $field) { - // use id to set new order - $id = findId($field); - $this->addNewField($data, $id); + foreach ($groups as $group) { + + $group_id = findId($group); + $this->addGroup($group_id); + + $subGroup = $this->getSubForm($group); + + foreach (array_keys($data[$group]) as $row) { + + $row_id = findId($row); + $subGroup->addRow($row_id, $data[$group][$row]); + } } - } - - public function addNewField($data, $id) { - - $sub = new Application_Form_AdvancedSearchRow($id); - - $values = array("metadata_".$id => $data["row_".$id]["metadata_".$id], - "match_".$id => $data["row_".$id]["match_".$id], - "search_".$id => $data["row_".$id]["search_".$id]); - - $sub->setDefaults($values); - - $this->addSubForm($sub, 'row_'.$id, $id); - $this->getSubForm('row_'.$id)->removeDecorator('DtDdWrapper'); - } - - } diff --git a/application/forms/AdvancedSearchGroup.php b/application/forms/AdvancedSearchGroup.php new file mode 100644 index 000000000..5a5541673 --- /dev/null +++ b/application/forms/AdvancedSearchGroup.php @@ -0,0 +1,29 @@ +addElement('button', 'search_add_row', array( + 'ignore' => true, + 'label' => 'Add', + 'order' => '-2' + )); + $this->getElement('search_add_row')->removeDecorator('DtDdWrapper'); + } + + public function addRow($row_id, $data=null) { + + $this->addSubForm(new Application_Form_AdvancedSearchRow(), 'row_'.$row_id, $row_id); + $row = $this->getSubForm('row_'.$row_id); + $row->removeDecorator('DtDdWrapper'); + + if(!is_null($data)) { + $row->setDefaults($data); + } + } + + +} + diff --git a/application/forms/AdvancedSearchRow.php b/application/forms/AdvancedSearchRow.php index a647e7656..b50cfb176 100644 --- a/application/forms/AdvancedSearchRow.php +++ b/application/forms/AdvancedSearchRow.php @@ -2,22 +2,11 @@ class Application_Form_AdvancedSearchRow extends Zend_Form_SubForm { - - protected $_rowid; - - public function __construct($id = null) - { - $this->_rowid = $id; - parent::__construct(); - } - public function init() { - $id = $this->_rowid; - $this->addElement( 'select', - 'metadata_'.$id, + 'metadata', array( 'required' => true, 'multiOptions' => array( @@ -50,11 +39,11 @@ class Application_Form_AdvancedSearchRow extends Zend_Form_SubForm ), ) ); - $this->getElement('metadata_'.$id)->removeDecorator('Label')->removeDecorator('HtmlTag'); + $this->getElement('metadata')->removeDecorator('Label')->removeDecorator('HtmlTag'); $this->addElement( 'select', - 'match_'.$id, + 'match', array( 'required' => true, 'multiOptions' => array( @@ -68,12 +57,12 @@ class Application_Form_AdvancedSearchRow extends Zend_Form_SubForm ), ) ); - $this->getElement('match_'.$id)->removeDecorator('Label')->removeDecorator('HtmlTag'); + $this->getElement('match')->removeDecorator('Label')->removeDecorator('HtmlTag'); - $this->addElement('text', 'search_'.$id, array( + $this->addElement('text', 'search', array( 'required' => true, )); - $this->getElement('search_'.$id)->removeDecorator('Label')->removeDecorator('HtmlTag'); + $this->getElement('search')->removeDecorator('Label')->removeDecorator('HtmlTag'); } diff --git a/application/layouts/scripts/library.phtml b/application/layouts/scripts/library.phtml index c54e6d9f5..cc507b3ab 100644 --- a/application/layouts/scripts/library.phtml +++ b/application/layouts/scripts/library.phtml @@ -11,6 +11,7 @@ +
layout()->library ?>
layout()->spl ?>
diff --git a/application/models/Playlist.php b/application/models/Playlist.php index 674948b80..7201e005a 100644 --- a/application/models/Playlist.php +++ b/application/models/Playlist.php @@ -155,8 +155,7 @@ class Playlist { { $con = Propel::getConnection("campcaster"); - $sql = "SELECT * FROM cc_playlist LEFT JOIN cc_playlisttimes USING(id) WHERE length <= '{$p_length}' "; - //AND state != 'edited' + $sql = "SELECT * FROM cc_playlist LEFT JOIN cc_playlisttimes USING(id) WHERE length <= '{$p_length}' AND state != 'edited' "; $r = $con->query($sql); return $r->fetchAll(); diff --git a/application/models/StoredFile.php b/application/models/StoredFile.php index 930db0dd1..3812ab5be 100644 --- a/application/models/StoredFile.php +++ b/application/models/StoredFile.php @@ -1799,27 +1799,35 @@ class StoredFile { $sql = $selector." ".$from; - $cond = array(); - foreach(array_keys($md) as $key) { - if(strpos($key, 'row') !== false){ - $t = explode("_", $key); - $row_num = $t[1]; + $or_cond = array(); + foreach (array_keys($md) as $group) { - $string = $g_metadata_xml_to_db_mapping[$md[$key]["metadata_".$row_num]]; + if(strpos($group, 'group') === false) { + continue; + } - $string = $string ." ".$match[$md[$key]["match_".$row_num]]; + $and_cond = array(); + foreach (array_keys($md[$group]) as $row) { - if ($md[$key]["match_".$row_num] === "0") - $string = $string." '%". $md[$key]["search_".$row_num]."%'"; + $string = $g_metadata_xml_to_db_mapping[$md[$group][$row]["metadata"]]; + + $string = $string ." ".$match[$md[$group][$row]["match"]]; + + if ($md[$group][$row]["match"] === "0") + $string = $string." '%". $md[$group][$row]["search"]."%'"; else - $string = $string." '". $md[$key]["search_".$row_num]."'"; + $string = $string." '". $md[$group][$row]["search"]."'"; - $cond[] = $string; + $and_cond[] = $string; + } + + if(count($and_cond) > 0) { + $or_cond[] = "(".join(" AND ", $and_cond).")"; } } - if(count($cond) > 0) { - $where = " WHERE ". join(" AND ", $cond); + if(count($or_cond) > 0) { + $where = " WHERE ". join(" OR ", $or_cond); $sql = $sql . $where; } @@ -1841,7 +1849,8 @@ class StoredFile { $paginate = " LIMIT ".$limit. " OFFSET " .$offset; $sql = $sql . $paginate; } - //echo $sql; + //echo var_dump($md); + echo $sql; return $CC_DBC->getAll($sql); } diff --git a/application/views/scripts/library/quick-search.phtml b/application/views/scripts/library/quick-search.phtml new file mode 100644 index 000000000..2b74646db --- /dev/null +++ b/application/views/scripts/library/quick-search.phtml @@ -0,0 +1,2 @@ + + diff --git a/application/views/scripts/search/display.phtml b/application/views/scripts/search/display.phtml index f9d4507cf..a527a6ec8 100644 --- a/application/views/scripts/search/display.phtml +++ b/application/views/scripts/search/display.phtml @@ -2,5 +2,6 @@ $this->form->setAction($this->url()); echo $this->form; +echo var_dump($this->md); ?> diff --git a/application/views/scripts/search/newfield.ajax.phtml b/application/views/scripts/search/newfield.ajax.phtml deleted file mode 100644 index 1dd0f7359..000000000 --- a/application/views/scripts/search/newfield.ajax.phtml +++ /dev/null @@ -1 +0,0 @@ -field; ?> diff --git a/application/views/scripts/search/newgroup.phtml b/application/views/scripts/search/newgroup.phtml new file mode 100644 index 000000000..0dbc342f4 --- /dev/null +++ b/application/views/scripts/search/newgroup.phtml @@ -0,0 +1 @@ +

View script for controller Search and script/action name newgroup
\ No newline at end of file diff --git a/public/js/campcaster/library/advancedsearch.js b/public/js/campcaster/library/advancedsearch.js index 7f64090d5..85ae0b85a 100644 --- a/public/js/campcaster/library/advancedsearch.js +++ b/public/js/campcaster/library/advancedsearch.js @@ -10,27 +10,37 @@ function addRemove(el) { $(el).find("dl input").after(span); } -function ajaxAddField() { +function ajaxAddRow() { + var group_id; - var id = $("#search_next_id").val(); + group_id = $(this).parent().parent().attr("id").split("_").pop(); - var url = '/Search/newfield'; - url = url + '/format/html'; - url = url + '/id/' + id; + var url = '/Search/newfield/format/json'; - $.post(url, function(newElement) { - - var el = $(newElement); - addRemove(el); + $.post(url, {group: group_id}, function(json) { + + var newRow = $(json.html).find("#fieldset-row_"+json.row); + + $("#fieldset-group_"+group_id+" dl:first").append(newRow); + }); +} + +function ajaxAddGroup() { + + var url = '/Search/newgroup/format/json'; + + $.post(url, function(json) { - $(".zend_form").append(el); - $("#search_next_id").val(++id); + $(".zend_form").append(json.html); + $('[id$="search_add_row"]').click(ajaxAddRow); }); } function setUpSearch() { - $("#search_add").click(ajaxAddField); + $("#search_add_group").click(ajaxAddGroup); + + $('[id$="search_add_row"]').click(ajaxAddRow); $('[id^="fieldset-row_"]').each(function(i, el){ addRemove(el); diff --git a/public/js/campcaster/library/quicksearch.js b/public/js/campcaster/library/quicksearch.js new file mode 100644 index 000000000..b19b6e03e --- /dev/null +++ b/public/js/campcaster/library/quicksearch.js @@ -0,0 +1,15 @@ +function setUpQuickSearch() { + + $("#library_quick_search input").keyup(function(ev){ + var url, string; + //alert(x); + + url = "/Library/quick-search/format/json"; + string = $(this).val(); + + $.post(url, {search: string}, function(json){ + var x; + }); + }); + +} diff --git a/public/js/campcaster/onready/library.js b/public/js/campcaster/onready/library.js index 045656421..00eb895bb 100644 --- a/public/js/campcaster/onready/library.js +++ b/public/js/campcaster/onready/library.js @@ -1,5 +1,6 @@ $(document).ready(function() { + setUpQuickSearch(); setUpLibrary(); setUpSPL(); From 20c392343b20417c4e25e9d14f4e72169a0400cf Mon Sep 17 00:00:00 2001 From: mkonecny Date: Wed, 5 Jan 2011 12:19:58 -0500 Subject: [PATCH 07/22] -changed some references from campcaster to airtime in the documentation / comments --- application/controllers/LibraryController.php | 4 ++-- application/controllers/PlaylistController.php | 2 +- application/controllers/PluploadController.php | 2 +- application/controllers/ScheduleController.php | 2 +- application/controllers/SearchController.php | 4 ++-- .../controllers/SideplaylistController.php | 2 +- application/layouts/scripts/layout.phtml | 2 +- application/layouts/scripts/library.phtml | 2 +- application/layouts/scripts/login.phtml | 2 +- application/layouts/scripts/search.phtml | 2 +- application/models/AccessRecur.php | 4 ++-- application/models/Alib.php | 4 ++-- application/models/Backup.php | 2 +- application/models/BasicStor.php | 8 ++++---- application/models/GreenBox.php | 4 ++-- application/models/LocStor.php | 6 +++--- application/models/M3uPlaylist.php | 16 ++++++++-------- application/models/Playlist.php | 12 ++++++------ application/models/Prefs.php | 4 ++-- application/models/Renderer.php | 4 ++-- application/models/Restore.php | 2 +- application/models/SmilPlaylist.php | 16 ++++++++-------- application/models/StoredFile.php | 4 ++-- application/models/Subjects.php | 4 ++-- application/models/Transport.php | 6 +++--- application/models/TransportRecord.php | 4 ++-- application/models/Validator.php | 4 ++-- application/models/XmlParser.php | 10 +++++----- application/models/cron/Cron.php | 4 ++-- application/models/cron/CronJob.php | 4 ++-- application/models/cron/Crontab.php | 4 ++-- application/models/playlistFormat.php | 4 ++-- application/models/tests/pdoTest.php | 9 ++++++--- application/models/xmlrpc/XR_LocStor.php | 8 ++++---- application/models/xmlrpc/put.php | 4 ++-- application/models/xmlrpc/xrLocStor.php | 4 ++-- .../library/advancedsearch.js | 0 .../library/context-menu.js | 0 .../{campcaster => airtime}/library/library.js | 0 .../{campcaster => airtime}/library/plupload.js | 0 public/js/{campcaster => airtime}/library/spl.js | 0 .../{campcaster => airtime}/onready/library.js | 0 .../js/{campcaster => airtime}/onready/search.js | 0 .../{campcaster => airtime}/playlist/playlist.js | 0 .../{campcaster => airtime}/schedule/schedule.js | 0 45 files changed, 91 insertions(+), 88 deletions(-) rename public/js/{campcaster => airtime}/library/advancedsearch.js (100%) rename public/js/{campcaster => airtime}/library/context-menu.js (100%) rename public/js/{campcaster => airtime}/library/library.js (100%) rename public/js/{campcaster => airtime}/library/plupload.js (100%) rename public/js/{campcaster => airtime}/library/spl.js (100%) rename public/js/{campcaster => airtime}/onready/library.js (100%) rename public/js/{campcaster => airtime}/onready/search.js (100%) rename public/js/{campcaster => airtime}/playlist/playlist.js (100%) rename public/js/{campcaster => airtime}/schedule/schedule.js (100%) diff --git a/application/controllers/LibraryController.php b/application/controllers/LibraryController.php index 824d3b158..08ebc04d0 100644 --- a/application/controllers/LibraryController.php +++ b/application/controllers/LibraryController.php @@ -26,7 +26,7 @@ class LibraryController extends Zend_Controller_Action public function indexAction() { - $this->view->headScript()->appendFile('/js/campcaster/onready/library.js','text/javascript'); + $this->view->headScript()->appendFile('/js/airtime/onready/library.js','text/javascript'); $this->view->headScript()->appendFile('/js/contextmenu/jjmenu.js','text/javascript'); $this->view->headLink()->appendStylesheet('/css/contextmenu.css'); @@ -120,7 +120,7 @@ class LibraryController extends Zend_Controller_Action public function contentsAction() { - $this->view->headScript()->appendFile('/js/campcaster/library/library.js','text/javascript'); + $this->view->headScript()->appendFile('/js/airtime/library/library.js','text/javascript'); $this->_helper->viewRenderer->setResponseSegment('library'); diff --git a/application/controllers/PlaylistController.php b/application/controllers/PlaylistController.php index d73ef2a06..bd1790e03 100644 --- a/application/controllers/PlaylistController.php +++ b/application/controllers/PlaylistController.php @@ -136,7 +136,7 @@ class PlaylistController extends Zend_Controller_Action public function editAction() { - $this->view->headScript()->appendFile('/js/campcaster/playlist/playlist.js','text/javascript'); + $this->view->headScript()->appendFile('/js/airtime/playlist/playlist.js','text/javascript'); $pl_id = $this->_getParam('id', null); $display = $this->_getParam('view', null); diff --git a/application/controllers/PluploadController.php b/application/controllers/PluploadController.php index ffaff33e8..9b1792e7c 100644 --- a/application/controllers/PluploadController.php +++ b/application/controllers/PluploadController.php @@ -165,7 +165,7 @@ class PluploadController extends Zend_Controller_Action $view->headScript()->appendFile('/js/plupload/plupload.full.min.js','text/javascript'); $view->headScript()->appendFile('/js/plupload/jquery.plupload.queue.min.js','text/javascript'); - $view->headScript()->appendFile('/js/campcaster/library/plupload.js','text/javascript'); + $view->headScript()->appendFile('/js/airtime/library/plupload.js','text/javascript'); $view->headLink()->appendStylesheet('/css/plupload.queue.css'); } diff --git a/application/controllers/ScheduleController.php b/application/controllers/ScheduleController.php index 651efb191..c307f24ad 100644 --- a/application/controllers/ScheduleController.php +++ b/application/controllers/ScheduleController.php @@ -29,7 +29,7 @@ class ScheduleController extends Zend_Controller_Action $this->view->headScript()->appendFile('/js/contextmenu/jquery.contextMenu.js','text/javascript'); $this->view->headScript()->appendFile('/js/qtip/jquery.qtip-1.0.0.min.js','text/javascript'); - $this->view->headScript()->appendFile('/js/campcaster/schedule/schedule.js','text/javascript'); + $this->view->headScript()->appendFile('/js/airtime/schedule/schedule.js','text/javascript'); $this->view->headLink()->appendStylesheet('/css/jquery.contextMenu.css'); $this->view->headLink()->appendStylesheet('/css/fullcalendar.css'); diff --git a/application/controllers/SearchController.php b/application/controllers/SearchController.php index 05b218a39..173538bf3 100644 --- a/application/controllers/SearchController.php +++ b/application/controllers/SearchController.php @@ -25,7 +25,7 @@ class SearchController extends Zend_Controller_Action { $this->_helper->layout->setLayout('search'); - $this->view->headScript()->appendFile('/js/campcaster/onready/search.js','text/javascript'); + $this->view->headScript()->appendFile('/js/airtime/onready/search.js','text/javascript'); $this->view->headScript()->appendFile('/js/contextmenu/jjmenu.js','text/javascript'); $this->view->headLink()->appendStylesheet('/css/contextmenu.css'); @@ -36,7 +36,7 @@ class SearchController extends Zend_Controller_Action public function displayAction() { - $this->view->headScript()->appendFile('/js/campcaster/library/advancedsearch.js','text/javascript'); + $this->view->headScript()->appendFile('/js/airtime/library/advancedsearch.js','text/javascript'); $this->view->headLink()->appendStylesheet('/css/library_search.css'); $this->_helper->viewRenderer->setResponseSegment('search'); diff --git a/application/controllers/SideplaylistController.php b/application/controllers/SideplaylistController.php index cebef65c7..6c9f31310 100644 --- a/application/controllers/SideplaylistController.php +++ b/application/controllers/SideplaylistController.php @@ -17,7 +17,7 @@ class SideplaylistController extends Zend_Controller_Action public function indexAction() { - $this->view->headScript()->appendFile('/js/campcaster/library/spl.js','text/javascript'); + $this->view->headScript()->appendFile('/js/airtime/library/spl.js','text/javascript'); $this->_helper->viewRenderer->setResponseSegment('spl'); diff --git a/application/layouts/scripts/layout.phtml b/application/layouts/scripts/layout.phtml index b85faa6b4..8d6683b57 100644 --- a/application/layouts/scripts/layout.phtml +++ b/application/layouts/scripts/layout.phtml @@ -3,7 +3,7 @@ - Campcaster + Airtime headScript() ?> headLink() ?> diff --git a/application/layouts/scripts/library.phtml b/application/layouts/scripts/library.phtml index c54e6d9f5..485029eee 100644 --- a/application/layouts/scripts/library.phtml +++ b/application/layouts/scripts/library.phtml @@ -3,7 +3,7 @@ - Campcaster + Airtime headScript() ?> headLink() ?> diff --git a/application/layouts/scripts/login.phtml b/application/layouts/scripts/login.phtml index ceee1db32..39793ecd3 100644 --- a/application/layouts/scripts/login.phtml +++ b/application/layouts/scripts/login.phtml @@ -3,7 +3,7 @@ - Campcaster + Airtime headScript() ?> headLink() ?> diff --git a/application/layouts/scripts/search.phtml b/application/layouts/scripts/search.phtml index 6d7ee53f1..2145a32e2 100644 --- a/application/layouts/scripts/search.phtml +++ b/application/layouts/scripts/search.phtml @@ -3,7 +3,7 @@ - Campcaster + Airtime headScript() ?> headLink() ?> diff --git a/application/models/AccessRecur.php b/application/models/AccessRecur.php index ae78c8807..e0fc2a008 100644 --- a/application/models/AccessRecur.php +++ b/application/models/AccessRecur.php @@ -5,7 +5,7 @@ * Handles recursive accessPlaylist/releasePlaylist. * Should be 'required_once' from LocStor.php only. * - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -181,4 +181,4 @@ class AccessRecur { } } // class AccessRecur -?> \ No newline at end of file +?> diff --git a/application/models/Alib.php b/application/models/Alib.php index b9e16d6ca..f0dba6f89 100644 --- a/application/models/Alib.php +++ b/application/models/Alib.php @@ -8,7 +8,7 @@ define('ALIBERR_NOTEXISTS', 31); /** * Authentication/authorization class * - * @package Campcaster + * @package Airtime * @subpackage Alib * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -619,4 +619,4 @@ class Alib { } // fn test } // class Alib -?> \ No newline at end of file +?> diff --git a/application/models/Backup.php b/application/models/Backup.php index c05500264..f6ae4b9e5 100755 --- a/application/models/Backup.php +++ b/application/models/Backup.php @@ -3,7 +3,7 @@ define('BACKUP_EXT', 'tar'); define('ACCESS_TYPE', 'backup'); /** - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt diff --git a/application/models/BasicStor.php b/application/models/BasicStor.php index ed517eabd..744278440 100644 --- a/application/models/BasicStor.php +++ b/application/models/BasicStor.php @@ -106,9 +106,9 @@ require_once(dirname(__FILE__)."/Playlist.php"); // "dc:language" => "language"); /** - * Core of Campcaster file storage module + * Core of Airtime file storage module * - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -1494,7 +1494,7 @@ class BasicStor { * @param string $plid * Playlist gunid * @param string $aPath - * Absolute path part of imported file (e.g. /home/user/campcaster) + * Absolute path part of imported file (e.g. /home/user/airtime) * @param string $rPath * Relative path/filename part of imported file (e.g. playlists/playlist_1.smil) * @param string $ext @@ -2183,4 +2183,4 @@ class BasicStor { } } // class BasicStor - ?> \ No newline at end of file + ?> diff --git a/application/models/GreenBox.php b/application/models/GreenBox.php index a46ffa752..ded87bc8c 100644 --- a/application/models/GreenBox.php +++ b/application/models/GreenBox.php @@ -18,7 +18,7 @@ require_once("Transport.php"); * * File storage module. * - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -1723,4 +1723,4 @@ class GreenBox extends BasicStor { } // fn removePerm } // class GreenBox -?> \ No newline at end of file +?> diff --git a/application/models/LocStor.php b/application/models/LocStor.php index f7d2e0cbe..5e7b31778 100644 --- a/application/models/LocStor.php +++ b/application/models/LocStor.php @@ -16,7 +16,7 @@ if (isset($WHITE_SCREEN_OF_DEATH) && $WHITE_SCREEN_OF_DEATH) { * * Local storage interface * - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -1362,7 +1362,7 @@ class LocStor extends BasicStor { /*===================================================== auxiliary methods */ /** - * Dummy method - only returns Campcaster version + * Dummy method - only returns Airtime version * * @return string */ @@ -1746,4 +1746,4 @@ class LocStor extends BasicStor { /* ==================================================== auxiliary methods */ } // class LocStor -?> \ No newline at end of file +?> diff --git a/application/models/M3uPlaylist.php b/application/models/M3uPlaylist.php index 388c24aa5..963f3226c 100644 --- a/application/models/M3uPlaylist.php +++ b/application/models/M3uPlaylist.php @@ -4,7 +4,7 @@ define('INDCH', ' '); /** * M3uPlaylist class * - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -59,7 +59,7 @@ class M3uPlaylist { * * @param GreenBox $gb * @param string $aPath - * absolute path part of imported file (e.g. /home/user/campcaster) + * absolute path part of imported file (e.g. /home/user/airtime) * @param string $rPath * relative path/filename part of imported file * (e.g. playlists/playlist_1.smil) @@ -141,7 +141,7 @@ class M3uPlaylist { * @param string $data * local path to M3U file * @return string - * XML playlist in Campcaster playlist format + * XML playlist in Airtime playlist format */ function convert2lspl(&$gb, $data) { @@ -196,7 +196,7 @@ class M3uPlaylist { /** - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -231,7 +231,7 @@ class M3uPlaylistBodyElement { /** - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -257,7 +257,7 @@ class M3uPlaylistParElement { /** - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -313,7 +313,7 @@ class M3uPlaylistAudioElement { /** - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -349,4 +349,4 @@ class M3uPlaylistAnimateElement { } } -?> \ No newline at end of file +?> diff --git a/application/models/Playlist.php b/application/models/Playlist.php index 674948b80..80341fb56 100644 --- a/application/models/Playlist.php +++ b/application/models/Playlist.php @@ -7,7 +7,7 @@ define('INDCH', ' '); * * remark: dcterms:extent format: hh:mm:ss.ssssss * - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -905,7 +905,7 @@ class Playlist { } // class Playlist /** - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -1015,7 +1015,7 @@ class PlaylistTagExport /** - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -1196,7 +1196,7 @@ class PlaylistElementExport { /** - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -1270,7 +1270,7 @@ class PlaylistAudioClipExport /** - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -1304,7 +1304,7 @@ class PlaylistFadeInfoExport /** - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt diff --git a/application/models/Prefs.php b/application/models/Prefs.php index c51a75402..c06385fe3 100644 --- a/application/models/Prefs.php +++ b/application/models/Prefs.php @@ -5,7 +5,7 @@ require_once("GreenBox.php"); /** * Preference storage class. * - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -439,4 +439,4 @@ class Prefs { } } // class Prefs -?> \ No newline at end of file +?> diff --git a/application/models/Renderer.php b/application/models/Renderer.php index 81d636b70..a569fc8da 100644 --- a/application/models/Renderer.php +++ b/application/models/Renderer.php @@ -8,7 +8,7 @@ require_once("Playlist.php"); * * Playlist to file rendering - PHP layer, caller to the renderer executable * - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -287,4 +287,4 @@ class Renderer } // class Renderer -?> \ No newline at end of file +?> diff --git a/application/models/Restore.php b/application/models/Restore.php index 892c0f19f..decbf728d 100644 --- a/application/models/Restore.php +++ b/application/models/Restore.php @@ -1,7 +1,7 @@ \ No newline at end of file +?> diff --git a/application/models/StoredFile.php b/application/models/StoredFile.php index 930db0dd1..f83027307 100644 --- a/application/models/StoredFile.php +++ b/application/models/StoredFile.php @@ -312,14 +312,14 @@ function camp_get_audio_metadata($p_filename, $p_testonly = false) /** * StoredFile class * - * Campcaster file storage support class.
+ * Airtime file storage support class.
* Represents one virtual file in storage. Virtual file has up to two parts: *
    *
  • metadata in database - represented by MetaData class
  • *
  • binary media data in real file
  • *
* - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt diff --git a/application/models/Subjects.php b/application/models/Subjects.php index f99cea1c6..f307d47ac 100644 --- a/application/models/Subjects.php +++ b/application/models/Subjects.php @@ -9,7 +9,7 @@ define('ALIBERR_BADSMEMB', 21); * with "linearized recursive membership" ;) * (allow adding users to groups or groups to groups) * - * @package Campcaster + * @package Airtime * @subpackage Alib * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -680,4 +680,4 @@ class Subjects { } // fn test } // class Subjects -?> \ No newline at end of file +?> diff --git a/application/models/Transport.php b/application/models/Transport.php index c5e8ce5dd..151c75a29 100644 --- a/application/models/Transport.php +++ b/application/models/Transport.php @@ -38,7 +38,7 @@ include_once("TransportRecord.php"); *
  • file
  • * * - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -401,7 +401,7 @@ class Transport /* ------------------------------------------------ remote-search methods */ /** - * Start search job on remote Campcaster instance. + * Start search job on remote Airtime instance. * * @param array $criteria * LS criteria format (see localSearch) @@ -1636,7 +1636,7 @@ class Transport /** - * Ping to remote Campcaster server + * Ping to remote Airtime server * * @return string * network hub response or error object diff --git a/application/models/TransportRecord.php b/application/models/TransportRecord.php index 6c804279c..deafd736f 100644 --- a/application/models/TransportRecord.php +++ b/application/models/TransportRecord.php @@ -5,7 +5,7 @@ define('TR_LEAVE_CLOSED', TRUE); /** * Auxiliary class for transport records * - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -416,4 +416,4 @@ class TransportRecord } } // class TransportRecord -?> \ No newline at end of file +?> diff --git a/application/models/Validator.php b/application/models/Validator.php index d730aee10..87f1eef22 100644 --- a/application/models/Validator.php +++ b/application/models/Validator.php @@ -23,7 +23,7 @@ define('VAL_PREDXML', 121); * * It probably should be replaced by XML schema validation in the future. * - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -382,4 +382,4 @@ class Validator { } // class Validator -?> \ No newline at end of file +?> diff --git a/application/models/XmlParser.php b/application/models/XmlParser.php index 7d440460b..8b6f0ef30 100644 --- a/application/models/XmlParser.php +++ b/application/models/XmlParser.php @@ -1,6 +1,6 @@ \ No newline at end of file +?> diff --git a/application/models/cron/Cron.php b/application/models/cron/Cron.php index fba702b62..b4b0eb723 100755 --- a/application/models/cron/Cron.php +++ b/application/models/cron/Cron.php @@ -18,7 +18,7 @@ require_once (dirname(__FILE__).'/../../conf.php'); * ); * $cron->closeCrontab(); * - * @package Campcaster + * @package Airtime * @subpackage StorageServer.Cron */ class Cron { @@ -211,4 +211,4 @@ class Cron { return $this->cronfile.' "'.str_replace('"','\"',serialize($this->params)).'"'; } } -?> \ No newline at end of file +?> diff --git a/application/models/cron/CronJob.php b/application/models/cron/CronJob.php index bcd1c82d6..3f6697121 100755 --- a/application/models/cron/CronJob.php +++ b/application/models/cron/CronJob.php @@ -2,7 +2,7 @@ /** * Cron jobs handling abstract class * - * @package Campcaster + * @package Airtime * @subpackage StorageServer.Cron */ class CronJob @@ -14,4 +14,4 @@ class CronJob { } } -?> \ No newline at end of file +?> diff --git a/application/models/cron/Crontab.php b/application/models/cron/Crontab.php index 92b40ac38..3bd1f655c 100755 --- a/application/models/cron/Crontab.php +++ b/application/models/cron/Crontab.php @@ -11,7 +11,7 @@ define('CRON_EMPTY', 4); * This class lets you manipulate a user's crontab. * It lets you add delete update entries easily. * - * @package Campcaster + * @package Airtime * @subpackage StorageServer.Cron */ class Crontab @@ -281,4 +281,4 @@ class Crontab return $returnar; } } -?> \ No newline at end of file +?> diff --git a/application/models/playlistFormat.php b/application/models/playlistFormat.php index 457feb938..367d5c391 100644 --- a/application/models/playlistFormat.php +++ b/application/models/playlistFormat.php @@ -1,6 +1,6 @@ \ No newline at end of file +?> diff --git a/application/models/tests/pdoTest.php b/application/models/tests/pdoTest.php index 3aae4465b..2037d5506 100644 --- a/application/models/tests/pdoTest.php +++ b/application/models/tests/pdoTest.php @@ -1,8 +1,11 @@ query($sql3); var_dump($result3->fetchAll()); -?> \ No newline at end of file +?> diff --git a/application/models/xmlrpc/XR_LocStor.php b/application/models/xmlrpc/XR_LocStor.php index f8df60978..50077dd39 100644 --- a/application/models/xmlrpc/XR_LocStor.php +++ b/application/models/xmlrpc/XR_LocStor.php @@ -4,7 +4,7 @@ require_once(dirname(__FILE__).'/../LocStor.php'); /** * XML-RPC interface for LocStor class * - * @package Campcaster + * @package Airtime * @subpackage StorageServer * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -12,7 +12,7 @@ require_once(dirname(__FILE__).'/../LocStor.php'); class XR_LocStor extends LocStor { /* ----------------------------------------------------------- getVersion */ /** - * Dummy method - only returns Campcaster version + * Dummy method - only returns Airtime version * * The XML-RPC name of this method is "locstor.getVersion". * @@ -242,7 +242,7 @@ class XR_LocStor extends LocStor { * (returned by subsequent storeAudioClipClose call) * *
  • metadata : string - metadata XML string - * (as defined in Campcaster::Core::AudioClip Class Reference, + * (as defined in Airtime::Core::AudioClip Class Reference, * examples are in storageServer/var/tests/*.xml) *
  • *
  • fname : string - human readable mnemonic file name @@ -3830,4 +3830,4 @@ class XR_LocStor extends LocStor { } // class XR_LocStor -?> \ No newline at end of file +?> diff --git a/application/models/xmlrpc/put.php b/application/models/xmlrpc/put.php index 650a5880a..57b9bae93 100644 --- a/application/models/xmlrpc/put.php +++ b/application/models/xmlrpc/put.php @@ -23,7 +23,7 @@ * * * @see XR_LocStor - * @package Campcaster + * @package Airtime * @subpackage storageServer */ @@ -96,4 +96,4 @@ fclose($fp); fclose($putdata); header("HTTP/1.1 200"); -?> \ No newline at end of file +?> diff --git a/application/models/xmlrpc/xrLocStor.php b/application/models/xmlrpc/xrLocStor.php index fb9acf702..4bfb50fca 100644 --- a/application/models/xmlrpc/xrLocStor.php +++ b/application/models/xmlrpc/xrLocStor.php @@ -61,7 +61,7 @@ $locStor = new XR_LocStor(); $methods = array( 'test' => 'Tests toupper and checks sessid, params: '. 'teststring, sessid.', - 'getVersion' => 'Get version of Campcaster.', + 'getVersion' => 'Get version of Airtime.', // 'authenticate' => 'Checks authentication.', 'login' => 'Login to storage.', 'logout' => 'Logout from storage.', @@ -169,4 +169,4 @@ foreach ($methods as $method => $description) { $s = new XML_RPC_Server($defs); -?> \ No newline at end of file +?> diff --git a/public/js/campcaster/library/advancedsearch.js b/public/js/airtime/library/advancedsearch.js similarity index 100% rename from public/js/campcaster/library/advancedsearch.js rename to public/js/airtime/library/advancedsearch.js diff --git a/public/js/campcaster/library/context-menu.js b/public/js/airtime/library/context-menu.js similarity index 100% rename from public/js/campcaster/library/context-menu.js rename to public/js/airtime/library/context-menu.js diff --git a/public/js/campcaster/library/library.js b/public/js/airtime/library/library.js similarity index 100% rename from public/js/campcaster/library/library.js rename to public/js/airtime/library/library.js diff --git a/public/js/campcaster/library/plupload.js b/public/js/airtime/library/plupload.js similarity index 100% rename from public/js/campcaster/library/plupload.js rename to public/js/airtime/library/plupload.js diff --git a/public/js/campcaster/library/spl.js b/public/js/airtime/library/spl.js similarity index 100% rename from public/js/campcaster/library/spl.js rename to public/js/airtime/library/spl.js diff --git a/public/js/campcaster/onready/library.js b/public/js/airtime/onready/library.js similarity index 100% rename from public/js/campcaster/onready/library.js rename to public/js/airtime/onready/library.js diff --git a/public/js/campcaster/onready/search.js b/public/js/airtime/onready/search.js similarity index 100% rename from public/js/campcaster/onready/search.js rename to public/js/airtime/onready/search.js diff --git a/public/js/campcaster/playlist/playlist.js b/public/js/airtime/playlist/playlist.js similarity index 100% rename from public/js/campcaster/playlist/playlist.js rename to public/js/airtime/playlist/playlist.js diff --git a/public/js/campcaster/schedule/schedule.js b/public/js/airtime/schedule/schedule.js similarity index 100% rename from public/js/campcaster/schedule/schedule.js rename to public/js/airtime/schedule/schedule.js From dcec6bf4b16308b2cfbb45f2f136c053f627548f Mon Sep 17 00:00:00 2001 From: mkonecny Date: Wed, 5 Jan 2011 12:31:49 -0500 Subject: [PATCH 08/22] -changed references from campcaster to airtime in pypo/ directory --- build/build.properties | 2 +- docs/README.txt | 6 +++--- pypo/api_clients/api_client.py | 28 +++++++++++++------------- pypo/api_clients/api_client_factory.py | 8 ++++---- pypo/config.cfg | 6 +++--- 5 files changed, 25 insertions(+), 25 deletions(-) diff --git a/build/build.properties b/build/build.properties index 3e7d17c6b..071fae700 100644 --- a/build/build.properties +++ b/build/build.properties @@ -1,4 +1,4 @@ -project.home = /home/naomiaro/dev-campcaster/campcaster +project.home = /path/to/airtime project.build = ${project.home}/build #Database driver diff --git a/docs/README.txt b/docs/README.txt index 1e3c6df4d..f66f64d0f 100644 --- a/docs/README.txt +++ b/docs/README.txt @@ -14,13 +14,13 @@ Setting Up Your VHOST The following is a sample VHOST you might want to consider for your project. - DocumentRoot "/home/naomiaro/campcaster-refactor/campcaster/public" - ServerName campcaster.local + DocumentRoot "/home/naomiaro/campcaster-refactor/airtime/public" + ServerName airtime.local # This should be omitted in the production environment SetEnv APPLICATION_ENV development - + Options Indexes MultiViews FollowSymLinks AllowOverride All Order allow,deny diff --git a/pypo/api_clients/api_client.py b/pypo/api_clients/api_client.py index 4549b6781..b5b700422 100644 --- a/pypo/api_clients/api_client.py +++ b/pypo/api_clients/api_client.py @@ -20,8 +20,8 @@ from urlparse import urlparse def api_client_factory(config): - if config["api_client"] == "campcaster": - return CampcasterApiClient(config) + if config["api_client"] == "airtime": + return AirTimeApiClient(config) elif config["api_client"] == "obp": return ObpApiClient(config) else: @@ -100,15 +100,15 @@ class ApiClientInterface: # nil ################################################################################ -# Campcaster API Client +# Airtime API Client ################################################################################ -class CampcasterApiClient(ApiClientInterface): +class AirTimeApiClient(ApiClientInterface): def __init__(self, config): self.config = config - def __get_campcaster_version(self, verbose = True): + def __get_airtime_version(self, verbose = True): logger = logging.getLogger() url = self.config["base_url"] + self.config["api_base"] + self.config["version_url"] url = url.replace("%%api_key%%", self.config["api_key"]) @@ -120,7 +120,7 @@ class CampcasterApiClient(ApiClientInterface): logger.debug("Data: %s", data) response_json = json.read(data) version = response_json['version'] - logger.debug("Campcaster Version %s detected", version) + logger.debug("Airtime Version %s detected", version) except Exception, e: try: if e[1] == 401: @@ -137,7 +137,7 @@ class CampcasterApiClient(ApiClientInterface): if e[1] == 404: if (verbose): print '#####################################' - print '# Unable to contact the Campcaster-API' + print '# Unable to contact the Airtime-API' print '# ' + url print '#####################################' return False @@ -145,7 +145,7 @@ class CampcasterApiClient(ApiClientInterface): pass version = 0 - logger.error("Unable to detect Campcaster Version - %s, Response: %s", e, response) + logger.error("Unable to detect Airtime Version - %s, Response: %s", e, response) return version @@ -168,22 +168,22 @@ class CampcasterApiClient(ApiClientInterface): def is_server_compatible(self, verbose = True): - version = self.__get_campcaster_version(verbose) + version = self.__get_airtime_version(verbose) if (version == 0 or version == False): if (verbose): - print 'Unable to get Campcaster version number.' + print 'Unable to get Airtime version number.' print return False elif (version[0:4] != "1.6."): if (verbose): - print 'Campcaster version: ' + str(version) - print 'pypo not compatible with this version of Campcaster.' + print 'Airtime version: ' + str(version) + print 'pypo not compatible with this version of Airtime.' print return False else: if (verbose): - print 'Campcaster version: ' + str(version) - print 'pypo is compatible with this version of Campcaster.' + print 'Airtime version: ' + str(version) + print 'pypo is compatible with this version of Airtime.' print return True diff --git a/pypo/api_clients/api_client_factory.py b/pypo/api_clients/api_client_factory.py index 2bc97dc45..4762b0fc7 100644 --- a/pypo/api_clients/api_client_factory.py +++ b/pypo/api_clients/api_client_factory.py @@ -1,9 +1,9 @@ -import campcaster_api_client +import airtime_api_client import obp_api_client def create_api_client(config): - if config["api_client"] == "campcaster": - return campcaster_api_client.CampcasterApiClient(config) + if config["api_client"] == "airtime": + return campcaster_api_client.AirtimeApiClient(config) elif config["api_client"] == "obp": return obp_api_client.ObpApiClient(config) - \ No newline at end of file + diff --git a/pypo/config.cfg b/pypo/config.cfg index 5d012356c..d5b7208bc 100644 --- a/pypo/config.cfg +++ b/pypo/config.cfg @@ -5,9 +5,9 @@ # Set the type of client you are using. # Currently supported types: # 1) "obp" = Open Broadcast Platform -# 2) "campcaster" +# 2) "airtime" # -api_client = "campcaster" +api_client = "airtime" ############################################ # Directories / Hosts # @@ -66,7 +66,7 @@ cue_style = 'pre' ################################################################################ ##################### -# Campcaster Config # +# Airtime Config # ##################### # Value needed to access the API api_key = 'AAA' From 9bda47eff4b19e784e6df291a609579e0b4345b9 Mon Sep 17 00:00:00 2001 From: mkonecny Date: Wed, 5 Jan 2011 14:18:03 -0500 Subject: [PATCH 09/22] -changed file names and comments from campcaster to airtime in utils/ folder --- utils/CleanStor.sh | 10 +++++----- utils/{campcaster-backup => airtime-backup} | 14 +++++++------- .../{campcaster-backup.php => airtime-backup.php} | 0 utils/{campcaster-import => airtime-import} | 12 ++++++------ .../{campcaster-import.php => airtime-import.php} | 12 ++++++------ utils/{campcaster-restore => airtime-restore} | 12 ++++++------ utils/resetStorage.sh | 8 ++++---- utils/serbianLatinToCyrillicConverter.py | 8 ++++---- 8 files changed, 38 insertions(+), 38 deletions(-) rename utils/{campcaster-backup => airtime-backup} (88%) rename utils/{campcaster-backup.php => airtime-backup.php} (100%) rename utils/{campcaster-import => airtime-import} (79%) rename utils/{campcaster-import.php => airtime-import.php} (97%) rename utils/{campcaster-restore => airtime-restore} (90%) diff --git a/utils/CleanStor.sh b/utils/CleanStor.sh index 5a5ac5bd8..859f67fb0 100755 --- a/utils/CleanStor.sh +++ b/utils/CleanStor.sh @@ -2,25 +2,25 @@ #------------------------------------------------------------------------------- # Copyright (c) 2010 Sourcefabric O.P.S. # -# This file is part of the Campcaster project. +# This file is part of the Airtime project. # http://campcaster.sourcefabric.org/ # -# Campcaster is free software; you can redistribute it and/or modify +# Airtime is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # -# Campcaster is distributed in the hope that it will be useful, +# Airtime is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with Campcaster; if not, write to the Free Software +# along with Airtime; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- -# This script cleans audio files in the Campcaster storageServer. +# This script cleans audio files in the Airtime storageServer. php -q CleanStor.php "$@" || exit 1 diff --git a/utils/campcaster-backup b/utils/airtime-backup similarity index 88% rename from utils/campcaster-backup rename to utils/airtime-backup index fbfe430c3..fd681b8dc 100755 --- a/utils/campcaster-backup +++ b/utils/airtime-backup @@ -2,26 +2,26 @@ #------------------------------------------------------------------------------- # Copyright (c) 2010 Sourcefabric O.P.S. # -# This file is part of the Campcaster project. +# This file is part of the Airtime project. # http://campcaster.sourcefabric.org/ # -# Campcaster is free software; you can redistribute it and/or modify +# Airtime is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # -# Campcaster is distributed in the hope that it will be useful, +# Airtime is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with Campcaster; if not, write to the Free Software +# along with Airtime; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- -# This script creates a tgz archive of the Campcaster storage. +# This script creates a tgz archive of the Airtime storage. # # To get usage help, try the -h option #------------------------------------------------------------------------------- @@ -44,7 +44,7 @@ destfile="storage$datestr.tar" #------------------------------------------------------------------------------- printUsage() { - echo "This script creates a tgz archive of the Campcaster storage."; + echo "This script creates a tgz archive of the Airtime storage."; echo "parameters:"; echo ""; echo " -d, --destination Destination directory [default:$tmpmaindir]."; @@ -91,7 +91,7 @@ tmpdir=`mktemp -d $tmpmaindir/tmp.XXXXXX` echo "Backuping to $destdir/$destfile :" echo "Dumping database ..." cd $phpdir -php -q campcaster_backup.php > $tmpdir/$dbxml +php -q airtime_backup.php > $tmpdir/$dbxml echo "Packaging stored files ..." cd $phpdir storpath=`php -q getStorPath.php` diff --git a/utils/campcaster-backup.php b/utils/airtime-backup.php similarity index 100% rename from utils/campcaster-backup.php rename to utils/airtime-backup.php diff --git a/utils/campcaster-import b/utils/airtime-import similarity index 79% rename from utils/campcaster-import rename to utils/airtime-import index 55c6b3628..38713c60b 100755 --- a/utils/campcaster-import +++ b/utils/airtime-import @@ -2,26 +2,26 @@ #------------------------------------------------------------------------------- # Copyright (c) 2010 Sourcefabric O.P.S. # -# This file is part of the Campcaster project. +# This file is part of the Airtime project. # http://campcaster.sourcefabric.org/ # -# Campcaster is free software; you can redistribute it and/or modify +# Airtime is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # -# Campcaster is distributed in the hope that it will be useful, +# Airtime is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with Campcaster; if not, write to the Free Software +# along with Airtime; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- -# This script imports audio files to the Campcaster storageServer. +# This script imports audio files to the Airtime storageServer. # # To get usage help, try the -h option #------------------------------------------------------------------------------- @@ -40,4 +40,4 @@ invokePwd=$PWD #echo $invokePwd cd $phpdir -php -q campcaster-import.php --dir "$invokePwd" "$@" || exit 1 +php -q airtime-import.php --dir "$invokePwd" "$@" || exit 1 diff --git a/utils/campcaster-import.php b/utils/airtime-import.php similarity index 97% rename from utils/campcaster-import.php rename to utils/airtime-import.php index 8cb92dcf3..d6c74d4b2 100644 --- a/utils/campcaster-import.php +++ b/utils/airtime-import.php @@ -2,7 +2,7 @@ /** * Mass import of audio files. * - * @package Campcaster + * @package Airtime * @subpackage StorageAdmin * @copyright 2010 Sourcefabric O.P.S. * @license http://www.gnu.org/licenses/gpl.txt @@ -27,7 +27,7 @@ function camp_import_error_handler() function printUsage() { global $CC_CONFIG; - echo "There are two ways to import audio files into Campcaster: linking\n"; + echo "There are two ways to import audio files into Airtime: linking\n"; echo "or copying.\n"; echo "\n"; echo "Linking has the advantage that it will not duplicate any files,\n"; @@ -40,13 +40,13 @@ function printUsage() echo "your files.\n"; echo "\n"; echo "Usage:\n"; - echo " campcaster-import [OPTIONS] FILES_OR_DIRS\n"; + echo " airtime-import [OPTIONS] FILES_OR_DIRS\n"; echo "\n"; echo "Options:\n"; echo " -l, --link Link to specified files.\n"; echo " Saves storage space, but you cannot move, delete,\n"; echo " or rename the original files, otherwise there will\n"; - echo " be dead air when Campcaster tries to play the file.\n"; + echo " be dead air when Airtime tries to play the file.\n"; echo "\n"; echo " -c, --copy Copy the specified files.\n"; echo " This is useful if you are importing from removable media.\n"; @@ -228,7 +228,7 @@ function camp_import_audio_file($p_filepath, $p_importMode = null, $p_testOnly = $DEBUG_IMPORT = false; echo "========================\n"; -echo "Campcaster Import Script\n"; +echo "Airtime Import Script\n"; echo "========================\n"; $g_errors = 0; //print_r($argv); @@ -350,4 +350,4 @@ if ($g_errors > 0) { echo " *** Total: ".($g_fileCount+$g_duplicates)." files in $time seconds = $speed files/second.\n"; echo "==========================================================================\n"; -?> \ No newline at end of file +?> diff --git a/utils/campcaster-restore b/utils/airtime-restore similarity index 90% rename from utils/campcaster-restore rename to utils/airtime-restore index 69bfe8383..066c36050 100755 --- a/utils/campcaster-restore +++ b/utils/airtime-restore @@ -2,26 +2,26 @@ #------------------------------------------------------------------------------- # Copyright (c) 2010 Sourcefabric O.P.S. # -# This file is part of the Campcaster project. +# This file is part of the Airtime project. # http://campcaster.sourcefabric.org/ # -# Campcaster is free software; you can redistribute it and/or modify +# Airtime is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # -# Campcaster is distributed in the hope that it will be useful, +# Airtime is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with Campcaster; if not, write to the Free Software +# along with Airtime; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- -# This script restores the data which was backed up with campcaster-backup. +# This script restores the data which was backed up with airtime-backup. # # To get usage help, try the -h option #------------------------------------------------------------------------------- @@ -42,7 +42,7 @@ tarfile0="xmls.tar" #------------------------------------------------------------------------------- printUsage() { - echo "This script restores the data which was backed up with campcaster-backup." + echo "This script restores the data which was backed up with airtime-backup." echo "parameters:"; echo ""; echo " -f, --file File with the backed up data, required."; diff --git a/utils/resetStorage.sh b/utils/resetStorage.sh index af1448766..1006e1295 100755 --- a/utils/resetStorage.sh +++ b/utils/resetStorage.sh @@ -2,22 +2,22 @@ #------------------------------------------------------------------------------- # Copyright (c) 2010 Sourcefabric O.P.S. # -# This file is part of the Campcaster project. +# This file is part of the Airtime project. # http://campcaster.sourcefabric.org/ # To report bugs, send an e-mail to bugs@campware.org # -# Campcaster is free software; you can redistribute it and/or modify +# Airtime is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # -# Campcaster is distributed in the hope that it will be useful, +# Airtime is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with Campcaster; if not, write to the Free Software +# along with Airtime; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # #------------------------------------------------------------------------------- diff --git a/utils/serbianLatinToCyrillicConverter.py b/utils/serbianLatinToCyrillicConverter.py index e68118995..3cb49283d 100755 --- a/utils/serbianLatinToCyrillicConverter.py +++ b/utils/serbianLatinToCyrillicConverter.py @@ -3,22 +3,22 @@ #------------------------------------------------------------------------------- # Copyright (c) 2010 Sourcefabric O.P.S. # -# This file is part of the Campcaster project. +# This file is part of the Airtime project. # http://campcaster.sourcefabric.org/ # To report bugs, send an e-mail to bugs@campware.org # -# Campcaster is free software; you can redistribute it and/or modify +# Airtime is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # -# Campcaster is distributed in the hope that it will be useful, +# Airtime is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with Campcaster; if not, write to the Free Software +# along with Airtime; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # From 11a30ab37efe3c0d3dbfb4532f784a721ef6651a Mon Sep 17 00:00:00 2001 From: mkonecny Date: Wed, 5 Jan 2011 14:25:58 -0500 Subject: [PATCH 10/22] -changed campcaster to airtime strings in library/ directory --- library/getid3/bin/autogen.sh | 8 ++++---- library/getid3/configure | 10 +++++----- library/getid3/etc/Makefile.in | 8 ++++---- library/getid3/etc/configure.ac | 8 ++++---- library/getid3/etc/doxygen.config | 8 ++++---- 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/library/getid3/bin/autogen.sh b/library/getid3/bin/autogen.sh index 89c606735..f2f0a70d8 100755 --- a/library/getid3/bin/autogen.sh +++ b/library/getid3/bin/autogen.sh @@ -2,21 +2,21 @@ #------------------------------------------------------------------------------- # Copyright (c) 2010 Sourcefabric O.P.S. # -# This file is part of the Campcaster project. +# This file is part of the Airtime project. # http://campcaster.sourcefabric.org/ # -# Campcaster is free software; you can redistribute it and/or modify +# Airtime is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # -# Campcaster is distributed in the hope that it will be useful, +# Airtime is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with Campcaster; if not, write to the Free Software +# along with Airtime; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # #------------------------------------------------------------------------------- diff --git a/library/getid3/configure b/library/getid3/configure index 0c58cc366..2c4a059eb 100755 --- a/library/getid3/configure +++ b/library/getid3/configure @@ -2,21 +2,21 @@ #------------------------------------------------------------------------------- # Copyright (c) 2010 Sourcefabric O.P.S. # -# This file is part of the Campcaster project. -# http://campcaster.campware.org/ +# This file is part of the Airtime project. +# http://campcaster.sourcefabric.org/ # -# Campcaster is free software; you can redistribute it and/or modify +# Airtime is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # -# Campcaster is distributed in the hope that it will be useful, +# Airtime is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with Campcaster; if not, write to the Free Software +# along with Airtime; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # #------------------------------------------------------------------------------- diff --git a/library/getid3/etc/Makefile.in b/library/getid3/etc/Makefile.in index 0e42713e1..460a967ab 100644 --- a/library/getid3/etc/Makefile.in +++ b/library/getid3/etc/Makefile.in @@ -2,21 +2,21 @@ # getID3 - read and writes tags in media files - see getid3.readme.txt # getID3 by James Heinrich # -# This file is part of the Campcaster project. +# This file is part of the Airtime project. # Copyright (c) 2010 Sourcefabric O.P.S. # -# Campcaster is free software; you can redistribute it and/or modify +# Airtime is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # -# Campcaster is distributed in the hope that it will be useful, +# Airtime is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with Campcaster; if not, write to the Free Software +# along with Airtime; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # @configure_input@ diff --git a/library/getid3/etc/configure.ac b/library/getid3/etc/configure.ac index 196f64df4..15e716f45 100644 --- a/library/getid3/etc/configure.ac +++ b/library/getid3/etc/configure.ac @@ -1,21 +1,21 @@ dnl----------------------------------------------------------------------------- dnl Copyright (c) 2010 Sourcefabric O.P.S. dnl -dnl This file is part of the Campcaster project. +dnl This file is part of the Airtime project. dnl http://campcaster.sourcefabric.org/ dnl -dnl Campcaster is free software; you can redistribute it and/or modify +dnl Airtime is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 2 of the License, or dnl (at your option) any later version. dnl -dnl Campcaster is distributed in the hope that it will be useful, +dnl Airtime is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License -dnl along with Campcaster; if not, write to the Free Software +dnl along with Airtime; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl dnl----------------------------------------------------------------------------- diff --git a/library/getid3/etc/doxygen.config b/library/getid3/etc/doxygen.config index 6244f1311..2db2ff22b 100644 --- a/library/getid3/etc/doxygen.config +++ b/library/getid3/etc/doxygen.config @@ -2,20 +2,20 @@ # doxygen.config # Copyright (c) 2010 Sourcefabric O.P.S. # -# This file is part of the Campcaster project. +# This file is part of the Airtime project. # -# Campcaster is free software; you can redistribute it and/or modify +# Airtime is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # -# Campcaster is distributed in the hope that it will be useful, +# Airtime is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with Campcaster; if not, write to the Free Software +# along with Airtime; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # #------------------------------------------------------------------------------- From d06956ec5b61506dfccf0ce05e3292d5ec1b3734 Mon Sep 17 00:00:00 2001 From: mkonecny Date: Wed, 5 Jan 2011 16:39:32 -0500 Subject: [PATCH 11/22] -changed filenames and documentation from campcaster to airtime --- CREDITS | 10 +++++++++- INSTALL | 8 ++++---- README | 2 ++ debian/rules | 2 +- install/{campcaster-user.php => airtime-user.php} | 0 install/postInstallStation.sh | 2 +- ...schedule-insert.php => airtime-schedule-insert.php} | 0 7 files changed, 17 insertions(+), 7 deletions(-) rename install/{campcaster-user.php => airtime-user.php} (100%) rename pypo/tests/{campcaster-schedule-insert.php => airtime-schedule-insert.php} (100%) diff --git a/CREDITS b/CREDITS index ffa2ce2b6..e3c5f3a1d 100644 --- a/CREDITS +++ b/CREDITS @@ -6,7 +6,9 @@ Version 1.6.0 ------------- This version marks a major change to the project, completely replacing the custom audio player with liquidsoap, dropping the custom desktop GUI, and -completely rewriting the web interface. +completely rewriting the web interface. It also marks the beginning of +preparation for the name change from "Campcaster" to "Airtime" for the major +2.0 release. Paul Baranowski (paul.baranowski@sourcefabric.org) Role: Project Lead / Software Developer @@ -20,6 +22,12 @@ Naomi Aro (naomi.aro@sourcefabric.org) - New User Interface - Conversion to Propel DB backend +Martin Konecny (martin.konecny@sourcefabric.org) + Role:Software Developer + Highlights: + - New User Interface + - Scheduler + Daniel James Role: Documentor & QA diff --git a/INSTALL b/INSTALL index 654f8ff4e..9da745be8 100644 --- a/INSTALL +++ b/INSTALL @@ -2,22 +2,22 @@ Copyright (c) 2010 Sourcefabric O.P.S. - This file is part of the Campcaster project. + This file is part of the Airtime project. http://campcaster.sourcefabric.org/ To report bugs, send an e-mail to contact@sourcefabric.org - Campcaster is free software; you can redistribute it and/or modify + Airtime is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - Campcaster is distributed in the hope that it will be useful, + Airtime is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Campcaster; if not, write to the Free Software + along with Airtime; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -------------------------------------------------------------------------------- diff --git a/README b/README index c1f2d1ff5..7aa7ee4ad 100644 --- a/README +++ b/README @@ -1,3 +1,5 @@ +-WARNING THIS FILE IS OUT OF DATE!!!! references to gstreamer etc. - mk + ========================================================================= ========================== CAMPCASTER =============================== ========================================================================= diff --git a/debian/rules b/debian/rules index 54c51876e..057f36fa9 100755 --- a/debian/rules +++ b/debian/rules @@ -139,7 +139,7 @@ override_dh_install: override_dh_fixperms: dh_fixperms # - chmod +x debian/campcaster-data/usr/share/campcaster/www/storageServer/var/install/campcaster-user.php + chmod +x debian/campcaster-data/usr/share/campcaster/www/storageServer/var/install/airtime-user.php chmod -x debian/campcaster-data/usr/share/campcaster/www/storageServer/var/cron/Crontab.php \ debian/campcaster-data/usr/share/campcaster/www/storageServer/var/cron/CronJob.php \ debian/campcaster-data/usr/share/campcaster/www/htmlUI/var/templates/popup/PLAYLIST.downloadExportedFile.tpl \ diff --git a/install/campcaster-user.php b/install/airtime-user.php similarity index 100% rename from install/campcaster-user.php rename to install/airtime-user.php diff --git a/install/postInstallStation.sh b/install/postInstallStation.sh index 0539ec713..42e59b894 100755 --- a/install/postInstallStation.sh +++ b/install/postInstallStation.sh @@ -404,7 +404,7 @@ if [ "$storage_is_local" = "yes" ]; then grep -q 'ls_scheduler_storage_pass' $install_etc/campcaster-scheduler.xml if [ $? = 0 ]; then SCHEDULER_STORAGE_PASS=`pwgen -N1 -c -n -s` - php -q $install_var_ls/storageServer/var/install/campcaster-user.php \ + php -q $install_var_ls/storageServer/var/install/airtime-user.php \ --addupdate scheduler ${SCHEDULER_STORAGE_PASS} sed -i -e "s/ls_scheduler_storage_pass/${SCHEDULER_STORAGE_PASS}/" \ $install_etc/campcaster-scheduler.xml diff --git a/pypo/tests/campcaster-schedule-insert.php b/pypo/tests/airtime-schedule-insert.php similarity index 100% rename from pypo/tests/campcaster-schedule-insert.php rename to pypo/tests/airtime-schedule-insert.php From 4717c2008e086a8da6827bc18f4bd7438e4d5b45 Mon Sep 17 00:00:00 2001 From: Paul Baranowski Date: Wed, 5 Jan 2011 17:41:01 -0500 Subject: [PATCH 12/22] Fixed docs for new name. --- CREDITS | 5 ++-- README | 77 ++++++++++----------------------------------------------- 2 files changed, 15 insertions(+), 67 deletions(-) diff --git a/CREDITS b/CREDITS index e3c5f3a1d..801f38ef4 100644 --- a/CREDITS +++ b/CREDITS @@ -6,9 +6,8 @@ Version 1.6.0 ------------- This version marks a major change to the project, completely replacing the custom audio player with liquidsoap, dropping the custom desktop GUI, and -completely rewriting the web interface. It also marks the beginning of -preparation for the name change from "Campcaster" to "Airtime" for the major -2.0 release. +completely rewriting the web interface. The project has also been renamed +from "Campcaster" to "Airtime" for this release. Paul Baranowski (paul.baranowski@sourcefabric.org) Role: Project Lead / Software Developer diff --git a/README b/README index 7aa7ee4ad..12d5f96e4 100644 --- a/README +++ b/README @@ -1,96 +1,45 @@ --WARNING THIS FILE IS OUT OF DATE!!!! references to gstreamer etc. - mk - ========================================================================= -========================== CAMPCASTER =============================== +========================== AIRTIME ================================= ========================================================================= -Campcaster is the first free and open radio management software that -provides live studio broadcast capabilities as well as remote automation -in one integrated system. +Airtime is an open source application that provides remote automation +of a radio station. -Campcaster has three audio outputs: one for live broadcasting, one for -previewing audio, and one for automated scheduled playback. - -Major features of Campcaster: - * Live, in-studio playout. Campcaster Studio enables station personnel - to play out both individual sound files and playlists such as - advertising blocks or entire programs. +Major features: * Web-based remote station management. Authorized personnel can add program material, create playlists, and schedule programming all via - Campcaster's web interface. - * Automation. Campcaster has a scheduler function that enables users to + a web interface. + * Automation. Airtime has a scheduler function that enables users to set playlists for playback at a date and time of their choosing. Playlists can be played back multiple times. - * Playlists. Campcaster allows users to create playlists that can be + * Playlists. Airtime allows users to create playlists that can be either played on-demand in the Studio or in automated mode. Playlists can be nested inside each other, so for example, a playlist with a block of ads can be inside of a playlist with a music program. * Centralized archives of station program material. Station personnel have a searchable, browseable central archive that is accessible both in the office and via the web. - * Solid, fast playback. Campcaster uses the popular Gstreamer + * Solid, fast playback. Airtime uses the open source Liquidsoap multimedia framework for clean, reliable, fast playback. - * Program sharing. Stations can share both playlists and files with a - designated, centralized 'network hub.' This enables the creation of - 'virtual radio networks' connected via the Internet. - * Search-based backup. You can backup all station archives at the click - of a button, or only backup certain files based on search terms, so - that backup files can be made of only a certain program or of all - files created by a certain user. - * Localization. Campcaster is multilingual and supports Unicode. It - also is very easy to create language localizations. - * No restrictions. Multiple instances of the Campcaster Studio program - can access the same archive on the office network, and there are no - worries about hardware dongles or keys limiting access on multiple PCs. - * Innovative design. Campcaster's user interface – the product of - Parsons School of Design's “Design and Communication” program - - introduces a number of innovations, including the 'Scratchpad', - a list of recently-used files and playlists. * Open, extensible architecture. Stations are free to extend and alter - all parts of the Campcaster program code, which makes extensive use - of XML-RPC APIs. + all parts of the program code. INSTALLATION ------------ Please see this page for a typical user installation: -http://en.flossmanuals.net/Campcaster +http://en.flossmanuals.net/Airtime If you are a developer, please see this page: -http://wiki.sourcefabric.org/display/CC/Campcaster+Dev+Site +http://wiki.sourcefabric.org/display/CC/Airtime+Dev+Site Quick links to our resources ---------------------------- - User Manual: http://en.flossmanuals.net/Campcaster/Introduction + User Manual: http://en.flossmanuals.net/Airtime/Introduction Forums and mailing lists: http://forum.sourcefabric.org Bug Tracking: http://dev.sourcefabric.org Code view/review: http://code.sourcefabric.org Public source code hosting: http://github.com/sourcefabric - Download link: https://sourceforge.net/projects/campcaster/files/ + Download link: https://sourceforge.net/projects/airtime/files/ Developer's wiki: http://wiki.sourcefabric.org - -------------------------------------------------------------------------- - - Copyright (c) 2010 Sourcefabric O.P.S. - - This file is part of the Campcaster project. - http://campcaster.sourcefabric.org/ - To report bugs, send an e-mail to campcaster-support@lists.sourcefabric.org - - Campcaster is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - Campcaster is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Campcaster; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -------------------------------------------------------------------------- - From fe87d8957bb50f20a9cc02c922d480fc7e6c80d3 Mon Sep 17 00:00:00 2001 From: mkonecny Date: Wed, 5 Jan 2011 17:44:23 -0500 Subject: [PATCH 13/22] -check if user=root for propel-install script --- install/airtime-user.php | 6 +++--- install/postInstallStation.sh | 10 +++++----- install/propel-install.php | 11 ++++++++--- install/uninstall.php | 4 ++-- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/install/airtime-user.php b/install/airtime-user.php index 399887da1..ea591fd7e 100644 --- a/install/airtime-user.php +++ b/install/airtime-user.php @@ -17,9 +17,9 @@ if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) { function printUsage() { echo "\n"; - echo "campcaster-user\n"; + echo "airtime-user\n"; echo "===============\n"; - echo " This program allows you to manage Campcaster users.\n"; + echo " This program allows you to manage Airtime users.\n"; echo "\n"; echo "OPTIONS:\n"; echo " --addupdate \n"; @@ -99,4 +99,4 @@ if (PEAR::isError($r)) { die($r->getMessage()); } exit(0); -?> \ No newline at end of file +?> diff --git a/install/postInstallStation.sh b/install/postInstallStation.sh index 42e59b894..adbff96d2 100755 --- a/install/postInstallStation.sh +++ b/install/postInstallStation.sh @@ -1,23 +1,23 @@ #!/bin/bash #------------------------------------------------------------------------------- -# Copyright (c) 2010 Sourcefabric O.P.S. +# Copyright (c) 2010 Airtime O.P.S. # -# This file is part of the Campcaster project. +# This file is part of the Airtime project. # http://campcaster.sourcefabric.org/ # To report bugs, send an e-mail to bugs@campware.org # -# Campcaster is free software; you can redistribute it and/or modify +# Airtime is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # -# Campcaster is distributed in the hope that it will be useful, +# Airtime is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with Campcaster; if not, write to the Free Software +# along with Airtime; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # #------------------------------------------------------------------------------- diff --git a/install/propel-install.php b/install/propel-install.php index 861b004aa..a9960c9d2 100644 --- a/install/propel-install.php +++ b/install/propel-install.php @@ -1,6 +1,6 @@ /dev/null"; +$command = __DIR__."/../utils/airtime-import --copy ../audio_samples/ > /dev/null"; @exec($command, $output, $results); echo "****************************** Install Complete ******************************\n"; diff --git a/install/uninstall.php b/install/uninstall.php index bef99bb8c..7a2fef3cf 100644 --- a/install/uninstall.php +++ b/install/uninstall.php @@ -1,6 +1,6 @@ \ No newline at end of file +?> From 7e96572aeecd60174640203e77ecd6953198e6bd Mon Sep 17 00:00:00 2001 From: mkonecny Date: Wed, 5 Jan 2011 19:05:57 -0500 Subject: [PATCH 14/22] -updated to use new database name, login and passwd (all 3 are "airtime"). You may delete old database by typing "dropdb -U campcaster -h localhost campcaster" --- application/configs/application.ini | 6 +++--- application/configs/conf.php | 8 ++++---- application/configs/propel-config.php | 4 ++-- build/build.properties | 2 +- public/js/playlist/playlist.js | 2 +- utils/airtime-import.php | 6 +++--- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/application/configs/application.ini b/application/configs/application.ini index 88feac347..836d659da 100644 --- a/application/configs/application.ini +++ b/application/configs/application.ini @@ -12,9 +12,9 @@ resources.view[] = resources.db.adapter = "Pdo_Pgsql" resources.db.params.charset = "utf8" resources.db.params.host = "localhost" -resources.db.params.username = "campcaster" -resources.db.params.password = "campcaster" -resources.db.params.dbname = "campcaster" +resources.db.params.username = "airtime" +resources.db.params.password = "airtime" +resources.db.params.dbname = "airtime" [staging : production] diff --git a/application/configs/conf.php b/application/configs/conf.php index 7779721b5..c46d38b69 100644 --- a/application/configs/conf.php +++ b/application/configs/conf.php @@ -8,11 +8,11 @@ global $CC_CONFIG; $CC_CONFIG = array( // Database config 'dsn' => array( - 'username' => 'campcaster', - 'password' => 'campcaster', + 'username' => 'airtime', + 'password' => 'airtime', 'hostspec' => 'localhost', 'phptype' => 'pgsql', - 'database' => 'campcaster', + 'database' => 'airtime', ), // Name of the web server user @@ -173,4 +173,4 @@ set_include_path('.'.PATH_SEPARATOR.$CC_CONFIG['pearPath'] //$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC); -?> \ No newline at end of file +?> diff --git a/application/configs/propel-config.php b/application/configs/propel-config.php index 768c5b151..1860e1090 100644 --- a/application/configs/propel-config.php +++ b/application/configs/propel-config.php @@ -9,7 +9,7 @@ $conf = array ( 'adapter' => 'pgsql', 'connection' => array ( - 'dsn' => 'pgsql:host=localhost;port=5432;dbname=campcaster;user=campcaster;password=campcaster', + 'dsn' => 'pgsql:host=localhost;port=5432;dbname=airtime;user=airtime;password=airtime', ), ), 'default' => 'campcaster', @@ -17,4 +17,4 @@ $conf = array ( 'generator_version' => '1.5.2', ); $conf['classmap'] = include(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'classmap-propel-config.php'); -return $conf; \ No newline at end of file +return $conf; diff --git a/build/build.properties b/build/build.properties index 071fae700..02554bf8b 100644 --- a/build/build.properties +++ b/build/build.properties @@ -3,7 +3,7 @@ project.build = ${project.home}/build #Database driver propel.database = pgsql -propel.database.url = pgsql:host=localhost dbname=campcaster user=campcaster password=campcaster +propel.database.url = pgsql:host=localhost dbname=airtime user=airtime password=airtime #Project name propel.project = campcaster diff --git a/public/js/playlist/playlist.js b/public/js/playlist/playlist.js index 064864205..55f6681fd 100644 --- a/public/js/playlist/playlist.js +++ b/public/js/playlist/playlist.js @@ -145,7 +145,7 @@ } function getScheduleFromServer(){ - $.ajax({ url: "http://localhost/Schedule/get-current-playlist/format/json", dataType:"json", success:function(data){ + $.ajax({ url: "/Schedule/get-current-playlist/format/json", dataType:"json", success:function(data){ parseItems(data.entries); }}); setTimeout(getScheduleFromServer, 5000); diff --git a/utils/airtime-import.php b/utils/airtime-import.php index d6c74d4b2..21d47e2de 100644 --- a/utils/airtime-import.php +++ b/utils/airtime-import.php @@ -238,11 +238,11 @@ if ($DEBUG_IMPORT) { $testonly = false; $importMode = "link"; $files = array("/path/to/your/test/file.mp3"); - $dsn = array('username' => 'campcaster', - 'password' => 'campcaster', + $dsn = array('username' => 'airtime', + 'password' => 'airtime', 'hostspec' => 'localhost', 'phptype' => 'pgsql', - 'database' => 'campcaster'); + 'database' => 'airtime'); } else { $dsn = $CC_CONFIG['dsn']; } From ff02a425147218a4644a5594991f616b7d89c764 Mon Sep 17 00:00:00 2001 From: naomiaro Date: Thu, 6 Jan 2011 00:23:22 -0500 Subject: [PATCH 15/22] quick search is working, with small paginator ajax url hack --- application/controllers/LibraryController.php | 52 +++++++++++++------ application/models/StoredFile.php | 10 ++-- public/js/campcaster/library/quicksearch.js | 10 +++- 3 files changed, 50 insertions(+), 22 deletions(-) diff --git a/application/controllers/LibraryController.php b/application/controllers/LibraryController.php index 56770c1da..831147cee 100644 --- a/application/controllers/LibraryController.php +++ b/application/controllers/LibraryController.php @@ -37,6 +37,10 @@ class LibraryController extends Zend_Controller_Action unset($this->search_sess->page); unset($this->search_sess->md); + + if ($this->getRequest()->isGet()) { + unset($this->search_sess->quick); + } $this->_helper->actionStack('contents', 'library'); $this->_helper->actionStack('quick-search', 'library'); @@ -154,14 +158,25 @@ class LibraryController extends Zend_Controller_Action $currpage = isset($page) ? $page : $last_page; $this->search_sess->page = $currpage; - $md = isset($this->search_sess->md) ? $this->search_sess->md : array(); - - $count = StoredFile::searchFiles($md, $order, true); + if(isset($this->search_sess->md)){ + $md = $this->search_sess->md; + $quick = false; + } + else if(isset($this->search_sess->quick)) { + $md = $this->search_sess->quick; + $quick = true; + } + else { + $md = array(); + $quick = false; + } + + $count = StoredFile::searchFiles($md, $order, true, null, null, $quick); $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Null($count)); $paginator->setCurrentPageNumber($currpage); $this->view->paginator = $paginator; - $this->view->files = StoredFile::searchFiles($md, $order, false, $paginator->getCurrentPageNumber(), $paginator->getItemCountPerPage()); + $this->view->files = StoredFile::searchFiles($md, $order, false, $paginator->getCurrentPageNumber(), $paginator->getItemCountPerPage(), $quick); } public function editFileMdAction() @@ -193,6 +208,9 @@ class LibraryController extends Zend_Controller_Action $this->_helper->viewRenderer->setResponseSegment('quick_search'); + //$this->view->urlparams = array("route" => array("controller"=> "Library", "action"=> "index", "module"=> "default")); + $this->route = 'quick_search'; + $search = $this->_getParam('search', null); $format = $this->_getParam('format', 'layout'); @@ -204,26 +222,26 @@ class LibraryController extends Zend_Controller_Action $md = array(); - $i = 0; - foreach($keywords as $word) { - - foreach($categories as $cat) { - $md["row_".$i]["metadata_".$i] = $cat; - $md["row_".$i]["match_".$i] = 0; - $md["row_".$i]["search_".$i] = $word; - - $i = $i + 1; - } - } + for($group_id=1; $group_id <= count($keywords); $group_id++) { + + for($row_id=1; $row_id <= count($categories); $row_id++) { + $md["group_".$group_id]["row_".$row_id]["metadata"] = $categories[$row_id-1]; + $md["group_".$group_id]["row_".$row_id]["match"] = "0"; + $md["group_".$group_id]["row_".$row_id]["search"] = $keywords[$group_id-1]; + } + } + + $this->search_sess->quick = $md; + $currpage = isset($this->search_sess->page) ? $this->search_sess->page : null; $order = isset($this->search_sess->order) ? $this->search_sess->order : null; - $count = StoredFile::searchFiles($md, $order, true); + $count = StoredFile::searchFiles($md, $order, true, null, null, true); $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Null($count)); $paginator->setCurrentPageNumber($currpage); $this->view->paginator = $paginator; - $this->view->files = StoredFile::searchFiles($md, $order, false, $paginator->getCurrentPageNumber(), $paginator->getItemCountPerPage()); + $this->view->files = StoredFile::searchFiles($md, $order, false, $paginator->getCurrentPageNumber(), $paginator->getItemCountPerPage(), true); $this->view->html = $this->view->render('library/contents.phtml'); unset($this->view->files); diff --git a/application/models/StoredFile.php b/application/models/StoredFile.php index 3812ab5be..5805a7c87 100644 --- a/application/models/StoredFile.php +++ b/application/models/StoredFile.php @@ -1741,7 +1741,7 @@ class StoredFile { return $CC_CONFIG['accessDir']."/$p_token.$p_ext"; } - public static function searchFiles($md, $order=NULL, $count=false, $page=null, $limit=null) + public static function searchFiles($md, $order=NULL, $count=false, $page=null, $limit=null, $quick=false) { global $CC_CONFIG, $CC_DBC, $g_metadata_xml_to_db_mapping; @@ -1800,6 +1800,8 @@ class StoredFile { $sql = $selector." ".$from; $or_cond = array(); + $inner = $quick ? 'OR':'AND'; + $outer = $quick ? 'AND':'OR'; foreach (array_keys($md) as $group) { if(strpos($group, 'group') === false) { @@ -1822,12 +1824,12 @@ class StoredFile { } if(count($and_cond) > 0) { - $or_cond[] = "(".join(" AND ", $and_cond).")"; + $or_cond[] = "(".join(" ".$inner." ", $and_cond).")"; } } if(count($or_cond) > 0) { - $where = " WHERE ". join(" OR ", $or_cond); + $where = " WHERE ". join(" ".$outer." ", $or_cond); $sql = $sql . $where; } @@ -1850,7 +1852,7 @@ class StoredFile { $sql = $sql . $paginate; } //echo var_dump($md); - echo $sql; + //echo $sql; return $CC_DBC->getAll($sql); } diff --git a/public/js/campcaster/library/quicksearch.js b/public/js/campcaster/library/quicksearch.js index b19b6e03e..a0cd26754 100644 --- a/public/js/campcaster/library/quicksearch.js +++ b/public/js/campcaster/library/quicksearch.js @@ -8,7 +8,15 @@ function setUpQuickSearch() { string = $(this).val(); $.post(url, {search: string}, function(json){ - var x; + var html; + //hacky way until I can figure out paginator better. + html = json.html.replace(/quick-search\/format\/json/g, "index"); + + $("#library_content") + .empty() + .append(html); + + setUpLibrary(); }); }); From ee0a8310de68647366680557cd70a27298ccd836 Mon Sep 17 00:00:00 2001 From: naomiaro Date: Thu, 6 Jan 2011 01:00:33 -0500 Subject: [PATCH 16/22] small problem with order, quicksearch working, code could be better. --- application/models/StoredFile.php | 4 ++-- application/views/scripts/library/paginator.phtml | 8 ++++---- public/js/campcaster/library/quicksearch.js | 15 ++++++++++----- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/application/models/StoredFile.php b/application/models/StoredFile.php index 5805a7c87..527840a26 100644 --- a/application/models/StoredFile.php +++ b/application/models/StoredFile.php @@ -1838,11 +1838,11 @@ class StoredFile { } if(!is_null($order)) { - $ob = " ORDER BY ".$g_metadata_xml_to_db_mapping[$order["category"]]. ", id " .$order["order"]; + $ob = " ORDER BY ".$g_metadata_xml_to_db_mapping[$order["category"]]." ".$order["order"].", id "; $sql = $sql . $ob; } else{ - $ob = " ORDER BY artist_name, id asc"; + $ob = " ORDER BY artist_name asc, id"; $sql = $sql . $ob; } diff --git a/application/views/scripts/library/paginator.phtml b/application/views/scripts/library/paginator.phtml index 3e2c78656..95bf42d87 100644 --- a/application/views/scripts/library/paginator.phtml +++ b/application/views/scripts/library/paginator.phtml @@ -1,10 +1,10 @@ +

    pageCount): ?> -

    + firstItemNumber; ?> - lastItemNumber; ?> of totalItemCount; ?>

    -

    previous)): ?> @@ -50,7 +50,7 @@ Last - -

    +

    +
    diff --git a/public/js/campcaster/library/quicksearch.js b/public/js/campcaster/library/quicksearch.js index a0cd26754..2cb84d12c 100644 --- a/public/js/campcaster/library/quicksearch.js +++ b/public/js/campcaster/library/quicksearch.js @@ -8,15 +8,20 @@ function setUpQuickSearch() { string = $(this).val(); $.post(url, {search: string}, function(json){ - var html; + var html, data; //hacky way until I can figure out paginator better. html = json.html.replace(/quick-search\/format\/json/g, "index"); - $("#library_content") - .empty() - .append(html); + var el = $(html); + + data = el.find("tr:not(:first-child)"); + setLibraryContents(data); + + var lib = $("#library_content"); + + lib.find("div.paginationControl").remove(); + lib.append(el[2]); - setUpLibrary(); }); }); From 7aac80ed58f7f72f2c317d9864a169c29a29c2d0 Mon Sep 17 00:00:00 2001 From: naomiaro Date: Thu, 6 Jan 2011 01:12:24 -0500 Subject: [PATCH 17/22] renaming for airtime --- application/controllers/LibraryController.php | 2 +- public/js/{campcaster => airtime}/library/quicksearch.js | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename public/js/{campcaster => airtime}/library/quicksearch.js (100%) diff --git a/application/controllers/LibraryController.php b/application/controllers/LibraryController.php index cd8c08ea0..1c8b63fcc 100644 --- a/application/controllers/LibraryController.php +++ b/application/controllers/LibraryController.php @@ -204,7 +204,7 @@ class LibraryController extends Zend_Controller_Action public function quickSearchAction() { - $this->view->headScript()->appendFile('/js/campcaster/library/quicksearch.js','text/javascript'); + $this->view->headScript()->appendFile('/js/airtime/library/quicksearch.js','text/javascript'); $this->_helper->viewRenderer->setResponseSegment('quick_search'); diff --git a/public/js/campcaster/library/quicksearch.js b/public/js/airtime/library/quicksearch.js similarity index 100% rename from public/js/campcaster/library/quicksearch.js rename to public/js/airtime/library/quicksearch.js From daf37fa5482f5d05e05aad24b5ebab2bc55ec946 Mon Sep 17 00:00:00 2001 From: naomiaro Date: Thu, 6 Jan 2011 01:26:48 -0500 Subject: [PATCH 18/22] quick search string session var --- application/controllers/LibraryController.php | 23 ++++++++++--------- .../views/scripts/library/quick-search.phtml | 2 +- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/application/controllers/LibraryController.php b/application/controllers/LibraryController.php index 1c8b63fcc..99e3d7ec3 100644 --- a/application/controllers/LibraryController.php +++ b/application/controllers/LibraryController.php @@ -38,9 +38,9 @@ class LibraryController extends Zend_Controller_Action unset($this->search_sess->page); unset($this->search_sess->md); - if ($this->getRequest()->isGet()) { - unset($this->search_sess->quick); - } + //if ($this->getRequest()->isGet()) { + // unset($this->search_sess->quick); + //} $this->_helper->actionStack('contents', 'library'); $this->_helper->actionStack('quick-search', 'library'); @@ -153,10 +153,7 @@ class LibraryController extends Zend_Controller_Action } else{ $last_page = null; - } - - $currpage = isset($page) ? $page : $last_page; - $this->search_sess->page = $currpage; + } if(isset($this->search_sess->md)){ $md = $this->search_sess->md; @@ -170,6 +167,9 @@ class LibraryController extends Zend_Controller_Action $md = array(); $quick = false; } + + $currpage = isset($page) ? $page : $last_page; + $this->search_sess->page = $currpage; $count = StoredFile::searchFiles($md, $order, true, null, null, $quick); @@ -206,17 +206,18 @@ class LibraryController extends Zend_Controller_Action { $this->view->headScript()->appendFile('/js/airtime/library/quicksearch.js','text/javascript'); - $this->_helper->viewRenderer->setResponseSegment('quick_search'); + $this->_helper->viewRenderer->setResponseSegment('quick_search'); - //$this->view->urlparams = array("route" => array("controller"=> "Library", "action"=> "index", "module"=> "default")); - $this->route = 'quick_search'; + $this->view->qs_value = $this->search_sess->quick_string; - $search = $this->_getParam('search', null); $format = $this->_getParam('format', 'layout'); if($format !== 'json') return; + $search = $this->_getParam('search', null); + $this->search_sess->quick_string = $search; + $categories = array("dc:title", "dc:creator", "dc:source"); $keywords = explode(" ", $search); diff --git a/application/views/scripts/library/quick-search.phtml b/application/views/scripts/library/quick-search.phtml index 2b74646db..d8bbabb76 100644 --- a/application/views/scripts/library/quick-search.phtml +++ b/application/views/scripts/library/quick-search.phtml @@ -1,2 +1,2 @@ - + From 7cf9699e374a7cc6df30d9277a75e69fc07e6a61 Mon Sep 17 00:00:00 2001 From: mkonecny Date: Thu, 6 Jan 2011 12:11:38 -0500 Subject: [PATCH 19/22] -redirected errors from propel-install script to log file --- install/propel-install.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/propel-install.php b/install/propel-install.php index a9960c9d2..8a24e659e 100644 --- a/install/propel-install.php +++ b/install/propel-install.php @@ -68,7 +68,7 @@ if ($langIsInstalled == '0') { echo " * Creating database tables\n"; // Put Propel sql files in Database -$command = __DIR__."/../library/propel/generator/bin/propel-gen ../build/ insert-sql"; +$command = __DIR__."/../library/propel/generator/bin/propel-gen ../build/ insert-sql 2>propel-error.log"; //echo $command."\n"; @exec($command, $output, $results); From 9854834b2618d31b1b5eeeed671ac62099f40a8e Mon Sep 17 00:00:00 2001 From: Naomi Date: Thu, 6 Jan 2011 16:20:51 -0500 Subject: [PATCH 20/22] adding fields to allow for multiple playlists scheduled in a show --- application/controllers/LibraryController.php | 6 +---- application/models/StoredFile.php | 9 +++++-- .../views/scripts/library/contents.phtml | 1 + .../scripts/library/libraryTablePartial.phtml | 1 + build/schema.xml | 2 ++ build/sql/triggers.sql | 24 +++++++++++++++++++ public/js/airtime/library/library.js | 1 + 7 files changed, 37 insertions(+), 7 deletions(-) diff --git a/application/controllers/LibraryController.php b/application/controllers/LibraryController.php index 99e3d7ec3..da98fae22 100644 --- a/application/controllers/LibraryController.php +++ b/application/controllers/LibraryController.php @@ -37,10 +37,6 @@ class LibraryController extends Zend_Controller_Action unset($this->search_sess->page); unset($this->search_sess->md); - - //if ($this->getRequest()->isGet()) { - // unset($this->search_sess->quick); - //} $this->_helper->actionStack('contents', 'library'); $this->_helper->actionStack('quick-search', 'library'); @@ -218,7 +214,7 @@ class LibraryController extends Zend_Controller_Action $search = $this->_getParam('search', null); $this->search_sess->quick_string = $search; - $categories = array("dc:title", "dc:creator", "dc:source"); + $categories = array("dc:title", "dc:creator", "dc:source", "ls:type"); $keywords = explode(" ", $search); $md = array(); diff --git a/application/models/StoredFile.php b/application/models/StoredFile.php index 490d19c93..d35a55800 100644 --- a/application/models/StoredFile.php +++ b/application/models/StoredFile.php @@ -6,6 +6,7 @@ require_once("Schedule.php"); global $g_metadata_xml_to_db_mapping; $g_metadata_xml_to_db_mapping = array( + "ls:type" => "ftype", "dc:format" => "format", "ls:bitrate" => "bit_rate", "ls:samplerate" => "sample_rate", @@ -1763,6 +1764,10 @@ class StoredFile { if($key === "dc:title"){ $plSelect .= "name AS ".$val.", "; $fileSelect .= $val.", "; + } + else if ($key === "ls:type"){ + $plSelect .= "'playlist' AS ".$val.", "; + $fileSelect .= $val.", "; } else if ($key === "dc:creator"){ $plSelect .= "creator AS ".$val.", "; @@ -1789,13 +1794,13 @@ class StoredFile { $selector = "SELECT *"; } - $from = " FROM ((".$plSelect."PL.id, 'playlist' AS ftype + $from = " FROM ((".$plSelect."PL.id FROM ".$CC_CONFIG["playListTable"]." AS PL LEFT JOIN ".$CC_CONFIG['playListTimeView']." PLT ON PL.id = PLT.id) UNION - (".$fileSelect."id, ftype FROM ".$CC_CONFIG["filesTable"]." AS FILES)) AS RESULTS "; + (".$fileSelect."id FROM ".$CC_CONFIG["filesTable"]." AS FILES)) AS RESULTS "; $sql = $selector." ".$from; diff --git a/application/views/scripts/library/contents.phtml b/application/views/scripts/library/contents.phtml index 1ea505484..526bd37b8 100644 --- a/application/views/scripts/library/contents.phtml +++ b/application/views/scripts/library/contents.phtml @@ -8,6 +8,7 @@ Album Track Length + Type partialLoop('library/libraryTablePartial.phtml', $this->files); diff --git a/application/views/scripts/library/libraryTablePartial.phtml b/application/views/scripts/library/libraryTablePartial.phtml index 52074462d..7f8502fbe 100644 --- a/application/views/scripts/library/libraryTablePartial.phtml +++ b/application/views/scripts/library/libraryTablePartial.phtml @@ -5,4 +5,5 @@ album_title ?> track_number ?> length ?> + ftype ?> diff --git a/build/schema.xml b/build/schema.xml index 599b679e4..720e7126a 100644 --- a/build/schema.xml +++ b/build/schema.xml @@ -153,6 +153,8 @@ + + diff --git a/build/sql/triggers.sql b/build/sql/triggers.sql index c059ffe80..a190be622 100644 --- a/build/sql/triggers.sql +++ b/build/sql/triggers.sql @@ -21,3 +21,27 @@ CREATE FUNCTION calculate_position() RETURNS trigger AS CREATE TRIGGER calculate_position AFTER INSERT OR DELETE ON cc_playlistcontents FOR EACH ROW EXECUTE PROCEDURE calculate_position(); + +---------------------------------------------------------------------------------- +--show_content() +---------------------------------------------------------------------------------- +DROP FUNCTION show_content() CASCADE; + +CREATE FUNCTION show_content() RETURNS trigger AS + ' + BEGIN + IF(TG_OP=''INSERT'') THEN + UPDATE cc_show_schedule SET position = (position + 1) + WHERE (id = new.id AND position >= new.position AND id != new.id); + END IF; + IF(TG_OP=''DELETE'') THEN + UPDATE cc_show_schedule SET position = (position - 1) + WHERE (id = old.id AND position > old.position); + END IF; + RETURN NULL; + END; + ' + LANGUAGE 'plpgsql'; + +CREATE TRIGGER show_content AFTER INSERT OR DELETE ON cc_show_schedule +FOR EACH ROW EXECUTE PROCEDURE show_content(); diff --git a/public/js/airtime/library/library.js b/public/js/airtime/library/library.js index 258278022..12ea190d5 100644 --- a/public/js/airtime/library/library.js +++ b/public/js/airtime/library/library.js @@ -66,6 +66,7 @@ function setUpLibrary() { $("#library_display tr:first-child span.album").data({'ob': 'dc:source', 'order' : 'asc'}); $("#library_display tr:first-child span.track").data({'ob': 'ls:track_num', 'order' : 'asc'}); $("#library_display tr:first-child span.length").data({'ob': 'dcterms:extent', 'order' : 'asc'}); + $("#library_display tr:first-child span.type").data({'ob': 'dcterms:extent', 'order' : 'asc'}); $("#library_display tr:first-child span").click(function(){ var url = "/Library/contents/format/html", From c7df3c10392f66a438d14fabb12a8938f0bcf987 Mon Sep 17 00:00:00 2001 From: Naomi Date: Thu, 6 Jan 2011 16:24:30 -0500 Subject: [PATCH 21/22] for new cc_show_schedule columns --- application/configs/propel-config.php | 6 +- .../campcaster/map/CcShowScheduleTableMap.php | 2 + .../campcaster/om/BaseCcShowSchedule.php | 156 +++++++++++++++++- .../campcaster/om/BaseCcShowSchedulePeer.php | 36 ++-- .../campcaster/om/BaseCcShowScheduleQuery.php | 70 ++++++++ build/sql/schema.sql | 2 + 6 files changed, 252 insertions(+), 20 deletions(-) diff --git a/application/configs/propel-config.php b/application/configs/propel-config.php index 1860e1090..22571384c 100644 --- a/application/configs/propel-config.php +++ b/application/configs/propel-config.php @@ -1,6 +1,6 @@ array ( @@ -9,7 +9,7 @@ $conf = array ( 'adapter' => 'pgsql', 'connection' => array ( - 'dsn' => 'pgsql:host=localhost;port=5432;dbname=airtime;user=airtime;password=airtime', + 'dsn' => 'pgsql:host=localhost;port=5432;dbname=campcaster;user=campcaster;password=campcaster', ), ), 'default' => 'campcaster', @@ -17,4 +17,4 @@ $conf = array ( 'generator_version' => '1.5.2', ); $conf['classmap'] = include(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'classmap-propel-config.php'); -return $conf; +return $conf; \ No newline at end of file diff --git a/application/models/campcaster/map/CcShowScheduleTableMap.php b/application/models/campcaster/map/CcShowScheduleTableMap.php index 3edc93611..cdd6205b7 100644 --- a/application/models/campcaster/map/CcShowScheduleTableMap.php +++ b/application/models/campcaster/map/CcShowScheduleTableMap.php @@ -40,6 +40,8 @@ class CcShowScheduleTableMap extends TableMap { // columns $this->addPrimaryKey('ID', 'DbId', 'INTEGER', true, null, null); $this->addForeignKey('SHOW_ID', 'DbShowId', 'INTEGER', 'cc_show', 'ID', true, null, null); + $this->addColumn('SHOW_DAY', 'DbShowDay', 'DATE', true, null, null); + $this->addColumn('POSITION', 'DbPosition', 'INTEGER', false, null, null); $this->addColumn('GROUP_ID', 'DbGroupId', 'INTEGER', true, null, null); // validators } // initialize() diff --git a/application/models/campcaster/om/BaseCcShowSchedule.php b/application/models/campcaster/om/BaseCcShowSchedule.php index 4ac36f871..c3f5796df 100644 --- a/application/models/campcaster/om/BaseCcShowSchedule.php +++ b/application/models/campcaster/om/BaseCcShowSchedule.php @@ -36,6 +36,18 @@ abstract class BaseCcShowSchedule extends BaseObject implements Persistent */ protected $show_id; + /** + * The value for the show_day field. + * @var string + */ + protected $show_day; + + /** + * The value for the position field. + * @var int + */ + protected $position; + /** * The value for the group_id field. * @var int @@ -81,6 +93,49 @@ abstract class BaseCcShowSchedule extends BaseObject implements Persistent return $this->show_id; } + /** + * Get the [optionally formatted] temporal [show_day] column value. + * + * + * @param string $format The date/time format string (either date()-style or strftime()-style). + * If format is NULL, then the raw DateTime object will be returned. + * @return mixed Formatted date/time value as string or DateTime object (if format is NULL), NULL if column is NULL + * @throws PropelException - if unable to parse/validate the date/time value. + */ + public function getDbShowDay($format = '%x') + { + if ($this->show_day === null) { + return null; + } + + + + try { + $dt = new DateTime($this->show_day); + } catch (Exception $x) { + throw new PropelException("Internally stored date/time/timestamp value could not be converted to DateTime: " . var_export($this->show_day, true), $x); + } + + if ($format === null) { + // Because propel.useDateTimeClass is TRUE, we return a DateTime object. + return $dt; + } elseif (strpos($format, '%') !== false) { + return strftime($format, $dt->format('U')); + } else { + return $dt->format($format); + } + } + + /** + * Get the [position] column value. + * + * @return int + */ + public function getDbPosition() + { + return $this->position; + } + /** * Get the [group_id] column value. * @@ -135,6 +190,75 @@ abstract class BaseCcShowSchedule extends BaseObject implements Persistent return $this; } // setDbShowId() + /** + * Sets the value of [show_day] column to a normalized version of the date/time value specified. + * + * @param mixed $v string, integer (timestamp), or DateTime value. Empty string will + * be treated as NULL for temporal objects. + * @return CcShowSchedule The current object (for fluent API support) + */ + public function setDbShowDay($v) + { + // we treat '' as NULL for temporal objects because DateTime('') == DateTime('now') + // -- which is unexpected, to say the least. + if ($v === null || $v === '') { + $dt = null; + } elseif ($v instanceof DateTime) { + $dt = $v; + } else { + // some string/numeric value passed; we normalize that so that we can + // validate it. + try { + if (is_numeric($v)) { // if it's a unix timestamp + $dt = new DateTime('@'.$v, new DateTimeZone('UTC')); + // We have to explicitly specify and then change the time zone because of a + // DateTime bug: http://bugs.php.net/bug.php?id=43003 + $dt->setTimeZone(new DateTimeZone(date_default_timezone_get())); + } else { + $dt = new DateTime($v); + } + } catch (Exception $x) { + throw new PropelException('Error parsing date/time value: ' . var_export($v, true), $x); + } + } + + if ( $this->show_day !== null || $dt !== null ) { + // (nested ifs are a little easier to read in this case) + + $currNorm = ($this->show_day !== null && $tmpDt = new DateTime($this->show_day)) ? $tmpDt->format('Y-m-d') : null; + $newNorm = ($dt !== null) ? $dt->format('Y-m-d') : null; + + if ( ($currNorm !== $newNorm) // normalized values don't match + ) + { + $this->show_day = ($dt ? $dt->format('Y-m-d') : null); + $this->modifiedColumns[] = CcShowSchedulePeer::SHOW_DAY; + } + } // if either are not null + + return $this; + } // setDbShowDay() + + /** + * Set the value of [position] column. + * + * @param int $v new value + * @return CcShowSchedule The current object (for fluent API support) + */ + public function setDbPosition($v) + { + if ($v !== null) { + $v = (int) $v; + } + + if ($this->position !== $v) { + $this->position = $v; + $this->modifiedColumns[] = CcShowSchedulePeer::POSITION; + } + + return $this; + } // setDbPosition() + /** * Set the value of [group_id] column. * @@ -189,7 +313,9 @@ abstract class BaseCcShowSchedule extends BaseObject implements Persistent $this->id = ($row[$startcol + 0] !== null) ? (int) $row[$startcol + 0] : null; $this->show_id = ($row[$startcol + 1] !== null) ? (int) $row[$startcol + 1] : null; - $this->group_id = ($row[$startcol + 2] !== null) ? (int) $row[$startcol + 2] : null; + $this->show_day = ($row[$startcol + 2] !== null) ? (string) $row[$startcol + 2] : null; + $this->position = ($row[$startcol + 3] !== null) ? (int) $row[$startcol + 3] : null; + $this->group_id = ($row[$startcol + 4] !== null) ? (int) $row[$startcol + 4] : null; $this->resetModified(); $this->setNew(false); @@ -198,7 +324,7 @@ abstract class BaseCcShowSchedule extends BaseObject implements Persistent $this->ensureConsistency(); } - return $startcol + 3; // 3 = CcShowSchedulePeer::NUM_COLUMNS - CcShowSchedulePeer::NUM_LAZY_LOAD_COLUMNS). + return $startcol + 5; // 5 = CcShowSchedulePeer::NUM_COLUMNS - CcShowSchedulePeer::NUM_LAZY_LOAD_COLUMNS). } catch (Exception $e) { throw new PropelException("Error populating CcShowSchedule object", $e); @@ -532,6 +658,12 @@ abstract class BaseCcShowSchedule extends BaseObject implements Persistent return $this->getDbShowId(); break; case 2: + return $this->getDbShowDay(); + break; + case 3: + return $this->getDbPosition(); + break; + case 4: return $this->getDbGroupId(); break; default: @@ -560,7 +692,9 @@ abstract class BaseCcShowSchedule extends BaseObject implements Persistent $result = array( $keys[0] => $this->getDbId(), $keys[1] => $this->getDbShowId(), - $keys[2] => $this->getDbGroupId(), + $keys[2] => $this->getDbShowDay(), + $keys[3] => $this->getDbPosition(), + $keys[4] => $this->getDbGroupId(), ); if ($includeForeignObjects) { if (null !== $this->aCcShow) { @@ -604,6 +738,12 @@ abstract class BaseCcShowSchedule extends BaseObject implements Persistent $this->setDbShowId($value); break; case 2: + $this->setDbShowDay($value); + break; + case 3: + $this->setDbPosition($value); + break; + case 4: $this->setDbGroupId($value); break; } // switch() @@ -632,7 +772,9 @@ abstract class BaseCcShowSchedule extends BaseObject implements Persistent if (array_key_exists($keys[0], $arr)) $this->setDbId($arr[$keys[0]]); if (array_key_exists($keys[1], $arr)) $this->setDbShowId($arr[$keys[1]]); - if (array_key_exists($keys[2], $arr)) $this->setDbGroupId($arr[$keys[2]]); + if (array_key_exists($keys[2], $arr)) $this->setDbShowDay($arr[$keys[2]]); + if (array_key_exists($keys[3], $arr)) $this->setDbPosition($arr[$keys[3]]); + if (array_key_exists($keys[4], $arr)) $this->setDbGroupId($arr[$keys[4]]); } /** @@ -646,6 +788,8 @@ abstract class BaseCcShowSchedule extends BaseObject implements Persistent if ($this->isColumnModified(CcShowSchedulePeer::ID)) $criteria->add(CcShowSchedulePeer::ID, $this->id); if ($this->isColumnModified(CcShowSchedulePeer::SHOW_ID)) $criteria->add(CcShowSchedulePeer::SHOW_ID, $this->show_id); + if ($this->isColumnModified(CcShowSchedulePeer::SHOW_DAY)) $criteria->add(CcShowSchedulePeer::SHOW_DAY, $this->show_day); + if ($this->isColumnModified(CcShowSchedulePeer::POSITION)) $criteria->add(CcShowSchedulePeer::POSITION, $this->position); if ($this->isColumnModified(CcShowSchedulePeer::GROUP_ID)) $criteria->add(CcShowSchedulePeer::GROUP_ID, $this->group_id); return $criteria; @@ -709,6 +853,8 @@ abstract class BaseCcShowSchedule extends BaseObject implements Persistent public function copyInto($copyObj, $deepCopy = false) { $copyObj->setDbShowId($this->show_id); + $copyObj->setDbShowDay($this->show_day); + $copyObj->setDbPosition($this->position); $copyObj->setDbGroupId($this->group_id); $copyObj->setNew(true); @@ -809,6 +955,8 @@ abstract class BaseCcShowSchedule extends BaseObject implements Persistent { $this->id = null; $this->show_id = null; + $this->show_day = null; + $this->position = null; $this->group_id = null; $this->alreadyInSave = false; $this->alreadyInValidation = false; diff --git a/application/models/campcaster/om/BaseCcShowSchedulePeer.php b/application/models/campcaster/om/BaseCcShowSchedulePeer.php index 966cf400e..83f2f63d6 100644 --- a/application/models/campcaster/om/BaseCcShowSchedulePeer.php +++ b/application/models/campcaster/om/BaseCcShowSchedulePeer.php @@ -26,7 +26,7 @@ abstract class BaseCcShowSchedulePeer { const TM_CLASS = 'CcShowScheduleTableMap'; /** The total number of columns. */ - const NUM_COLUMNS = 3; + const NUM_COLUMNS = 5; /** The number of lazy-loaded columns. */ const NUM_LAZY_LOAD_COLUMNS = 0; @@ -37,6 +37,12 @@ abstract class BaseCcShowSchedulePeer { /** the column name for the SHOW_ID field */ const SHOW_ID = 'cc_show_schedule.SHOW_ID'; + /** the column name for the SHOW_DAY field */ + const SHOW_DAY = 'cc_show_schedule.SHOW_DAY'; + + /** the column name for the POSITION field */ + const POSITION = 'cc_show_schedule.POSITION'; + /** the column name for the GROUP_ID field */ const GROUP_ID = 'cc_show_schedule.GROUP_ID'; @@ -56,12 +62,12 @@ abstract class BaseCcShowSchedulePeer { * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' */ private static $fieldNames = array ( - BasePeer::TYPE_PHPNAME => array ('DbId', 'DbShowId', 'DbGroupId', ), - BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbShowId', 'dbGroupId', ), - BasePeer::TYPE_COLNAME => array (self::ID, self::SHOW_ID, self::GROUP_ID, ), - BasePeer::TYPE_RAW_COLNAME => array ('ID', 'SHOW_ID', 'GROUP_ID', ), - BasePeer::TYPE_FIELDNAME => array ('id', 'show_id', 'group_id', ), - BasePeer::TYPE_NUM => array (0, 1, 2, ) + BasePeer::TYPE_PHPNAME => array ('DbId', 'DbShowId', 'DbShowDay', 'DbPosition', 'DbGroupId', ), + BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbShowId', 'dbShowDay', 'dbPosition', 'dbGroupId', ), + BasePeer::TYPE_COLNAME => array (self::ID, self::SHOW_ID, self::SHOW_DAY, self::POSITION, self::GROUP_ID, ), + BasePeer::TYPE_RAW_COLNAME => array ('ID', 'SHOW_ID', 'SHOW_DAY', 'POSITION', 'GROUP_ID', ), + BasePeer::TYPE_FIELDNAME => array ('id', 'show_id', 'show_day', 'position', 'group_id', ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, ) ); /** @@ -71,12 +77,12 @@ abstract class BaseCcShowSchedulePeer { * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 */ private static $fieldKeys = array ( - BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbShowId' => 1, 'DbGroupId' => 2, ), - BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbShowId' => 1, 'dbGroupId' => 2, ), - BasePeer::TYPE_COLNAME => array (self::ID => 0, self::SHOW_ID => 1, self::GROUP_ID => 2, ), - BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'SHOW_ID' => 1, 'GROUP_ID' => 2, ), - BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'show_id' => 1, 'group_id' => 2, ), - BasePeer::TYPE_NUM => array (0, 1, 2, ) + BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbShowId' => 1, 'DbShowDay' => 2, 'DbPosition' => 3, 'DbGroupId' => 4, ), + BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbShowId' => 1, 'dbShowDay' => 2, 'dbPosition' => 3, 'dbGroupId' => 4, ), + BasePeer::TYPE_COLNAME => array (self::ID => 0, self::SHOW_ID => 1, self::SHOW_DAY => 2, self::POSITION => 3, self::GROUP_ID => 4, ), + BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'SHOW_ID' => 1, 'SHOW_DAY' => 2, 'POSITION' => 3, 'GROUP_ID' => 4, ), + BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'show_id' => 1, 'show_day' => 2, 'position' => 3, 'group_id' => 4, ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, ) ); /** @@ -150,10 +156,14 @@ abstract class BaseCcShowSchedulePeer { if (null === $alias) { $criteria->addSelectColumn(CcShowSchedulePeer::ID); $criteria->addSelectColumn(CcShowSchedulePeer::SHOW_ID); + $criteria->addSelectColumn(CcShowSchedulePeer::SHOW_DAY); + $criteria->addSelectColumn(CcShowSchedulePeer::POSITION); $criteria->addSelectColumn(CcShowSchedulePeer::GROUP_ID); } else { $criteria->addSelectColumn($alias . '.ID'); $criteria->addSelectColumn($alias . '.SHOW_ID'); + $criteria->addSelectColumn($alias . '.SHOW_DAY'); + $criteria->addSelectColumn($alias . '.POSITION'); $criteria->addSelectColumn($alias . '.GROUP_ID'); } } diff --git a/application/models/campcaster/om/BaseCcShowScheduleQuery.php b/application/models/campcaster/om/BaseCcShowScheduleQuery.php index c2e4db1ca..cd64bba1d 100644 --- a/application/models/campcaster/om/BaseCcShowScheduleQuery.php +++ b/application/models/campcaster/om/BaseCcShowScheduleQuery.php @@ -8,10 +8,14 @@ * * @method CcShowScheduleQuery orderByDbId($order = Criteria::ASC) Order by the id column * @method CcShowScheduleQuery orderByDbShowId($order = Criteria::ASC) Order by the show_id column + * @method CcShowScheduleQuery orderByDbShowDay($order = Criteria::ASC) Order by the show_day column + * @method CcShowScheduleQuery orderByDbPosition($order = Criteria::ASC) Order by the position column * @method CcShowScheduleQuery orderByDbGroupId($order = Criteria::ASC) Order by the group_id column * * @method CcShowScheduleQuery groupByDbId() Group by the id column * @method CcShowScheduleQuery groupByDbShowId() Group by the show_id column + * @method CcShowScheduleQuery groupByDbShowDay() Group by the show_day column + * @method CcShowScheduleQuery groupByDbPosition() Group by the position column * @method CcShowScheduleQuery groupByDbGroupId() Group by the group_id column * * @method CcShowScheduleQuery leftJoin($relation) Adds a LEFT JOIN clause to the query @@ -27,10 +31,14 @@ * * @method CcShowSchedule findOneByDbId(int $id) Return the first CcShowSchedule filtered by the id column * @method CcShowSchedule findOneByDbShowId(int $show_id) Return the first CcShowSchedule filtered by the show_id column + * @method CcShowSchedule findOneByDbShowDay(string $show_day) Return the first CcShowSchedule filtered by the show_day column + * @method CcShowSchedule findOneByDbPosition(int $position) Return the first CcShowSchedule filtered by the position column * @method CcShowSchedule findOneByDbGroupId(int $group_id) Return the first CcShowSchedule filtered by the group_id column * * @method array findByDbId(int $id) Return CcShowSchedule objects filtered by the id column * @method array findByDbShowId(int $show_id) Return CcShowSchedule objects filtered by the show_id column + * @method array findByDbShowDay(string $show_day) Return CcShowSchedule objects filtered by the show_day column + * @method array findByDbPosition(int $position) Return CcShowSchedule objects filtered by the position column * @method array findByDbGroupId(int $group_id) Return CcShowSchedule objects filtered by the group_id column * * @package propel.generator.campcaster.om @@ -189,6 +197,68 @@ abstract class BaseCcShowScheduleQuery extends ModelCriteria return $this->addUsingAlias(CcShowSchedulePeer::SHOW_ID, $dbShowId, $comparison); } + /** + * Filter the query on the show_day column + * + * @param string|array $dbShowDay The value to use as filter. + * Accepts an associative array('min' => $minValue, 'max' => $maxValue) + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return CcShowScheduleQuery The current query, for fluid interface + */ + public function filterByDbShowDay($dbShowDay = null, $comparison = null) + { + if (is_array($dbShowDay)) { + $useMinMax = false; + if (isset($dbShowDay['min'])) { + $this->addUsingAlias(CcShowSchedulePeer::SHOW_DAY, $dbShowDay['min'], Criteria::GREATER_EQUAL); + $useMinMax = true; + } + if (isset($dbShowDay['max'])) { + $this->addUsingAlias(CcShowSchedulePeer::SHOW_DAY, $dbShowDay['max'], Criteria::LESS_EQUAL); + $useMinMax = true; + } + if ($useMinMax) { + return $this; + } + if (null === $comparison) { + $comparison = Criteria::IN; + } + } + return $this->addUsingAlias(CcShowSchedulePeer::SHOW_DAY, $dbShowDay, $comparison); + } + + /** + * Filter the query on the position column + * + * @param int|array $dbPosition The value to use as filter. + * Accepts an associative array('min' => $minValue, 'max' => $maxValue) + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return CcShowScheduleQuery The current query, for fluid interface + */ + public function filterByDbPosition($dbPosition = null, $comparison = null) + { + if (is_array($dbPosition)) { + $useMinMax = false; + if (isset($dbPosition['min'])) { + $this->addUsingAlias(CcShowSchedulePeer::POSITION, $dbPosition['min'], Criteria::GREATER_EQUAL); + $useMinMax = true; + } + if (isset($dbPosition['max'])) { + $this->addUsingAlias(CcShowSchedulePeer::POSITION, $dbPosition['max'], Criteria::LESS_EQUAL); + $useMinMax = true; + } + if ($useMinMax) { + return $this; + } + if (null === $comparison) { + $comparison = Criteria::IN; + } + } + return $this->addUsingAlias(CcShowSchedulePeer::POSITION, $dbPosition, $comparison); + } + /** * Filter the query on the group_id column * diff --git a/build/sql/schema.sql b/build/sql/schema.sql index ea794a500..d8d18744d 100644 --- a/build/sql/schema.sql +++ b/build/sql/schema.sql @@ -224,6 +224,8 @@ CREATE TABLE "cc_show_schedule" ( "id" serial NOT NULL, "show_id" INTEGER NOT NULL, + "show_day" DATE NOT NULL, + "position" INTEGER, "group_id" INTEGER NOT NULL, PRIMARY KEY ("id") ); From fb7b56b2c3952befce6a49f9c39516f2f598c1e3 Mon Sep 17 00:00:00 2001 From: mkonecny Date: Thu, 6 Jan 2011 17:07:45 -0500 Subject: [PATCH 22/22] -synchronize --- application/Bootstrap.php | 2 ++ application/controllers/ScheduleController.php | 3 +-- application/layouts/scripts/layout.phtml | 14 ++++++++++++-- .../views/scripts/schedule/view-playlist.phtml | 4 ++-- public/js/playlist/playlist.js | 1 - pypo/tests/airtime-schedule-insert.php | 2 +- 6 files changed, 18 insertions(+), 8 deletions(-) diff --git a/application/Bootstrap.php b/application/Bootstrap.php index 43d6f69a0..a2b759a9d 100644 --- a/application/Bootstrap.php +++ b/application/Bootstrap.php @@ -53,6 +53,8 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap $view = $this->getResource('view'); $view->headScript()->appendFile('/js/libs/jquery-1.4.4.min.js','text/javascript'); $view->headScript()->appendFile('/js/libs/jquery-ui-1.8.7.custom.min.js','text/javascript'); + $view->headScript()->appendFile('/js/playlist/playlist.js','text/javascript'); + $view->headScript()->appendFile('/js/progressbar/jquery.progressbar.min.js','text/javascript'); } } diff --git a/application/controllers/ScheduleController.php b/application/controllers/ScheduleController.php index c307f24ad..ec1aab5ac 100644 --- a/application/controllers/ScheduleController.php +++ b/application/controllers/ScheduleController.php @@ -177,8 +177,7 @@ class ScheduleController extends Zend_Controller_Action public function viewPlaylistAction() { - $this->view->headScript()->appendFile('/js/playlist/playlist.js','text/javascript'); - $this->view->headScript()->appendFile('/js/progressbar/jquery.progressbar.min.js','text/javascript'); + //TODO: insert code for datagrid } public function getCurrentPlaylistAction() diff --git a/application/layouts/scripts/layout.phtml b/application/layouts/scripts/layout.phtml index 8d6683b57..d9d756fec 100644 --- a/application/layouts/scripts/layout.phtml +++ b/application/layouts/scripts/layout.phtml @@ -11,7 +11,17 @@ -
    layout()->content ?>
    - +
    layout()->content ?>
    +
    +
     
    +
    Show:
    Playlist:
    Host:
    +
    Previous:
    Current:
    Upcoming:
    +
    +
    + diff --git a/application/views/scripts/schedule/view-playlist.phtml b/application/views/scripts/schedule/view-playlist.phtml index 49ba61b1c..51580a791 100644 --- a/application/views/scripts/schedule/view-playlist.phtml +++ b/application/views/scripts/schedule/view-playlist.phtml @@ -2,8 +2,8 @@ -
    +
    diff --git a/public/js/playlist/playlist.js b/public/js/playlist/playlist.js index 55f6681fd..bddca6f60 100644 --- a/public/js/playlist/playlist.js +++ b/public/js/playlist/playlist.js @@ -21,7 +21,6 @@ $(cc.currentElem).append(prevDiv); var currParentDiv = document.createElement('div'); - currParentDiv.setAttribute("style", "background-color:#bbbbbb;"); $(cc.currentElem).append(currParentDiv); var currDiv = document.createElement('div'); diff --git a/pypo/tests/airtime-schedule-insert.php b/pypo/tests/airtime-schedule-insert.php index a9d5767da..b480e0d43 100644 --- a/pypo/tests/airtime-schedule-insert.php +++ b/pypo/tests/airtime-schedule-insert.php @@ -66,7 +66,7 @@ if (is_null($mediaFile)) { } $pl->addAudioClip($mediaFile->getId()); -$mediaFile = StoredFile::findByOriginalName("Peter Rudenko - Opening.mp3"); +$mediaFile = StoredFile::findByOriginalName("Peter_Rudenko_-_Opening.mp3"); if (is_null($mediaFile)) { echo "Adding test audio clip to the database.\n"; $v = array("filepath" => __DIR__."/../../audio_samples/OpSound/Peter Rudenko - Opening.mp3");