This commit is contained in:
sebastian 2006-02-22 16:46:57 +00:00
parent cfca8290a3
commit f30283d544
14 changed files with 374 additions and 240 deletions

View file

@ -642,6 +642,53 @@ $ui_fmask = array(
)
)
),
'PL.setItemPlaylength' => array(
'act' => array(
'element' => 'act',
'type' => 'hidden',
),
'id' => array(
'element' => 'id',
'type' => 'hidden'
),
'elemId' => array(
'element' => 'elemId',
'type' => 'hidden'
),
'duration' => array(
'element' => 'duration',
'type' => 'hidden'
),
'playlength' => array(
'element' => 'playlength',
'type' => 'date',
'label' => 'Playlength',
'options' => array('format' => 'His'),
),
array(
'element' => 'cancel',
'type' => 'button',
'label' => 'Cancel',
'attributes'=> array('onClick' => 'window.close()'),
'groupit' => TRUE
),
array(
'element' => 'reset',
'type' => 'reset',
'label' => 'Reset',
'groupit' => TRUE
),
array(
'element' => 'submitter',
'type' => 'button',
'label' => 'Submit',
'attributes'=> array('onClick' => 'PL_checkItemPlaylength()'),
'groupit' => TRUE
),
array(
'group' => array('cancel', 'reset', 'submitter')
)
),
'schedule' => array(
array(
'element' => 'act',

View file

@ -100,7 +100,12 @@ if (is_array($_REQUEST['popup'])){
case "PL.arrangeItems":
$Smarty->display('popup/PLAYLIST.arrangeItems.tpl');
break;
case "PL.setItemPlaylengthForm":
$Smarty->assign('dynform', $uiBrowser->PLAYLIST->setItemPlaylengthForm($_REQUEST['id'], $_REQUEST['elemId'], $ui_fmask['PL.setItemPlaylength']));
$Smarty->display('popup/PLAYLIST.setItemPlaylength.tpl');
break;
case "SCHEDULER.addItem":
$Smarty->display('popup/SCHEDULER.addItem.tpl');
break;
@ -119,9 +124,9 @@ if (is_array($_REQUEST['popup'])){
$Smarty->display('popup/testStream.tpl');
break;
case "listen2AudioClip":
$Smarty->assign('data', $uiBrowser->listen2AudioClip($_REQUEST['id']));
$Smarty->display('popup/listen2AudioClip.tpl');
case "listen2Audio":
$Smarty->assign('data', $uiBrowser->listen2Audio($_REQUEST['id']));
$Smarty->display('popup/listen2Audio.tpl');
break;
case "help":

View file

@ -180,10 +180,16 @@ switch($_REQUEST['act']){
break;
case "PL.addItem":
if ($uiHandler->PLAYLIST->addItem($_REQUEST['id']) !== FALSE)
if ($uiHandler->PLAYLIST->addItem($_REQUEST['id'], $_REQUEST['playlength']) !== FALSE)
$uiHandler->SCRATCHPAD->addItem($_REQUEST['id']);
$uiHandler->PLAYLIST->setReload();
break;
case "PL.setItemPlaylength":
$uiHandler->PLAYLIST->setItemPlaylength($_REQUEST['elemId'], $_REQUEST['playlength']);
$uiHandler->PLAYLIST->setReload();
break;
case "PL.removeItem":
$uiHandler->PLAYLIST->removeItem($_REQUEST['id']);
@ -279,14 +285,20 @@ switch($_REQUEST['act']){
die();
break;
default:
case NULL:
if ($uiHandler->userid) {
$uiHandler->_retMsg('The uploaded filer is bigger than allowed in system settings. See "Help", chapter "Troubleshooting" for more information.');
}
$uiHandler->redirUrl = UI_BROWSER;
$uiHandler->redirUrl = UI_BROWSER;
if ($_REQUEST['is_popup']) $uiHandler->redirUrl = UI_BROWSER.'?popup[]=_reload_parent&popup[]=_close';
break;
default:
$uiHandler->_retMsg(tra('Unknown method: $1', $_REQUEST['act']));
$uiHandler->redirUrl = UI_BROWSER;
if ($_REQUEST['is_popup']) $uiHandler->redirUrl = UI_BROWSER.'?popup[]=_reload_parent&popup[]=_close';
break;
}
if ($uiHandler->alertMsg) {

View file

@ -1,25 +1,30 @@
onClick="return contextmenu('{$i.id}'
, 'SP.addItem'
{if $i.type|lower == 'audioclip'}
, 'listen', '{$i.gunid}', '##audioclip##'
, 'listen', '{$i.gunid}'
{if $_PL_activeId}
, 'PL.addItem'
{else}
, 'PL.create', '{$i.title|truncate:20|escape:'html'}'
, 'PL.create'
{/if}
, 'edit', '##audioclip##'
, 'delete', '##audioclip##'
, 'edit'
, 'delete'
{/if}
{if $i.type|lower == 'webstream'}
, 'listen', '{$i.gunid}'
{if $_PL_activeId}
, 'PL.addItem'
, 'PL.addStream'
{else}
, 'PL.create', '{$i.title|truncate:20}'
, 'PL.create'
{/if}
, 'edit', '##webstream##'
, 'delete', '##webstream##'
, 'edit'
, 'delete'
{/if}
{if $i.type|lower == 'playlist'}
@ -27,12 +32,15 @@ onClick="return contextmenu('{$i.id}'
{if $_PL_activeId == $i.id}
, 'PL.release'
{else}
, 'SCHEDULER.addPL', 'PL.addItem', 'delete'
, 'SCHEDULER.addPL'
, 'PL.addItem'
, 'delete'
{/if}
{else}
, 'SCHEDULER.addPL', 'PL.activate'
, 'PL.create', '{$i.title|truncate:20}'
, 'delete', '##playlist##'
, 'SCHEDULER.addPL'
, 'PL.activate'
, 'PL.create'
, 'delete'
{/if}
{/if}
)"

View file

@ -20,7 +20,7 @@ if (window.attachEvent) window.attachEvent("onload", sfHover);
<li><a href="{$UI_BROWSER}?folderId={$START.fid}&act=addFileData">##Add Audio##</a>
<ul>
<li><a href="{$UI_BROWSER}?folderId={$START.fid}&act=addFileData">##Audioclip##</a></li>
{* <li><a href="{$UI_BROWSER}?folderId={$START.fid}&act=addWebstreamData">##Webstream##</a></li> *}
<li><a href="{$UI_BROWSER}?folderId={$START.fid}&act=addWebstreamData">##Webstream##</a></li>
</ul>
</li>
<li><a>##Media Library##</a>

View file

@ -1,7 +1,15 @@
style="cursor: pointer"
onClick="return contextmenu('{$i.attrs.id}',
{if $i.type|lower == 'audioclip'}
'listen', '{$i.gunid}', '{$i.type}',
{if $i.type|lower == 'webstream'}
'listen', '{$i.gunid}',
'PL.changeItemPlaylength',
{/if}
{if $i.type|lower == 'audioclip'}
'listen', '{$i.gunid}',
'PL.changeItemPlaylength',
{/if}
'PL.removeItem'
)"

View file

@ -35,7 +35,7 @@
<td><input type="checkbox" class="checkbox" name="{$i.attrs.id}"/></td>
<td {include file="playlist/actionhandler.tpl"}>{$i.title}</td>
<td {include file="playlist/actionhandler.tpl"} style="text-align: right">
{assign var="_duration" value=$i.duration}{niceTime in=$_duration}
{assign var="_duration" value=$i.playlength}{niceTime in=$_duration}
</td>
<td {include file="playlist/actionhandler.tpl"}>{$i.creator}</td>
<td {include file="playlist/actionhandler.tpl"}>

View file

@ -15,8 +15,10 @@
{if $data.type.valid === true}
{tra str='Stream is wanted type <font color="green">$1</font>.' 1=$data.type.type}
{else}
{elseif $data.type.type}
{tra str='Stream has wrong content type <font color="red">$1</font>.' 1=$data.type.type}
{else}
##No content type declared.##
{/if}
</div>

View file

@ -1,25 +1,34 @@
onClick="return contextmenu('{$i.id}'
, 'SP.removeItem'
{if $i.type|lower == 'audioclip'}
, 'listen', '{$i.gunid}', '##audioclip##'
, 'listen', '{$i.gunid}'
{if $_PL_activeId}
, 'PL.addItem'
{else}
, 'PL.create', '{$i.title|truncate:20|escape:'html'}'
, 'PL.create'
{/if}
, 'edit', '##audioclip##'
, 'delete', '##audioclip##'
, 'edit'
, 'delete'
{/if}
{if $i.type|lower == 'webstream'}
, 'listen', '{$i.gunid}'
{if $_PL_activeId}
, 'PL.addItem'
{if $i.duration == '00:00:00.000000'}
, 'PL.addStream'
{else}
, 'PL.addItem'
{/if}
{else}
, 'PL.create', '{$i.title|truncate:20}'
, 'PL.create'
{/if}
, 'edit', '##webstream##'
, 'delete', '##webstream##'
, 'edit'
, 'delete'
{/if}
{if $i.type|lower == 'playlist'}
@ -27,12 +36,16 @@ onClick="return contextmenu('{$i.id}'
{if $_PL_activeId == $i.id}
, 'PL.release'
{elseif $PL->isAvailable($i.id) == true}
, 'SCHEDULER.addPL', 'PL.addItem', 'PL.activate', 'PL.delete'
, 'SCHEDULER.addPL'
, 'PL.addItem'
, 'PL.activate'
, 'PL.delete'
{/if}
{elseif $PL->isAvailable($i.id) == true}
, 'SCHEDULER.addPL', 'PL.activate'
, 'PL.create', '{$i.title|truncate:20}'
, 'delete', '##playlist##'
, 'SCHEDULER.addPL'
, 'PL.activate'
, 'PL.create'
, 'delete'
{/if}
{/if}
)"

View file

@ -1,175 +1,181 @@
{literal}
<script type="text/javascript">
// www.jjam.de - Kontextmenü mit JavaScript - Version 15.12.2002
// www.jjam.de - Kontextmenü mit JavaScript - Version 15.12.2002
// Browser detection
ie5 = (document.getElementById && document.all && document.styleSheets) ? 1 : 0;
nn6 = (document.getElementById && !document.all) ? 1 : 0;
// Browser detection
ie5 = (document.getElementById && document.all && document.styleSheets) ? 1 : 0;
nn6 = (document.getElementById && !document.all) ? 1 : 0;
document.write('<div id="contextmenucontainer"></div>');
contextmenuStatus = 0;
document.write('<div id="contextmenucontainer"></div>');
contextmenuStatus = 0;
document.onclick = hidecontextmenu;
function contextmenu(param) {
var contextmenuHeader = "<div class='contextmenu' id='contextmenu' style='position: absolute; top: -1000; left: 0; z-index: 100'>" +
"<ul>";
var contextmenuFooter = "</ul></div>";
var contextmenuHtml = '';
var sp2 = "&nbsp;&nbsp;";
var sp5 = sp2 + sp2 + "&nbsp;"; // Leerzeichen als Abstandshalter (flexibler und code-sparender als eine aufwendige Tabellenkonstruktion) ;
var oF = "onfocus = 'if (this.blur) this.blur()'"; // Um hässlichen Linkrahmen in einigen Browsern zu vermeiden;
var entry = new Array();
//contextmenuStatus = 0;
for (var i = 1; i < contextmenu.arguments.length; ++i) {
switch (contextmenu.arguments[i]) {
{/literal}
case "PL.release":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: popup('{$UI_BROWSER}?popup[]=PL.confirmRelease', 'PL.confirmRelease', 400, 50)\" "+oF+">&nbsp;##Close##&nbsp;</a></li>";
break;
case "PL.addItem":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_HANDLER}?act=PL.addItem&id="+param+"')\" "+oF+">&nbsp;##Add to playlist##&nbsp;</a></li>";
break;
case "PL.addStream":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: popup('{$UI_BROWSER}?popup[]=PL.setItemPlaylengthForm&id="+param+"', 'PL.setStreamPlaylength', 400, 50)\" "+oF+">&nbsp;##Add to playlist##&nbsp;</a></li>";
break;
case "PL.changeItemPlaylength":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: popup('{$UI_BROWSER}?popup[]=PL.setItemPlaylengthForm&elemId="+param+"', 'PL.setItemPlaylength', 400, 50)\" "+oF+">&nbsp;##Change playlegth##&nbsp;</a></li>";
break;
case "PL.removeItem":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_HANDLER}?act=PL.removeItem&id="+param+"')\" "+oF+">&nbsp;##Remove from playlist##&nbsp;</a></li>";
break;
case "PL.activate":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_HANDLER}?act=PL.activate&id="+param+"')\" "+oF+">&nbsp;##Edit##&nbsp;</a></li>";
break;
case "PL.create":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_HANDLER}?act=PL.create&id="+param+"')\" "+oF+">&nbsp;##Use to create playlist##&nbsp;</a></li>";
break;
case "PL.changeFadeIn":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: popup('{$UI_BROWSER}?popup[]=PL.changeTransition&type=fadeIn&id="+param+"', 'PL', '400', '150')\" "+oF+">&nbsp;##Change Fadein##&nbsp;</a></li>";
break;
case "PL.changeTransition":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: popup('{$UI_BROWSER}?popup[]=PL.changeTransition&type=transition&id="+param+"', 'PL', '400', '150')\" "+oF+">&nbsp;##Change Transition##&nbsp;</a></li>";
break;
case "PL.changeFadeOut":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: popup('{$UI_BROWSER}?popup[]=PL.changeTransition&type=fadeOut&id="+param+"', 'PL', '400', '150')\" "+oF+">&nbsp;##Change Fadeout##&nbsp;</a></li>";
break;
case "SP.addItem":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_HANDLER}?act=SP.addItem&id="+param+"')\" "+oF+">&nbsp;##Add to ScratchPad##&nbsp;</a></li>";
break;
case "SP.removeItem":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_HANDLER}?act=SP.removeItem&id="+param+"')\" "+oF+">&nbsp;##Remove from ScratchPad##&nbsp;</a></li>";
break;
case "listen":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_BROWSER}?popup[]=listen2Audio&id="+contextmenu.arguments[++i]+"')\" "+oF+">&nbsp;##Listen##&nbsp;</a></li>";
break;
case "edit":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='{$UI_BROWSER}?act=editItem&id="+param+"' "+oF+">&nbsp;##Edit##&nbsp;</a></li>";
break;
case "delete":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: popup('{$UI_BROWSER}?popup[]=deleteItem&id="+param+"', 'deleteItem', 400, 50)\" "+oF+">&nbsp;##Delete##&nbsp;</a></li>";
break;
case "fileList":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='{$UI_BROWSER}?act=fileList&id="+param+"' "+oF+">&nbsp;##List Folder##&nbsp;</a></li>";
break;
case "SCHEDULER.addItem":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_HANDLER}?act=SCHEDULER.setScheduleAtTime&"+param+"'); popup('{$UI_BROWSER}?popup[]=SCHEDULER.addItem', 'Schedule', 420, 200)\" "+oF+">&nbsp;##Insert playlist here##&nbsp;</a></li>";
break;
case "SCHEDULER.removeItem":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: popup('{$UI_BROWSER}?popup[]=SCHEDULER.removeItem&"+param+"', 'Schedule', 400, 50)\" "+oF+">&nbsp;##Remove playlist##&nbsp;</a></li>";
break;
case "SCHEDULER.addPL":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_HANDLER}?act=SCHEDULER.set&view=day&today=1');"+
"hpopup('{$UI_HANDLER}?act=SCHEDULER.setScheduleAtTime&today=1&hour=0&minute=0');"+
"location.href='ui_browser.php?act=SCHEDULER';"+
"popup('{$UI_BROWSER}?popup[]=SCHEDULER.addItem&playlistId="+param+"', 'Schedule', 420, 200)\" "+oF+
">&nbsp;##Schedule##&nbsp;</a></li>";
break;
case "SUBJECTS.chgPasswd":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='{$UI_BROWSER}?act=SUBJECTS.chgPasswd&"+param+"' "+oF+">&nbsp;##Change password##&nbsp;</a></li>";
break;
case "SUBJECTS.manageGroupMember":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='{$UI_BROWSER}?act=SUBJECTS.manageGroupMember&"+param+"' "+oF+">&nbsp;##Manage group members##&nbsp;</a></li>";
break;
case "SUBJECTS.addSubj2Gr":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='#' onClick=\"hpopup('{$UI_HANDLER}?act=SUBJECTS.addSubj2Gr&"+param+"')\" "+oF+">&nbsp;##Add to group##&nbsp;</a></li>";
break;
case "SUBJECTS.removeSubjFromGr":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='#' onClick=\"hpopup('{$UI_HANDLER}?act=SUBJECTS.removeSubjFromGr&"+param+"')\" "+oF+">&nbsp;##Remove from group##&nbsp;</a></li>";
break;
case "SUBJECTS.removeSubj":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: popup('{$UI_BROWSER}?popup[]=SUBJECTS.confirmRemoveSubj&"+param+"', 'confirmRemoveSubj', 400, 50)\" "+oF+">&nbsp;##Delete##&nbsp;</a></li>";
break;
{literal}
}
}
document.getElementById('contextmenucontainer').innerHTML = contextmenuHeader + contextmenuHtml + contextmenuFooter;
document.onclick = showcontextmenu;
return false;
}
function showcontextmenu(e) {
var contextmenuWidth = document.getElementById('contextmenu').clientWidth;
var contextmenuHeight = document.getElementById('contextmenu').clientHeight;
if (ie5) {
var clickX = event.clientX;
var clickY = event.clientY + document.body.scrollTop;
var winX = document.body.clientWidth;
var winY = document.body.clientHeight;
var scrollX = document.body.scrollLeft;
var scrollY = document.body.scrollTop;
} else {
var clickX = e.pageX;
var clickY = e.pageY;
var winX = window.innerWidth;
var winY = window.innerHeight;
var scrollX = window.scrollX;
var scrollY = window.scrollY;
}
if (clickX + contextmenuWidth < winX) var xPos = clickX;
else var xPos = clickX - contextmenuWidth;
if (clickY + contextmenuHeight > winY + scrollY) var yPos = clickY - contextmenuHeight;
else var yPos = clickY;
if (yPos < scrollY) yPos = scrollY;
setTimeout("document.getElementById('contextmenu').style.left = "+xPos+"; document.getElementById('contextmenu').style.top = "+yPos+";", 10);
contextmenuStatus = 1;
document.onclick = hidecontextmenu;
}
function contextmenu(param) {
var contextmenuHeader = "<div class='contextmenu' id='contextmenu' style='position: absolute; top: -1000; left: 0; z-index: 100'>" +
"<ul>";
var contextmenuFooter = "</ul></div>";
var contextmenuHtml = '';
var sp2 = "&nbsp;&nbsp;";
var sp5 = sp2 + sp2 + "&nbsp;"; // Leerzeichen als Abstandshalter (flexibler und code-sparender als eine aufwendige Tabellenkonstruktion) ;
var oF = "onfocus = 'if (this.blur) this.blur()'"; // Um hässlichen Linkrahmen in einigen Browsern zu vermeiden;
var entry = new Array();
//contextmenuStatus = 0;
for (var i = 1; i < contextmenu.arguments.length; ++i) {
switch (contextmenu.arguments[i]) {
{/literal}
case "PL.release":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: popup('{$UI_BROWSER}?popup[]=PL.confirmRelease', 'PL.confirmRelease', 400, 50)\" "+oF+">&nbsp;##Close##&nbsp;</a></li>";
break;
case "PL.addItem":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_HANDLER}?act=PL.addItem&id="+param+"')\" "+oF+">&nbsp;##Add to playlist##&nbsp;</a></li>";
break;
case "PL.removeItem":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_HANDLER}?act=PL.removeItem&id="+param+"')\" "+oF+">&nbsp;##Remove from playlist##&nbsp;</a></li>";
break;
case "PL.activate":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_HANDLER}?act=PL.activate&id="+param+"')\" "+oF+">&nbsp;##Edit##&nbsp;</a></li>";
break;
case "PL.create":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_HANDLER}?act=PL.create&id="+param+"')\" "+oF+">&nbsp;##Use to create playlist##&nbsp;</a></li>";
break;
case "PL.changeFadeIn":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: popup('{$UI_BROWSER}?popup[]=PL.changeTransition&type=fadeIn&id="+param+"', 'PL', '400', '150')\" "+oF+">&nbsp;##Change Fadein##&nbsp;</a></li>";
break;
case "PL.changeTransition":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: popup('{$UI_BROWSER}?popup[]=PL.changeTransition&type=transition&id="+param+"', 'PL', '400', '150')\" "+oF+">&nbsp;##Change Transition##&nbsp;</a></li>";
break;
case "PL.changeFadeOut":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: popup('{$UI_BROWSER}?popup[]=PL.changeTransition&type=fadeOut&id="+param+"', 'PL', '400', '150')\" "+oF+">&nbsp;##Change Fadeout##&nbsp;</a></li>";
break;
case "SP.addItem":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_HANDLER}?act=SP.addItem&id="+param+"')\" "+oF+">&nbsp;##Add to ScratchPad##&nbsp;</a></li>";
break;
case "SP.removeItem":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_HANDLER}?act=SP.removeItem&id="+param+"')\" "+oF+">&nbsp;##Remove from ScratchPad##&nbsp;</a></li>";
break;
case "listen":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_BROWSER}?popup[]=listen2AudioClip&id="+contextmenu.arguments[++i]+"')\" "+oF+">&nbsp;##Listen##&nbsp;</a></li>";
break;
case "edit":
i++;
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='{$UI_BROWSER}?act=editItem&id="+param+"' "+oF+">&nbsp;##Edit##&nbsp;</a></li>";
break;
case "delete":
i++;
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: popup('{$UI_BROWSER}?popup[]=deleteItem&id="+param+"', 'deleteItem', 400, 50)\" "+oF+">&nbsp;##Delete##&nbsp;</a></li>";
break;
case "fileList":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='{$UI_BROWSER}?act=fileList&id="+param+"' "+oF+">&nbsp;##List Folder##&nbsp;</a></li>";
break;
case "SCHEDULER.addItem":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_HANDLER}?act=SCHEDULER.setScheduleAtTime&"+param+"'); popup('{$UI_BROWSER}?popup[]=SCHEDULER.addItem', 'Schedule', 420, 200)\" "+oF+">&nbsp;##Insert playlist here##&nbsp;</a></li>";
break;
case "SCHEDULER.removeItem":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: popup('{$UI_BROWSER}?popup[]=SCHEDULER.removeItem&"+param+"', 'Schedule', 400, 50)\" "+oF+">&nbsp;##Remove playlist##&nbsp;</a></li>";
break;
case "SCHEDULER.addPL":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: hpopup('{$UI_HANDLER}?act=SCHEDULER.set&view=day&today=1');"+
"hpopup('{$UI_HANDLER}?act=SCHEDULER.setScheduleAtTime&today=1&hour=0&minute=0');"+
"location.href='ui_browser.php?act=SCHEDULER';"+
"popup('{$UI_BROWSER}?popup[]=SCHEDULER.addItem&playlistId="+param+"', 'Schedule', 420, 200)\" "+oF+
">&nbsp;##Schedule##&nbsp;</a></li>";
break;
case "SUBJECTS.chgPasswd":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='{$UI_BROWSER}?act=SUBJECTS.chgPasswd&"+param+"' "+oF+">&nbsp;##Change password##&nbsp;</a></li>";
break;
case "SUBJECTS.manageGroupMember":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='{$UI_BROWSER}?act=SUBJECTS.manageGroupMember&"+param+"' "+oF+">&nbsp;##Manage group members##&nbsp;</a></li>";
break;
case "SUBJECTS.addSubj2Gr":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='#' onClick=\"hpopup('{$UI_HANDLER}?act=SUBJECTS.addSubj2Gr&"+param+"')\" "+oF+">&nbsp;##Add to group##&nbsp;</a></li>";
break;
case "SUBJECTS.removeSubjFromGr":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href='#' onClick=\"hpopup('{$UI_HANDLER}?act=SUBJECTS.removeSubjFromGr&"+param+"')\" "+oF+">&nbsp;##Remove from group##&nbsp;</a></li>";
break;
case "SUBJECTS.removeSubj":
contextmenuHtml = contextmenuHtml + "<li><a class='contextmenu' href=\"javascript: popup('{$UI_BROWSER}?popup[]=SUBJECTS.confirmRemoveSubj&"+param+"', 'confirmRemoveSubj', 400, 50)\" "+oF+">&nbsp;##Delete##&nbsp;</a></li>";
break;
{literal}
}
}
document.getElementById('contextmenucontainer').innerHTML = contextmenuHeader + contextmenuHtml + contextmenuFooter;
document.onclick = showcontextmenu;
return false;
}
function showcontextmenu(e) {
var contextmenuWidth = document.getElementById('contextmenu').clientWidth;
var contextmenuHeight = document.getElementById('contextmenu').clientHeight;
if (ie5) {
var clickX = event.clientX;
var clickY = event.clientY + document.body.scrollTop;
var winX = document.body.clientWidth;
var winY = document.body.clientHeight;
var scrollX = document.body.scrollLeft;
var scrollY = document.body.scrollTop;
} else {
var clickX = e.pageX;
var clickY = e.pageY;
var winX = window.innerWidth;
var winY = window.innerHeight;
var scrollX = window.scrollX;
var scrollY = window.scrollY;
}
if (clickX + contextmenuWidth < winX) var xPos = clickX;
else var xPos = clickX - contextmenuWidth;
if (clickY + contextmenuHeight > winY + scrollY) var yPos = clickY - contextmenuHeight;
else var yPos = clickY;
if (yPos < scrollY) yPos = scrollY;
setTimeout("document.getElementById('contextmenu').style.left = "+xPos+"; document.getElementById('contextmenu').style.top = "+yPos+";", 10);
contextmenuStatus = 1;
document.onclick = hidecontextmenu;
}
function hidecontextmenu(e) {
if (contextmenuStatus == 1) {
setTimeout("document.getElementById('contextmenu').style.top =- 250", 0);
contextmenuStatus = 0;
}
function hidecontextmenu(e) {
if (contextmenuStatus == 1) {
setTimeout("document.getElementById('contextmenu').style.top =- 250", 0);
contextmenuStatus = 0;
}
}
</script>

View file

@ -432,21 +432,20 @@ class uiBrowser extends uiBase {
);
}
function listen2AudioClip($clipid)
function listen2Audio($clipid)
{
#$pls = "[playlist]\n".
#$pls .= "File1=http://{$_SERVER['SERVER_NAME']}".$this->config['accessRawAudioUrl']."?sessid={$this->sessid}&id=$clipid\n";
#$pls .= "Title1=Mein Titel\n";
#$pls .= "NumberOfEntries=1\nVersion=2";
#$m3u = "#EXTM3U\n";
#$m3u .= "#EXTINF:111,Mein Titel\n";
$m3u .= "http://{$_SERVER['SERVER_NAME']}".$this->config['accessRawAudioUrl']."?sessid={$this->sessid}&id=$clipid\n";
$id = $this->gb->_idFromGunid($clipid);
$type = $this->gb->getFileType($id);
if (strtolower($type) === strtolower(UI_FILETYPE_AUDIOCLIP)) {
$m3u = "http://{$_SERVER['SERVER_NAME']}".$this->config['accessRawAudioUrl']."?sessid={$this->sessid}&id=$clipid\n";
} else {
$m3u = $this->_getMDataValue($id, UI_MDATA_KEY_URL);
}
touch(UI_TESTSTREAM_MU3_TMP);
$handle = fopen(UI_TESTSTREAM_MU3_TMP, "w");
fwrite($handle, $m3u);
fclose($handle);
fclose($handle);
}

