Merge branch 'devel' of dev.sourcefabric.org:airtime into devel

This commit is contained in:
Martin Konecny 2012-04-20 11:31:37 -04:00
commit 7d6e251adf
13 changed files with 133 additions and 16 deletions

View File

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

View File

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

View File

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

View File

@ -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,

View File

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

View File

@ -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">&nbsp;</dt>
<dd id="submit-element">

View File

@ -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">&nbsp;</dt>

View File

@ -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>

View File

@ -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) {

View File

@ -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) {

View File

@ -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) {

View File

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

View File

@ -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):