returnList = []
- filelist = FileList(param, matchingPattern = "(?i)^.*\.(mp3|ogg|ts|wav|wave|m3u|pls|e2pls|mpg|vob)", useServiceRef = True)
+ matchingPattern = "(?i)^.*\.(mp3|ogg|ts|wav|wave|m3u|pls|e2pls|mpg|vob)" #MediaPlayer-Match
+ if param["types"] == "audio":
+ matchingPattern = "(?i)^.*\.(mp3|ogg|wav|wave|m3u|pls|e2pls)"
+ elif param["types"] == "video":
+ matchingPattern = "(?i)^.*\.(ts|avi|mpeg|m3u|pls|e2pls|mpg|vob)"
+ elif param["types"] == "any":
+ matchingPattern = "(?i)^.*\.(mp3|ogg|ts|wav|wave|m3u|pls|e2pls|mpg|vob)"
+ filelist = FileList(param["path"], matchingPattern, useServiceRef = True)
list = filelist.getFileList()
for x in list:
if x[0][1] == False: #isDir
- returnList.append([x[0][0].toString(),x[0][1],param])
+ returnList.append([x[0][0].toString(),x[0][1],param["path"]])
else:
- returnList.append([x[0][0],x[0][1],param])
+ returnList.append([x[0][0],x[0][1],param["path"]])
return returnList
def playFile(self,param):
var url_moviefiledelete= "/web/moviefiledelete"; // plus serviceref,eventid
-var url_mediaplayerlist= "/web/mediaplayerlist?path="; // plus full qualified path
+var url_mediaplayerlist= "/web/mediaplayerlist?types=mp&path="; // plus full qualified path
var url_mediaplayerplay= "/web/mediaplayerplay?file="; // plus file-serviceref
var url_mediaplayercmd= "/web/mediaplayercmd?command="; // plus command
+var url_filelist = "/web/mediaplayerlist?types=all&path="; // plus full qualified path
+
var url_timerlist= "/web/timerlist";
var url_recordnow= "/web/recordnow";
var url_timeradd= "/web/timeradd"; // plus serviceref,begin,end,name,description,eit,disabled,justplay,afterevent
<div onclick="loadMovieList('')">Movies</div>
<div onclick="loadTimerList()">Timers</div>
<div onclick="loadTimerFormNow()">Add Timer</div>
- <div onclick="loadMediaPlayer('/media/hdd/')">MediaPlayer</div>
</div>
</div>
<div class="navMenuPanel" id="accordionMenueBouquetPanelExtras">
<div class="navMenuHeader" id="accordionMenueBouquetHeaderExtras">Extras</div>
<div class="navMenuContent" id="accordionMenueBouquetContentExtras">
+ <div onclick="loadMediaPlayer('/media/hdd/')">MediaPlayer</div>
<div onclick="showMessageSendForm()">Message</div>
<div onclick="showRemoteControllSendForm()">Remote Control</div>
<div onclick="showPowerStateSendForm()">Power</div>
+<!-- <div onclick="loadFileBrowser('/media/hdd/')">FileBrowser</div>-->
<div onclick="showAbout()">About</div>
<div onclick="showNotes()">Notes</div>
</div>
this.getServiceReference = function(){
return this.servicereference;
}
- this.getFileName = function(){
- return this.servicereference.replace(/.*:\//,'/');
- }
- this.getFullPath = function(){
+ this.getNameOnly = function(){
if(this.root == '/') {
return this.servicereference;
} else {
tplMediaPlayerHeader += '<tbody class="scrollContent">\n';
var tplMediaPlayerItemHead = '<tr>\n';
-var tplMediaPlayerItemBody = '<td><div style="color: #%(color);" onclick="%(exec)(\'%(servicereference)\',\'%(root)\');" class="sListSName" title="%(servicereference)">%(fullpath)</div>';
+var tplMediaPlayerItemBody = '<td><div style="color: #%(color);" onclick="%(exec)(\'%(servicereference)\',\'%(root)\');" class="sListSName" title="%(servicereference)">%(name)</div>';
var tplMediaPlayerItemIMG = '<div class="sListExt">\n';
tplMediaPlayerItemIMG += '<img src="/webdata/gfx/play.png" onclick="%(exec)(\'%(servicereference)\',\'%(root)\');" title="%(exec_description)" border="0">\n';
- tplMediaPlayerItemIMG += '<a target="_blank" href="/file/?file=%(fullpath)&root=%(root)"><img src="/webdata/gfx/save.png" title="download File" border="0"></a>\n';
+ tplMediaPlayerItemIMG += '<a target="_blank" href="/file/?file=%(name)&root=%(root)"><img src="/webdata/gfx/save.png" title="download File" border="0"></a>\n';
tplMediaPlayerItemIMG += '</div>\n';
var tplMediaPlayerItemFooter = '</tr>\n';
tplNote += '<tr style="background-color: #DDDDDD;">';
tplNote += '<td colspan="2"><input type="button" onclick="saveNote(\'note_%(name)\');" value="save"><input type="button" onclick="$(\'note_%(name)\').reset();" value="reset"></td>';
tplNote += '</tr>';
- tplNote += '</table></form>';
\ No newline at end of file
+ tplNote += '</table></form>';
+
+
+var tplFileBrowserHeader = '<table border="0" cellpadding="0" cellspacing="0" class="BodyContentChannellist">\n';
+ tplFileBrowserHeader += '<thead class="fixedHeader">\n';
+ tplFileBrowserHeader += '<tr>\n';
+ tplFileBrowserHeader += '<th><div class="sListHeader">FileBrowser %(root)</div>\n';
+ tplFileBrowserHeader += '<div class="sListSearch">';
+ tplFileBrowserHeader += '<!-- insert filesearch-function here--></div></th>';
+ tplFileBrowserHeader += '</tr>\n';
+ tplFileBrowserHeader += '</thead>\n';
+ tplFileBrowserHeader += '<tbody class="scrollContent">\n';
+
+var tplFileBrowserItemHead = '<tr>\n';
+var tplFileBrowserItemBody = '<td><div style="color: #%(color);" onclick="%(exec)(\'%(servicereference)\',\'%(root)\');" class="sListSName" title="%(servicereference)">%(name)</div>';
+var tplFileBrowserItemIMG = '<div class="sListExt">\n';
+ tplFileBrowserItemIMG += '<img src="/webdata/gfx/play.png" onclick="%(exec)(\'%(servicereference)\',\'%(root)\');" title="%(exec_description)" border="0">\n';
+ tplFileBrowserItemIMG += '<a target="_blank" href="/file/?file=%(name)&root=%(root)"><img src="/webdata/gfx/save.png" title="download File" border="0"></a>\n';
+ tplFileBrowserItemIMG += '</div>\n';
+var tplFileBrowserItemFooter = '</tr>\n';
+
+var tplFileBrowserFooter = '</tbody></table>\n';
+ tplFileBrowserFooter += '<form action="/upload" method="POST" enctype="multipart/form-data"><input type="hidden" name="path" value="%(root)">';
+ tplFileBrowserFooter += '<input type="file" name="file"';
+ tplFileBrowserFooter += '<input style="vertical-align:middle" type="image" src="/webdata/gfx/save.png" alt="upload">';
+ tplFileBrowserFooter += '</form>';
\ No newline at end of file
,'exec_description': 'change to directory ../'
,'color': '000000'
,'root': newroot
- ,'filename': newroot
- ,'fullpath': '..'});
+ ,'name': '..'});
}
for ( var i = 0; i <files.length; i++){
var file = files[i];
- if(file.getFullPath() == 'None') {
+ if(file.getNameOnly() == 'None') {
continue;
}
var exec = 'loadMediaPlayer';
,'exec_description': exec_description
,'color': color
,'root': file.getRoot()
- ,'filename': file.getFileName()
- ,'fullpath': file.getFullPath()
+ ,'name': file.getNameOnly()
};
listerHtml += tplMediaPlayerItemHead;
listerHtml += RND(tplMediaPlayerItemBody, namespace);
function sendPowerState(newState){
new Ajax.Request( url_powerstate+'?newstate='+newState, { asynchronous: true, method: 'get' });
}
+function loadFileBrowser(directory){
+ debug("loading loadFileBrowser");
+ doRequest(url_filelist+directory, incomingFileBrowser);
+}
+function incomingFileBrowser(request){
+ if(request.readyState == 4){
+ var files = new FileList(getXML(request)).getArray();
+ debug(getXML(request));
+ debug("have "+files.length+" entry in filelist");
+ listerHtml = tplFileBrowserHeader;
+ root = files[0].getRoot();
+ listerHtml = RND(tplFileBrowserHeader, {'root': root});
+ if(root != '/') {
+ re = new RegExp(/(.*)\/(.*)\/$/);
+ re.exec(root);
+ newroot = RegExp.$1+'/';
+ if(newroot == '//') {
+ newroot = '/';
+ }
+ listerHtml += RND(tplFileBrowserItemBody,
+ {'root': root
+ , 'servicereference': newroot
+ ,'exec': 'loadFileBrowser'
+ ,'exec_description': 'change to directory ../'
+ ,'color': '000000'
+ ,'root': newroot
+ ,'name': '..'});
+ }
+ for ( var i = 0; i <files.length; i++){
+ var file = files[i];
+ if(file.getNameOnly() == 'None') {
+ continue;
+ }
+ var exec = 'loadFileBrowser';
+ var exec_description = 'change to directory' + file.getServiceReference();
+ var color = '000000';
+ if (file.getIsDirectory() == "False") {
+ exec = '';
+ exec_description = 'do Nothing';
+ color = '00BCBC';
+ }
+ var namespace = {
+ 'servicereference': file.getServiceReference()
+ ,'exec': exec
+ ,'exec_description': exec_description
+ ,'color': color
+ ,'root': file.getRoot()
+ ,'name': file.getNameOnly()
+ };
+ listerHtml += tplFileBrowserItemHead;
+ listerHtml += RND(tplFileBrowserItemBody, namespace);
+ if (file.getIsDirectory() == "False") {
+ listerHtml += RND(tplFileBrowserItemIMG, namespace);
+ }
+ listerHtml += tplFileBrowserItemFooter;
+ }
+ listerHtml += RND(tplFileBrowserFooter, {'root': root});
+ $('BodyContent').innerHTML = listerHtml;
+ var sendMediaPlayerTMP = sendMediaPlayer;
+ sendMediaPlayer = false;
+ setBodyMainContent('BodyContent');
+ sendMediaPlayer = sendMediaPlayerTMP;
+ }
+}
<e2:screen name="MediaPlayerWebScreen"><?xml version="1.0" encoding="UTF-8"?>
-<e2filelist><e2:element source="FileList" id="path"><e2:convert type="web:ListFiller" >
+<e2filelist><e2:element source="FileList" id="path,types"><e2:convert type="web:ListFiller" >
<e2file>
<e2servicereference><e2:item name="ServiceReference" filter="xml"/></e2servicereference>
<e2isdirectory><e2:item name="IsDirectory" filter="xml"/></e2isdirectory>