View file

@ -2,7 +2,7 @@
ini_set('memory_limit', '64M');
## Warning/Error level
define('UI_DEBUG', TRUE);
define('UI_DEBUG', FALSE);
define('UI_VERBOSE', FALSE);
define('UI_WARNING', TRUE);
define('UI_ERROR', TRUE);
@ -111,7 +111,7 @@ define('UI_PL_ELEM_FADEOUT', 'fadeOut');
## LS stuff
require_once '../../storageServer/var/conf.php';
require_once '../../../storageServer/var/conf.php';
## extent config
$config = array_merge($config,
array(
@ -122,7 +122,8 @@ $config = array_merge($config,
),
'stream_types' => array(
'application/ogg',
'audio/mpeg'
'audio/mpeg',
'audio/x-mpegurl'
),
'languages' => array(
'ar_JO' => 'Arabic(JO)',
@ -144,7 +145,7 @@ require_once dirname(__FILE__).'/ui_scratchpad.class.php';
require_once dirname(__FILE__).'/ui_playlist.class.php';
require_once dirname(__FILE__).'/ui_search.class.php';
require_once dirname(__FILE__).'/ui_browse.class.php';
require_once '../../storageServer/var/GreenBox.php';
require_once '../../../storageServer/var/GreenBox.php';
require_once dirname(__FILE__).'/formmask/generic.inc.php';
require_once dirname(__FILE__).'/ui_calendar.class.php';
require_once dirname(__FILE__).'/ui_scheduler.class.php';

View file

@ -68,9 +68,9 @@ class uiPlaylist
if (UI_WARNING) $this->Base->_retMsg('Playlist has been locked by "$1".', $this->Base->gb->getSubjName($userid));
return FALSE;
}
$token = $this->Base->gb->lockPlaylistForEdit($plid, $this->Base->sessid);
$token = $this->Base->gb->lockPlaylistForEdit($plid, $this->Base->sessid);
if (PEAR::isError($token)) {
#print_r($token);
if (UI_VERBOSE === TRUE) print_r($token);
$this->Base->_retMsg('Unable to open playlist "$1".', $this->Base->_getMDataValue($plid, UI_MDATA_KEY_TITLE));
return FALSE;
}
@ -94,7 +94,7 @@ class uiPlaylist
}
$plgunid = $this->Base->gb->releaseLockedPlaylist($this->token, $this->Base->sessid);
if (PEAR::isError($plgunid)) {
#print_r($plgunid);
if (UI_VERBOSE === TRUE) print_r($plgunid);
if (UI_WARNING) $this->Base->_retMsg('Unable to release playlist.');
return FALSE;
}
@ -128,7 +128,7 @@ class uiPlaylist
}
$plgunid = $this->Base->gb->revertEditedPlaylist($this->token, $this->Base->sessid);
if (PEAR::isError($plgunid)) {
# print_r($plgunid);
if (UI_VERBOSE === TRUE) print_r($plgunid);
if (UI_WARNING) $this->Base->_retMsg('Unable to revert to locked state.');
return FALSE;
}
@ -176,21 +176,27 @@ class uiPlaylist
return FALSE;
}
function addItem($elemIds)
function addItem($elemIds, $duration=null)
{
$this->changed = TRUE;
$this->changed = TRUE;
$fadeIn = null;
$fadeOut = null;
$pause = null;
if (!$elemIds) {
if (UI_WARNING) $this->Base->_retMsg('No item(s) selected.');
return FALSE;
}
if (!is_array($elemIds))
if (!is_array($elemIds)) {
$elemIds = array($elemIds);
foreach ($elemIds as $elemId) {
$r = $this->Base->gb->addAudioClipToPlaylist($this->token, $elemId, $this->Base->sessid);
}
if (isset($duration)) {
$length = sprintf('%02d', $duration['H']).':'.sprintf('%02d', $duration['i']).':'.sprintf('%02d', $duration['s']).'.000000';
}
foreach ($elemIds as $elemId) {
$r = $this->Base->gb->addAudioClipToPlaylist($this->token, $elemId, $this->Base->sessid, $fadeIn, $fadeOut, $length, $pause);
if (PEAR::isError($r)) {
#print_r($r);
if (UI_VERBOSE === TRUE) print_r($r);
$this->Base->_retMsg('Error while trying to add item to playlist.');
return FALSE;
}
@ -258,13 +264,17 @@ class uiPlaylist
unset($this->flat);
$this->_plwalk($this->getPLArray($id));
reset($this->flat);
$this->flat[key($this->flat)]['firstInList'] = true;
end($this->flat);
$this->flat[key($this->flat)]['lastInList'] = true;
reset($this->flat);
if (is_Array($this->flat)) {
reset($this->flat);
$this->flat[key($this->flat)]['firstInList'] = true;
end($this->flat);
$this->flat[key($this->flat)]['lastInList'] = true;
reset($this->flat);
return $this->flat;
return $this->flat;
} else {
return array();
}
}
@ -279,6 +289,7 @@ class uiPlaylist
#$this->flat["$parent.$node"]['type'] = $sub['elementname'];
$this->flat[$parent] = $this->Base->_getMetaInfo($this->Base->gb->_idFromGunid($sub['attrs']['id']));
$this->flat[$parent]['attrs'] = $attrs;
$this->flat[$parent]['playlength'] = $sub['attrs']['playlength'];
}
if ($sub['elementname']===UI_PL_ELEM_FADEINFO) {
$this->flat[$parent][UI_PL_ELEM_FADEIN] = GreenBox::_plTimeToSecs($sub['attrs'][UI_PL_ELEM_FADEIN]);
@ -337,7 +348,7 @@ class uiPlaylist
$r = $this->Base->gb->changeFadeInfo($this->token, $i, $val[UI_PL_ELEM_FADEIN], $val[UI_PL_ELEM_FADEOUT], $this->Base->sessid);
#print_r($r);
if (PEAR::isError($r)) {
if (UI_VERBOSE) print_r($r);
if (UI_VERBOSE === TRUE) print_r($r);
$this->Base->_retMsg('Changing fade information failed.');
return FALSE;
}
@ -348,7 +359,7 @@ class uiPlaylist
$r = $this->Base->gb->changeFadeInfo($this->token, $v['attrs']['id'], $type==='pause'?$pause:$xfade, $type==='pause'?$pause:$xfade, $this->Base->sessid);
#print_r($r);
if (PEAR::isError($r)) {
if (UI_VERBOSE) print_r($r);
if (UI_VERBOSE === TRUE) print_r($r);
$this->Base->_retMsg('Changing fade information failed.');
return FALSE;
}
@ -364,7 +375,7 @@ class uiPlaylist
$r = $this->Base->gb->moveAudioClipInPlaylist($this->token, $id, $pos, $this->Base->sessid);
if (PEAR::isError($r)) {
if (UI_VERBOSE) print_r($r);
if (UI_VERBOSE === TRUE) print_r($r);
$this->Base->_retMsg('Cannot move item.');
return FALSE;
}
@ -382,7 +393,7 @@ class uiPlaylist
$pos++;
$r = $this->Base->gb->moveAudioClipInPlaylist($this->token, $id, $pos, $this->Base->sessid);
if (PEAR::isError($r)) {
if (UI_VERBOSE) print_r($r);
if (UI_VERBOSE === TRUE) print_r($r);
$this->Base->_retMsg('Cannot move item.');
return FALSE;
}
@ -467,6 +478,28 @@ class uiPlaylist
$form->accept($renderer);
return $renderer->toArray();
}
function setItemPlaylengthForm($id, $elemId, $mask)
{
if (isset($elemId)) {
$mask['act']['constant'] = 'PL.setItemPlaylength';
$mask['elemId']['constant'] = $elemId;
$element = $this->getCurrElement($elemId);
$mask['playlength']['default'] = substr($element['playlength'], 0, 8);
$mask['duration']['constant'] = substr($element['duration'], 0, 8);
} else {
$mask['act']['constant'] = 'PL.addItem';
$mask['id']['constant'] = $id;
$mask['playlength']['default'] = substr($this->Base->_getMDataValue($id, UI_MDATA_KEY_DURATION), 0, 8);
$mask['duration']['constant'] = $mask['playlength']['default'];
}
$form = new HTML_QuickForm('PL_setItemPlaylengthForm', UI_STANDARD_FORM_METHOD, UI_HANDLER);
$this->Base->_parseArr2Form($form, $mask);
$renderer =& new HTML_QuickForm_Renderer_Array(true, true);
$form->accept($renderer);
return $renderer->toArray();
}
function metaDataForm($langid)
@ -531,7 +564,7 @@ class uiPlaylist
foreach ($mData as $key=>$val) {
$r = $this->Base->gb->setMDataValue($id, $key, $this->Base->sessid, $val, $curr_langid);
if (PEAR::isError($r)) {
#print_r($r);
if (UI_VERBOSE === TRUE) print_r($r);
$this->Base->_retMsg('Unable to set "$1" to value "$2".', $key, $val);
}
}