Merge remote-tracking branch 'farguss/master'

This commit is contained in:
Kyle Robbertze 2020-05-01 09:55:51 +02:00
commit 1d65945ed3
23 changed files with 1127 additions and 621 deletions

View file

@ -179,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"
),

View file

@ -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. <a target='_blank' href='http://libretime.org/manual/calendar/#autoloading-playlist'>More information</a>" => _("Autoloading playlists' contents are added to shows one hour before the show airs. <a target='_blank' href='http://libretime.org/manual/calendar/#autoloading-playlist'>More information</a>"),
"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"),
"<p>If this option is unchecked, the smartblock will schedule as many tracks as can be played out <strong>in their entirety</strong> within the specified duration. This will usually result in audio playback that is slightly less than the specified duration.</p><p>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.</p>" => _("<p>If this option is unchecked, the smartblock will schedule as many tracks as can be played out <strong>in their entirety</strong> within the specified duration. This will usually result in audio playback that is slightly less than the specified duration.</p><p>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.</p>"),
"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"),

View file

@ -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);
}

View file

@ -158,7 +158,7 @@ class Application_Service_PodcastService
$newBl = new Application_Model_Block();
$newBl->setCreator(Application_Model_User::getCurrentUser()->getId());
$newBl->setName($title);
$newBl->setDescription('Auto-generated smartblock for podcast');
$newBl->setDescription(_("Auto-generated smartblock for podcast"));
$newBl->saveType('dynamic');
// limit the smartblock to 1 item
$row = new CcBlockcriteria();

View file

@ -2,10 +2,10 @@
<?php $baseUrl = Application_Common_OsPath::getBaseDir(); ?>
<h2 style="float:left"><?php echo _("Facebook Radio Player") ?></h2>
<h2 style="text-align:center"><?php echo _("Facebook Radio Player") ?></h2>
<div style="clear:both"></div>
<p><button class="btn btn-new" id="facebook-login" style="margin-left: 300px;">Add to My Facebook Page</button></p>
<p><button class="btn btn-new" id="facebook-login" style="margin-left: 320px;"><?php echo _("Add to My Facebook Page") ?></button></p>
<div id="weekly-schedule-widget-error">
<?php echo $this->facebook_error_msg; ?>
@ -13,7 +13,7 @@
<div>
<h3 style="padding-left: 0px">Preview:</h3>
<h3 style="padding-left: 0px"><?php echo _("Preview:") ?></h3>
<div>
<iframe width=800 height=800 src="<?php echo Application_Common_HTTPHelper::getStationUrl(); ?>/?facebook=1"></iframe>
@ -24,12 +24,12 @@
<div>
<h3 style="padding-left: 0px">Tips:</h3>
<h3 style="padding-left: 0px"><?php echo _("Tips:") ?></h3>
<p>
To make the tab more visible on your Facebook page, click "More", and "Manage Tabs":<br>
<?php echo _("To make the tab more visible on your Facebook page, click 'More', and 'Manage Tabs':") ?><br><br>
<img src="<?php echo($baseUrl) . "images/doc/facebook_widget1.png"?>"><br><br>
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":<br>
<?php echo _("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':") ?><br><br>
<img src="<?php echo($baseUrl) . "images/doc/facebook_widget2.png"?>">
</p>

View file

@ -3,7 +3,7 @@
<?php $baseUrl = Application_Common_OsPath::getBaseDir(); ?>
<form method="post" id="player_form" enctype="multipart/form-data">
<h2 style="float:left"><?php echo _("Player") ?></h2>
<h2 style="text-align:center"><?php echo _("Player") ?></h2>
<div style="clear:both"></div>
<?php echo $this->player_error_msg; ?>
<?php echo $this->player_form; ?>

View file

