diff --git a/airtime_mvc/application/controllers/LocaleController.php b/airtime_mvc/application/controllers/LocaleController.php index 3843dc7c2..c20142f99 100644 --- a/airtime_mvc/application/controllers/LocaleController.php +++ b/airtime_mvc/application/controllers/LocaleController.php @@ -163,6 +163,8 @@ final class LocaleController extends Zend_Controller_Action "is greater than" => _("is greater than"), "is less than" => _("is less than"), "is in the range" => _("is in the range"), + "Preview" => _("Preview"), + "Generate" => _("Generate"), //preferences/musicdirs.js "Choose Storage Folder" => _("Choose Storage Folder"), "Choose Folder to Watch" => _("Choose Folder to Watch"), diff --git a/airtime_mvc/application/controllers/PlaylistController.php b/airtime_mvc/application/controllers/PlaylistController.php index 84848d301..4c63d73e5 100644 --- a/airtime_mvc/application/controllers/PlaylistController.php +++ b/airtime_mvc/application/controllers/PlaylistController.php @@ -57,18 +57,21 @@ class PlaylistController extends Zend_Controller_Action return $obj; } - private function createUpdateResponse($obj) + private function createUpdateResponse($obj, $formIsValid = false) { $formatter = new LengthFormatter($obj->getLength()); $this->view->length = $formatter->format(); $this->view->obj = $obj; $this->view->contents = $obj->getContents(); + if ($formIsValid) { + $this->view->poolCount = $obj->getListofFilesMeetCriteria()['count']; + } + $this->view->showPoolCount = true; $this->view->html = $this->view->render('playlist/update.phtml'); $this->view->name = $obj->getName(); $this->view->description = $obj->getDescription(); $this->view->modified = $obj->getLastModified("U"); - unset($this->view->obj); } @@ -99,7 +102,6 @@ class PlaylistController extends Zend_Controller_Action $form = new Application_Form_SmartBlockCriteria(); $form->removeDecorator('DtDdWrapper'); $form->startForm($obj->getId(), $formIsValid); - $this->view->form = $form; $this->view->obj = $obj; //$this->view->type = "sb"; @@ -555,8 +557,7 @@ class PlaylistController extends Zend_Controller_Action if ($form->isValid($params)) { $this->setPlaylistNameDescAction(); $bl->saveSmartBlockCriteria($params['data']); - - $this->createUpdateResponse($bl); + $this->createUpdateResponse($bl, true); $this->view->result = 0; /* $result['html'] = $this->createFullResponse($bl, true, true); @@ -599,7 +600,7 @@ class PlaylistController extends Zend_Controller_Action if ($form->isValid($params)) { $result = $bl->generateSmartBlock($params['data']); $this->view->result = $result['result']; - $this->createUpdateResponse($bl); + $this->createUpdateResponse($bl, true); #$this->_helper->json->sendJson(array("result"=>0, "html"=>$this->createFullResponse($bl, true, true))); } else { $this->view->obj = $bl; @@ -624,7 +625,7 @@ class PlaylistController extends Zend_Controller_Action $result = $bl->shuffleSmartBlock(); $this->view->result = $result["result"]; - $this->createUpdateResponse($bl); + $this->createUpdateResponse($bl,true); /* if ($result['result'] == 0) { @@ -652,7 +653,7 @@ class PlaylistController extends Zend_Controller_Action $result = $pl->shuffle(); $this->view->result = $result["result"]; - $this->createUpdateResponse($pl); + $this->createUpdateResponse($pl,true); /* if ($result['result'] == 0) { $this->_helper->json->sendJson(array( diff --git a/airtime_mvc/application/forms/SmartBlockCriteria.php b/airtime_mvc/application/forms/SmartBlockCriteria.php index 25070006b..b83a6e208 100644 --- a/airtime_mvc/application/forms/SmartBlockCriteria.php +++ b/airtime_mvc/application/forms/SmartBlockCriteria.php @@ -4,6 +4,8 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm private $criteriaOptions; private $stringCriteriaOptions; private $numericCriteriaOptions; + private $dateTimeCriteriaOptions; + private $timePeriodCriteriaOptions; private $sortOptions; private $limitOptions; @@ -24,9 +26,9 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm "description" => "s", "artist_name" => "s", "encoded_by" => "s", - "utime" => "n", - "mtime" => "n", - "lptime" => "n", + "utime" => "d", + "mtime" => "d", + "lptime" => "d", "genre" => "s", "isrc_number" => "s", "label" => "s", @@ -114,6 +116,43 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm return $this->numericCriteriaOptions; } + + private function getDateTimeCriteriaOptions() + { + if (!isset($this->dateTimeCriteriaOptions)) { + $this->dateTimeCriteriaOptions = array( + "0" => _("Select modifier"), + "before" => _("before"), + "after" => _("after"), + "between" => _("between"), + "is" => _("is"), + "is not" => _("is not"), + "is greater than" => _("is greater than"), + "is less than" => _("is less than"), + "is in the range" => _("is in the range") + ); + } + return $this->dateTimeCriteriaOptions; + } + + + private function getTimePeriodCriteriaOptions() + { + if (!isset($this->timePeriodCriteriaOptions)) { + $this->timePeriodCriteriaOptions = array( + "0" => _("Select unit of time"), + "minute" => _("minute(s)"), + "hour" => _("hour(s)"), + "day" => _("day(s)"), + "week" => _("week(s)"), + "month" => _("month(s)"), + "year" => _("year(s)") + ); + } + return $this->timePeriodCriteriaOptions; + } + + private function getLimitOptions() { if (!isset($this->limitOptions)) { @@ -154,19 +193,32 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm if (isset($criteria[$column])) { foreach ($criteria[$column] as &$constraint) { - - $constraint['value'] = - Application_Common_DateHelper::UTCStringToUserTimezoneString($constraint['value']); - - if (isset($constraint['extra'])) { - $constraint['extra'] = - Application_Common_DateHelper::UTCStringToUserTimezoneString($constraint['extra']); - } + // convert to appropriate timezone timestamps only if the modifier is not a relative time + if (!in_array($constraint['modifier'], array('before','after','between'))) { + $constraint['value'] = + Application_Common_DateHelper::UTCStringToUserTimezoneString($constraint['value']); + if (isset($constraint['extra'])) { + $constraint['extra'] = + Application_Common_DateHelper::UTCStringToUserTimezoneString($constraint['extra']); + } + } } } } } + /* + * This function takes a blockID as param and creates the data structure for the form displayed with the view + * smart-block-criteria.phtml + * + * A description of the dataflow. First it loads the block and determines if it is a static or dynamic smartblock. + * Next it adds a radio selector for static or dynamic type. + * Then it loads the criteria via the getCriteria() function, which returns an array for each criteria. + * + * + */ + + public function startForm($p_blockId, $p_isValid = false) { // load type @@ -204,20 +256,25 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm $openSmartBlockOption = true; } + // this returns a number indexed array for each criteria found in the database $criteriaKeys = array(); if (isset($storedCrit["crit"])) { $criteriaKeys = array_keys($storedCrit["crit"]); } $numElements = count($this->getCriteriaOptions()); + // loop through once for each potential criteria option ie album, composer, track + for ($i = 0; $i < $numElements; $i++) { $criteriaType = ""; + // if there is a criteria found then count the number of rows for this specific criteria ie > 1 track title if (isset($criteriaKeys[$i])) { $critCount = count($storedCrit["crit"][$criteriaKeys[$i]]); } else { $critCount = 1; } + // store the number of items with the same key in the ModRowMap $modRowMap[$i] = $critCount; /* Loop through all criteria with the same field @@ -225,6 +282,7 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm */ for ($j = 0; $j < $critCount; $j++) { /****************** CRITERIA ***********/ + // hide the criteria drop down select on any rows after the first if ($j > 0) { $invisible = ' sp-invisible'; } else { @@ -236,17 +294,23 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm ->setValue('Select criteria') ->setDecorators(array('viewHelper')) ->setMultiOptions($this->getCriteriaOptions()); + // if this isn't the first criteria and there isn't an entry for it already disable it if ($i != 0 && !isset($criteriaKeys[$i])) { $criteria->setAttrib('disabled', 'disabled'); } - + // add the numbering to the form ie the i loop for each specific criteria and + // the j loop starts at 0 and grows for each item matching the same criteria + // look up the criteria type using the criteriaTypes function from above based upon the criteria value if (isset($criteriaKeys[$i])) { $criteriaType = $this->criteriaTypes[$storedCrit["crit"][$criteriaKeys[$i]][$j]["criteria"]]; $criteria->setValue($storedCrit["crit"][$criteriaKeys[$i]][$j]["criteria"]); } $this->addElement($criteria); + /****************** MODIFIER ***********/ + // every element has an optional modifier dropdown select + $criteriaModifers = new Zend_Form_Element_Select("sp_criteria_modifier_".$i."_".$j); $criteriaModifers->setValue('Select modifier') ->setAttrib('class', 'input_select sp_input_select') @@ -254,10 +318,15 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm if ($i != 0 && !isset($criteriaKeys[$i])) { $criteriaModifers->setAttrib('disabled', 'disabled'); } + // determine the modifier based upon criteria type which is looked up based upon an array if (isset($criteriaKeys[$i])) { if ($criteriaType == "s") { $criteriaModifers->setMultiOptions($this->getStringCriteriaOptions()); - } else { + } + elseif ($criteriaType == "d") { + $criteriaModifers->setMultiOptions($this->getDateTimeCriteriaOptions()); + } + else { $criteriaModifers->setMultiOptions($this->getNumericCriteriaOptions()); } $criteriaModifers->setValue($storedCrit["crit"][$criteriaKeys[$i]][$j]["modifier"]); @@ -267,6 +336,7 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm $this->addElement($criteriaModifers); /****************** VALUE ***********/ + /* The challenge here is that datetime */ $criteriaValue = new Zend_Form_Element_Text("sp_criteria_value_".$i."_".$j); $criteriaValue->setAttrib('class', 'input_text sp_input_text') ->setDecorators(array('viewHelper')); @@ -274,22 +344,96 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm $criteriaValue->setAttrib('disabled', 'disabled'); } if (isset($criteriaKeys[$i])) { - $criteriaValue->setValue($storedCrit["crit"][$criteriaKeys[$i]][$j]["value"]); + /* + * Need to parse relative dates in a special way to populate select box down below + */ + // this is used below to test whether the datetime select should be shown or hidden + $relativeDateTime = false; + $modifierTest = (string)$storedCrit["crit"][$criteriaKeys[$i]][$j]["modifier"]; + if(isset($criteriaType) && $criteriaType == "d" && + preg_match('/before|after|between/', $modifierTest) == 1) { + // set relativeDatetime boolean to true so that the datetime select is displayed below + $relativeDateTime = true; + // the criteria value will be a number followed by time unit and ago so set input to number part + $criteriaValue->setValue(filter_var($storedCrit["crit"][$criteriaKeys[$i]][$j]["value"], FILTER_SANITIZE_NUMBER_INT)); + } else { + $criteriaValue->setValue($storedCrit["crit"][$criteriaKeys[$i]][$j]["value"]); + } } $this->addElement($criteriaValue); + + /****************** DATETIME SELECT *************/ + $criteriaDatetimeSelect = new Zend_Form_Element_Select("sp_criteria_datetime_select_".$i."_".$j); + $criteriaDatetimeSelect->setAttrib('class','input_select sp_input_select') + ->setDecorators(array('viewHelper')); + if (isset($criteriaKeys[$i]) && $relativeDateTime) { + $criteriaDatetimeSelect->setAttrib('enabled', 'enabled'); + } + else { + $criteriaDatetimeSelect->setAttrib('disabled', 'disabled'); + } + // check if the value is stored and it is a relative datetime field + if (isset($criteriaKeys[$i]) && isset($storedCrit["crit"][$criteriaKeys[$i]][$j]["value"]) + && isset($criteriaType) && $criteriaType == "d" && + preg_match('/before|after|between/', $modifierTest) == 1) { + // need to remove any leading numbers stored in the database + $dateTimeSelectValue = preg_replace('/[0-9]+/', '', $storedCrit["crit"][$criteriaKeys[$i]][$j]["value"]); + // need to strip white from front and ago from the end to match with the value of the time unit select dropdown + $dateTimeSelectValue = trim(preg_replace('/\W\w+\s*(\W*)$/', '$1', $dateTimeSelectValue)); + $criteriaDatetimeSelect->setMultiOptions($this->getTimePeriodCriteriaOptions()); + $criteriaDatetimeSelect->setValue($dateTimeSelectValue); + $criteriaDatetimeSelect->setAttrib('enabled', 'enabled'); + } + else { + $criteriaDatetimeSelect->setMultiOptions(array('0' => _('Select unit of time'))); + $criteriaDatetimeSelect->setMultiOptions($this->getTimePeriodCriteriaOptions()); + + } + + $this->addElement($criteriaDatetimeSelect); + /****************** EXTRA ***********/ $criteriaExtra = new Zend_Form_Element_Text("sp_criteria_extra_".$i."_".$j); $criteriaExtra->setAttrib('class', 'input_text sp_extra_input_text') ->setDecorators(array('viewHelper')); if (isset($criteriaKeys[$i]) && isset($storedCrit["crit"][$criteriaKeys[$i]][$j]["extra"])) { - $criteriaExtra->setValue($storedCrit["crit"][$criteriaKeys[$i]][$j]["extra"]); + // need to check if this is a relative date time value + if(isset($criteriaType) && $criteriaType == "d" && $modifierTest == 'between') { + // the criteria value will be a number followed by time unit and ago so set input to number part + $criteriaExtra->setValue(filter_var($storedCrit["crit"][$criteriaKeys[$i]][$j]["extra"], FILTER_SANITIZE_NUMBER_INT)); + } + else { + $criteriaExtra->setValue($storedCrit["crit"][$criteriaKeys[$i]][$j]["extra"]); + } $criteriaValue->setAttrib('class', 'input_text sp_extra_input_text'); } else { $criteriaExtra->setAttrib('disabled', 'disabled'); } $this->addElement($criteriaExtra); + /****************** DATETIME SELECT EXTRA **********/ + $criteriaExtraDatetimeSelect = new Zend_Form_Element_Select("sp_criteria_extra_datetime_select_".$i."_".$j); + $criteriaExtraDatetimeSelect->setAttrib('class','input_select sp_input_select') + ->setDecorators(array('viewHelper')); + + if (isset($criteriaKeys[$i]) && isset($storedCrit["crit"][$criteriaKeys[$i]][$j]["extra"]) + && $modifierTest == 'between') { + // need to remove the leading numbers stored in the database + $extraDateTimeSelectValue = preg_replace('/[0-9]+/', '', $storedCrit["crit"][$criteriaKeys[$i]][$j]["extra"]); + // need to strip white from front and ago from the end to match with the value of the time unit select dropdown + $extraDateTimeSelectValue = trim(preg_replace('/\W\w+\s*(\W*)$/', '$1', $extraDateTimeSelectValue)); + $criteriaExtraDatetimeSelect->setMultiOptions($this->getTimePeriodCriteriaOptions()); + // Logging::info('THIS IS-'.$extraDateTimeSelectValue.'-IT'); + $criteriaExtraDatetimeSelect->setValue($extraDateTimeSelectValue); + $criteriaExtraDatetimeSelect->setAttrib('enabled', 'enabled'); + + } else { + $criteriaExtraDatetimeSelect->setMultiOptions(array('0' => _('Select unit of time'))); + $criteriaExtraDatetimeSelect->setMultiOptions($this->getTimePeriodCriteriaOptions()); + $criteriaExtraDatetimeSelect->setAttrib('disabled', 'disabled'); + } + $this->addElement($criteriaExtraDatetimeSelect); }//for }//for @@ -347,7 +491,12 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm $generate->setAttrib('class', 'sp-button btn'); $generate->setAttrib('title', _('Generate playlist content and save criteria')); $generate->setIgnore(true); - $generate->setLabel(_('Generate')); + if ($blockType == 0) { + $generate->setLabel(_('Generate')); + } + else { + $generate->setLabel(_('Preview')); + } $generate->setDecorators(array('viewHelper')); $this->addElement($generate); @@ -361,10 +510,15 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm $this->setDecorators(array( array('ViewScript', array('viewScript' => 'form/smart-block-criteria.phtml', "openOption"=> $openSmartBlockOption, - 'criteriasLength' => count($this->getCriteriaOptions()), 'poolCount' => $files['count'], 'modRowMap' => $modRowMap, - 'showPoolCount' => $showPoolCount)) + 'criteriasLength' => count($this->getCriteriaOptions()), 'modRowMap' => $modRowMap)) )); } + /* + * This is a simple function that determines if a modValue should enable a datetime + */ + public function enableDateTimeUnit($modValue) { + return (preg_match('/before|after|between/', $modValue) == 1); + } public function preValidation($params) { @@ -390,12 +544,23 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm $eleMod->setMultiOptions($this->getStringCriteriaOptions()); } elseif ($criteriaType == "n") { $eleMod->setMultiOptions($this->getNumericCriteriaOptions()); + } elseif ($criteriaType == "d") { + $eleMod->setMultiOptions($this->getDateTimeCriteriaOptions()); } else { $eleMod->setMultiOptions(array('0' => _('Select modifier'))); } $eleMod->setValue($modInfo['sp_criteria_modifier']); $eleMod->setAttrib("disabled", null); + $eleDatetime = $this->getElement("sp_criteria_datetime_select_".$critKey."_".$modKey); + if ($this->enableDateTimeUnit($eleMod->getValue())) { + $eleDatetime->setAttrib("enabled", "enabled"); + $eleDatetime->setValue($modInfo['sp_criteria_datetime_select']); + $eleDatetime->setAttrib("disabled", null); + } + else { + $eleDatetime->setAttrib("disabled","disabled"); + } $eleValue = $this->getElement("sp_criteria_value_".$critKey."_".$modKey); $eleValue->setValue($modInfo['sp_criteria_value']); $eleValue->setAttrib("disabled", null); @@ -406,6 +571,15 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm $eleValue->setAttrib('class', 'input_text sp_extra_input_text'); $eleExtra->setAttrib("disabled", null); } + $eleExtraDatetime = $this->getElement("sp_criteria_extra_datetime_select_".$critKey."_".$modKey); + if ($eleMod->getValue() == 'between') { + $eleExtraDatetime->setAttrib("enabled", "enabled"); + $eleExtraDatetime->setValue($modInfo['sp_criteria_extra_datetime_select']); + $eleExtraDatetime->setAttrib("disabled", null); + } + else { + $eleExtraDatetime->setAttrib("disabled","disabled"); + } } else { $criteria = new Zend_Form_Element_Select("sp_criteria_field_".$critKey."_".$modKey); @@ -428,6 +602,9 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm $criteriaModifers->setMultiOptions($this->getStringCriteriaOptions()); } elseif ($criteriaType == "n") { $criteriaModifers->setMultiOptions($this->getNumericCriteriaOptions()); + } + elseif ($criteriaType == "d") { + $criteriaModifers->setMultiOptions($this->getDateTimeCriteriaOptions()); } else { $criteriaModifers->setMultiOptions(array('0' => _('Select modifier'))); } @@ -440,7 +617,20 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm ->setDecorators(array('viewHelper')); $criteriaValue->setValue($modInfo['sp_criteria_value']); $this->addElement($criteriaValue); + /****************** DATETIME UNIT SELECT ***********/ + $criteriaDatetimeSelect = new Zend_Form_Element_Select("sp_criteria_datetime_select_".$critKey."_".$modKey); + $criteriaDatetimeSelect->setAttrib('class','input_select sp_input_select') + ->setDecorators(array('viewHelper')); + if ($this->enableDateTimeUnit($criteriaValue->getValue())) { + $criteriaDatetimeSelect->setAttrib('enabled', 'enabled'); + $criteriaDatetimeSelect->setAttrib('disabled', null); + $criteriaDatetimeSelect->setValue($modInfo['sp_criteria_datetime_select']); + $this->addElement($criteriaDatetimeSelect); + } + else { + $criteriaDatetimeSelect->setAttrib('disabled', 'disabled'); + } /****************** EXTRA ***********/ $criteriaExtra = new Zend_Form_Element_Text("sp_criteria_extra_".$critKey."_".$modKey); $criteriaExtra->setAttrib('class', 'input_text sp_extra_input_text') @@ -452,6 +642,21 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm $criteriaExtra->setAttrib('disabled', 'disabled'); } $this->addElement($criteriaExtra); + + /****************** EXTRA DATETIME UNIT SELECT ***********/ + + $criteriaExtraDatetimeSelect = new Zend_Form_Element_Select("sp_criteria_extra_datetime_select_".$critKey."_".$modKey); + $criteriaExtraDatetimeSelect->setAttrib('class','input_select sp_input_select') + ->setDecorators(array('viewHelper')); + if ($criteriaValue->getValue() == 'between') { + $criteriaExtraDatetimeSelect->setAttrib('enabled', 'enabled'); + $criteriaExtraDatetimeSelect->setAttrib('disabled', null); + $criteriaExtraDatetimeSelect->setValue($modInfo['sp_criteria_extra_datetime_select']); + $this->addElement($criteriaExtraDatetimeSelect); + } + else { + $criteriaExtraDatetimeSelect->setAttrib('disabled', 'disabled'); + } $count++; } } @@ -473,6 +678,7 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm $this->populate($formData); + // Logging::info($formData); return $data; } @@ -565,25 +771,26 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm $element->addError(_("'Length' should be in '00:00:00' format")); $isValid = false; } + // this looks up the column type for the criteria the modified time, upload time etc. } elseif ($column->getType() == PropelColumnTypes::TIMESTAMP) { - if (!preg_match("/(\d{4})-(\d{2})-(\d{2})/", $d['sp_criteria_value'])) { - $element->addError(_("The value should be in timestamp format (e.g. 0000-00-00 or 0000-00-00 00:00:00)")); - $isValid = false; - } else { - $result = Application_Common_DateHelper::checkDateTimeRangeForSQL($d['sp_criteria_value']); - if (!$result["success"]) { - // check for if it is in valid range( 1753-01-01 ~ 12/31/9999 ) - $element->addError($result["errMsg"]); + // need to check for relative modifiers first - bypassing currently + if (in_array($d['sp_criteria_modifier'], array('before','after','between'))) { + if (!preg_match("/^[1-9][0-9]*$|0/",$d['sp_criteria_value'])) { + $element->addError(_("Only non-negative integer numbers are allowed (e.g 1 or 5) for the text value")); + $isValid = false; + // TODO validate this on numeric input with whatever parsing also do for extra + //if the modifier is before ago or between we skip validation until we confirm format + } + elseif (isSet($d['sp_criteria_datetime_select']) && $d['sp_criteria_datetime_select'] == "0") { + $element->addError(_("You must select a time unit for a relative datetime.")); $isValid = false; } - } - - if (isset($d['sp_criteria_extra'])) { - if (!preg_match("/(\d{4})-(\d{2})-(\d{2})/", $d['sp_criteria_extra'])) { + } else { + if (!preg_match("/(\d{4})-(\d{2})-(\d{2})/", $d['sp_criteria_value'])) { $element->addError(_("The value should be in timestamp format (e.g. 0000-00-00 or 0000-00-00 00:00:00)")); $isValid = false; } else { - $result = Application_Common_DateHelper::checkDateTimeRangeForSQL($d['sp_criteria_extra']); + $result = Application_Common_DateHelper::checkDateTimeRangeForSQL($d['sp_criteria_value']); if (!$result["success"]) { // check for if it is in valid range( 1753-01-01 ~ 12/31/9999 ) $element->addError($result["errMsg"]); @@ -591,6 +798,33 @@ class Application_Form_SmartBlockCriteria extends Zend_Form_SubForm } } } + if (isset($d['sp_criteria_extra'])) { + if ($d['sp_criteria_modifier'] == 'between') { + // validate that the input value only contains a number if using relative date times + if (!preg_match("/^[1-9][0-9]*$|0/",$d['sp_criteria_extra'])) { + $element->addError(_("Only non-negative integer numbers are allowed for a relative date time")); + $isValid = false; + } + // also need to check to make sure they chose a time unit from the dropdown + elseif ($d['sp_criteria_extra_datetime_select'] == "0") { + $element->addError(_("You must select a time unit for a relative datetime.")); + $isValid = false; + } + } + else { + if (!preg_match("/(\d{4})-(\d{2})-(\d{2})/", $d['sp_criteria_extra'])) { + $element->addError(_("The value should be in timestamp format (e.g. 0000-00-00 or 0000-00-00 00:00:00)")); + $isValid = false; + } else { + $result = Application_Common_DateHelper::checkDateTimeRangeForSQL($d['sp_criteria_extra']); + if (!$result["success"]) { + // check for if it is in valid range( 1753-01-01 ~ 12/31/9999 ) + $element->addError($result["errMsg"]); + $isValid = false; + } + } + } + } } elseif ($column->getType() == PropelColumnTypes::INTEGER && $d['sp_criteria_field'] != 'owner_id') { if (!is_numeric($d['sp_criteria_value'])) { diff --git a/airtime_mvc/application/models/Block.php b/airtime_mvc/application/models/Block.php index d07a636f0..37bc92341 100644 --- a/airtime_mvc/application/models/Block.php +++ b/airtime_mvc/application/models/Block.php @@ -51,7 +51,10 @@ class Application_Model_Block implements Application_Model_LibraryEditable "ends with" => Criteria::ILIKE, "is greater than" => Criteria::GREATER_THAN, "is less than" => Criteria::LESS_THAN, - "is in the range" => Criteria::CUSTOM); + "is in the range" => Criteria::CUSTOM, + "before" => Criteria::CUSTOM, + "after" => Criteria::CUSTOM, + "between" => Criteria::CUSTOM); private static $criteria2PeerMap = array( 0 => "Select criteria", @@ -179,7 +182,7 @@ class Application_Model_Block implements Application_Model_LibraryEditable } /** - * Get the entire block as a two dimentional array, sorted in order of play. + * Get the entire block as a two dimensional array, sorted in order of play. * @param boolean $filterFiles if this is true, it will only return files that has * file_exists flag set to true * @return array @@ -273,7 +276,7 @@ SQL; /** * The database stores fades in 00:00:00 Time format with optional millisecond resolution .000000 - * but this isn't practical since fades shouldn't be very long usuall 1 second or less. This function + * but this isn't practical since fades shouldn't be very long usually 1 second or less. This function * will normalize the fade so that it looks like 00.000000 to the user. **/ public function normalizeFade($fade) @@ -1188,18 +1191,30 @@ SQL; { // delete criteria under $p_blockId CcBlockcriteriaQuery::create()->findByDbBlockId($this->id)->delete(); - //Logging::info($p_criteriaData); + // Logging::info($p_criteriaData); //insert modifier rows if (isset($p_criteriaData['criteria'])) { $critKeys = array_keys($p_criteriaData['criteria']); for ($i = 0; $i < count($critKeys); $i++) { foreach ($p_criteriaData['criteria'][$critKeys[$i]] as $d) { - + // Logging::info($d); $field = $d['sp_criteria_field']; $value = $d['sp_criteria_value']; + $modifier = $d['sp_criteria_modifier']; + if (isset($d['sp_criteria_extra'])) { $extra = $d['sp_criteria_extra']; } + if (isset($d['sp_criteria_datetime_select'])) { $datetimeunit = $d['sp_criteria_datetime_select']; } + if (isset($d['sp_criteria_extra_datetime_select'])) {$extradatetimeunit = $d['sp_criteria_extra_datetime_select'];} if ($field == 'utime' || $field == 'mtime' || $field == 'lptime') { - $value = Application_Common_DateHelper::UserTimezoneStringToUTCString($value); + // if the date isn't relative we want to convert the value to a specific UTC date + if (!(in_array($modifier,array('before','after','between')))) { + $value = Application_Common_DateHelper::UserTimezoneStringToUTCString($value); + } + else { + $value = $value . ' ' . $datetimeunit . ' ago'; + // Logging::info($value); + + } } $qry = new CcBlockcriteria(); @@ -1211,10 +1226,17 @@ SQL; if (isset($d['sp_criteria_extra'])) { if ($field == 'utime' || $field == 'mtime' || $field == 'lptime') { - $d['sp_criteria_extra'] = Application_Common_DateHelper::UserTimezoneStringToUTCString($d['sp_criteria_extra']); + // if the date isn't relative we want to convert the value to a specific UTC date + if (!(in_array($modifier,array('before','after','between')))) { + $extra = Application_Common_DateHelper::UserTimezoneStringToUTCString($extra); + } + else { + $extra = $extra . ' ' . $extradatetimeunit. ' ago'; + } + } - $qry->setDbExtra($d['sp_criteria_extra']); + $qry->setDbExtra($extra); } $qry->save(); } @@ -1250,7 +1272,7 @@ SQL; } /** - * generate list of tracks. This function saves creiteria and generate + * generate list of tracks. This function saves criteria and generate * tracks. * @param array $p_criteria */ @@ -1259,7 +1281,7 @@ SQL; $this->saveSmartBlockCriteria($p_criteria); $insertList = $this->getListOfFilesUnderLimit(); $this->deleteAllFilesFromBlock(); - // constrcut id array + // construct id array $ids = array(); foreach ($insertList as $ele) { $ids[] = $ele['id']; @@ -1350,6 +1372,13 @@ SQL; return $insertList; } + /** + * Parses each row in the database for the criteria associated with this block and renders human readable labels. + * Returns it as an array with each criteria_name and modifier_name added based upon options array lookup. + * + */ + + public function getCriteria() { $criteriaOptions = array( @@ -1393,6 +1422,9 @@ SQL; "is not" => _("is not"), "starts with" => _("starts with"), "ends with" => _("ends with"), + "before" => _("before"), + "after" => _("after"), + "between" => _("between"), "is" => _("is"), "is not" => _("is not"), "is greater than" => _("is greater than"), @@ -1453,9 +1485,9 @@ SQL; //data should already be in UTC, do we have to do anything special here anymore? if ($column->getType() == PropelColumnTypes::TIMESTAMP) { - + $spCriteriaValue = $criteria['value']; - + if (isset($criteria['extra'])) { $spCriteriaExtra = $criteria['extra']; } @@ -1501,6 +1533,28 @@ SQL; } elseif ($spCriteriaModifier == "is in the range") { $spCriteriaValue = "$spCriteria >= '$spCriteriaValue' AND $spCriteria <= '$spCriteriaExtra'"; } + elseif ($spCriteriaModifier == "before") { + // need to pull in the current time and subtract the value or figure out how to make it relative + $relativedate = new DateTime($spCriteriaValue); + $dt = $relativedate->format(DateTime::ISO8601); + $spCriteriaValue = "$spCriteria <= '$dt'"; + // Logging::info($spCriteriaValue); + } + elseif ($spCriteriaModifier == "after") { + $relativedate = new DateTime($spCriteriaValue); + $dt = $relativedate->format(DateTime::ISO8601); + $spCriteriaValue = "$spCriteria >= '$dt'"; + // Logging::info($spCriteriaValue); + } elseif ($spCriteriaModifier == "between") { + $fromrelativedate = new DateTime($spCriteriaValue); + $fdt = $fromrelativedate->format(DateTime::ISO8601); + // Logging::info($fdt); + + $torelativedate = new DateTime($spCriteriaExtra); + $tdt = $torelativedate->format(DateTime::ISO8601); + // Logging::info($tdt); + $spCriteriaValue = "$spCriteria >= '$fdt' AND $spCriteria <= '$tdt'"; + } $spCriteriaModifier = self::$modifier2CriteriaMap[$spCriteriaModifier]; @@ -1574,7 +1628,7 @@ SQL; } public static function organizeSmartPlaylistCriteria($p_criteria) { - $fieldNames = array('sp_criteria_field', 'sp_criteria_modifier', 'sp_criteria_value', 'sp_criteria_extra'); + $fieldNames = array('sp_criteria_field', 'sp_criteria_modifier', 'sp_criteria_value', 'sp_criteria_extra', 'sp_criteria_datetime_select', 'sp_criteria_extra_datetime_select'); $output = array(); foreach ($p_criteria as $ele) { diff --git a/airtime_mvc/application/models/Show.php b/airtime_mvc/application/models/Show.php index d36949953..6a9539e65 100644 --- a/airtime_mvc/application/models/Show.php +++ b/airtime_mvc/application/models/Show.php @@ -1023,7 +1023,7 @@ SQL; $content_count = Application_Model_ShowInstance::getContentCount( $p_start, $p_end); $isFull = Application_Model_ShowInstance::getIsFull($p_start, $p_end); - + $hasAutoPlaylist = Application_Model_ShowInstance::getShowHasAutoplaylist($p_start, $p_end); $displayTimezone = new DateTimeZone(Application_Model_Preference::GetUserTimezone()); $utcTimezone = new DateTimeZone("UTC"); $now = new DateTime("now", $utcTimezone); @@ -1064,6 +1064,11 @@ SQL; } else { $options["show_partial_filled"] = true; } + if (array_key_exists($show['instance_id'], $hasAutoPlaylist)) { + $options["show_has_auto_playlist"] = true; + } else { + $options["show_has_auto_playlist"] = false; + } $event = array(); diff --git a/airtime_mvc/application/models/ShowInstance.php b/airtime_mvc/application/models/ShowInstance.php index bd6f8862e..3dddf80c8 100644 --- a/airtime_mvc/application/models/ShowInstance.php +++ b/airtime_mvc/application/models/ShowInstance.php @@ -237,8 +237,6 @@ SQL; $ts = intval($this->_showInstance->getDbLastScheduled("U")) ? : 0; $id = $this->_showInstance->getDbId(); $lastid = $this->getLastAudioItemId(); -// Logging::info("The last id is $lastid"); - $scheduler = new Application_Model_Scheduler($checkUserPerm); $scheduler->scheduleAfter( array(array("id" => $lastid, "instance" => $id, "timestamp" => $ts)), @@ -290,6 +288,7 @@ SQL; } private function checkToDeleteShow($showId) + { //UTC DateTime object $showsPopUntil = Application_Model_Preference::GetShowsPopulatedUntil(); @@ -556,6 +555,32 @@ SQL; return $isFilled; } + public static function getShowHasAutoplaylist($p_start, $p_end) + { + $con = Propel::getConnection(CcShowInstancesPeer::DATABASE_NAME); + $con->beginTransaction(); + try { + // query the show instances to find whether a show instance has an autoplaylist + $showInstances = CcShowInstancesQuery::create() + ->filterByDbEnds($p_end->format(DEFAULT_TIMESTAMP_FORMAT), Criteria::LESS_THAN) + ->filterByDbStarts($p_start->format(DEFAULT_TIMESTAMP_FORMAT), Criteria::GREATER_THAN) + ->leftJoinCcShow() + ->where('CcShow.has_autoplaylist = ?', 'true') + ->find($con); + $hasAutoplaylist = array(); + foreach ($showInstances->toArray() as $ap) { + $hasAutoplaylist[$ap['DbId']] = true; + } + return $hasAutoplaylist; + } + + catch (Exception $e) { + $con->rollback(); + Logging::info("Couldn't query show instances for calendar to find which had autoplaylists"); + Logging::info($e->getMessage()); + } + } + public function showEmpty() { $sql = << - criteriasLength; $i++) { + criteriasLength; $i++) { // modRowMap holds the number of modifier rows for each criteria element // i.e. if we have 'Album contains 1' and 'Album contains 2' the modRowMap // for Album is 2 @@ -93,13 +93,18 @@ echo 'style=display:none'; } ?> > element->getElement("sp_criteria_field_".$i."_".$j) ?> - element->getElement("sp_criteria_modifier_".$i."_".$j) ?> + element->getElement("sp_criteria_modifier_".$i."_".$j) /* @todo finish this */?> + element->getElement("sp_criteria_value_".$i."_".$j) ?> + element->getElement("sp_criteria_datetime_select_".$i."_".$j)->getAttrib("disabled") == "disabled"?'style="display:none;"':""?>>element->getElement('sp_criteria_datetime_select_'.$i."_".$j) ?> + element->getElement("sp_criteria_extra_".$i."_".$j)->getAttrib("disabled") == "disabled"?'style="display:none;"':""?>>element->getElement('sp_criteria_extra_'.$i."_".$j) ?> + element->getElement("sp_criteria_extra_datetime_select_".$i."_".$j)->getAttrib("disabled") == "disabled"?'style="display:none;"':""?>>element->getElement('sp_criteria_extra_datetime_select_'.$i."_".$j) ?> + @@ -119,35 +124,6 @@ - - showPoolCount) { ?> -
- - poolCount > 1) { - echo $this->poolCount; - ?> - - - - poolCount == 1) { - echo $this->poolCount; - ?> - - - - - 0 - - - -
- diff --git a/airtime_mvc/application/views/scripts/playlist/update.phtml b/airtime_mvc/application/views/scripts/playlist/update.phtml index f16cfa784..f9651e94e 100644 --- a/airtime_mvc/application/views/scripts/playlist/update.phtml +++ b/airtime_mvc/application/views/scripts/playlist/update.phtml @@ -1,9 +1,12 @@ contents; -$isStaticSmartBlock = ($this->obj instanceof Application_Model_Block && $this->obj->isStatic()); +$isSmartBlock = ($this->obj instanceof Application_Model_Block); $isPlaylist = ($this->obj instanceof Application_Model_Playlist); -if (count($items) && ($isStaticSmartBlock || $isPlaylist)) : ?> +if (count($items) && ($isSmartBlock || $isPlaylist)) : ?> +obj->isStatic())) { + echo _("
This is only a preview of possible content generated by the smart block based upon the above criteria.");} +?> partial('playlist/set-fade.phtml', $vars); + ?> diff --git a/airtime_mvc/locale/hu_HU/LC_MESSAGES/airtime.po b/airtime_mvc/locale/hu_HU/LC_MESSAGES/airtime.po index 3c9e53610..e4d49639d 100644 --- a/airtime_mvc/locale/hu_HU/LC_MESSAGES/airtime.po +++ b/airtime_mvc/locale/hu_HU/LC_MESSAGES/airtime.po @@ -3,24 +3,24 @@ # This file is distributed under the same license as the Airtime package. # # Translators: -# Zsolt Magyar , 2014 -# Zsolt Magyar , 2014 -# Sourcefabric , 2012 -# Zsolt Magyar , 2015 +# Zsolt Magyar , 2014. +# Sourcefabric , 2012. +# Zsolt Magyar , 2015. +# miles , 2017. msgid "" msgstr "" "Project-Id-Version: Airtime\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-03-24 16:23+0000\n" -"PO-Revision-Date: 2017-09-14 20:26+0200\n" +"PO-Revision-Date: 2017-12-10 12:41+0100\n" "Last-Translator: miles \n" -"Language-Team: Hungarian (Hungary) (http://www.transifex.com/sourcefabric/airtime/language/hu_HU/)\n" +"Language-Team: Hungarian <>\n" "Language: hu_HU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0.1\n" +"X-Generator: Lokalize 2.0\n" #: airtime_mvc/application/common/DateHelper.php:213 #, php-format @@ -587,48 +587,67 @@ msgstr "A lenti mezőben feltöltve lehet sávokat hozzáadni a saját könyvtá #: airtime_mvc/application/common/UsabilityHints.php:68 #, php-format -msgid "It looks like you haven't uploaded any audio files yet. %sUpload a file now%s." -msgstr "Úgy tűnik még nincsenek feltöltve audió fájlok. %sFájl feltöltése most%s." +msgid "" +"It looks like you haven't uploaded any audio files yet. %sUpload a file now%s." +msgstr "" +"Úgy tűnik még nincsenek feltöltve audió fájlok. %sFájl feltöltése most%s." #: airtime_mvc/application/common/UsabilityHints.php:74 msgid "Click the 'New Show' button and fill out the required fields." -msgstr "Kattintson az „Új műsor” gombra és töltse ki a kötelező mezőket!" +msgstr "\tKattintson az „Új műsor” gombra és töltse ki a kötelező mezőket!" #: airtime_mvc/application/common/UsabilityHints.php:76 #, php-format -msgid "It looks like you don't have any shows scheduled. %sCreate a show now%s." +msgid "" +"It looks like you don't have any shows scheduled. %sCreate a show now%s." msgstr "Úgy tűnik még nincsenek ütemezett műsorok. %sMűsor létrehozása most%s." #: airtime_mvc/application/common/UsabilityHints.php:84 -msgid "To start broadcasting, cancel the current linked show by clicking on it and selecting 'Cancel Show'." -msgstr "A közvetítés elkezdéséhez meg kell szakítani az aktuális hivatkozott műsort. Kattintson a műsorra és válassza a „Műsor megszakítása” lehetőséget." +msgid "" +"To start broadcasting, cancel the current linked show by clicking on it and" +" selecting 'Cancel Show'." +msgstr "" +"A közvetítés elkezdéséhez meg kell szakítani az aktuális hivatkozott műsort." +" Kattintson a műsorra és válassza a „Műsor megszakítása” lehetőséget." #: airtime_mvc/application/common/UsabilityHints.php:86 #, php-format msgid "" -"Linked shows need to be filled with tracks before it starts. To start broadcasting cancel the current linked show and schedule an unlinked show.\n" +"Linked shows need to be filled with tracks before it starts. To start" +" broadcasting cancel the current linked show and schedule an unlinked show.\n" " %sCreate an unlinked show now%s." msgstr "" -"A hivatkozott műsorokat elindításuk előtt fel kell tölteni sávokkal. A közvetítés elkezdéséhez meg kell szakítani az aktuális hivatkozott műsort, és ütemezni kell egy nem hivatkozott műsort.\n" +"A hivatkozott műsorokat elindításuk előtt fel kell tölteni sávokkal. A" +" közvetítés elkezdéséhez meg kell szakítani az aktuális hivatkozott műsort," +" és ütemezni kell egy nem hivatkozott műsort.\n" "%sNem hivatkozott műsor létrehozása most%s." #: airtime_mvc/application/common/UsabilityHints.php:91 -msgid "To start broadcasting, click on the current show and select 'Schedule Tracks'" -msgstr "A közvetítés elkezdéséhez kattintani kell a jelenlegi műsoron és kiválasztani a „Sávok ütemezése” lehetőséget" +msgid "" +"To start broadcasting, click on the current show and select 'Schedule Tracks'" +msgstr "" +"A közvetítés elkezdéséhez kattintani kell a jelenlegi műsoron és kiválasztani" +" a „Sávok ütemezése” lehetőséget" #: airtime_mvc/application/common/UsabilityHints.php:93 #, php-format -msgid "It looks like the current show needs more tracks. %sAdd tracks to your show now%s." -msgstr "Úgy tűnik a jelenlegi műsorhoz még kellenek sávok. %sSávok hozzáadása a műsorhoz most%s." +msgid "" +"It looks like the current show needs more tracks. %sAdd tracks to your show" +" now%s." +msgstr "" +"Úgy tűnik a jelenlegi műsorhoz még kellenek sávok. %sSávok hozzáadása a" +" műsorhoz most%s." #: airtime_mvc/application/common/UsabilityHints.php:100 msgid "Click on the show starting next and select 'Schedule Tracks'" -msgstr "Kattintson a következő műsorra és válassza a „Sávok ütemezése” lehetőséget" +msgstr "" +"Kattintson a következő műsorra és válassza a „Sávok ütemezése” lehetőséget" #: airtime_mvc/application/common/UsabilityHints.php:102 #, php-format msgid "It looks like the next show is empty. %sAdd tracks to your show now%s." -msgstr "Úgy tűnik az következő műsor üres. %sSávok hozzáadása a műsorhoz most%s." +msgstr "" +"Úgy tűnik az következő műsor üres. %sSávok hozzáadása a műsorhoz most%s." #: airtime_mvc/application/configs/navigation.php:17 #: airtime_mvc/application/controllers/LocaleController.php:122 @@ -802,19 +821,24 @@ msgstr "Nincs jogosultsága a forrás megváltoztatásához." #: airtime_mvc/application/controllers/EmbeddablewidgetsController.php:28 msgid "" "To configure and use the embeddable player you must:

\n" -" 1. Enable at least one MP3, AAC, or OGG stream under Settings -> Streams
\n" +" 1. Enable at least one MP3, AAC, or OGG stream under Settings ->" +" Streams
\n" " 2. Enable the Public Airtime API under Settings -> Preferences" msgstr "" -"A beágyazható lejátszó beállításához és használatához a következőket kell tenni:\n" -"1. Engedélyezni kell legalább egy MP3, AAC, vagy OGG adásfolyamot a „Beállítások -> Adásfolyamok” alatt
\n" -"2. Engedélyezni kell a Public Airtime API-t a „Beállítások -> Tulajdonságok” alatt" +"A beágyazható lejátszó beállításához és használatához a következőket kell" +" tenni:\n" +"1. Engedélyezni kell legalább egy MP3, AAC, vagy OGG adásfolyamot a" +" „Beállítások -> Adásfolyamok” alatt
\n" +"2. Engedélyezni kell a Public Airtime API-t a „Beállítások -> Tulajdonságok”" +" alatt" #: airtime_mvc/application/controllers/EmbeddablewidgetsController.php:41 msgid "" "To use the embeddable weekly schedule widget you must:

\n" " Enable the Public Airtime API under Settings -> Preferences" msgstr "" -"A beágyazható heti ütemezés felületi elem használatához a következőt kell tenni:

\n" +"A beágyazható heti ütemezés felületi elem használatához a következőt kell" +" tenni:

\n" "Engedélyezni kell a Public Airtime API-t a Beállítások -> Tulajdonságok alatt" #: airtime_mvc/application/controllers/EmbeddablewidgetsController.php:53 @@ -822,7 +846,8 @@ msgid "" "To add the Radio Tab to your Facebook Page, you must first:

\n" " Enable the Public Airtime API under Settings -> Preferences" msgstr "" -"A Rrádió fül Facebook Oldalba illesztéséhez először a következőt kell tenni:

\n" +"A Rádió fül Facebook Oldalba illesztéséhez először a következőt kell tenni:<" +"br>
\n" "Engedélyezni kell a Public Airtime API-t a Beállítások -> Tulajdonságok alatt" #: airtime_mvc/application/controllers/ErrorController.php:87 @@ -912,7 +937,7 @@ msgstr "Sáv frissítése" #: airtime_mvc/application/controllers/LibraryController.php:155 msgid "Duplicate Playlist" -msgstr "Lejátszási lista másolatának elkészítése" +msgstr "Lejátszási lista duplikálása" #: airtime_mvc/application/controllers/LibraryController.php:199 msgid "No action available" @@ -936,8 +961,11 @@ msgid "Copy of %s" msgstr "%s másolata" #: airtime_mvc/application/controllers/ListenerstatController.php:51 -msgid "Please make sure admin user/password is correct on System->Streams page." -msgstr "Kérjük győződjön meg róla, hogy megfelelő adminisztrátori felhasználónév és jelszó van megadva a Rendszer -> Adásfolyamok oldalon." +msgid "" +"Please make sure admin user/password is correct on System->Streams page." +msgstr "" +"Kérjük győződjön meg róla, hogy megfelelő adminisztrátori felhasználónév és" +" jelszó van megadva a Rendszer -> Adásfolyamok oldalon." #: airtime_mvc/application/controllers/LocaleController.php:25 #: airtime_mvc/application/layouts/scripts/audio-player.phtml:5 @@ -998,8 +1026,12 @@ msgid "A major update for your LibreTime installation is available." msgstr "Elérhető a LibreTime új verzióját tartalmazó frissítés." #: airtime_mvc/application/controllers/LocaleController.php:41 -msgid "Multiple major updates for LibreTime installation are available. Please upgrade as soon as possible." -msgstr "Több, a LibreTime új verzióját tartalmazó frissítés érhető el. Javasolt minél előbb frissíteni." +msgid "" +"Multiple major updates for LibreTime installation are available. Please" +" upgrade as soon as possible." +msgstr "" +"Több, a LibreTime új verzióját tartalmazó frissítés érhető el. Javasolt minél" +" előbb frissíteni." #: airtime_mvc/application/controllers/LocaleController.php:43 msgid "Add to current playlist" @@ -1025,7 +1057,9 @@ msgstr "Csak sávokat lehet hozzáadni az okosblokkokhoz." #: airtime_mvc/application/controllers/LocaleController.php:48 #: airtime_mvc/application/controllers/PlaylistController.php:180 msgid "You can only add tracks, smart blocks, and webstreams to playlists." -msgstr "Csak sávokat, okosblokkokat és web-adásfolyamokat lehet hozzáadni a lejátszási listákhoz." +msgstr "" +"Csak sávokat, okosblokkokat és web-adásfolyamokat lehet hozzáadni a" +" lejátszási listákhoz." #: airtime_mvc/application/controllers/LocaleController.php:51 msgid "Please select a cursor position on timeline." @@ -1367,8 +1401,12 @@ msgstr "A bemenetet ebben a formában kell megadni: óó:pp:mm.t" #: airtime_mvc/application/controllers/LocaleController.php:125 #, php-format -msgid "You are currently uploading files. %sGoing to another screen will cancel the upload process. %sAre you sure you want to leave the page?" -msgstr "Ön jelenleg fájlokat tölt fel. %sHa másik ablakot nyit meg, akkor a feltöltési folyamat megszakad. %sBiztos benne, hogy elhagyja az oldalt?" +msgid "" +"You are currently uploading files. %sGoing to another screen will cancel the" +" upload process. %sAre you sure you want to leave the page?" +msgstr "" +"Ön jelenleg fájlokat tölt fel. %sHa másik ablakot nyit meg, akkor a" +" feltöltési folyamat megszakad. %sBiztos benne, hogy elhagyja az oldalt?" #: airtime_mvc/application/controllers/LocaleController.php:127 msgid "Open Media Builder" @@ -1404,8 +1442,14 @@ msgid "Playlist shuffled" msgstr "Lejátszási lista megkeverve" #: airtime_mvc/application/controllers/LocaleController.php:136 -msgid "Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn't 'watched' anymore." -msgstr "Az Airtime bizonytalan a fájl állapotával kapcsolatban. Ez akkor történhet meg, ha a fájl egy nem elérhető távoli meghajtón van, vagy a fájl egy olyan könyvtárban van ami már nincs „megfigyelve”." +msgid "" +"Airtime is unsure about the status of this file. This can happen when the" +" file is on a remote drive that is unaccessible or the file is in a directory" +" that isn't 'watched' anymore." +msgstr "" +"Az Airtime bizonytalan a fájl állapotával kapcsolatban. Ez akkor történhet" +" meg, ha a fájl egy nem elérhető távoli meghajtón van, vagy a fájl egy olyan" +" könyvtárban van ami már nincs „megfigyelve”." #: airtime_mvc/application/controllers/LocaleController.php:138 #, php-format @@ -1430,16 +1474,34 @@ msgid "Image must be one of jpg, jpeg, png, or gif" msgstr "A képek formátuma jpg, jpeg, png, vagy gif kell legyen" #: airtime_mvc/application/controllers/LocaleController.php:146 -msgid "A static smart block will save the criteria and generate the block content immediately. This allows you to edit and view it in the Library before adding it to a show." -msgstr "A statikus okostábla elmenti a feltételt és azonnal létrehozza a blokk tartalmát. Ez lehetővé teszi a módosítását és megtekintését a Könyvtárban, mielőtt még hozzá lenne adva egy műsorhoz." +msgid "" +"A static smart block will save the criteria and generate the block content" +" immediately. This allows you to edit and view it in the Library before" +" adding it to a show." +msgstr "" +"A statikus okostábla elmenti a feltételt és azonnal létrehozza a blokk" +" tartalmát. Ez lehetővé teszi a módosítását és megtekintését a Könyvtárban," +" mielőtt még hozzá lenne adva egy műsorhoz." #: airtime_mvc/application/controllers/LocaleController.php:148 -msgid "A dynamic smart block will only save the criteria. The block content will get generated upon adding it to a show. You will not be able to view and edit the content in the Library." -msgstr "A dinamikus okostábla csak elmenti a feltételeket. A blokk tartalma egy műsorhoz történő hozzáadása közben lesz létrehozva. Később a tartalmát sem megtekinteni, sem módosítani nem lehet a Könyvtárban." +msgid "" +"A dynamic smart block will only save the criteria. The block content will get" +" generated upon adding it to a show. You will not be able to view and edit" +" the content in the Library." +msgstr "" +"A dinamikus okostábla csak elmenti a feltételeket. A blokk tartalma egy" +" műsorhoz történő hozzáadása közben lesz létrehozva. Később a tartalmát sem" +" megtekinteni, sem módosítani nem lehet a Könyvtárban." #: airtime_mvc/application/controllers/LocaleController.php:150 -msgid "The desired block length will not be reached if Airtime cannot find enough unique tracks to match your criteria. Enable this option if you wish to allow tracks to be added multiple times to the smart block." -msgstr "A kívánt blokkhosszúság nem érhető el ha az Airtime nem talál elég egyedi, a feltételnek megfelelő sávot. Ha ez engedélyezett, egy sávot többször is hozzá lehet adni az okosblokkhoz." +msgid "" +"The desired block length will not be reached if Airtime cannot find enough" +" unique tracks to match your criteria. Enable this option if you wish to" +" allow tracks to be added multiple times to the smart block." +msgstr "" +"A kívánt blokkhosszúság nem érhető el ha az Airtime nem talál elég egyedi, a" +" feltételnek megfelelő sávot. Ha ez engedélyezett, egy sávot többször is" +" hozzá lehet adni az okosblokkhoz." #: airtime_mvc/application/controllers/LocaleController.php:151 msgid "Smart block shuffled" @@ -1471,45 +1533,41 @@ msgstr "Módosító választása" #: airtime_mvc/application/forms/SmartBlockCriteria.php:91 #: airtime_mvc/application/models/Block.php:1390 msgid "contains" -msgstr "tartalmaz" +msgstr "tartalmazza" #: airtime_mvc/application/controllers/LocaleController.php:157 #: airtime_mvc/application/forms/SmartBlockCriteria.php:92 #: airtime_mvc/application/models/Block.php:1391 msgid "does not contain" -msgstr "nem tartalmaz" +msgstr "nem tartalmazza" #: airtime_mvc/application/controllers/LocaleController.php:158 #: airtime_mvc/application/forms/SmartBlockCriteria.php:93 #: airtime_mvc/application/forms/SmartBlockCriteria.php:107 #: airtime_mvc/application/models/Block.php:1392 #: airtime_mvc/application/models/Block.php:1396 -#, fuzzy msgid "is" -msgstr "az" +msgstr "pontosan" #: airtime_mvc/application/controllers/LocaleController.php:159 #: airtime_mvc/application/forms/SmartBlockCriteria.php:94 #: airtime_mvc/application/forms/SmartBlockCriteria.php:108 #: airtime_mvc/application/models/Block.php:1393 #: airtime_mvc/application/models/Block.php:1397 -#, fuzzy msgid "is not" -msgstr "nem az" +msgstr "nem" #: airtime_mvc/application/controllers/LocaleController.php:160 #: airtime_mvc/application/forms/SmartBlockCriteria.php:95 #: airtime_mvc/application/models/Block.php:1394 -#, fuzzy msgid "starts with" -msgstr "vele kezdődik" +msgstr "kezdődik" #: airtime_mvc/application/controllers/LocaleController.php:161 #: airtime_mvc/application/forms/SmartBlockCriteria.php:96 #: airtime_mvc/application/models/Block.php:1395 -#, fuzzy msgid "ends with" -msgstr "vele végződik" +msgstr "végződik" #: airtime_mvc/application/controllers/LocaleController.php:162 #: airtime_mvc/application/forms/SmartBlockCriteria.php:109 @@ -1520,16 +1578,14 @@ msgstr "nagyobb, mint" #: airtime_mvc/application/controllers/LocaleController.php:163 #: airtime_mvc/application/forms/SmartBlockCriteria.php:110 #: airtime_mvc/application/models/Block.php:1399 -#, fuzzy msgid "is less than" -msgstr "kevesebb, mint" +msgstr "kisebb, mint" #: airtime_mvc/application/controllers/LocaleController.php:164 #: airtime_mvc/application/forms/SmartBlockCriteria.php:111 #: airtime_mvc/application/models/Block.php:1400 -#, fuzzy msgid "is in the range" -msgstr "közötti tartományban" +msgstr "tartománya" #: airtime_mvc/application/controllers/LocaleController.php:166 msgid "Choose Storage Folder" @@ -1562,8 +1618,13 @@ msgstr "Ez az útvonal jelenleg nem elérhető." #: airtime_mvc/application/controllers/LocaleController.php:174 #, php-format -msgid "Some stream types require extra configuration. Details about enabling %sAAC+ Support%s or %sOpus Support%s are provided." -msgstr "Egyes adásfolyam típusokhoz további beállítások szükségesek. További részletek érhetőek el az %sAAC+ támogatás%s vagy az %sOpus támogatás%s engedélyezésével kapcsolatban." +msgid "" +"Some stream types require extra configuration. Details about enabling %sAAC+" +" Support%s or %sOpus Support%s are provided." +msgstr "" +"Egyes adásfolyam típusokhoz további beállítások szükségesek. További" +" részletek érhetőek el az %sAAC+ támogatás%s vagy az %sOpus támogatás%s" +" engedélyezésével kapcsolatban." #: airtime_mvc/application/controllers/LocaleController.php:175 msgid "Connected to the streaming server" @@ -1583,9 +1644,13 @@ msgid "Can not connect to the streaming server" msgstr "Nem lehet kapcsolódni az adásfolyam kiszolgálójához" #: airtime_mvc/application/controllers/LocaleController.php:180 -#, fuzzy -msgid "If Airtime is behind a router or firewall, you may need to configure port forwarding and this field information will be incorrect. In this case you will need to manually update this field so it shows the correct host/port/mount that your DJ's need to connect to. The allowed range is between 1024 and 49151." -msgstr "Ha az Airtime mögött van egy router vagy egy tűzfal, akkor be kell állítani a továbbító porot, mert ezen a területen az információ helytelen lesz. Ebben az esetben manuálisan kell frissíteni ezen a területen, hogy mutassa a hosztot / portot / csatolási pontot, amelyre a DJ-k csatlakozhatnak. A megengedett tartomány 1024 és 49151 között van." +msgid "" +"If Airtime is behind a router or firewall, you may need to configure port" +" forwarding and this field information will be incorrect. In this case you" +" will need to manually update this field so it shows the correct" +" host/port/mount that your DJ's need to connect to. The allowed range is" +" between 1024 and 49151." +msgstr "" #: airtime_mvc/application/controllers/LocaleController.php:181 #, php-format @@ -1593,71 +1658,122 @@ msgid "For more details, please read the %sAirtime Manual%s" msgstr "A további részletekért, kérjük, olvassa el az %sAirtime Kézikönyvét%s" #: airtime_mvc/application/controllers/LocaleController.php:183 -#, fuzzy -msgid "Check this option to enable metadata for OGG streams (stream metadata is the track title, artist, and show name that is displayed in an audio player). VLC and mplayer have a serious bug when playing an OGG/VORBIS stream that has metadata information enabled: they will disconnect from the stream after every song. If you are using an OGG stream and your listeners do not require support for these audio players, then feel free to enable this option." -msgstr "Jelölje be és ellenőrizze ezt az opciót: metaadatok engedélyezése OGG-os adásfolyamra (adatfolyam metaadatok: dalcím, előadó, műsornév, amely megjelenik egy audió lejátszóban). A VLC és mplayer lejátszóknál súlyos hibák előfordulhatnak, OGG/Vorbis adatfolyam játszásakor, amelynél a metaadatok küldése engedélyezett: ilyenkor akadozik az adatfolyam. Ha az OGG-os adatfolyam és a hallgatói nem igényelnek támogatást az ilyen jellegű audió lejátszókhoz, akkor nyugodtan engedélyezze ezt az opciót." +msgid "" +"Check this option to enable metadata for OGG streams (stream metadata is the" +" track title, artist, and show name that is displayed in an audio player)." +" VLC and mplayer have a serious bug when playing an OGG/VORBIS stream that" +" has metadata information enabled: they will disconnect from the stream after" +" every song. If you are using an OGG stream and your listeners do not require" +" support for these audio players, then feel free to enable this option." +msgstr "" +"Az OGG adásfolyamok metadatainak engedélyezéséhez be kell jelölni ezt a" +" lehetőséget (adásfolyam metadat a sáv címe, az előadó és a műsor neve amik" +" az audió lejátszókban fognak megjelenni). A VLC-ben és az mplayerben egy" +" komoly hiba problémát okoz a metadatokat tartalmazó OGG/VORBIS adatfolyamok" +" lejátszásakor: ezek a lejátszók lekapcsolódnak az adásfolyamról minden szám" +" végén. Ha a hallgatók az OGG adásfolyamot nem ezekkel a lejátszókkal" +" hallgatják, akkor nyugodtan engedélyezni lehet ezt a beállítást." #: airtime_mvc/application/controllers/LocaleController.php:184 -#, fuzzy -msgid "Check this box to automatically switch off Master/Show source upon source disconnection." -msgstr "Jelölje be ezt a négyzetet, hogy automatikusan kikapcsol a Mester/Műsor a forrás megszakítása után." +msgid "" +"Check this box to automatically switch off Master/Show source upon source" +" disconnection." +msgstr "" +"Ha be van jelölve, a Mester/Műsorforrás automatikusan kikapcsol ha a forrás" +" lekapcsol." #: airtime_mvc/application/controllers/LocaleController.php:185 -msgid "Check this box to automatically switch on Master/Show source upon source connection." -msgstr "Be kell jelölni a " +msgid "" +"Check this box to automatically switch on Master/Show source upon source" +" connection." +msgstr "" +"Ha be van jelölve, a Mester/Műsorforrás automatikusan bekapcsol ha a forrás" +" csatlakozik." #: airtime_mvc/application/controllers/LocaleController.php:186 -msgid "If your Icecast server expects a username of 'source', this field can be left blank." -msgstr "Ha az Icecast kiszolgáló nem igényli a „forrás” felhasználónevét, ez a mező üresen maradhat." +msgid "" +"If your Icecast server expects a username of 'source', this field can be left" +" blank." +msgstr "" +"Ha az Icecast kiszolgáló nem igényli a „forrás” felhasználónevét, ez a mező" +" üresen maradhat." #: airtime_mvc/application/controllers/LocaleController.php:187 #: airtime_mvc/application/controllers/LocaleController.php:197 -msgid "If your live streaming client does not ask for a username, this field should be 'source'." -msgstr "Ha az élő adásfolyam kliense nem kér felhasználónevet, akkor ebben a mezőben „forrás”-t kell beállítani ." +msgid "" +"If your live streaming client does not ask for a username, this field should" +" be 'source'." +msgstr "" +"Ha az élő adásfolyam kliense nem kér felhasználónevet, akkor ebben a mezőben" +" „forrás”-t kell beállítani ." #: airtime_mvc/application/controllers/LocaleController.php:188 -msgid "WARNING: This will restart your stream and may cause a short dropout for your listeners!" -msgstr "FIGYELEM: Ez újraindítja az adásfolyamot aminek következtében a felhasználók rövid kiesést tapasztalhatnak!" +msgid "" +"WARNING: This will restart your stream and may cause a short dropout for your" +" listeners!" +msgstr "" +"FIGYELEM: Ez újraindítja az adásfolyamot aminek következtében a felhasználók" +" rövid kiesést tapasztalhatnak!" #: airtime_mvc/application/controllers/LocaleController.php:189 -msgid "This is the admin username and password for Icecast/SHOUTcast to get listener statistics." -msgstr "Ez az Icecast/SHOUTcast hallgatói statisztikákhoz szükséges adminisztrátori felhasználónév és jelszó." +msgid "" +"This is the admin username and password for Icecast/SHOUTcast to get listener" +" statistics." +msgstr "" +"Ez az Icecast/SHOUTcast hallgatói statisztikákhoz szükséges adminisztrátori" +" felhasználónév és jelszó." #: airtime_mvc/application/controllers/LocaleController.php:193 -msgid "Warning: You cannot change this field while the show is currently playing" -msgstr "Figyelmeztetés: Nem lehet megváltoztatni a mező tartalmát, míg a jelenlegi műsor tart" +msgid "" +"Warning: You cannot change this field while the show is currently playing" +msgstr "" +"Figyelmeztetés: Nem lehet megváltoztatni a mező tartalmát, míg a jelenlegi" +" műsor tart" #: airtime_mvc/application/controllers/LocaleController.php:194 msgid "No result found" msgstr "Nem volt találat" #: airtime_mvc/application/controllers/LocaleController.php:195 -#, fuzzy -msgid "This follows the same security pattern for the shows: only users assigned to the show can connect." -msgstr "Ezt követi ugyanolyan biztonsági műsor-minta: csak a hozzárendelt felhasználók csatlakozhatnak a műsorhoz." +msgid "" +"This follows the same security pattern for the shows: only users assigned to" +" the show can connect." +msgstr "" +"Ez ugyanazt a biztonsági mintát követi: csak a műsorhoz hozzárendelt" +" felhasználók csatlakozhatnak." #: airtime_mvc/application/controllers/LocaleController.php:196 msgid "Specify custom authentication which will work only for this show." -msgstr "Adjon meg egy egyéni hitelesítést, amely csak ennél a műsornál működik." +msgstr "" +"Adjon meg egy egyéni hitelesítést, amely csak ennél a műsornál működik." #: airtime_mvc/application/controllers/LocaleController.php:198 msgid "The show instance doesn't exist anymore!" msgstr "A műsor példány nem létezik többé!" #: airtime_mvc/application/controllers/LocaleController.php:199 -#, fuzzy msgid "Warning: Shows cannot be re-linked" -msgstr "Figyelem: Műsorokat nem lehet újra-linkelni" +msgstr "Figyelem: Műsorokat nem lehet újrahivatkozni" #: airtime_mvc/application/controllers/LocaleController.php:200 #, fuzzy -msgid "By linking your repeating shows any media items scheduled in any repeat show will also get scheduled in the other repeat shows" -msgstr "Az ismétlődő műsorok összekötésével, minden ütemezett médiai elem, az összes ismétlődő műsorban, ugyanazt a sorrendet kapja, mint a többi ismétlődő műsorban" +msgid "" +"By linking your repeating shows any media items scheduled in any repeat show" +" will also get scheduled in the other repeat shows" +msgstr "" +"Az ismétlődő műsorok összekötésével, minden ütemezett médiai elem, az összes" +" ismétlődő műsorban, ugyanazt a sorrendet kapja, mint a többi ismétlődő" +" műsorban" #: airtime_mvc/application/controllers/LocaleController.php:201 -#, fuzzy -msgid "Timezone is set to the station timezone by default. Shows in the calendar will be displayed in your local time defined by the Interface Timezone in your user settings." -msgstr "Az időzóna az Állomási Időzóna szerint van alapértelmezetten beállítva. A naptárban megjelenő helyi időt a Felületi Időzóna menüpontban módosíthatja, a felhasználói beállításoknál." +msgid "" +"Timezone is set to the station timezone by default. Shows in the calendar" +" will be displayed in your local time defined by the Interface Timezone in" +" your user settings." +msgstr "" +"Az időzóna alapértelmezetten az állomás időzónájára van beállítva. A műsorok" +" a naptárban a felhasználói beállításoknál, a Felületi Időzóna menüpontban" +" megadott helyi idő szerint lesznek megjelenítve." #: airtime_mvc/application/controllers/LocaleController.php:205 msgid "Show" @@ -1850,17 +1966,17 @@ msgstr "Szombat" #: airtime_mvc/application/controllers/LocaleController.php:260 #: airtime_mvc/application/forms/AddShowRepeats.php:35 msgid "Sun" -msgstr "Va" +msgstr "V" #: airtime_mvc/application/controllers/LocaleController.php:261 #: airtime_mvc/application/forms/AddShowRepeats.php:36 msgid "Mon" -msgstr "Hé" +msgstr "H" #: airtime_mvc/application/controllers/LocaleController.php:262 #: airtime_mvc/application/forms/AddShowRepeats.php:37 msgid "Tue" -msgstr "Ke" +msgstr "K" #: airtime_mvc/application/controllers/LocaleController.php:263 #: airtime_mvc/application/forms/AddShowRepeats.php:38 @@ -1875,7 +1991,7 @@ msgstr "Cs" #: airtime_mvc/application/controllers/LocaleController.php:265 #: airtime_mvc/application/forms/AddShowRepeats.php:40 msgid "Fri" -msgstr "Pé" +msgstr "P" #: airtime_mvc/application/controllers/LocaleController.php:266 #: airtime_mvc/application/forms/AddShowRepeats.php:41 @@ -1883,8 +1999,11 @@ msgid "Sat" msgstr "Szo" #: airtime_mvc/application/controllers/LocaleController.php:267 -msgid "Shows longer than their scheduled time will be cut off by a following show." -msgstr "Ha egy műsor hosszabb az ütemezett időnél, a következő műsor le fogja vágni a végét." +msgid "" +"Shows longer than their scheduled time will be cut off by a following show." +msgstr "" +"Ha egy műsor hosszabb az ütemezett időnél, a következő műsor le fogja vágni a" +" végét." #: airtime_mvc/application/controllers/LocaleController.php:268 msgid "Cancel Current Show?" @@ -1913,12 +2032,10 @@ msgstr "Törli a kiválasztott elemeket?" #: airtime_mvc/application/controllers/LocaleController.php:277 #: airtime_mvc/application/views/scripts/schedule/show-content-dialog.phtml:5 -#, fuzzy msgid "Start" msgstr "Kezdés" #: airtime_mvc/application/controllers/LocaleController.php:278 -#, fuzzy msgid "End" msgstr "Befejezés" @@ -1928,15 +2045,15 @@ msgstr "Időtartam" #: airtime_mvc/application/controllers/LocaleController.php:280 msgid "Filtering out " -msgstr "" +msgstr "Kiszűrve" #: airtime_mvc/application/controllers/LocaleController.php:281 msgid " of " -msgstr "" +msgstr "/" #: airtime_mvc/application/controllers/LocaleController.php:282 msgid " records" -msgstr "" +msgstr "felvétel" #: airtime_mvc/application/controllers/LocaleController.php:283 msgid "There are no shows scheduled during the specified time period." @@ -2033,22 +2150,23 @@ msgid "Cue Editor" msgstr "Keverési Szerkesztő" #: airtime_mvc/application/controllers/LocaleController.php:306 -#, fuzzy -msgid "Waveform features are available in a browser supporting the Web Audio API" -msgstr "A Web Audio API-t támogató böngészőkben rendelkezésre állnak a hullámformát" +msgid "" +"Waveform features are available in a browser supporting the Web Audio API" +msgstr "" +"A Web Audio API-t támogató böngészőkben rendelkezésre állnak a hullámformákat" +" kezelő funkciók" #: airtime_mvc/application/controllers/LocaleController.php:309 msgid "Select all" msgstr "Az összes kijelölése" #: airtime_mvc/application/controllers/LocaleController.php:310 -#, fuzzy msgid "Select none" -msgstr "Egyet sem jelöl ki" +msgstr "Kijelölés törlése" #: airtime_mvc/application/controllers/LocaleController.php:311 msgid "Trim overbooked shows" -msgstr "" +msgstr "Túlnyúló műsorok levágása" #: airtime_mvc/application/controllers/LocaleController.php:312 msgid "Remove selected scheduled items" @@ -2216,15 +2334,15 @@ msgstr "kHz" #: airtime_mvc/application/controllers/LocaleController.php:363 msgid "Su" -msgstr "Va" +msgstr "V" #: airtime_mvc/application/controllers/LocaleController.php:364 msgid "Mo" -msgstr "Hé" +msgstr "H" #: airtime_mvc/application/controllers/LocaleController.php:365 msgid "Tu" -msgstr "Ke" +msgstr "K" #: airtime_mvc/application/controllers/LocaleController.php:366 msgid "We" @@ -2236,7 +2354,7 @@ msgstr "Cs" #: airtime_mvc/application/controllers/LocaleController.php:368 msgid "Fr" -msgstr "Pé" +msgstr "P" #: airtime_mvc/application/controllers/LocaleController.php:369 msgid "Sa" @@ -2269,7 +2387,8 @@ msgstr "Fájlok kiválasztása" #: airtime_mvc/application/controllers/LocaleController.php:378 #: airtime_mvc/application/controllers/LocaleController.php:379 msgid "Add files to the upload queue and click the start button." -msgstr "Adjon fájlokat a feltöltési sorhoz, majd kattintson az „Indítás” gombra." +msgstr "" +"Adjon fájlokat a feltöltési sorhoz, majd kattintson az „Indítás” gombra." #: airtime_mvc/application/controllers/LocaleController.php:382 msgid "Add Files" @@ -2349,9 +2468,8 @@ msgid "File: %f, size: %s, max file size: %m" msgstr "Fájl: %f,méret: %s, legnagyobb fájlméret: %m" #: airtime_mvc/application/controllers/LocaleController.php:401 -#, fuzzy msgid "Upload URL might be wrong or doesn't exist" -msgstr "URL feltöltése esetén, felléphet hiba, esetleg nem létezik" +msgstr "A feltöltés URL-je rossz vagy nem létezik" #: airtime_mvc/application/controllers/LocaleController.php:402 msgid "Error: File too large: " @@ -2388,8 +2506,12 @@ msgstr "%s sor%s másolva a vágólapra" #: airtime_mvc/application/controllers/LocaleController.php:411 #, php-format -msgid "%sPrint view%sPlease use your browser's print function to print this table. Press escape when finished." -msgstr "%sNyomtatási előnézet%sKérjük, használja böngészője nyomtatási beállításait. Nyomja meg az Esc-t ha végzett." +msgid "" +"%sPrint view%sPlease use your browser's print function to print this table." +" Press escape when finished." +msgstr "" +"%sNyomtatási előnézet%sKérjük, használja böngészője nyomtatási beállításait." +" Nyomja meg az Esc-t ha végzett." #: airtime_mvc/application/controllers/LocaleController.php:412 msgid "New Show" @@ -2424,8 +2546,12 @@ msgid "Please enter your username and password." msgstr "Kérjük adja meg felhasználónevét és jelszavát." #: airtime_mvc/application/controllers/LoginController.php:179 -msgid "Email could not be sent. Check your mail server settings and ensure it has been configured properly." -msgstr "Az emailt nem lehetett elküldeni. Ellenőrizni kell a levelező kiszolgáló beállításait és, hogy megfelelő-e a konfiguráció." +msgid "" +"Email could not be sent. Check your mail server settings and ensure it has" +" been configured properly." +msgstr "" +"Az emailt nem lehetett elküldeni. Ellenőrizni kell a levelező kiszolgáló" +" beállításait és, hogy megfelelő-e a konfiguráció." #: airtime_mvc/application/controllers/LoginController.php:183 msgid "That username or email address could not be found." @@ -2433,7 +2559,8 @@ msgstr "A felhasználónév vagy email cím nem található." #: airtime_mvc/application/controllers/LoginController.php:196 msgid "There was a problem with the username or email address you entered." -msgstr "Valamilyen probléma van a megadott felhasználónévvel vagy email címmel." +msgstr "" +"Valamilyen probléma van a megadott felhasználónévvel vagy email címmel." #: airtime_mvc/application/controllers/LoginController.php:274 msgid "Wrong username or password provided. Please try again." @@ -2495,7 +2622,7 @@ msgstr "Probléma lépett fel a Liquidsoap-al..." #: airtime_mvc/application/controllers/PreferenceController.php:556 msgid "Request method not accepted" -msgstr "" +msgstr "A kérés módja nem elfogadott" #: airtime_mvc/application/controllers/ScheduleController.php:380 #, fuzzy, php-format @@ -2670,7 +2797,6 @@ msgstr "a hét napja" #: airtime_mvc/application/forms/AddShowRepeats.php:56 #: airtime_mvc/application/forms/DateRange.php:44 #: airtime_mvc/application/forms/ShowBuilder.php:46 -#, fuzzy msgid "Date End:" msgstr "Befejezés dátuma:" @@ -2795,7 +2921,9 @@ msgstr "Műsort nem lehet a múltban létrehozni" #: airtime_mvc/application/forms/AddShowWhen.php:147 msgid "Cannot modify start date/time of the show that is already started" -msgstr "Nem lehet módosítani a műsor kezdési dátumát és időpontját, ha a műsor már elkezdődött" +msgstr "" +"Nem lehet módosítani a műsor kezdési dátumát és időpontját, ha a műsor már" +" elkezdődött" #: airtime_mvc/application/forms/AddShowWhen.php:156 #: airtime_mvc/application/models/Show.php:308 @@ -2803,19 +2931,16 @@ msgid "End date/time cannot be in the past" msgstr "A befejezési dátum és időpont nem lehet a múltban" #: airtime_mvc/application/forms/AddShowWhen.php:164 -#, fuzzy msgid "Cannot have duration < 0m" -msgstr "Nem lehet <0p időtartam" +msgstr "Időtartam nem lehet <0p" #: airtime_mvc/application/forms/AddShowWhen.php:168 -#, fuzzy msgid "Cannot have duration 00h 00m" -msgstr "Nem lehet 00ó 00p időtartam" +msgstr "Időtartam nem lehet 0ó 0p" #: airtime_mvc/application/forms/AddShowWhen.php:175 -#, fuzzy msgid "Cannot have duration greater than 24h" -msgstr "Nem tarthat tovább, mint 24h" +msgstr "Időtartam nem lehet nagyobb mint 24 óra" #: airtime_mvc/application/forms/AddShowWhen.php:293 #: airtime_mvc/application/forms/AddShowWhen.php:321 @@ -3092,8 +3217,11 @@ msgid "Enabled" msgstr "Engedélyezve" #: airtime_mvc/application/forms/GeneralPreferences.php:111 -msgid "Enabling this means that podcast tracks will always contain the podcast name in their album field." -msgstr "Ha engedélyezett, a podcast sávok album mezőjébe mindig a podcast neve kerül." +msgid "" +"Enabling this means that podcast tracks will always contain the podcast name" +" in their album field." +msgstr "" +"Ha engedélyezett, a podcast sávok album mezőjébe mindig a podcast neve kerül." #: airtime_mvc/application/forms/GeneralPreferences.php:122 msgid "Public Airtime API" @@ -3106,16 +3234,23 @@ msgstr "Kötelező a beágyazható ütemezés felületi elemhez." #: airtime_mvc/application/forms/GeneralPreferences.php:129 msgid "" "Enabling this feature will allow Airtime to provide schedule data\n" -" to external widgets that can be embedded in your website." -msgstr "Bejelölve engedélyezi az AirTime-nak, hogy ütemezési adatokat biztosítson a weboldalakba beágyazható külső felületi elemek számára." +" to external widgets that can be" +" embedded in your website." +msgstr "" +"Bejelölve engedélyezi az AirTime-nak, hogy ütemezési adatokat biztosítson a" +" weboldalakba beágyazható külső felületi elemek számára." #: airtime_mvc/application/forms/GeneralPreferences.php:141 msgid "Allowed CORS URLs" msgstr "Engedélyezett CORS URL-ek" #: airtime_mvc/application/forms/GeneralPreferences.php:142 -msgid "Remote URLs that are allowed to access this LibreTime instance in a browser. One URL per line." -msgstr "Azok a távoli URL-ek amik böngészőből elérhetik ezt a LibreTime példányt. Soronként egy URL-t kell megadni." +msgid "" +"Remote URLs that are allowed to access this LibreTime instance in a browser." +" One URL per line." +msgstr "" +"Azok a távoli URL-ek amik böngészőből elérhetik ezt a LibreTime példányt." +" Soronként egy URL-t kell megadni." #: airtime_mvc/application/forms/GeneralPreferences.php:147 msgid "Default Language" @@ -3135,8 +3270,10 @@ msgid "Display login button on your Radio Page?" msgstr "Bejelentkezési gomb megjelenítése a Rádióoldalon?" #: airtime_mvc/application/forms/helpers/ValidationTypes.php:19 -msgid "'%value%' is no valid email address in the basic format local-part@hostname" -msgstr "'%value%' nem felel meg az email címek alapvető formátumának (név@hosztnév)" +msgid "" +"'%value%' is no valid email address in the basic format local-part@hostname" +msgstr "" +"'%value%' nem felel meg az email címek alapvető formátumának (név@hosztnév)" #: airtime_mvc/application/forms/helpers/ValidationTypes.php:33 msgid "'%value%' does not fit the date format '%format%'" @@ -3272,8 +3409,12 @@ msgid "Embeddable code:" msgstr "Beágyazható kód:" #: airtime_mvc/application/forms/Player.php:72 -msgid "Copy this code and paste it into your website's HTML to embed the player in your site." -msgstr "A lejátszó weboldalba illesztéséhez ki kell másolni ezt a kódot és be kell illeszteni a weboldal HTML kódjába." +msgid "" +"Copy this code and paste it into your website's HTML to embed the player in" +" your site." +msgstr "" +"A lejátszó weboldalba illesztéséhez ki kell másolni ezt a kódot és be kell" +" illeszteni a weboldal HTML kódjába." #: airtime_mvc/application/forms/Player.php:77 #: airtime_mvc/application/views/scripts/embeddablewidgets/schedule.phtml:14 @@ -3282,7 +3423,7 @@ msgstr "Előnézet" #: airtime_mvc/application/forms/PodcastPreferences.php:8 msgid "Feed Privacy" -msgstr "" +msgstr "Hírfolyam adatvédelem" #: airtime_mvc/application/forms/PodcastPreferences.php:10 #: airtime_mvc/application/forms/SoundCloudPreferences.php:35 @@ -3379,16 +3520,16 @@ msgstr "Mintavételi ráta (kHz)" #: airtime_mvc/application/forms/SmartBlockCriteria.php:121 msgid "hours" -msgstr "órák" +msgstr "óra" #: airtime_mvc/application/forms/SmartBlockCriteria.php:122 msgid "minutes" -msgstr "percek" +msgstr "perc" #: airtime_mvc/application/forms/SmartBlockCriteria.php:123 #: airtime_mvc/application/models/Block.php:330 msgid "items" -msgstr "elemek" +msgstr "elem" #: airtime_mvc/application/forms/SmartBlockCriteria.php:132 msgid "Randomly" @@ -3396,11 +3537,11 @@ msgstr "Véletlenszerűen" #: airtime_mvc/application/forms/SmartBlockCriteria.php:133 msgid "Newest" -msgstr "Újabb" +msgstr "Legújabb" #: airtime_mvc/application/forms/SmartBlockCriteria.php:134 msgid "Oldest" -msgstr "Régebbi" +msgstr "Legrégebbi" #: airtime_mvc/application/forms/SmartBlockCriteria.php:181 msgid "Type:" @@ -3428,14 +3569,13 @@ msgstr "Korlátozva:" #: airtime_mvc/application/forms/SmartBlockCriteria.php:348 msgid "Generate playlist content and save criteria" -msgstr "Lejátszási lista tartalomának létrehozása és feltétel mentése" +msgstr "Lejátszási lista tartalmának létrehozása és a feltétel mentése" #: airtime_mvc/application/forms/SmartBlockCriteria.php:350 msgid "Generate" msgstr "Létrehozás" #: airtime_mvc/application/forms/SmartBlockCriteria.php:356 -#, fuzzy msgid "Shuffle playlist content" msgstr "Véletlenszerű lejátszási lista tartalom" @@ -3471,8 +3611,12 @@ msgstr "A „Hosszúság”-ot „00:00:00” formában kell megadni" #: airtime_mvc/application/forms/SmartBlockCriteria.php:570 #: airtime_mvc/application/forms/SmartBlockCriteria.php:583 -msgid "The value should be in timestamp format (e.g. 0000-00-00 or 0000-00-00 00:00:00)" -msgstr "Az értéknek az alábbi időbélyeg formátumban kell lennie (pl. 0000-00-00 vagy 0000-00-00 00:00:00)" +msgid "" +"The value should be in timestamp format (e.g. 0000-00-00 or 0000-00-00" +" 00:00:00)" +msgstr "" +"Az értéknek az alábbi időbélyeg formátumban kell lennie (pl. 0000-00-00 vagy" +" 0000-00-00 00:00:00)" #: airtime_mvc/application/forms/SmartBlockCriteria.php:597 msgid "The value has to be numeric" @@ -3593,7 +3737,7 @@ msgstr "Állomásnév - Műsornév" #: airtime_mvc/application/forms/StreamSetting.php:65 msgid "Off Air Metadata" -msgstr "Adásonszünet - Metaadat" +msgstr "Adásszünet - Metaadat" #: airtime_mvc/application/forms/StreamSetting.php:71 #, fuzzy @@ -3694,7 +3838,7 @@ msgstr "A csatolási pont nem lehet üres Icecast szerver esetében." #: airtime_mvc/application/forms/TuneInPreferences.php:20 msgid "Push metadata to your station on TuneIn?" -msgstr "" +msgstr "Metadata beküldése saját TuneIn állomásba?" #: airtime_mvc/application/forms/TuneInPreferences.php:25 msgid "Station ID:" @@ -3710,8 +3854,12 @@ msgstr "Partnerazonosító:" #: airtime_mvc/application/forms/TuneInPreferences.php:78 #: airtime_mvc/application/forms/TuneInPreferences.php:87 -msgid "Invalid TuneIn Settings. Please ensure your TuneIn settings are correct and try again." -msgstr "Érvénytelen TuneIn beállítások. A TuneIn beállításainak ellenőrzése után újra lehet próbálni." +msgid "" +"Invalid TuneIn Settings. Please ensure your TuneIn settings are correct and" +" try again." +msgstr "" +"Érvénytelen TuneIn beállítások. A TuneIn beállításainak ellenőrzése után újra" +" lehet próbálni." #: airtime_mvc/application/forms/WatchedDirPreferences.php:14 msgid "Import Folder:" @@ -3778,28 +3926,35 @@ msgstr "" #: airtime_mvc/application/layouts/scripts/layout.phtml:192 msgid "" "Your favorite features are now even easier to use - and we've even\n" -" added a few new ones! Check out the video above or read on to find out more." +" added a few new ones! Check out the video above or read" +" on to find out more." msgstr "" #: airtime_mvc/application/layouts/scripts/layout.phtml:195 msgid "" -"Our new Dashboard view now has a powerful tabbed editing interface, so updating your tracks and playlists\n" +"Our new Dashboard view now has a powerful tabbed editing interface, so" +" updating your tracks and playlists\n" " is easier than ever." msgstr "" #: airtime_mvc/application/layouts/scripts/layout.phtml:197 msgid "" -"We've streamlined the Airtime interface to make navigation easier. With the most important tools\n" -" just a click away, you'll be on air and hands-free in no time." +"We've streamlined the Airtime interface to make navigation easier. With the" +" most important tools\n" +" just a click away, you'll be on air and hands-free in" +" no time." msgstr "" #: airtime_mvc/application/layouts/scripts/layout.phtml:199 -msgid "Got a huge music library? No problem! With the new Upload page, you can drag and drop whole folders to our private cloud." +msgid "" +"Got a huge music library? No problem! With the new Upload page, you can drag" +" and drop whole folders to our private cloud." msgstr "" #: airtime_mvc/application/layouts/scripts/layout.phtml:200 msgid "" -"The new Airtime is smoother, sleeker, and faster - on even more devices! We're committed to improving the Airtime\n" +"The new Airtime is smoother, sleeker, and faster - on even more devices!" +" We're committed to improving the Airtime\n" " experience, no matter how you're connected." msgstr "" @@ -3810,7 +3965,9 @@ msgstr "Élő adásfolyam" #: airtime_mvc/application/layouts/scripts/login.phtml:24 #, php-format -msgid "%1$s copyright © %2$s All rights reserved.
Maintained and distributed under the %3$s by %4$s" +msgid "" +"%1$s copyright © %2$s All rights reserved.
Maintained and" +" distributed under the %3$s by %4$s" msgstr "" #: airtime_mvc/application/models/Auth.php:33 @@ -3820,6 +3977,9 @@ msgid "" "\n" "Please click this link to reset your password: " msgstr "" +"Üdvözlünk %s, \n" +"\n" +"A hivatkozásra kattintva lehet visszaállítani a jelszót:" #: airtime_mvc/application/models/Auth.php:35 #, php-format @@ -3828,6 +3988,9 @@ msgid "" "\n" "If you have any problems, please contact our support team: %s" msgstr "" +"\n" +"\n" +"Probléma esetén itt lehet támogatást kérni: %s" #: airtime_mvc/application/models/Auth.php:36 #, php-format @@ -3837,6 +4000,10 @@ msgid "" "Thank you,\n" "The %s Team" msgstr "" +"\n" +"\n" +"Köszönettel,\n" +"%s Csapat" #: airtime_mvc/application/models/Auth.php:38 #, php-format @@ -3855,7 +4022,9 @@ msgstr "A fel- és a lekeverés értékei nullák." #: airtime_mvc/application/models/Playlist.php:893 #, fuzzy msgid "Can't set cue out to be greater than file length." -msgstr "Nem lehet beállítani, mert a lekeverési idő nem lehet nagyobb a fájl hosszánál." +msgstr "" +"Nem lehet beállítani, mert a lekeverési idő nem lehet nagyobb a fájl" +" hosszánál." #: airtime_mvc/application/models/Block.php:876 #: airtime_mvc/application/models/Block.php:897 @@ -3863,7 +4032,8 @@ msgstr "Nem lehet beállítani, mert a lekeverési idő nem lehet nagyobb a fáj #: airtime_mvc/application/models/Playlist.php:866 #, fuzzy msgid "Can't set cue in to be larger than cue out." -msgstr "Nem lehet beállítani, hogy a felkeverés hosszabb legyen, mint a lekeverés." +msgstr "" +"Nem lehet beállítani, hogy a felkeverés hosszabb legyen, mint a lekeverés." #: airtime_mvc/application/models/Block.php:932 #: airtime_mvc/application/models/Playlist.php:885 @@ -3902,13 +4072,19 @@ msgstr "%s nem érvényes könyvtár." #: airtime_mvc/application/models/MusicDir.php:232 #, php-format -msgid "%s is already set as the current storage dir or in the watched folders list" -msgstr "%s már be van állítva, mint a jelenlegi tároló könyvtár, vagy szerepel a figyelt mappák listájában" +msgid "" +"%s is already set as the current storage dir or in the watched folders list" +msgstr "" +"%s már be van állítva, mint a jelenlegi tároló könyvtár, vagy szerepel a" +" figyelt mappák listájában" #: airtime_mvc/application/models/MusicDir.php:388 #, php-format -msgid "%s is already set as the current storage dir or in the watched folders list." -msgstr "%s már be van állítva, mint a jelenlegi tároló könyvtár, vagy szerepel a figyelt mappák listájában." +msgid "" +"%s is already set as the current storage dir or in the watched folders list." +msgstr "" +"%s már be van állítva, mint a jelenlegi tároló könyvtár, vagy szerepel a" +" figyelt mappák listájában." #: airtime_mvc/application/models/MusicDir.php:431 #, php-format @@ -3946,7 +4122,6 @@ msgstr "A megtekintett ütemterv elavult! (példány eltérés)" #: airtime_mvc/application/models/Scheduler.php:481 #: airtime_mvc/application/models/Scheduler.php:518 #: airtime_mvc/application/models/Scheduler.php:553 -#, fuzzy msgid "The schedule you're viewing is out of date!" msgstr "A megtekintett ütemterv időpontja elavult!" @@ -3975,7 +4150,8 @@ msgstr "A hivatkozott műsorok tartalma nem módosítható adás közben!" #: airtime_mvc/application/models/Scheduler.php:200 msgid "Cannot schedule a playlist that contains missing files." -msgstr "Nem lehet ütemezni olyan lejátszási listát amely hiányzó fájlokat tartalmaz." +msgstr "" +"Nem lehet ütemezni olyan lejátszási listát amely hiányzó fájlokat tartalmaz." #: airtime_mvc/application/models/Scheduler.php:221 #: airtime_mvc/application/models/Scheduler.php:310 @@ -3987,7 +4163,6 @@ msgid "Shows can have a max length of 24 hours." msgstr "A műsorok maximum 24 óra hosszúságúak lehetnek." #: airtime_mvc/application/models/Show.php:319 -#, fuzzy msgid "" "Cannot schedule overlapping shows.\n" "Note: Resizing a repeating show affects all of its repeats." @@ -4026,18 +4201,16 @@ msgid "Webstream name cannot be empty" msgstr "A web-adásfolyam neve nem lehet üres" #: airtime_mvc/application/models/Webstream.php:278 -#, fuzzy msgid "Could not parse XSPF playlist" -msgstr "Nem sikerült értelmezni a XSDF lejátszási listát" +msgstr "Nem sikerült feldolgozni az XSPF lejátszási listát" #: airtime_mvc/application/models/Webstream.php:298 msgid "Could not parse PLS playlist" -msgstr "Nem sikerült értelmezni a PLS lejátszási listát" +msgstr "Nem sikerült feldolgozni a PLS lejátszási listát" #: airtime_mvc/application/models/Webstream.php:318 -#, fuzzy msgid "Could not parse M3U playlist" -msgstr "Nem sikerült értelmezni a M3U lejátszási listát" +msgstr "Nem sikerült feldolgozni az M3U lejátszási listát" #: airtime_mvc/application/models/Webstream.php:332 msgid "Invalid webstream - This appears to be a file download." @@ -4053,14 +4226,13 @@ msgid "Record file doesn't exist" msgstr "Rögzített fájl nem létezik" #: airtime_mvc/application/services/CalendarService.php:54 -#, fuzzy msgid "View Recorded File Metadata" -msgstr "A Rögzített Fájl Metaadatai" +msgstr "A rögzített fájl metaadatai" #: airtime_mvc/application/services/CalendarService.php:61 #: airtime_mvc/application/services/CalendarService.php:93 msgid "View" -msgstr "" +msgstr "Megtekintés" #: airtime_mvc/application/services/CalendarService.php:81 msgid "Schedule Tracks" @@ -4114,9 +4286,10 @@ msgid "Can't move show into past" msgstr "A műsort nem lehet a múltba áthelyezni" #: airtime_mvc/application/services/CalendarService.php:322 -#, fuzzy msgid "Can't move a recorded show less than 1 hour before its rebroadcasts." -msgstr "A rögzített műsort, 1 óránál korábban nem lehet újra közvetíteni." +msgstr "" +"Egy rögzített műsort nem lehet mozgatni, ha kevesebb mint egy óra van hátra" +" az újraközvetítéséig." #: airtime_mvc/application/services/CalendarService.php:332 msgid "Show was deleted because recorded show does not exist!" @@ -4174,8 +4347,12 @@ msgstr "Frissítés szükséges" #: airtime_mvc/application/views/scripts/audiopreview/audio-preview.phtml:80 #, php-format -msgid "To play the media you will need to either update your browser to a recent version or update your %sFlash plugin%s." -msgstr "A média lejátszáshoz frissíteni kell a böngészőt egy újabb verzióra, vagy frissíteni kell a %sFlash bővítményt%s." +msgid "" +"To play the media you will need to either update your browser to a recent" +" version or update your %sFlash plugin%s." +msgstr "" +"A média lejátszáshoz frissíteni kell a böngészőt egy újabb verzióra, vagy" +" frissíteni kell a %sFlash bővítményt%s." #: airtime_mvc/application/views/scripts/dashboard/about.phtml:2 msgid "About" @@ -4183,8 +4360,12 @@ msgstr "Rólunk" #: airtime_mvc/application/views/scripts/dashboard/about.phtml:9 #, fuzzy, php-format -msgid "%1$s %2$s, the open radio software for scheduling and remote station management." -msgstr "%1$s %2$s, a nyitott rádiós szoftver, az ütemezett és távoli állomás menedzsment." +msgid "" +"%1$s %2$s, the open radio software for scheduling and remote station" +" management." +msgstr "" +"%1$s %2$s, a nyitott rádiós szoftver, az ütemezett és távoli állomás" +" menedzsment." #: airtime_mvc/application/views/scripts/dashboard/about.phtml:22 #, fuzzy, php-format @@ -4198,37 +4379,49 @@ msgid "Welcome to %s!" msgstr "Üdvözöljük az %s-nál!" #: airtime_mvc/application/views/scripts/dashboard/help.phtml:3 -#, fuzzy, php-format +#, php-format msgid "Here's how you can get started using %s to automate your broadcasts: " -msgstr "Itt van, hogyan tudod elindítani adásaid automatizálását használva az %s-t:" +msgstr "" +"Így lehet elkezdeni a %s használatát a műsorsugárzás automatizálásához:" #: airtime_mvc/application/views/scripts/dashboard/help.phtml:6 msgid "Upload audio tracks" msgstr "Audió sávok feltöltése" #: airtime_mvc/application/views/scripts/dashboard/help.phtml:7 -msgid "Click the 'Upload' button in the left corner to upload tracks to your library." -msgstr "A bal sarokban található „Feltöltés” gombbal lehet sávokat feltölteni a saját könyvtárba." +msgid "" +"Click the 'Upload' button in the left corner to upload tracks to your library." +msgstr "" +"A bal sarokban található „Feltöltés” gombbal lehet sávokat feltölteni a saját" +" könyvtárba." #: airtime_mvc/application/views/scripts/dashboard/help.phtml:8 msgid "Schedule a show" msgstr "Egy műsor ütemezése" #: airtime_mvc/application/views/scripts/dashboard/help.phtml:9 -msgid "Click on 'Calendar' in the navigation bar on the left. From there click the '+ New Show' button and fill out the required fields." -msgstr "A „Naptár”-ra kell kattintani a bal oldali sávon. A megjelenő felületen a „+ Új műsor” gombra kell kattintani és kitölteni a kötelező mezőket." +msgid "" +"Click on 'Calendar' in the navigation bar on the left. From there click the" +" '+ New Show' button and fill out the required fields." +msgstr "" +"A „Naptár”-ra kell kattintani a bal oldali sávon. A megjelenő felületen a „+" +" Új műsor” gombra kell kattintani és kitölteni a kötelező mezőket." #: airtime_mvc/application/views/scripts/dashboard/help.phtml:10 msgid "Add tracks to your show" msgstr "Sávok hozzáadása a műsorhoz" #: airtime_mvc/application/views/scripts/dashboard/help.phtml:11 -msgid "Click on your show in the calendar and select 'Schedule Show'. In the popup window drag tracks into your show." -msgstr "A naptárban a műsorra kattintva a „Műsor ütemezése” lehetőséget kell választani. A felugró ablakban sávokat lehet húzni a műsorba." +msgid "" +"Click on your show in the calendar and select 'Schedule Show'. In the popup" +" window drag tracks into your show." +msgstr "" +"A naptárban a műsorra kattintva a „Műsor ütemezése” lehetőséget kell" +" választani. A felugró ablakban sávokat lehet húzni a műsorba." #: airtime_mvc/application/views/scripts/dashboard/help.phtml:16 msgid "Now you're good to go!" -msgstr "" +msgstr "Mehet is az adás!" #: airtime_mvc/application/views/scripts/dashboard/help.phtml:19 #, php-format @@ -4297,7 +4490,7 @@ msgstr "Hoppá!" #: airtime_mvc/application/views/scripts/error/error.phtml:12 msgid "Looks like the page you were looking for doesn't exist!" -msgstr "Úgy néz ki, az oldal, amit keresett nem létezik!" +msgstr "Úgy néz ki a keresett oldal nem létezik!" #: airtime_mvc/application/views/scripts/form/add-show-live-stream.phtml:10 #: airtime_mvc/application/views/scripts/form/preferences_livestream.phtml:30 @@ -4306,8 +4499,13 @@ msgid "Show Source" msgstr "Műsorforrás" #: airtime_mvc/application/views/scripts/form/add-show-live-stream.phtml:12 -msgid "DJs can use these settings to connect with compatible software and broadcast live during this show. Assign a DJ below." -msgstr "A DJ-k ezeket a beállításokat használhatják arra, hogy kompatibilis szoftverrel csatlakozzanak, és élőben sugározzanak a műsor alatt. DJ-t lentebb lehet hozzárendelni." +msgid "" +"DJs can use these settings to connect with compatible software and broadcast" +" live during this show. Assign a DJ below." +msgstr "" +"A DJ-k ezeket a beállításokat használhatják arra, hogy kompatibilis" +" szoftverrel csatlakozzanak, és élőben sugározzanak a műsor alatt. DJ-t" +" lentebb lehet hozzárendelni." #: airtime_mvc/application/views/scripts/form/add-show-rebroadcast-absolute.phtml:4 msgid "Choose Days:" @@ -4340,7 +4538,9 @@ msgstr "Találat" #: airtime_mvc/application/views/scripts/form/edit-user.phtml:7 #, php-format -msgid "Note: Since you're the station owner, your account information can be edited in Billing Settings instead." +msgid "" +"Note: Since you're the station owner, your account information can be" +" edited in Billing Settings instead." msgstr "" #: airtime_mvc/application/views/scripts/form/login.phtml:41 @@ -4350,8 +4550,12 @@ msgstr "Elfelejtett jelszó?" #: airtime_mvc/application/views/scripts/form/player.phtml:12 msgid "" "Customize the player by configuring the options below. When you are done,\n" -" copy the embeddable code below and paste it into your website's HTML." +" copy the embeddable code below and paste it into your website's" +" HTML." msgstr "" +"A lejátszó testre szabható az alábbi lehetőségek beállításával. Ha kész, a" +" lenti beágyazható kódot le lehet másolni, és beilleszteni a webhely" +" HTML-kódjába." #: airtime_mvc/application/views/scripts/form/preferences.phtml:6 msgid "TuneIn Settings" @@ -4375,8 +4579,11 @@ msgid "Master Source" msgstr "Mester-forrás" #: airtime_mvc/application/views/scripts/form/preferences_livestream.phtml:13 -msgid "Use these settings in your broadcasting software to stream live at any time." +msgid "" +"Use these settings in your broadcasting software to stream live at any time." msgstr "" +"A műsorsugárzó szoftverben ezeket a beállításokat használva lehet bármikor" +" élőben sugározni." #: airtime_mvc/application/views/scripts/form/preferences_livestream.phtml:19 #: airtime_mvc/application/views/scripts/form/preferences_livestream.phtml:36 @@ -4394,8 +4601,12 @@ msgid "RESET" msgstr "VISSZAÁLLÍTÁS" #: airtime_mvc/application/views/scripts/form/preferences_livestream.phtml:32 -msgid "DJs can use these settings in their broadcasting software to broadcast live only during shows assigned to them." +msgid "" +"DJs can use these settings in their broadcasting software to broadcast live" +" only during shows assigned to them." msgstr "" +"A DJ-k ezeket a beállításokat használhatják a műsorsugárzó szoftverükben," +" hogy bármikor élőben sugározhassanak a hozzájuk rendelt műsorokban." #: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:9 #: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:27 @@ -4412,8 +4623,12 @@ msgstr "Jelenlegi import mappa:" #: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:43 #, fuzzy, php-format -msgid "Rescan watched directory (This is useful if it is network mount and may be out of sync with %s)" -msgstr "A figyelt mappa újraellenőrzése (Ez akkor hasznos, ha a hálózati csatolás nincs szinkronban az %s-al)" +msgid "" +"Rescan watched directory (This is useful if it is network mount and may be" +" out of sync with %s)" +msgstr "" +"A figyelt mappa újraellenőrzése (Ez akkor hasznos, ha a hálózati csatolás" +" nincs szinkronban az %s-al)" #: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:44 msgid "Remove watched directory" @@ -4430,7 +4645,11 @@ msgstr "Airtime regisztráció" #: airtime_mvc/application/views/scripts/form/register-dialog.phtml:6 #: airtime_mvc/application/views/scripts/form/support-setting.phtml:5 #, php-format -msgid "Help improve %s by letting us know how you're using it. This information will be collected regularly in order to enhance your user experience.
Click the box below and we'll make sure the features you use are constantly improving." +msgid "" +"Help improve %s by letting us know how you're using it. This information will" +" be collected regularly in order to enhance your user experience.
Click" +" the box below and we'll make sure the features you use are constantly" +" improving." msgstr "" #: airtime_mvc/application/views/scripts/form/register-dialog.phtml:29 @@ -4463,7 +4682,8 @@ msgstr "Felhasználási feltételek" #: airtime_mvc/application/views/scripts/form/setup-lang-timezone.phtml:12 msgid "You can change these later in your preferences and user settings." -msgstr "Később módosíthatóak a tulajdonságokban és a felhasználói beállításokban." +msgstr "" +"Később módosíthatóak a tulajdonságokban és a felhasználói beállításokban." #: airtime_mvc/application/views/scripts/form/showbuilder.phtml:7 msgid "Find Shows" @@ -4511,8 +4731,11 @@ msgid "Additional Options" msgstr "További lehetőségek" #: airtime_mvc/application/views/scripts/form/stream-setting-form.phtml:144 -msgid "The following info will be displayed to listeners in their media player:" -msgstr "A következő információk megjelennek a hallgatók számára a saját médialejátszóikban:" +msgid "" +"The following info will be displayed to listeners in their media player:" +msgstr "" +"A következő információk megjelennek a hallgatók számára a saját" +" médialejátszóikban:" #: airtime_mvc/application/views/scripts/form/stream-setting-form.phtml:177 msgid "(Your radio station website)" @@ -4524,8 +4747,11 @@ msgstr "Adásfolyam URL:" #: airtime_mvc/application/views/scripts/form/support-setting.phtml:46 #, fuzzy -msgid "(In order to promote your station, 'Send support feedback' must be enabled)." -msgstr "(Annak érdekében, hogy hírdetni tudja az állomását, a 'Támogatási Visszajelzés Küldését' engedélyeznie kell.)" +msgid "" +"(In order to promote your station, 'Send support feedback' must be enabled)." +msgstr "" +"(Annak érdekében, hogy hírdetni tudja az állomását, a 'Támogatási" +" Visszajelzés Küldését' engedélyeznie kell.)" #: airtime_mvc/application/views/scripts/library/edit-file-md.phtml:3 msgid "You do not have permission to edit this track." @@ -4579,9 +4805,8 @@ msgid "Static Smart Block" msgstr "Statikus okosblokk" #: airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml:48 -#, fuzzy msgid "Audio Track" -msgstr "Audió Sáv" +msgstr "Audió sáv" #: airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml:63 msgid "Playlist Contents: " @@ -4630,7 +4855,7 @@ msgstr "A közzétett sávokat lentebb lehet eltávolítani vagy frissíteni." #: airtime_mvc/application/views/scripts/library/publish-dialog.phtml:32 msgid "Published on:" -msgstr "" +msgstr "Közzétéve itt:" #: airtime_mvc/application/views/scripts/library/publish-dialog.phtml:36 msgid "Unpublish" @@ -4638,11 +4863,15 @@ msgstr "Közzététel megszüntetése" #: airtime_mvc/application/views/scripts/library/publish-dialog.phtml:39 msgid "You haven't published this track to any sources!" -msgstr "" +msgstr "Ez a sáv még egyik forrásban sincs közzétéve!" #: airtime_mvc/application/views/scripts/library/publish-dialog.phtml:40 -msgid "Check the boxes above and hit 'Publish' to publish this track to the marked sources." -msgstr "Bejelölve és a lenti „Közzététel”-re kattintva lehet ezt a sávot közzétenni a megadott forrásokban." +msgid "" +"Check the boxes above and hit 'Publish' to publish this track to the marked" +" sources." +msgstr "" +"A forrásokat bejelölve, és a lenti „Közzététel”-re kattintva lehet ezt a" +" sávot közzétenni a megadott forrásokban." #: airtime_mvc/application/views/scripts/library/publish-dialog.phtml:53 #: airtime_mvc/application/views/scripts/library/publish-dialog.phtml:54 @@ -4663,8 +4892,12 @@ msgstr "Havi hallgatók sávszélesség használata" #: airtime_mvc/application/views/scripts/login/index.phtml:7 #, php-format -msgid "Welcome to the %s demo! You can log in using the username 'admin' and the password 'admin'." -msgstr "Üdvözöljük a %s demó változatában! „admin” felhasználónévvel és „admin” jelszóval lehet bejelentkezni." +msgid "" +"Welcome to the %s demo! You can log in using the username 'admin' and the" +" password 'admin'." +msgstr "" +"Üdvözöljük a %s demó változatában! „admin” felhasználónévvel és „admin”" +" jelszóval lehet bejelentkezni." #: airtime_mvc/application/views/scripts/login/password-change.phtml:3 msgid "New password" @@ -4679,8 +4912,14 @@ msgid "Email Sent!" msgstr "Email elküldve!" #: airtime_mvc/application/views/scripts/login/password-restore-after.phtml:6 -msgid "A password reset link has been sent to your email address. Please check your email and follow the instructions inside to reset your password. If you don't see the email, please check your spam folder!" +msgid "" +"A password reset link has been sent to your email address. Please check your" +" email and follow the instructions inside to reset your password. If you" +" don't see the email, please check your spam folder!" msgstr "" +"Egy jelszóvisszaállító hivatkozást küldtünk a megadott email címre. Az email" +" tartalmazza a jelszó visszaállításához szükséges lépéseket. Ha nem érkezik" +" meg az email, érdemes megnézni a levélszemét mappában." #: airtime_mvc/application/views/scripts/login/password-restore.phtml:3 msgid "Password Reset" @@ -4716,7 +4955,7 @@ msgstr "Kijelentkezés" #: airtime_mvc/application/views/scripts/partialviews/trialBox.phtml:3 msgid "Your trial expires in" -msgstr "Az Ön próba ideje lejár" +msgstr "A kipróbálási időszak lejár" #: airtime_mvc/application/views/scripts/playlist/playlist.phtml:40 #: airtime_mvc/application/views/scripts/playlist/smart-block.phtml:46 @@ -4764,9 +5003,8 @@ msgstr "Nincs megnyitott lejátszási lista" #: airtime_mvc/application/views/scripts/playlist/set-cue.phtml:3 #: airtime_mvc/application/views/scripts/playlist/set-fade.phtml:3 -#, fuzzy msgid "Show Waveform" -msgstr "Mutasd a Hullámalakot" +msgstr "Hullámforma mutatása" #: airtime_mvc/application/views/scripts/playlist/set-cue.phtml:5 #, fuzzy @@ -4815,75 +5053,71 @@ msgid "Expand Dynamic Block" msgstr "Dinamikus Blokk kibővítése" #: airtime_mvc/application/views/scripts/playlist/update.phtml:138 -msgid "Choose some search criteria above and click Generate to create this playlist." -msgstr "Ennek a lejátszási listának a létrehozásához feltételt kell választani, majd a „Létrehozás” gombra kattintani." +msgid "" +"Choose some search criteria above and click Generate to create this playlist." +msgstr "" +"Ennek a lejátszási listának a létrehozásához feltételt kell választani, majd" +" a „Létrehozás” gombra kattintani." #: airtime_mvc/application/views/scripts/playlist/update.phtml:140 -msgid "A track list will be generated when you schedule this smart block into a show." -msgstr "Egy sávlista lesz létrehozva amikor ez az okosblokk ütemezésre kerül egy műsorban." +msgid "" +"A track list will be generated when you schedule this smart block into a show." +msgstr "" +"Egy sávlista lesz létrehozva amikor ez az okosblokk ütemezésre kerül egy" +" műsorban." #: airtime_mvc/application/views/scripts/playlist/update.phtml:143 msgid "Drag tracks here from your library to add them to the playlist" msgstr "" +"A könyvtárból ide húzott sávok hozzá lesznek adva a lejátszási listához" #: airtime_mvc/application/views/scripts/playouthistory/index.phtml:8 -#, fuzzy msgid "Log Sheet" msgstr "Napló" #: airtime_mvc/application/views/scripts/playouthistory/index.phtml:9 -#, fuzzy msgid "File Summary" -msgstr "Fájl Összegző" +msgstr "Fájl összesítő" #: airtime_mvc/application/views/scripts/playouthistory/index.phtml:11 -#, fuzzy msgid "Show Summary" -msgstr "Műsor Összegző" +msgstr "Műsor összesítő" #: airtime_mvc/application/views/scripts/playouthistorytemplate/index.phtml:3 msgid "Playout History Templates" -msgstr "" +msgstr "Lejátszási történet sablonok" #: airtime_mvc/application/views/scripts/playouthistorytemplate/index.phtml:5 -#, fuzzy msgid "Log Sheet Templates" -msgstr "Naplózási Sablonok" +msgstr "Naplózási sablonok" #: airtime_mvc/application/views/scripts/playouthistorytemplate/index.phtml:6 -#, fuzzy msgid "New Log Sheet Template" -msgstr "Új Naplózási Sablon" +msgstr "Új naplózási sablon" #: airtime_mvc/application/views/scripts/playouthistorytemplate/index.phtml:9 -#, fuzzy msgid "No Log Sheet Templates" -msgstr "Nincsenek Naplózási Sablonok" +msgstr "Nincsenek naplózási sablonok" #: airtime_mvc/application/views/scripts/playouthistorytemplate/index.phtml:36 -#, fuzzy msgid "File Summary Templates" -msgstr "Összegzési Sablon Fájlok" +msgstr "Fájl összesítő sablonok" #: airtime_mvc/application/views/scripts/playouthistorytemplate/index.phtml:37 -#, fuzzy msgid "New File Summary Template" -msgstr "Új Összegzési Sablon Fájl" +msgstr "Új fájl összesítő sablon" #: airtime_mvc/application/views/scripts/playouthistorytemplate/index.phtml:40 -#, fuzzy msgid "No File Summary Templates" -msgstr "Nincsenek Összegzési Sablon Fájlok" +msgstr "Nincsenek fájl összesítő sablonok" #: airtime_mvc/application/views/scripts/playouthistorytemplate/template-contents.phtml:2 -#, fuzzy msgid "Creating File Summary Template" -msgstr "Összegzési Sablon Fájl Létrehozása" +msgstr "Fájl összesítő sablon létrehozása" #: airtime_mvc/application/views/scripts/playouthistorytemplate/template-contents.phtml:4 -#, fuzzy msgid "Creating Log Sheet Template" -msgstr "Naplózási Sablon Létrehozása" +msgstr "Naplózási sablon létrehozása" #: airtime_mvc/application/views/scripts/playouthistorytemplate/template-contents.phtml:46 msgid "Add more elements" @@ -4899,7 +5133,8 @@ msgstr "Alapértelmezett sablon beállítása" #: airtime_mvc/application/views/scripts/plupload/index.phtml:34 msgid "Drop files here or click to browse your computer." -msgstr "Sávokat ejtéssel vagy a „Böngészés” gombra kattintással lehet hozzáadni" +msgstr "" +"Sávokat ejtéssel vagy a „Böngészés” gombra kattintással lehet hozzáadni" #: airtime_mvc/application/views/scripts/plupload/index.phtml:66 msgid "Failed" @@ -4927,7 +5162,7 @@ msgstr "Legutolsó epizódok automatikus letöltése?" #: airtime_mvc/application/views/scripts/podcast/podcast.phtml:26 msgid "Override album name with podcast name during ingest." -msgstr "" +msgstr "Album nevének felülírása a podcast nevével a beküldés során." #: airtime_mvc/application/views/scripts/podcast/podcast.phtml:40 msgid "Save podcast" @@ -4948,7 +5183,7 @@ msgstr "Állomás-podcast mentése" #: airtime_mvc/application/views/scripts/podcast/station.phtml:12 msgid "View Feed" -msgstr "" +msgstr "Hírcsatorna megtekintése" #: airtime_mvc/application/views/scripts/podcast/station.phtml:20 msgid "General Fields" @@ -4988,14 +5223,18 @@ msgstr "Szókimondó" #: airtime_mvc/application/views/scripts/podcast/station.phtml:72 msgid "Privacy Settings" -msgstr "" +msgstr "Adatvédelmi beállítások" #: airtime_mvc/application/views/scripts/podcast/station.phtml:92 #, php-format msgid "" -"For detailed information on what these metadata fields mean, please see the %sRSS specification%s\n" +"For detailed information on what these metadata fields mean, please see the " +"%sRSS specification%s\n" " or %sApple's podcasting documentation%s." msgstr "" +"A metaadat mezők jelentéséről részletes információk találhatóak az %sRSS" +" specifikációban%s\n" +"vagy az %sApple podcast dokumentációban%s." #: airtime_mvc/application/views/scripts/preference/stream-setting.phtml:2 msgid "Stream Settings" @@ -5097,7 +5336,9 @@ msgstr "Felhasználótípus" #: airtime_mvc/application/views/scripts/user/add-user.phtml:31 #, php-format -msgid "Super Admin details can be changed in your Billing Settings." +msgid "" +"Super Admin details can be changed in your Billing Settings." msgstr "" #: airtime_mvc/application/views/scripts/webstream/webstream.phtml:30 @@ -5113,8 +5354,12 @@ msgid "No webstream" msgstr "Nincs web-adásfolyam" #: airtime_mvc/public/setup/rabbitmq-setup.php:76 -msgid "Couldn't connect to RabbitMQ server! Please check if the server is running and your credentials are correct." -msgstr "Nem lehet kapcsolódni a RabbitMQ kiszolgálóhoz! Ellenőrizni kell, hogy a kiszolgáló fut és az azonosítási adatok megfelelőek." +msgid "" +"Couldn't connect to RabbitMQ server! Please check if the server is running" +" and your credentials are correct." +msgstr "" +"Nem lehet kapcsolódni a RabbitMQ kiszolgálóhoz! Ellenőrizni kell, hogy a" +" kiszolgáló fut és az azonosítási adatok megfelelőek." #~ msgid "This version will soon be obsolete." #~ msgstr "Ez a verzió hamarosan elavul." diff --git a/airtime_mvc/public/css/images/icon_alert_cal_autoplaylist.png b/airtime_mvc/public/css/images/icon_alert_cal_autoplaylist.png new file mode 100644 index 000000000..5b20f90c2 Binary files /dev/null and b/airtime_mvc/public/css/images/icon_alert_cal_autoplaylist.png differ diff --git a/airtime_mvc/public/css/styles.css b/airtime_mvc/public/css/styles.css index 32fb73bd9..d5e17ca1d 100644 --- a/airtime_mvc/public/css/styles.css +++ b/airtime_mvc/public/css/styles.css @@ -734,11 +734,12 @@ input.input_text.sp_extra_input_text{ .sp_text_font{ font-size: 13px; font-family: Helvetica, Arial, sans-serif; - color: #5B5B5B; + color: #FFFFFF; } .sp_text_font_bold{ font-weight: bold; + color: white; } .sp-ui-button-icon-only { @@ -782,6 +783,8 @@ input.input_text.sp_extra_input_text{ .sp-closed{ border-width: 0 0 0 !important; } + + /***** SMART BLOCK SPECIFIC STYLES END *****/ label { @@ -2275,6 +2278,10 @@ span.errors.sp-errors{ background:url(images/icon_link.png) no-repeat 0 0; margin-top: 0px !important; } +.small-icon.autoplaylist { + background:url(images/icon_alert_cal_autoplaylist.png) no-repeat 0 0; +} + .small-icon.recording { background:url(images/icon_record.png) no-repeat 0 0; margin-top: 0px !important; diff --git a/airtime_mvc/public/js/airtime/playlist/smart_blockbuilder.js b/airtime_mvc/public/js/airtime/playlist/smart_blockbuilder.js index 0bbc16852..15ca8b52f 100644 --- a/airtime_mvc/public/js/airtime/playlist/smart_blockbuilder.js +++ b/airtime_mvc/public/js/airtime/playlist/smart_blockbuilder.js @@ -19,6 +19,8 @@ function setSmartBlockEvents() { appendAddButton(); appendModAddButton(); removeButtonCheck(); + disableAndHideDateTimeDropdown(newRowVal); + } else { @@ -34,6 +36,8 @@ function setSmartBlockEvents() { appendAddButton(); appendModAddButton(); removeButtonCheck(); + disableAndHideDateTimeDropdown(newRowVal); + } }); @@ -66,6 +70,8 @@ function setSmartBlockEvents() { newRowVal.val(''); newRowExtra.val(''); disableAndHideExtraField(newRowVal); + disableAndHideDateTimeDropdown(newRowVal); + disableAndHideExtraDateTimeDropdown(newRowVal); sizeTextBoxes(newRowVal, 'sp_extra_input_text', 'sp_input_text'); //remove the 'criteria add' button from new modifier row @@ -89,18 +95,28 @@ function setSmartBlockEvents() { var item_to_hide; var prev; var index; - //remove error message from current row, if any var error_element = curr.find('span[class="errors sp-errors"]'); if (error_element.is(':visible')) { error_element.remove(); } + /* In the case that there is only one element we need to remove the + * date_select drop down. + */ + + if (count == 0) { + disableAndHideDateTimeDropdown(curr.find(':first-child'), index); + disableAndHideExtraDateTimeDropdown(curr.find(':first-child'),index); + disableAndHideExtraField(curr.find(':first-child'),index); + } + /* assign next row to current row for all rows below and including * the row getting removed */ + + for (var i=0; i') + .attr('value', key) + .text(value)); + }); + } + else { $.each(numericCriteriaOptions, function(key, value){ $(div).append($('') .attr('value', key) @@ -610,9 +771,9 @@ var criteriaTypes = { "description" : "s", "artist_name" : "s", "encoded_by" : "s", - "utime" : "n", - "mtime" : "n", - "lptime" : "n", + "utime" : "d", + "mtime" : "d", + "lptime" : "d", "genre" : "s", "isrc_number" : "s", "label" : "s", @@ -647,3 +808,15 @@ var numericCriteriaOptions = { "is less than" : $.i18n._("is less than"), "is in the range" : $.i18n._("is in the range") }; + +var dateTimeCriteriaOptions = { + "0" : $.i18n._("Select modifier"), + "before" : $.i18n._("before"), + "after" : $.i18n._("after"), + "between" : $.i18n._("between"), + "is" : $.i18n._("is"), + "is not" : $.i18n._("is not"), + "is greater than" : $.i18n._("is greater than"), + "is less than" : $.i18n._("is less than"), + "is in the range" : $.i18n._("is in the range") +}; diff --git a/airtime_mvc/public/js/airtime/schedule/full-calendar-functions.js b/airtime_mvc/public/js/airtime/schedule/full-calendar-functions.js index a7d754a2f..2cc74acbd 100644 --- a/airtime_mvc/public/js/airtime/schedule/full-calendar-functions.js +++ b/airtime_mvc/public/js/airtime/schedule/full-calendar-functions.js @@ -214,7 +214,13 @@ function eventRender(event, element, view) { $(element) .find(".fc-event-time") .before(''); - } else { + // in theory a linked show shouldn't have an automatic playlist so adding this here + } else if (event.show_has_auto_playlist === true) { + $(element) + .find(".fc-event-time") + .before(''); + } + else { $(element) .find(".fc-event-time") .before(''); @@ -224,7 +230,11 @@ function eventRender(event, element, view) { $(element) .find(".fc-event-time") .before(''); - } else { + } else if (event.show_has_auto_playlist === true) { + $(element) + .find(".fc-event-time") + .before(''); + } else { $(element) .find(".fc-event-time") .before(''); @@ -234,26 +244,38 @@ function eventRender(event, element, view) { $(element) .find(".fc-event-time") .before(''); + } else if (event.show_has_auto_playlist === true) { + $(element) + .find(".fc-event-time") + .before(''); } } } else if (view.name === 'month') { if (event.show_empty === 1) { if (event.linked) { - $(element) + $(element) .find(".fc-event-title") .after(''); + } else if (event.show_has_auto_playlist === true) { + $(element) + .find(".fc-event-title") + .after(''); } else { - $(element) + $(element) .find(".fc-event-title") .after(''); } } else if (event.show_partial_filled === true) { if (event.linked) { $(element) - .find(".fc-event-title") - .after(''); + .find(".fc-event-title") + .after(''); + } else if (event.show_has_auto_playlist === true) { + $(element) + .find(".fc-event-title") + .after(''); } else { - $(element) + $(element) .find(".fc-event-title") .after(''); } @@ -262,6 +284,10 @@ function eventRender(event, element, view) { $(element) .find(".fc-event-title") .after(''); + } else if (event.show_has_auto_playlist === true) { + $(element) + .find(".fc-event-title") + .after(''); } } } diff --git a/docs/manual/listener-stats/index.md b/docs/manual/listener-stats/index.md index 570ff0aa4..be3f35eed 100644 --- a/docs/manual/listener-stats/index.md +++ b/docs/manual/listener-stats/index.md @@ -1,8 +1,8 @@ -The Listener Stats page on the System menu shows graphs of listener connections to the configured streaming servers for the selected date and time range.  On the right side, a green **Status** indicator shows **OK** if the connection to the streaming server is active. +The Listener Stats page on the Analytics menu shows graphs of listener connections to the configured streaming servers for the selected date and time range.  On the right side, a green **Status** indicator shows **OK** if the connection to the streaming server is active. ![](static/Screenshot483-Listener_Stats.png) -If the status indicator is red, check that the **Admin User** and **Admin Password** settings are correct under **Additional Options** for the named mount point, such as *airtime\_128*, on the **Streams** page of the **System** menu. +If the status indicator is red, check that the **Admin User** and **Admin Password** settings are correct under **Additional Options** for the named mount point, such as *airtime\_128*, on the **Streams** page of the **Settings** menu. By default, statistics for the last 24 hours of streaming are shown. To change this date and time range, click the calendar and clock icons in the lower left corner of the page, then click the magnifying glass icon. diff --git a/docs/manual/on-air-in-60-seconds/index.md b/docs/manual/on-air-in-60-seconds/index.md index 5ad40c007..b65982142 100644 --- a/docs/manual/on-air-in-60-seconds/index.md +++ b/docs/manual/on-air-in-60-seconds/index.md @@ -1,26 +1,27 @@ -Here's how you can use Airtime to manage your broadcasts. Chapter names in this book are shown in *italics*, to help you find the details of each step (if you need to read more). +Here's how you can use Libretime to manage your broadcasts. +Chapter names in this book are shown in *italics*, to help you find the details of each step (if you need to read more). -1. Log in to your Airtime server with your **Username** and **Password** (*Getting started*). +1. Log in to your Libretime server with your **Username** and **Password** (*Getting started*). Log in -2. Add your files to the Airtime library by clicking **Add media** on the main menu, then click the **Add files** button. You can drag and drop your files into this window too. Then click the **Start upload** button (*Add media*). +2. Add your files to the Libretime library by clicking **Upload** on the left menu, then click on the the **Drop files here or click to browse your computer.** area. You can drag and drop your files into this window too. The upload will start as soon as you drop a file (*Add media*). Select files -3. Create a show by clicking **Calendar** on the main menu, and then clicking the **+ Show** button (*Calendar*). Only admins and program managers can add shows (Users). +3. Create a show by clicking **Calendar** on the main menu, and then clicking the **New Show** button (*Calendar*). Only admins and program managers can add shows (Users). Add Show -4. Set a name for your show in the **What** section of the box, and a date and time in the **When** section, then click the **+ Add this show** button (*Calendar*). +4. Set a name for your show in the **What** section of the box, and a date and time in the **When** section, then click the **+ Add this show** button at the end of the page (*Calendar*). Show when -5. Add media to the new show by clicking your show in the **Calendar** and selecting **Add / Remove Content** (*Calendar*). Or if the show has already started, use the **Add / Remove Content** button on the Now Playing page (*Now Playing*). +5. Add media to the new show by clicking the name of your show in the **Calendar** and selecting **Schedule Tracks** (*Calendar*). -Add show content +Add show content -6. Click media in the search results on the left side of the pop-up window which will appear, and drag it into your show on the right side (*Now Playing*). +6. Search for the media in the left side of the pop-up window which will appear, and drag it into your show on the right side (*Now Playing*). Drag show content diff --git a/docs/manual/on-air-in-60-seconds/static/Screenshot557-Select_files_a7GflUi.png b/docs/manual/on-air-in-60-seconds/static/Screenshot557-Select_files_a7GflUi.png index 9d6ceb7b0..7bef399b6 100644 Binary files a/docs/manual/on-air-in-60-seconds/static/Screenshot557-Select_files_a7GflUi.png and b/docs/manual/on-air-in-60-seconds/static/Screenshot557-Select_files_a7GflUi.png differ diff --git a/docs/manual/on-air-in-60-seconds/static/Screenshot558-Add_Show.png b/docs/manual/on-air-in-60-seconds/static/Screenshot558-Add_Show.png index 8c4a63d6d..bcb876a40 100644 Binary files a/docs/manual/on-air-in-60-seconds/static/Screenshot558-Add_Show.png and b/docs/manual/on-air-in-60-seconds/static/Screenshot558-Add_Show.png differ diff --git a/docs/manual/on-air-in-60-seconds/static/Screenshot559-Log_in.png b/docs/manual/on-air-in-60-seconds/static/Screenshot559-Log_in.png index cb5ab84c2..cbb3b64dc 100644 Binary files a/docs/manual/on-air-in-60-seconds/static/Screenshot559-Log_in.png and b/docs/manual/on-air-in-60-seconds/static/Screenshot559-Log_in.png differ diff --git a/docs/manual/on-air-in-60-seconds/static/Screenshot560-Show_when.png b/docs/manual/on-air-in-60-seconds/static/Screenshot560-Show_when.png index 3775459bb..f7bd6200a 100644 Binary files a/docs/manual/on-air-in-60-seconds/static/Screenshot560-Show_when.png and b/docs/manual/on-air-in-60-seconds/static/Screenshot560-Show_when.png differ diff --git a/docs/manual/on-air-in-60-seconds/static/Screenshot561-Add_show_content.png b/docs/manual/on-air-in-60-seconds/static/Screenshot561-Add_show_content.png index 9261d4fdb..2bc2cb813 100644 Binary files a/docs/manual/on-air-in-60-seconds/static/Screenshot561-Add_show_content.png and b/docs/manual/on-air-in-60-seconds/static/Screenshot561-Add_show_content.png differ diff --git a/docs/manual/on-air-in-60-seconds/static/Screenshot562-Drag_show_content.png b/docs/manual/on-air-in-60-seconds/static/Screenshot562-Drag_show_content.png index ad2c497b6..46ac68e32 100644 Binary files a/docs/manual/on-air-in-60-seconds/static/Screenshot562-Drag_show_content.png and b/docs/manual/on-air-in-60-seconds/static/Screenshot562-Drag_show_content.png differ diff --git a/docs/manual/on-air-in-60-seconds/static/Screenshot563-Listen.png b/docs/manual/on-air-in-60-seconds/static/Screenshot563-Listen.png index 4bb1811f2..5ac9386e5 100644 Binary files a/docs/manual/on-air-in-60-seconds/static/Screenshot563-Listen.png and b/docs/manual/on-air-in-60-seconds/static/Screenshot563-Listen.png differ diff --git a/docs/manual/preparing-the-server/index.md b/docs/manual/preparing-the-server/index.md index 79752cbbd..57791329e 100644 --- a/docs/manual/preparing-the-server/index.md +++ b/docs/manual/preparing-the-server/index.md @@ -1,34 +1,17 @@ -The following instructions assume that you have root access (**sudo** on most -distributions) to a GNU/Linux server, and are familiar with basic command line -tasks. Experienced system administrators may prefer to skip to -[Expert install](../expert-install/) in the appendix of manual after having -prepared a server with the needed dependencies show below. +The following instructions assume that you have root access (**sudo** on most distributions) to a GNU/Linux server, and are familiar with basic command line tasks. Experienced system administrators may prefer to skip to [Expert install](../expert-install/) in the appendix of manual after having prepared a server with the needed dependencies show below. -The recommended Libretime server platform is Debian 9 'stretch'. -Ubuntu 16.04 LTS 'Xenial Xerus' and CentOS 7 are also supported. Users of -other GNU/Linux distributions may be able to adapt these instructions to suit -their needs. +The recommended Libretime server platform is Ubuntu 16.04 LTS (Xenial Xerus), or Ubuntu 14.04.5 LTS (Trusty Tahr). Debian 9 'stretch' and CentOS 7 are also supported. Users of other GNU/Linux distributions may be able to adapt these instructions to suit their needs. -The server should have at least a 1GHz processor and 1GB of RAM, preferably -2GB RAM or more. If you are using a desktop environment and web browser directly -on the server you should install at least 2GB RAM, to avoid swapping to disk. +The server should have at least a 1GHz processor and 1GB of RAM, preferably 2GB RAM or more. If you are using a desktop environment and web browser directly on the server you should install at least 2GB RAM, to avoid swapping to disk. -The LibreTime installation does not use much disk space, but you should allow -plenty of storage capacity for the Airtime library. A hot-swap RAID array is -recommended for media storage, in case of disk failure. You should also consider -a UPS or other battery-powered system to offer some protection against -short-term power failures. +The LibreTime installation does not use much disk space, but you should allow plenty of storage capacity for the Airtime library. A hot-swap RAID array is recommended for media storage, in case of disk failure. You should also consider a UPS or other battery-powered system to offer some protection against short-term power failures. -LibreTime depends on infrastructure and services that need to be configured -properly for it to run smoothly. This chapter will go through the individual -parts of a LibreTime install and help you assess how you need to manage them. +LibreTime depends on infrastructure and services that need to be configured properly for it to run smoothly. This chapter will go through the individual parts of a LibreTime install and help you assess how you need to manage them. Firewall -------- -LibreTime should only be run on a Server behind a firewall. This can either be -a dedicated firewall in the network (like on some cloud providers) or a local -firewall running iptables (as you would use on a root server or a local machine). +LibreTime should only be run on a Server behind a firewall. This can either be a dedicated firewall in the network (like on some cloud providers) or a local firewall running iptables (as you would use on a root server or a local machine). Setting up a local firewall is done differently on all the supported distros. @@ -36,82 +19,55 @@ Setting up a local firewall is done differently on all the supported distros. * [Ubuntu](https://help.ubuntu.com/lts/serverguide/firewall.html) * [FirewallD](http://www.firewalld.org/) (CentOS) -There is a vast amount of ways to configure your network, firewall included. -Choose the way that best fits your deploy and dont internal expose parts of your -LibreTime install on the network. +There is a vast amount of ways to configure your network, firewall included. Choose the way that best fits your deploy and dont internal expose parts of your LibreTime install on the network. -The following ports are relevant to the deploy and need to be opened to varying -degrees. +The following ports are relevant to the deploy and need to be opened to varying degrees. | Port | Description | | ---- | ----------- | -| 80 | Default unsecure web port. Needs to be open for the webserver to serve the LibreTime webinterface or if you enable TLS a redirect to the secure web port.| +| 80 | Default unsecure web port. Needs to be open for the webserver to serve the LibreTime webinterface or if you enable TLS a redirect to the secure web port.| | 443 | Default secure web port. This is where your LibreTime webinterface lives if you choose to configure TLS.| | 8000 | Main Icecast instance. This is where your listeners connect if you plan on using your LibreTime server to directly serve such connections. You can also configure external Icecast or ShoutCast instances for this later.| | 8001 and 8002 | Master and Show source input ports. Only open these ports if you plan on letting anyone use these features. You might want to consider usinga fixed IP if you use the master source for studio connections on port 8001 and only allow DJ to connect over a VPN link or similar depending your security needs.| -The remaining parts of LibreTime might open additional ports that should not -be accessible from any untrusted networks. You should consider how to configure -their firewall access individually once you configure them. +The remaining parts of LibreTime might open additional ports that should not be accessible from any untrusted networks. You should consider how to configure their firewall access individually once you configure them. PostgreSQL ---------- -You should set up PostgreSQL properly according to the instructions for your -distro. Distro provided packages are fine for LibreTime as it does not have -any specific version dependencies. +You should set up PostgreSQL properly according to the instructions for your distro. Distro provided packages are fine for LibreTime as it does not have any specific version dependencies. * [Debian](https://wiki.debian.org/PostgreSql) * [Ubuntu](https://help.ubuntu.com/lts/serverguide/postgresql.html) * [CentOS](https://www.postgresql.org/download/linux/redhat/) -You should restrict access to the database and create a user specific to -LibreTime. The default installer script create a user with the password -`airtime` which is far to open and should be replaced with a self provided -user and a secure password. See the PostgreSQL docs on [roles](https://www.postgresql.org/docs/7.0/static/newuser.htm) -and [databases](https://www.postgresql.org/docs/10/static/managing-databases.html). +You should restrict access to the database and create a user specific to LibreTime. The default installer script create a user with the password`airtime` which is far to open and should be replaced with a self provided user and a secure password. See the PostgreSQL docs on [roles](https://www.postgresql.org/docs/7.0/static/newuser.htm) and [databases](https://www.postgresql.org/docs/10/static/managing-databases.html). -Please take care to ensure that your database is properly backed up at regular -intervals. LibreTime uses the database to store your schedule, settings, playout -history and more. See [backing up the server](../backing-up-the-server) for -more information on this. +Please take care to ensure that your database is properly backed up at regular intervals. LibreTime uses the database to store your schedule, settings, playout history and more. See [backing up the server](../backing-up-the-server) for more information on this. RabbitMQ -------- -LibreTime uses RabbitMQ interfacing various components like the main interface -and parts of the system like the audio analyzer and podcast downloader as well -as the playout system through a common message queue. -Again, the version provided by your distro will probably work fine for all -LibreTime is concerned. +LibreTime uses RabbitMQ interfacing various components like the main interface and parts of the system like the audio analyzer and podcast downloader as well as the playout system through a common message queue. +Again, the version provided by your distro will probably work fine for all LibreTime is concerned. * [Debian/Ubuntu](https://www.rabbitmq.com/install-debian.html) * [CentOS](https://www.rabbitmq.com/install-rpm.html) -The install script sets `airtime` as the password on the default user. It is -recommended to provide your own user using a secure password. +The install script sets `airtime` as the password on the default user. It is recommended to provide your own user using a secure password. -You can use [`rabbitmqctl`](https://www.rabbitmq.com/man/rabbitmqctl.1.man.html) -or the [Management Plugin](https://www.rabbitmq.com/management.html) to manage -your RabbitMQ users. +You can use [`rabbitmqctl`](https://www.rabbitmq.com/man/rabbitmqctl.1.man.html) or the [Management Plugin](https://www.rabbitmq.com/management.html) to manage your RabbitMQ users. -There is no state in the RabbitMQ system that you need to backup but you want -to ensure that your RabbitMQ configuration and user permissions are safe. +There is no state in the RabbitMQ system that you need to backup but you want to ensure that your RabbitMQ configuration and user permissions are safe. ### RabbitMQ hostname -RabbitMQ requires a fixed and resolvable hostname -(see [the docs](http://www.rabbitmq.com/ec2.html#issues-hostname)), which is -normal for a server. For a desktop or laptop machine where the hostname changes -frequently or is not resolvable, this issue may prevent RabbitMQ from starting. -When using a desktop or laptop computer with a dynamic IP address, such as an -address obtained from a wireless network, the `rabbitmq-server` daemon must -not start up before the `NetworkManager` service or `network.target`. +RabbitMQ requires a fixed and resolvable hostname (see [the docs](http://www.rabbitmq.com/ec2.html#issues-hostname)), which is +normal for a server. For a desktop or laptop machine where the hostname changes frequently or is not resolvable, this issue may prevent RabbitMQ from starting. +When using a desktop or laptop computer with a dynamic IP address, such as an address obtained from a wireless network, the `rabbitmq-server` daemon must not start up before the `NetworkManager` service or `network.target`. -You may also choose to configure RabbitMQ to only listen on the loopback -interface with a localhost node name. You can use [environment -variables](https://www.rabbitmq.com/configure.html#define-environment-variables) -or a configuration file to do this. +You may also choose to configure RabbitMQ to only listen on the loopback interface with a localhost node name. You can use [environment +variables](https://www.rabbitmq.com/configure.html#define-environment-variables) or a configuration file to do this. See these links for more information: diff --git a/mkdocs.yml b/mkdocs.yml index ab8a5c8c3..98583a693 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -15,60 +15,60 @@ extra_css: pages: - 'Home': index.md - - 'What is LibreTime': manual/index.md + - 'What is LibreTime?': manual/index.md - 'Features': features.md - 'F.A.Q.': faq.md - 'Rights and Royalties': manual/rights-and-royalties/index.md - 'Using LibreTime': - - 'On air in 60 seconds!': 'manual/on-air-in-60-seconds/index.md' - - 'Getting started': manual/getting-started/index.md - - 'The System Menu': + - 'On Air in 60 seconds!': 'manual/on-air-in-60-seconds/index.md' + - 'Getting Started': manual/getting-started/index.md + - 'The Settings Menu': - 'General': manual/preferences/index.md - 'Users': manual/users/index.md - 'Media Folders': manual/media-folders/index.md - 'Streams': manual/stream-settings/index.md - 'Support Feedback': manual/support-feedback/index.md - 'Status': manual/status/index.md - - 'Listener stats': manual/listener-stats/index.md - - 'The main menus': - - 'Now playing': manual/now-playing/index.md - - 'Add media': manual/add-media/index.md + - 'The Main Menus': + - 'Now Playing': manual/now-playing/index.md + - 'Add Media': manual/add-media/index.md - 'Library': manual/library/index.md - 'Calendar': manual/calendar/index.md - 'History': manual/history/index.md - 'Listen': manual/listen/index.md + - 'Analytics': manual/listener-stats/index.md - 'Help': manual/help/index.md - - 'LibreTime in the studio': - - 'Preparing media for ingest': manual/preparing-media-for-ingest/index.md - - 'Live shows with Mixxx': manual/live-shows-with-mixxx/index.md - - 'Smartphone journalism': manual/smartphone-journalism/index.md + - 'LibreTime in the Studio': + - 'Preparing Media for Ingest': manual/preparing-media-for-ingest/index.md + - 'Live Shows with Mixxx': manual/live-shows-with-mixxx/index.md + - 'Smartphone Journalism': manual/smartphone-journalism/index.md - 'Icecast and SHOUTcast': manual/icecast-and-shoutcast/index.md - - 'Recording shows': manual/recording-shows/index.md + - 'Recording Shows': manual/recording-shows/index.md - 'Installation': - 'Install': install.md - - 'Preparing the server': manual/preparing-the-server/index.md - - 'Easy setup': manual/easy-setup/index.md - - 'Automated installation': manual/automated-installation/index.md - - 'Manual installation': manual/manual-installation/index.md - - 'Setting the server time': manual/setting-the-server-time/index.md + - 'Preparing the Server': manual/preparing-the-server/index.md + - 'Easy Setup': manual/easy-setup/index.md + - 'Automated Installation': manual/automated-installation/index.md + - 'Manual Installation': manual/manual-installation/index.md + - 'Setting the Server Time': manual/setting-the-server-time/index.md - 'Administration': - - 'The airtime-log command': manual/the-airtime-log-command/index.md - - 'Backing up the server': manual/backing-up-the-server/index.md + - 'The airtime-log Command': manual/the-airtime-log-command/index.md + - 'Backing Up the Server': manual/backing-up-the-server/index.md - 'Upgrading': manual/upgrading/index.md - 'Troubleshooting': manual/troubleshooting/index.md - 'Using Monit': manual/using-monit/index.md - - 'Advanced configuration': - - 'Automated file import': manual/automated-file-import/index.md - - 'Icecast handover': manual/icecast-handover/index.md - - 'Promoting your station': manual/promoting-your-station/index.md - - 'Stream player for your website': manual/stream-player-for-your-website/index.md - - 'Exporting the schedule': manual/exporting-the-schedule/index.md - - 'Interface customization': manual/interface-customization/index.md - - 'Interface localization': manual/interface-localization/index.md - - 'Host configuration': manual/host-configuration/index.md - - 'LibreTime API authentication': manual/airtime-api-authentication/index.md - - 'Secure login with SSL or TLS': manual/secure-login-with-ssl/index.md - - 'Icecast statistics with Piwik': manual/icecast-statistics-with-piwik/index.md + - 'Advanced Configuration': + - 'Automated File Import': manual/automated-file-import/index.md + - 'Icecast Handover': manual/icecast-handover/index.md + - 'Promoting Your Station': manual/promoting-your-station/index.md + - 'Stream Player for Your Website': manual/stream-player-for-your-website/index.md + - 'Exporting the Schedule': manual/exporting-the-schedule/index.md + - 'Interface Customization': manual/interface-customization/index.md + - 'Interface Localization': manual/interface-localization/index.md + - 'Host Configuration': manual/host-configuration/index.md + - 'LibreTime API Authentication': manual/airtime-api-authentication/index.md + - 'Secure Login with SSL or TLS': manual/secure-login-with-ssl/index.md + - 'Icecast Statistics with Piwik': manual/icecast-statistics-with-piwik/index.md - 'FreeIPA Authentication': freeipa.md - 'Development': - 'Testing': testing.md @@ -77,6 +77,6 @@ pages: - 'Translating': translating.md - 'Documentation': documentation.md - 'Appendix': - - 'Expert install': manual/expert-install/index.md + - 'Expert Install': manual/expert-install/index.md - 'HD Audio Models': manual/hd-audio-models/index.md - - 'About this manual': manual/about-this-manual/index.md + - 'About This Manual': manual/about-this-manual/index.md