diff --git a/.travis.yml b/.travis.yml index ba6984565..e9cd45305 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,5 @@ dist: trusty +version: ~> 1.0 language: php php: # the latest and greatest, has some issues that are excluded below in matrix.allow_failures @@ -18,10 +19,10 @@ env: global: - ENVIRONMENT=testing - LIBRETIME_LOG_DIR=/tmp/log/libretime - matrix: + jobs: - PYTHON=false - PYTHON=true -matrix: +jobs: allow_failures: # there are currently some testing issues with DateTime precision on 7.1 - env: PYTHON=false @@ -33,12 +34,17 @@ matrix: - env: PYTHON=false php: 7.3 exclude: - # by excluding all of python we make way to just run python tests in one seperate instance + # we need to explicitly exclude python for every version of php other than 7.3 to make way to just run python tests in one seperate instance - env: PYTHON=true - include: - # using latest to run python on since it will last the longest - - php: 7.3 - env: PYTHON=true + php: 7.2 + - env: PYTHON=true + php: 7.1 + - env: PYTHON=true + php: 7.0 + - env: PYTHON=true + php: 5.6 + - env: PYTHON=true + php: 5.4 addons: apt: packages: diff --git a/airtime_mvc/application/configs/navigation.php b/airtime_mvc/application/configs/navigation.php index 0c30ba663..b839958b7 100644 --- a/airtime_mvc/application/configs/navigation.php +++ b/airtime_mvc/application/configs/navigation.php @@ -57,12 +57,6 @@ $pages[] = array( 'module' => 'default', 'controller' => 'embeddablewidgets', 'action' => 'schedule', - ), - array( - 'label' => _('Facebook'), - 'module' => 'default', - 'controller' => 'embeddablewidgets', - 'action' => 'facebook', ) ) ); @@ -185,7 +179,7 @@ $pages[] = array( 'target' => "_blank" ), array( - 'label' => _(sprintf("Help Translate %s", PRODUCT_NAME)), + 'label' => _('Help Translate Libretime'), 'uri' => AIRTIME_TRANSIFEX_URL, 'target' => "_blank" ), diff --git a/airtime_mvc/application/controllers/EmbeddablewidgetsController.php b/airtime_mvc/application/controllers/EmbeddablewidgetsController.php index 1f72e6935..8c3e10f34 100644 --- a/airtime_mvc/application/controllers/EmbeddablewidgetsController.php +++ b/airtime_mvc/application/controllers/EmbeddablewidgetsController.php @@ -43,6 +43,7 @@ class EmbeddableWidgetsController extends Zend_Controller_Action } } + // The Facebook widget is untested & unsupported, the widget has been removed from the navigation in navigation.php public function facebookAction() { Zend_Layout::getMvcInstance()->assign('parent_page', 'Widgets'); diff --git a/airtime_mvc/application/controllers/LocaleController.php b/airtime_mvc/application/controllers/LocaleController.php index 01810176c..e1c1a0e77 100644 --- a/airtime_mvc/application/controllers/LocaleController.php +++ b/airtime_mvc/application/controllers/LocaleController.php @@ -161,8 +161,8 @@ final class LocaleController extends Zend_Controller_Action => _("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."), "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." => _("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."), - "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." - => _("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."), + "The desired block length will not be reached if %s 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." + => _("The desired block length will not be reached if %s 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."), "Smart block shuffled" => _("Smart block shuffled"), "Smart block generated and criteria saved" => _("Smart block generated and criteria saved"), "Smart block saved" => _("Smart block saved"), @@ -193,9 +193,9 @@ final class LocaleController extends Zend_Controller_Action "The stream is disabled" => _("The stream is disabled"), "Getting information from the server..." => _("Getting information from the server..."), "Can not connect to the streaming server" => _("Can not connect to the streaming server"), - "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." - => _("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."), - "For more details, please read the %sAirtime Manual%s" => _("For more details, please read the %sAirtime Manual%s"), + "If %s 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." + => _("If %s 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."), + "For more details, please read the %s%s Manual%s" => _("For more details, please read the %s%s Manual%s"), "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." => _("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."), "Check this box to automatically switch off Master/Show source upon source disconnection." => _("Check this box to automatically switch off Master/Show source upon source disconnection."), @@ -356,7 +356,7 @@ final class LocaleController extends Zend_Controller_Action "Import media files" => _("Import media files"), "Create playlists, smart blocks, and webstreams" => _("Create playlists, smart blocks, and webstreams"), "Manage their own library content" => _("Manage their own library content"), - "Progam Managers can do the following:" => _("Progam Managers can do the following:"), + "Program Managers can do the following:" => _("Program Managers can do the following:"), "View and manage show content" => _("View and manage show content"), "Schedule shows" => _("Schedule shows"), "Manage all library content" => _("Manage all library content"), @@ -431,24 +431,76 @@ final class LocaleController extends Zend_Controller_Action "New Show" => _("New Show"), "New Log Entry" => _("New Log Entry"), //Datatables: - "No data available in table", - "Showing _START_ to _END_ of _TOTAL_ entries", - "Showing 0 to 0 of 0 entries", - "(filtered from _MAX_ total entries)", - "", - ",", - "Show _MENU_", - "Loading...", - "Processing...", - "No matching records found", - "First", - "Last", - "Next", - "Previous", + "No data available in table" => _("No data available in table"), + "(filtered from _MAX_ total entries)" => _("(filtered from _MAX_ total entries)"), ": activate to sort column ascending", ": activate to sort column descending", //End of datatables "Welcome to the new Airtime Pro!" => _("Welcome to the new Airtime Pro!"), + + //New entries from .js "" => _(""), + "First" => _("First"), + "Last" => _("Last"), + "Next" => _("Next"), + "Previous" => _("Previous"), + "Search:" => _("Search:"), + "No matching records found" => _("No matching records found"), + "Drag tracks here from the library" => _("Drag tracks here from the library"), + "No tracks were played during the selected time period." => _("No tracks were played during the selected time period."), + "Unpublish" => _("Unpublish"), + "No matching results found." => _("No matching results found."), + "Author" => _("Author"), + "Description" => _("Description"), + "Link" => _("Link"), + "Publication Date" => _("Publication Date"), + "Import Status" => _("Import Status"), + "Actions" => _("Actions"), + "Delete from Library" => _("Delete from Library"), + "Successfully imported" => _("Successfully imported"), + "No matching records found" => _("No matching records found"), + "Show _MENU_" => _("Show _MENU_"), + "Show _MENU_ entries" => _("Show _MENU_ entries"), + "Showing _START_ to _END_ of _TOTAL_ entries" => _("Showing _START_ to _END_ of _TOTAL_ entries"), + "Showing _START_ to _END_ of _TOTAL_ tracks" => _("Showing _START_ to _END_ of _TOTAL_ tracks"), + "Showing _START_ to _END_ of _TOTAL_ track types" => _("Showing _START_ to _END_ of _TOTAL_ track types"), + "Showing _START_ to _END_ of _TOTAL_ users" => _("Showing _START_ to _END_ of _TOTAL_ users"), + "Showing 0 to 0 of 0 entries" => _("Showing 0 to 0 of 0 entries"), + "Showing 0 to 0 of 0 tracks" => _("Showing 0 to 0 of 0 tracks"), + "Showing 0 to 0 of 0 track types" => _("Showing 0 to 0 of 0 track types"), + "(filtered from _MAX_ total track types)" => _("(filtered from _MAX_ total track types)"), + //"This is used for tracks containing music." => _("This is used for tracks containing music."), + "Are you sure you want to delete this tracktype?" => _("Are you sure you want to delete this tracktype?"), + "No track types were found." => _("No track types were found."), + "No track types found" => _("No track types found"), + "No matching track types found" => _("No matching track types found"), + "Enabled" => _("Enabled"), + "Disabled" => _("Disabled"), + "Cancel upload" => _("Cancel upload"), + "Type" => _("Type"), + "Autoloading playlists' contents are added to shows one hour before the show airs. More information" => _("Autoloading playlists' contents are added to shows one hour before the show airs. More information"), + "Podcast settings saved" => _("Podcast settings saved"), + "Are you sure you want to delete this user?" => _("Are you sure you want to delete this user?"), + "Can't delete yourself!" => _("Can't delete yourself!"), + "You haven't published any episodes!" => _("You haven't published any episodes!"), + "You can publish your uploaded content from the 'Tracks' view." => _("You can publish your uploaded content from the 'Tracks' view."), + "Try it now" => _("Try it now"), + "
If this option is unchecked, the smartblock will schedule as many tracks as can be played out in their entirety within the specified duration. This will usually result in audio playback that is slightly less than the specified duration.
If this option is checked, the smartblock will also schedule one final track which will overflow the specified duration. This final track may be cut off mid-way if the show into which the smartblock is added finishes.
" => _("If this option is unchecked, the smartblock will schedule as many tracks as can be played out in their entirety within the specified duration. This will usually result in audio playback that is slightly less than the specified duration.
If this option is checked, the smartblock will also schedule one final track which will overflow the specified duration. This final track may be cut off mid-way if the show into which the smartblock is added finishes.
"), + "Playlist preview" => _("Playlist preview"), + "Smart Block" => _("Smart Block"), + "Webstream preview" => _("Webstream preview"), + "You don't have permission to view the library." => _("You don't have permission to view the library."), + "Now" => _("Now"), + "Click 'New' to create one now." => _("Click 'New' to create one now."), + "Click 'Upload' to add some now." => _("Click 'Upload' to add some now."), + "Feed URL" => _("Feed URL"), + "Import Date" => _("Import Date"), + "Add New Podcast" => _("Add New Podcast"), + "Cannot schedule outside a show.\nTry creating a show first." => _("Cannot schedule outside a show.\nTry creating a show first."), + "No files have been uploaded yet." => _("No files have been uploaded yet."), + //"Value is required and can't be empty" => _("Value is required and can't be empty"), + //"mute" => _("mute"), + //"max volume" => _("max volume"), + //embed player "On Air" => _("On Air"), "Off Air" => _("Off Air"), diff --git a/airtime_mvc/application/controllers/upgrade_sql/airtime_3.0.0-alpha.9.2/upgrade.sql b/airtime_mvc/application/controllers/upgrade_sql/airtime_3.0.0-alpha.9.2/upgrade.sql index eef5afec1..67c5e5ca3 100644 --- a/airtime_mvc/application/controllers/upgrade_sql/airtime_3.0.0-alpha.9.2/upgrade.sql +++ b/airtime_mvc/application/controllers/upgrade_sql/airtime_3.0.0-alpha.9.2/upgrade.sql @@ -2,7 +2,7 @@ ALTER TABLE cc_files ADD COLUMN track_type VARCHAR(16); CREATE TABLE IF NOT EXISTS "cc_track_types" ( - "id" integer DEFAULT nextval('cc_track_types_id_seq'::regclass) NOT NULL, + "id" serial NOT NULL, "code" VARCHAR(16) NOT NULL, "type_name" VARCHAR(64), "description" VARCHAR(255), @@ -24,4 +24,3 @@ INSERT INTO cc_track_types VALUES (10, 'COM', 'Commercial', 'This is used for co INSERT INTO cc_track_types VALUES (11, 'ITV', 'Interview', 'This is used for radio interviews', true); INSERT INTO cc_track_types VALUES (12, 'VTR', 'Voice Tracking', 'Also referred as robojock or taped. Make announcements without actually being in the station.', true); -ALTER SEQUENCE cc_track_types_id_seq RESTART WITH 13; \ No newline at end of file diff --git a/airtime_mvc/application/forms/EditAudioMD.php b/airtime_mvc/application/forms/EditAudioMD.php index 9a00b9fb5..1e73c9522 100644 --- a/airtime_mvc/application/forms/EditAudioMD.php +++ b/airtime_mvc/application/forms/EditAudioMD.php @@ -94,6 +94,7 @@ class Application_Form_EditAudioMD extends Zend_Form // Add track type dropdown $track_type_options = array(); $track_types = Application_Model_Tracktype::getTracktypes(); + $track_type_options[""] = _('Select a Type'); foreach ($track_types as $key => $tt) { $track_type_options[$tt['code']] = $tt['type_name']; } diff --git a/airtime_mvc/application/forms/Player.php b/airtime_mvc/application/forms/Player.php index 5a24397d7..862f0fd25 100644 --- a/airtime_mvc/application/forms/Player.php +++ b/airtime_mvc/application/forms/Player.php @@ -75,6 +75,12 @@ class Application_Form_Player extends Zend_Form_SubForm $previewLabel = new Zend_Form_Element_Text('player_preview_label'); $previewLabel->setLabel(_("Preview:")); + $previewLabel->setDecorators(array( + 'ViewHelper', + 'Errors', + 'Label' + )); + $previewLabel->addDecorator('Label', array('class' => 'preview-label')); $this->addElement($previewLabel); } diff --git a/airtime_mvc/application/layouts/scripts/layout.phtml b/airtime_mvc/application/layouts/scripts/layout.phtml index 256257806..1b12a6e0c 100644 --- a/airtime_mvc/application/layouts/scripts/layout.phtml +++ b/airtime_mvc/application/layouts/scripts/layout.phtml @@ -179,18 +179,10 @@
- To make the tab more visible on your Facebook page, click "More", and "Manage Tabs":
+
">
- Then, drag the Radio Player item higher in the list, and click Save. It will now appear as one of the default tabs instead of being buried under "More":
+
">