@ -2,27 +2,26 @@
<?php $baseUrl = Application_Common_OsPath::getBaseDir(); ?>
<h2 style="float:left"><?php echo _("Weekly Schedule") ?></h2>
<h2 style="text-align:center"><?php echo _("Weekly Schedule") ?></h2>
<div style="clear:both"></div>
<div id="weekly-schedule-widget-error">
<?php echo $this->weekly_schedule_error_msg; ?>
</div>
<h3 style="float:left"><?php echo _("Preview:") ?></h3>
<fieldset class="padded">
<div id="weekly-schedule-widget-preview" <?php if (isset($this->weekly_schedule_error_msg)) echo "style=display:none"; ?>>
<label><?php echo _("Preview:") ?></label>
<!-- <label><?php echo _("Preview:") ?></label> -->
<div class="schedule_iframe_wrapper">
<iframe id="schedule_iframe" height="400px" width="550px" scrolling="no" frameborder="0" src="<?php echo Application_Common_HTTPHelper::getStationUrl()."embed/weekly-program"?>"></iframe>
</div>
<div style="clear:both"></div>
<label>Embeddable Code:</label>
<label><?php echo _("Embeddable code:") ?><br><br></label>
<textarea style="width:98%" rows="3" readonly="readonly"><iframe height="400px" width="550px" scrolling="no" frameborder="0" src="<?php echo Application_Common_HTTPHelper::getStationUrl()."embed/weekly-program"?>"></iframe>
</textarea>
<div><p>
Copy this code and paste it into your website's HTML to embed the weekly schedule in your site.
Adjust the height and width attributes to your desired size.
<?php echo _("Copy this code and paste it into your website's HTML to embed the weekly schedule in your site. Adjust the height and width attributes to your desired size.") ?>
</p>
</div>
</div>

View file

@ -2,7 +2,7 @@
<form enctype="application/x-www-form-urlencoded" method="post" action="">
<dl class="zend_form">
<p>Please enter both your username and email address.</p>
<p><?php echo(_("Please enter both your username and email address.")); ?></p>
<dt id="username-label">
<label for="username" class="required">
<?php echo $this->element->getElement('username')->getLabel() ?>

View file

@ -1,3 +1,20 @@
<style type="text/css">
.player-title {
width: 70px;
border-style: none
float: left;
}
.preview-label {
line-height: 60px;
border-style: none
float: left;
font-size: 20px;
color: #fff
}
</style>
<fieldset class="padded">
<dl class="zend_form">
@ -23,11 +40,11 @@
<?php //echo $this->element->getElement('player_display_track_metadata'); ?>
<table id="player_compatibility_chart">
<th colspan="5">Stream Compatibility</th>
<table id="player_compatibility_chart" style="text-align:center; position:relative; top:40px;">
<th colspan="5" style="text-align:center"><?php echo _("Stream Compatibility") ?></th>
<tr>
<td colspan="3">Desktop</td>
<td colspan="2">Mobile</td>
<td colspan="3"><?php echo _("Desktop") ?></td>
<td colspan="2"><?php echo _("Mobile") ?></td>
</tr>
<tr>
<td>Firefox</td>
@ -37,14 +54,14 @@
<td>iOS 7 - Safari</td>
</tr>
<tr>
<td>Yes (Flash)</td>
<td>Yes (Flash)</td>
<td>Yes (Flash)</td>
<td>MP3/OGG* only</td>
<td>MP3/AAC only</td>
<td><?php echo _("Yes (Flash)") ?></td>
<td><?php echo _("Yes (Flash)") ?></td>
<td><?php echo _("Yes (Flash)") ?></td>
<td><?php echo _("MP3/OGG* only") ?></td>
<td><?php echo _("MP3/AAC only") ?></td>
</tr>
<tr>
<td colspan="5">* Chrome on Android is known to take about 4 seconds to buffer a 128 kbps MP3 stream. Lower bitrates take longer to buffer.</td>
<td colspan="5" style="text-align:left"><?php echo _("* Chrome on Android is known to take about 4 seconds to buffer a 128 kbps MP3 stream. Lower bitrates take longer to buffer.") ?></td>
</tr>
</table>

