Added play/pause button for realtime notices. While on pause, it will

store the notices and on play it will add them to the notice list
This commit is contained in:
Sarven Capadisli 2009-11-18 15:41:07 +00:00
parent 43b6da8afc
commit 5014b748e4
4 changed files with 87 additions and 8 deletions

View File

@ -101,8 +101,8 @@ class RealtimePlugin extends Plugin
$realtimeUI = ' RealtimeUpdate.initPopupWindow();';
}
else {
$iconurl = common_path('plugins/Realtime/icon_external.gif');
$realtimeUI = ' RealtimeUpdate.addPopup("'.$url.'", "'.$timeline.'", "'. $iconurl .'");';
$pluginPath = common_path('plugins/Realtime/');
$realtimeUI = ' RealtimeUpdate.initActions("'.$url.'", "'.$timeline.'", "'. $pluginPath .'");';
}
$action->elementStart('script', array('type' => 'text/javascript'));

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 B

View File

@ -37,6 +37,8 @@ RealtimeUpdate = {
_maxnotices: 50,
_windowhasfocus: true,
_documenttitle: '',
_paused:false,
_queuedNotices:[],
init: function(userid, replyurl, favorurl, deleteurl)
{
@ -71,12 +73,16 @@ RealtimeUpdate = {
return;
}
RealtimeUpdate.purgeLastNoticeItem();
if (RealtimeUpdate._paused === false) {
RealtimeUpdate.purgeLastNoticeItem();
RealtimeUpdate.insertNoticeItem(data);
RealtimeUpdate.updateWindowCounter();
RealtimeUpdate.insertNoticeItem(data);
RealtimeUpdate.updateWindowCounter();
}
else {
RealtimeUpdate._queuedNotices.push(data);
}
},
insertNoticeItem: function(data) {
@ -183,7 +189,80 @@ RealtimeUpdate = {
return dl;
},
addPopup: function(url, timeline, iconurl)
initActions: function(url, timeline, path)
{
var NP = $('#notices_primary');
NP.prepend('<ul id="realtime_actions"><li id="realtime_pauseplay"></li></ul>');
RealtimeUpdate._pluginPath = path;
RealtimeUpdate.initPlayPause();
RealtimeUpdate.initAddPopup(url, timeline, RealtimeUpdate._pluginPath);
},
initPlayPause: function()
{
RealtimeUpdate.showPause();
},
showPause: function()
{
RT_PP = $('#realtime_pauseplay');
RT_PP.empty();
RT_PP.append('<button id="realtime_pause" class="pause" title="Pause">Pause</button>');
RT_P = $('#realtime_pause');
$('#realtime_pause').css({
'background':'url('+RealtimeUpdate._pluginPath+'icon_pause.gif) no-repeat 47% 47%',
'width':'16px',
'height':'16px',
'text-indent':'-9999px',
'border':'none',
'cursor':'pointer'
});
RT_P.bind('click', function() {
RealtimeUpdate._paused = true;
RealtimeUpdate.showPlay();
return false;
});
},
showPlay: function()
{
RT_PP = $('#realtime_pauseplay');
RT_PP.empty();
RT_PP.append('<button id="realtime_play" class="play" title="Play">Play</button>');
RT_P = $('#realtime_play');
RT_P.css({
'background':'url('+RealtimeUpdate._pluginPath+'icon_play.gif) no-repeat 47% 47%',
'width':'16px',
'height':'16px',
'text-indent':'-9999px',
'border':'none',
'cursor':'pointer'
});
RT_P.bind('click', function() {
RealtimeUpdate._paused = false;
RealtimeUpdate.showPause();
RealtimeUpdate.showQueuedNotices();
return false;
});
},
showQueuedNotices: function() {
$.each(RealtimeUpdate._queuedNotices, function(i, n) {
RealtimeUpdate.insertNoticeItem(n);
});
RealtimeUpdate._queuedNotices = [];
},
initAddPopup: function(url, timeline, path)
{
var NP = $('#notices_primary');
NP.css({'position':'relative'});
@ -192,7 +271,7 @@ RealtimeUpdate = {
var RT = $('#realtime_timeline');
RT.css({
'margin':'0 0 11px 0',
'background':'transparent url('+ iconurl + ') no-repeat 0 30%',
'background':'transparent url('+ path + 'icon_external.gif) no-repeat 0 30%',
'padding':'0 0 0 20px',
'display':'block',
'position':'absolute',