Initial UI to allow certain timelines to be viewed in a new window in

realtime
This commit is contained in:
Sarven Capadisli 2009-09-21 19:17:37 +00:00
parent 470b34ea47
commit acd5a53257
4 changed files with 208 additions and 95 deletions

View File

@ -97,6 +97,8 @@ class RealtimePlugin extends Plugin
$user_id = 0;
}
$action->script('plugins/Realtime/jquery.getUrlParam.js');
$action->elementStart('script', array('type' => 'text/javascript'));
$action->raw('
<!--

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

View File

@ -0,0 +1,72 @@
/* Copyright (c) 2006-2007 Mathias Bank (http://www.mathias-bank.de)
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
* and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
*
* Version 2.1
*
* Thanks to
* Hinnerk Ruemenapf - http://hinnerk.ruemenapf.de/ for bug reporting and fixing.
* Tom Leonard for some improvements
*
*/
jQuery.fn.extend({
/**
* Returns get parameters.
*
* If the desired param does not exist, null will be returned
*
* To get the document params:
* @example value = $(document).getUrlParam("paramName");
*
* To get the params of a html-attribut (uses src attribute)
* @example value = $('#imgLink').getUrlParam("paramName");
*/
getUrlParam: function(strParamName){
strParamName = escape(unescape(strParamName));
var returnVal = new Array();
var qString = null;
if ($(this).attr("nodeName")=="#document") {
//document-handler
if (window.location.search.search(strParamName) > -1 ){
qString = window.location.search.substr(1,window.location.search.length).split("&");
}
} else if ($(this).attr("src")!="undefined") {
var strHref = $(this).attr("src")
if ( strHref.indexOf("?") > -1 ){
var strQueryString = strHref.substr(strHref.indexOf("?")+1);
qString = strQueryString.split("&");
}
} else if ($(this).attr("href")!="undefined") {
var strHref = $(this).attr("href")
if ( strHref.indexOf("?") > -1 ){
var strQueryString = strHref.substr(strHref.indexOf("?")+1);
qString = strQueryString.split("&");
}
} else {
return null;
}
if (qString==null) return null;
for (var i=0;i<qString.length; i++){
if (escape(unescape(qString[i].split("=")[0])) == strParamName){
returnVal.push(qString[i].split("=")[1]);
}
}
if (returnVal.length==0) return null;
else if (returnVal.length==1) return returnVal[0];
else return returnVal;
}
});

View File

@ -1,8 +1,44 @@
// add a notice encoded as JSON into the current timeline
//
// TODO: i18n
$(document).ready(function() {
if (!$(document).getUrlParam('realtime')) {
$('#site_nav_local_views .current a').append('<button id="realtime_timeline" title="Pop this tab">&#8599;</button>');
RealtimeUpdate = {
$('#realtime_timeline').css({
'margin':'2px 0 0 11px',
'background':'transparent url('+$('address .url')[0].href+'/plugins/Realtime/icon_external.gif) no-repeat 45% 45%',
'text-indent':'-9999px',
'width':'16px',
'height':'16px',
'padding':'0',
'display':'block',
'float':'right',
'border':'none',
'cursor':'pointer'
});
$('#realtime_timeline').click(function() {
window.open($(this).parent('a').attr('href')+'?realtime=1',
$(this).parent('a').attr('title'),
'toolbar=no,resizable=yes,scrollbars=yes,status=yes');
return false;
});
}
else {
window.resizeTo(575, 640);
address = $('address');
content = $('#content');
$('body').html(address);
$('address').hide();
$('body').append(content);
$('#content').css({'width':'92%'});
}
// add a notice encoded as JSON into the current timeline
//
// TODO: i18n
RealtimeUpdate = {
_userid: 0,
_replyurl: '',
_favorurl: '',
@ -109,5 +145,8 @@ RealtimeUpdate = {
dl = "<a class=\"notice_delete\" href=\""+delurl+"\" title=\"Delete this notice\">Delete</a>";
return dl;
},
}
}
}
});