View file

@ -3,8 +3,7 @@
<div class="warning" style="margin-bottom: 10px;">
<p class="warning-label">
<strong>Warning:</strong> These functions will have <strong>permanent and lasting effects</strong>
on your Airtime station. Think carefully before using them!
<?php echo _("<strong>Warning:</strong> These functions will have <strong>permanent and lasting effects</strong> on your Airtime station. Think carefully before using them!") ?>
</p>
</div>

View file

@ -18,8 +18,8 @@
<span id="stream_url"><?php echo $this->element->getElement("master_source_host")->render() ?>
<a href=# id="connection_url_override" style="font-size: 12px;"><?php echo _("Override") ?></a>&nbsp;&nbsp;
<span class="override_help_icon"></span></br>
<div id="master_dj_connection_url_actions" style="display:none">
<a href=# id="ok" style="font-size: 12px;"><?php echo _("OK") ?></a> <a href=# id="reset" style="font-size: 12px;"><?php echo _("RESET"); ?></a>
<div id="master_dj_connection_url_actions" style="display:none">&nbsp;&nbsp;
<a href=# id="ok" style="font-size: 12px;"><?php echo _("OK") ?></a>&nbsp;&nbsp;<a href=# id="reset" style="font-size: 12px;"><?php echo _("RESET"); ?></a>
</div>
</span>
<?php echo $this->element->getElement("master_source_port")->render() ?>
@ -36,8 +36,8 @@
<a href=# id="connection_url_override" style="font-size: 12px;"><?php echo _("Override") ?></a>&nbsp;&nbsp;
<span class="override_help_icon"></span>
</br>
<div id="live_dj_connection_url_actions" style="display:none">
<a href=# id="ok" style="font-size: 12px;"><?php echo _("OK") ?></a> <a href=# id="reset" style="font-size: 12px;"><?php echo _("RESET"); ?></a>
<div id="live_dj_connection_url_actions" style="display:none; float:left">&nbsp;&nbsp;
<a href=# id="ok" style="font-size: 12px;"><?php echo _("OK") ?></a>&nbsp;&nbsp;<a href=# id="reset" style="font-size: 12px;"><?php echo _("RESET"); ?></a>
</div>
</span>
<?php echo $this->element->getElement("show_source_port")->render() ?>

View file

@ -57,7 +57,7 @@
<div id="tab-4" class="podcast tab_content">
<div class="rss-title-wrapper">
<div id="rss-subscribe">
<a target="_blank" href="<?php echo $this->stationPodcastRssUrl ?>" class="rss_icon"><span>Subscribe </span><img src="css/radio-page/img/rss.png"></a>
<a target="_blank" href="<?php echo $this->stationPodcastRssUrl ?>" class="rss_icon"><span><?php echo _("Subscribe") ?></span><img src="css/radio-page/img/rss.png"></a>
</div>
<div id="rss-title">
<?php echo $this->podcastTitle ?>
@ -70,7 +70,7 @@
<div id="jp_container_1" class="jp-audio">
<div class="jp-type-playlist">
<div class="current-track track-overflow">Now Playing: <span class="track-overflow"></span></div>
<div class="current-track track-overflow"><?php echo _("Now Playing:") ?><span class="track-overflow"></span></div>
<div class="jp-gui jp-interface">
<div class="playbar playbar-buttons">
<ul class="jp-controls rss-buttons">

View file

@ -3,7 +3,7 @@
<div id="flot_placeholder" style="height:300px;margin:0px 50px 0px 50px"></div>
<div id="legend" style="width:600px;height:70px;margin:0px 50px 0px 50px"></div>
<div id="date_form" style="float:left; margin:0px 0px">
<h3 style="padding-left: 0px">Date Range</h3>
<h3 style="padding-left: 0px"><?php echo _("Date Range") ?></h3>
<?php echo $this->date_form; ?>
</div>
<div id="errorStatus" style="float:right; width: 400px">

