Merge branch 'devel' of dev.sourcefabric.org:airtime into devel
This commit is contained in:
commit
7d6e251adf
|
@ -115,7 +115,7 @@ class LoginController extends Zend_Controller_Action
|
|||
$auth = new Application_Model_Auth();
|
||||
|
||||
$auth->sendPasswordRestoreLink($user, $this->view);
|
||||
$this->_helper->redirector('password-restore-after', 'auth');
|
||||
$this->_helper->redirector('password-restore-after', 'login');
|
||||
}
|
||||
else {
|
||||
$form->email->addError($this->view->translate("Given email not found."));
|
||||
|
@ -146,7 +146,7 @@ class LoginController extends Zend_Controller_Action
|
|||
|
||||
//check validity of token
|
||||
if (!$auth->checkToken($user_id, $token, 'password.restore')) {
|
||||
echo "token not valid";
|
||||
Logging::debug("token not valid");
|
||||
$this->_helper->redirector('index', 'login');
|
||||
}
|
||||
|
||||
|
|
|
@ -11,9 +11,9 @@ class UsersettingsController extends Zend_Controller_Action
|
|||
->addActionContext('get-library-datatable', 'json')
|
||||
->addActionContext('set-library-datatable', 'json')
|
||||
->addActionContext('get-timeline-datatable', 'json')
|
||||
->addActionContext('set-timeline-datatable', 'json')
|
||||
->addActionContext('register', 'json')
|
||||
->addActionContext('set-timeline-datatable', 'json')
|
||||
->addActionContext('remindme', 'json')
|
||||
->addActionContext('donotshowregistrationpopup', 'json')
|
||||
->initContext();
|
||||
}
|
||||
|
||||
|
|
|
@ -16,6 +16,8 @@ class Application_Model_Auth {
|
|||
$info->setDbCreated(gmdate('Y-m-d H:i:s'));
|
||||
$info->save();
|
||||
|
||||
Logging::debug("generated token {$token}");
|
||||
|
||||
return $token;
|
||||
}
|
||||
|
||||
|
|
|
@ -245,7 +245,8 @@ class Application_Model_Schedule {
|
|||
showt.background_color AS show_background_color, showt.id AS show_id,
|
||||
|
||||
si.starts AS si_starts, si.ends AS si_ends, si.time_filled AS si_time_filled,
|
||||
si.record AS si_record, si.rebroadcast AS si_rebroadcast, si.id AS si_id, si.last_scheduled AS si_last_scheduled,
|
||||
si.record AS si_record, si.rebroadcast AS si_rebroadcast, si.instance_id AS parent_show,
|
||||
si.id AS si_id, si.last_scheduled AS si_last_scheduled,
|
||||
|
||||
sched.starts AS sched_starts, sched.ends AS sched_ends, sched.id AS sched_id,
|
||||
sched.cue_in AS cue_in, sched.cue_out AS cue_out,
|
||||
|
|
|
@ -159,6 +159,22 @@ class Application_Model_ShowBuilder {
|
|||
$showEndDT->setTimezone(new DateTimeZone($this->timezone));
|
||||
$endsEpoch = floatval($showEndDT->format("U.u"));
|
||||
|
||||
//is a rebroadcast show
|
||||
if (intval($p_item["si_rebroadcast"]) === 1) {
|
||||
$row["rebroadcast"] = true;
|
||||
|
||||
$parentInstance = CcShowInstancesQuery::create()->findPk($p_item["parent_show"]);
|
||||
$name = $parentInstance->getCcShow()->getDbName();
|
||||
$dt = $parentInstance->getDbStarts(null);
|
||||
$dt->setTimezone(new DateTimeZone($this->timezone));
|
||||
$time = $dt->format("Y-m-d H:i");
|
||||
|
||||
$row["rebroadcast_title"] = "Rebroadcast of {$name} from {$time}";
|
||||
}
|
||||
else if (intval($p_item["si_record"]) === 1) {
|
||||
$row["record"] = true;
|
||||
}
|
||||
|
||||
if ($startsEpoch < $this->epoch_now && $endsEpoch > $this->epoch_now) {
|
||||
$row["currentShow"] = true;
|
||||
$this->currentShow = true;
|
||||
|
@ -238,7 +254,11 @@ class Application_Model_ShowBuilder {
|
|||
$row["id"] = 0 ;
|
||||
$row["instance"] = intval($p_item["si_id"]);
|
||||
}
|
||||
|
||||
|
||||
if (intval($p_item["si_rebroadcast"]) === 1) {
|
||||
$row["record"] = true;
|
||||
}
|
||||
|
||||
if ($this->currentShow = true) {
|
||||
$row["currentShow"] = true;
|
||||
}
|
||||
|
|
|
@ -8,6 +8,14 @@
|
|||
<dd id="new-password-element">
|
||||
<?php echo $this->element->getElement('password') ?>
|
||||
</dd>
|
||||
<?php if($this->element->getElement('password')->hasErrors()): ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('password')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<dt id="confirm-password-label">
|
||||
<label for="confirm-password" class="required">
|
||||
<?php echo $this->element->getElement('password_confirm')->getLabel() ?>
|
||||
|
@ -16,6 +24,13 @@
|
|||
<dd id="confirm-password-element">
|
||||
<?php echo $this->element->getElement('password_confirm') ?>
|
||||
</dd>
|
||||
<?php if($this->element->getElement('password_confirm')->hasErrors()): ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('password_confirm')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<dt id="submit-label"> </dt>
|
||||
<dd id="submit-element">
|
||||
|
|
|
@ -8,6 +8,13 @@
|
|||
<dd id="username-element">
|
||||
<?php echo $this->element->getElement('email') ?>
|
||||
</dd>
|
||||
<?php if($this->element->getElement('email')->hasErrors()): ?>
|
||||
<ul class='errors'>
|
||||
<?php foreach($this->element->getElement('email')->getMessages() as $error): ?>
|
||||
<li><?php echo $error; ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
<dt id="submit-label"> </dt>
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
<h2>Email sent</h2>
|
||||
|
||||
<div id="login" class="login-content clearfix">
|
||||
<p class="light">An email has been sent to <?php $this->form->email->getValue() ?></p>
|
||||
<p class="light">An email has been sent</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -228,7 +228,8 @@ var AIRTIME = (function(AIRTIME){
|
|||
//background-color to imitate calendar color.
|
||||
r,g,b,a,
|
||||
$nRow = $(nRow),
|
||||
$image;
|
||||
$image,
|
||||
$div;
|
||||
|
||||
fnPrepareSeparatorRow = function fnPrepareSeparatorRow(sRowContent, sClass, iNodeIndex) {
|
||||
|
||||
|
@ -252,7 +253,25 @@ var AIRTIME = (function(AIRTIME){
|
|||
node.innerHTML = '';
|
||||
cl = 'sb-header';
|
||||
|
||||
if (aData.record === true) {
|
||||
$div = $("<div/>", {
|
||||
"class": "small-icon recording"
|
||||
});
|
||||
$(node).append($div);
|
||||
}
|
||||
else if(aData.rebroadcast === true) {
|
||||
$div = $("<div/>", {
|
||||
"class": "small-icon rebroadcast"
|
||||
});
|
||||
$(node).append($div);
|
||||
}
|
||||
|
||||
sSeparatorHTML = '<span class="show-title">'+aData.title+'</span>';
|
||||
|
||||
if (aData.rebroadcast === true) {
|
||||
sSeparatorHTML += '<span>'+aData.rebroadcast_title+'</span>';
|
||||
}
|
||||
|
||||
sSeparatorHTML += '<span class="push-right">';
|
||||
|
||||
if (aData.startDate === aData.endDate) {
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
Before you overwrite jquery.contextMenu.js, note that we have changed a few lines
|
||||
in this file.
|
||||
|
||||
denise@denise-DX4860:~/airtime/airtime_mvc/public/js/contextmenu$ diff -u jquery.contextMenu_orig.js jquery.contextMenu.js
|
||||
--- jquery.contextMenu_orig.js 2012-04-20 10:15:59.943215571 -0400
|
||||
+++ jquery.contextMenu.js 2012-04-20 10:00:18.911178927 -0400
|
||||
@@ -306,6 +306,15 @@
|
||||
e.stopImmediatePropagation();
|
||||
$this.remove();
|
||||
root.$menu.trigger('contextmenu:hide');
|
||||
+ /* (Airtime) added this to allow user to exit out of menu.
|
||||
+ * if ignoreThisClick remains false, every right click
|
||||
+ * thereafter continues to show the menu
|
||||
+ */
|
||||
+ if (ignoreRightClick) {
|
||||
+ if (e.button == 2) {
|
||||
+ ignoreThisClick = true;
|
||||
+ }
|
||||
+ }
|
||||
},
|
||||
// key handled :hover
|
||||
keyStop: function(e, opt) {
|
||||
|
|
@ -306,6 +306,15 @@ var // currently active contextMenu trigger
|
|||
e.stopImmediatePropagation();
|
||||
$this.remove();
|
||||
root.$menu.trigger('contextmenu:hide');
|
||||
/* (Airtime) added this to allow user to exit out of menu.
|
||||
* if ignoreThisClick remains false, every right click
|
||||
* thereafter continues to show the menu
|
||||
*/
|
||||
if (ignoreRightClick) {
|
||||
if (e.button == 2) {
|
||||
ignoreThisClick = true;
|
||||
}
|
||||
}
|
||||
},
|
||||
// key handled :hover
|
||||
keyStop: function(e, opt) {
|
||||
|
|
|
@ -287,15 +287,15 @@ a.jp-mute, a.jp-unmute, a.jp-volume-max {
|
|||
}
|
||||
div.jp-audio div.jp-type-single a.jp-mute{
|
||||
top: 15px;
|
||||
left: 102px;
|
||||
left: 106px;
|
||||
}
|
||||
div.jp-audio div.jp-type-single a.jp-unmute {
|
||||
top: 15px;
|
||||
left: 90px;
|
||||
left: 95px;
|
||||
}
|
||||
div.jp-audio div.jp-type-playlist a.jp-mute, div.jp-audio div.jp-type-playlist a.jp-unmute {
|
||||
top: 32px;
|
||||
left: 296px;
|
||||
left: 297px;
|
||||
}
|
||||
div.jp-video a.jp-mute, div.jp-video a.jp-unmute {
|
||||
top: 27px;
|
||||
|
@ -351,7 +351,7 @@ div.jp-volume-bar {
|
|||
}
|
||||
div.jp-audio div.jp-type-single div.jp-volume-bar {
|
||||
top: 24px;
|
||||
left: 120px;
|
||||
left: 125px;
|
||||
}
|
||||
div.jp-audio div.jp-type-playlist div.jp-volume-bar {
|
||||
top: 37px;
|
||||
|
|
|
@ -142,8 +142,15 @@ class AirtimeProcessEvent(ProcessEvent):
|
|||
|
||||
#delete files from organize if they can not be read properly.
|
||||
if pathname is None:
|
||||
os.remove(oldPath)
|
||||
return
|
||||
try:
|
||||
self.logger.info("Deleting file because it cannot be read properly: %s", oldPath)
|
||||
os.remove(oldPath)
|
||||
return
|
||||
except Exception, e:
|
||||
import traceback
|
||||
top = traceback.format_exc()
|
||||
self.logger.error('Exception: %s', e)
|
||||
self.logger.error("traceback: %s", top)
|
||||
|
||||
self.mmc.set_needed_file_permissions(pathname, dir)
|
||||
is_recorded = self.mmc.is_parent_directory(pathname, self.config.recorded_directory)
|
||||
|
@ -245,7 +252,14 @@ class AirtimeProcessEvent(ProcessEvent):
|
|||
|
||||
#delete files from organize if they can not be read properly.
|
||||
if filepath is None:
|
||||
os.remove(event.pathname)
|
||||
try:
|
||||
self.logger.info("Deleting file because it cannot be read properly: %s", event.pathname)
|
||||
os.remove(event.pathname)
|
||||
except Exception, e:
|
||||
import traceback
|
||||
top = traceback.format_exc()
|
||||
self.logger.error('Exception: %s', e)
|
||||
self.logger.error("traceback: %s", top)
|
||||
|
||||
else:
|
||||
filepath = event.pathname
|
||||
|
@ -258,7 +272,14 @@ class AirtimeProcessEvent(ProcessEvent):
|
|||
|
||||
#delete files from organize if they can not be read properly.
|
||||
if filepath is None:
|
||||
os.remove(event.pathname)
|
||||
try:
|
||||
self.logger.info("Deleting file because it cannot be read properly: %s", event.pathname)
|
||||
os.remove(event.pathname)
|
||||
except Exception, e:
|
||||
import traceback
|
||||
top = traceback.format_exc()
|
||||
self.logger.error('Exception: %s', e)
|
||||
self.logger.error("traceback: %s", top)
|
||||
else:
|
||||
#show dragged from unwatched folder into a watched folder. Do not "organize".:q!
|
||||
if self.mmc.is_parent_directory(event.pathname, self.config.recorded_directory):
|
||||
|
|
Loading…
Reference in New Issue