View file

@ -2,7 +2,7 @@
<H2><?php echo _("Listeners")?></H2>
<div class="error_window"></div>
<div id="date_form" style="float:left; margin:0px 0px">
<h3 style="padding-left: 0px">Date Range</h3>
<h3 style="padding-left: 0px"><?php echo _("Date Range") ?></h3>
<?php echo $this->date_form; ?>
</div>

View file

@ -83,12 +83,12 @@
</div>
-->
<div id="uploads_disk_usage">
<div style="padding-bottom: 2px;">Storage</div>
<div style="padding-bottom: 2px;"><?php echo _("Storage")?></div>
<div class="disk_usage_progress_bar"></div>
<div class="disk_usage_percent_in_use"><?php echo sprintf("%01.1f%% ", $used/$total*100) . _("in use") ?></div>
<div class="disk_usage_used" style="width:<?php echo sprintf("%01.1f%%", min(100, $used/$total*100)) ?>;"></div>
<div style="margin-top: 17px; font-size: 12px;"><?php echo sprintf("%01.1fGB of %01.1fGB", $used/pow(2, 30), $total/pow(2, 30)); ?></div>
<div style="margin-top: 17px; font-size: 12px;"><?php echo sprintf(_("%01.1fGB of %01.1fGB"), $used/pow(2, 30), $total/pow(2, 30)); ?></div>
</div>
</div>
</div>

View file

@ -103,7 +103,7 @@
<div style="clear:both"></div>
<div class="podcast-metadata-row">
<dt>
<label for="stationPodcastFeedUrl" class="optional">Feed URL</label>
<label for="stationPodcastFeedUrl" class="optional"><?php echo _("Feed URL"); ?></label>
</dt>
<dd>
<input type="url" ng-model="podcast.url" disabled="disabled" class="input_text" />

View file

@ -50,7 +50,7 @@
<?php foreach ($this->form->getElement('streamFormat')->getMultiOptions() as $radio) : ?>
<label for="streamFormat-<?php echo $i ?>">
<input type="radio" value="<?php echo $i ?>" id="streamFormat-<?php echo $i ?>" name="streamFormat" <?php if($i == $value){echo 'checked="checked"';}?> >
<?php echo $radio ?>
<?php echo $radio ?> <br><br>
</input>
</label>
<?php $i = $i + 1; ?>

View file

@ -38,7 +38,7 @@
Postgres
</td>
<td class="description">
PDO and PostgreSQL libraries
<?php echo _("PDO and PostgreSQL libraries") ?>
</td>
<td class="solution <?php if ($postgres) {echo 'check';?>">
<?php
@ -55,7 +55,7 @@
Database
</td>
<td class="description">
Database configuration for LibreTime
<?php echo _("Database configuration for LibreTime") ?>
</td>
<td class="solution <?php if ($database) {echo 'check';?>">
<?php
@ -74,7 +74,7 @@
RabbitMQ
</td>
<td class="description">
RabbitMQ configuration for LibreTime
<?php echo _("RabbitMQ configuration for LibreTime") ?>
</td>
<td class="solution <?php if ($rabbitmq) {echo 'check';?>">
<?php
@ -92,19 +92,19 @@
</tr>
<tr>
<td class="component">
Media Analzyer
Media Analyzer
</td>
<td class="description">
LibreTime media analyzer service
<?php echo _("LibreTime media analyzer service") ?>
</td>
<td class="solution <?php if ($analyzer) {echo 'check';?>">
<?php
} else {
?>">
Check that the airtime_analyzer service is installed correctly in <code>/etc/init</code>,
and ensure that it's running with
<?php echo _("Check that the airtime_analyzer service is installed correctly in ") ?><code>/etc/init</code>,
<?php echo _(" and ensure that it's running with ") ?>
<br/><code>initctl list | grep airtime_analyzer</code><br/>
If not, try <br/><code>sudo service airtime_analyzer start</code>
<?php echo _("If not, try ") ?><br/><code>sudo service airtime_analyzer start</code>
<?php
}
?>
@ -115,16 +115,16 @@
Pypo
</td>
<td class="description">
LibreTime playout service
<?php echo _("LibreTime playout service") ?>
</td>
<td class="solution <?php if ($pypo) {echo 'check';?>">
<?php
} else {
?>">
Check that the airtime-playout service is installed correctly in <code>/etc/init</code>,
and ensure that it's running with
<?php echo _("Check that the airtime-playout service is installed correctly in ") ?><code>/etc/init</code>,
<?php echo _(" and ensure that it's running with ") ?>
<br/><code>initctl list | grep airtime-playout</code><br/>
If not, try <br/><code>sudo service airtime-playout restart</code>
<?php echo _("If not, try ") ?><br/><code>sudo service airtime-playout restart</code>
<?php
}
?>
@ -135,36 +135,36 @@
Liquidsoap
</td>
<td class="description">
LibreTime liquidsoap service
<?php echo _("LibreTime liquidsoap service") ?>
</td>
<td class="solution <?php if ($liquidsoap) {echo 'check';?>" >
<?php
} else {
?>">
Check that the airtime-liquidsoap service is installed correctly in <code>/etc/init</code>,
and ensure that it's running with
<?php echo _("Check that the airtime-liquidsoap service is installed correctly in ") ?><code>/etc/init</code>,
<?php echo _(" and ensure that it's running with ") ?>
<br/><code>initctl list | grep airtime-liquidsoap</code><br/>
If not, try <br/><code>sudo service airtime-liquidsoap restart</code>
<?php echo _("If not, try ") ?><br/><code>sudo service airtime-liquidsoap restart</code>
<?php
}
?>
</td>
</tr>
<tr>
<td class="component">
<td class="component" align="center">
Celery
</td>
<td class="description">
LibreTime Celery Task service
<?php echo _("LibreTime Celery Task service") ?>
</td>
<td class="solution <?php if ($celery) {echo 'check';?>" >
<?php
} else {
?>">
Check that the airtime-celery service is installed correctly in <code>/etc/init</code>,
and ensure that it's running with
<?php echo _("Check that the airtime-celery service is installed correctly in ") ?><code>/etc/init</code>,
<?php echo _(" and ensure that it's running with ") ?>
<br/><code>initctl list | grep airtime-celery</code><br/>
If not, try <br/><code>sudo service airtime-celery restart</code>
<?php echo _("If not, try ") ?><br/><code>sudo service airtime-celery restart</code>
<?php
}
?>

File diff suppressed because it is too large Load diff

View file

@ -451,12 +451,12 @@ function reindexElements() {
*/
if ($(div).find('select[name^="sp_criteria_field"]').hasClass('sp-invisible')) {
if ($(div).is(':visible')) {
$(div).prev().find('.db-logic-label').text('or').show();
$(div).prev().find('.db-logic-label').text($.i18n._("or")).show();
}
modIndex++;
} else {
if ($(div).is(':visible')) {
$(div).prev().find('.db-logic-label').text('and').show();
$(div).prev().find('.db-logic-label').text($.i18n._("and")).show();
}
index++;
modIndex = 0;

View file

@ -60,7 +60,7 @@ function rowCallback( nRow, aData, iDisplayIndex ){
if( aData['delete'] != "self"){
$('td:eq(4)', nRow).append( '<span class="ui-icon ui-icon-closethick"></span>').children('span').click(function(e){e.stopPropagation(); removeUserCallback(aData['id'], nRow)});
}else{
$('td:eq(4)', nRow).empty().append( '<span class="ui-icon ui-icon-closethick"></span>').children('span').click(function(e){e.stopPropagation(); alert("Can't delete yourself!")});
$('td:eq(4)', nRow).empty().append( '<span class="ui-icon ui-icon-closethick"></span>').children('span').click(function(e){e.stopPropagation(); alert($.i18n._("Can't delete yourself!"))});
}
if ( aData['type'] == "A" )

View file

@ -131,7 +131,27 @@ fnRender:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:nu
bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollAutoCss:!0,bScrollCollapse:!1,bScrollInfinite:!1,bServerSide:!1,bSort:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCookieCallback:null,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(e){if(1E3>e)return e;for(var h=e+"",e=h.split(""),j="",h=h.length,k=0;k<h;k++)0===k%3&&0!==k&&(j=this.oLanguage.sInfoThousands+j),j=e[h-k-1]+j;return j},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,
fnRowCallback:null,fnServerData:function(e,j,m,k){k.jqXHR=h.ajax({url:e,data:j,success:function(e){e.sError&&k.oApi._fnLog(k,0,e.sError);h(k.oInstance).trigger("xhr",[k,e]);m(e)},dataType:"json",cache:!1,type:k.sServerMethod,error:function(e,h){"parsererror"==h&&k.oApi._fnLog(k,0,"DataTables warning: JSON data from server could not be parsed. This is caused by a JSON formatting error.")}})},fnServerParams:null,fnStateLoad:function(e){var e=this.oApi._fnReadCookie(e.sCookiePrefix+e.sInstance),j;try{j=
"function"===typeof h.parseJSON?h.parseJSON(e):eval("("+e+")")}catch(m){j=null}return j},fnStateLoadParams:null,fnStateLoaded:null,fnStateSave:function(e,h){this.oApi._fnCreateCookie(e.sCookiePrefix+e.sInstance,this.oApi._fnJsonString(h),e.iCookieDuration,e.sCookiePrefix,e.fnCookieCallback)},fnStateSaveParams:null,iCookieDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iScrollLoadGap:100,iTabIndex:0,oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},
oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sInfoThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},j.models.oSearch),sAjaxDataProp:"aaData",
oPaginate:{
sFirst: $.i18n._("First"),
sLast: $.i18n._("Last"),
sNext: $.i18n._("Next"),
sPrevious: $.i18n._("Previous")},
sEmptyTable: $.i18n._("No data available in table"),
sInfo: $.i18n._("Showing _START_ to _END_ of _TOTAL_ entries"),
sInfoEmpty: $.i18n._("Showing 0 to 0 of 0 entries"),
sInfoFiltered: $.i18n._("(filtered from _MAX_ total entries)"),
sInfoPostFix:"",
sInfoThousands:",",
sLengthMenu: $.i18n._("Show _MENU_ entries"),
sLoadingRecords:$.i18n._("Loading..."),
sProcessing: $.i18n._("Processing..."),
sSearch: $.i18n._("Search:"),
sUrl:"",
sZeroRecords: $.i18n._("No matching records found")},
oSearch:h.extend({},j.models.oSearch),sAjaxDataProp:"aaData",
sAjaxSource:null,sCookiePrefix:"SpryMedia_DataTables_",sDom:"lfrtip",sPaginationType:"two_button",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET"};j.defaults.columns={aDataSort:null,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bUseRendered:!0,bVisible:!0,fnCreatedCell:null,fnRender:null,iDataSort:-1,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};j.models.oSettings={oFeatures:{bAutoWidth:null,
bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortClasses:null,bStateSave:null},oScroll:{bAutoCss:null,bCollapse:null,bInfinite:null,iBarWidth:0,iLoadGap:null,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1},aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aoColumns:[],aoHeader:[],aoFooter:[],asDataSearch:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:null,
asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,sPaginationType:"two_button",iCookieDuration:0,sCookiePrefix:"",fnCookieCallback:null,aoStateSave:[],aoStateLoad:[],