git-svn-id: https://192.168.0.254/svn/Proyectos.FundacionLQDVI_WebCongresos/trunk@2 94ccb1af-fd9d-d947-8d90-7f70ea60afc8
181 lines
5.7 KiB
JavaScript
181 lines
5.7 KiB
JavaScript
/**
|
|
* @version $Id: mediamanager.js 14401 2010-01-26 14:10:00Z louis $
|
|
* @package Joomla
|
|
* @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
|
|
* @license GNU/GPL, see LICENSE.php
|
|
* Joomla! is free software. This version may have been modified pursuant
|
|
* to the GNU General Public License, and as distributed it includes or
|
|
* is derivative of works licensed under the GNU General Public License or
|
|
* other free or open source software licenses.
|
|
* See COPYRIGHT.php for copyright notices and details.
|
|
*/
|
|
|
|
|
|
/**
|
|
* JMediaManager behavior for media component
|
|
*
|
|
* @package Joomla.Extensions
|
|
* @subpackage Media
|
|
* @since 1.5
|
|
*/
|
|
var MediaManager = {
|
|
|
|
initialize: function()
|
|
{
|
|
this.folderframe = $('folderframe');
|
|
this.folderpath = $('folderpath');
|
|
|
|
this.updatepaths = $$('input.update-folder');
|
|
|
|
this.frame = window.frames['folderframe'];
|
|
this.frameurl = this.frame.location.href;
|
|
//this.frameurl = window.frames['folderframe'].location.href;
|
|
|
|
this.tree = new MooTreeControl({ div: 'media-tree_tree', mode: 'folders', grid: true, theme: 'components/com_media/assets/mootree.gif', onClick:
|
|
function(node){
|
|
target = $chk(node.data.target) ? node.data.target : '_self';
|
|
window.frames[target].location.href = node.data.url;
|
|
}
|
|
},{ text: 'Media', open: true, data: { url: 'index.php?option=com_media&view=mediaList&tmpl=component', target: 'folderframe'}});
|
|
this.tree.adopt('media-tree');
|
|
},
|
|
|
|
submit: function(task)
|
|
{
|
|
form = window.frames['folderframe'].document.getElementById('mediamanager-form');
|
|
form.task.value = task;
|
|
if ($('username')) {
|
|
form.username.value = $('username').value;
|
|
form.password.value = $('password').value;
|
|
}
|
|
form.submit();
|
|
},
|
|
|
|
onloadframe: function()
|
|
{
|
|
// Update the frame url
|
|
this.frameurl = this.frame.location.href;
|
|
|
|
var folder = this.getFolder();
|
|
if (folder) {
|
|
this.updatepaths.each(function(path){ path.value =folder; });
|
|
this.folderpath.value = basepath+'/'+folder;
|
|
node = this.tree.get('node_'+folder);
|
|
node.toggle(false, true);
|
|
} else {
|
|
this.updatepaths.each(function(path){ path.value = ''; });
|
|
this.folderpath.value = basepath;
|
|
node = this.tree.root;
|
|
}
|
|
|
|
if (node) {
|
|
this.tree.select(node, true);
|
|
}
|
|
|
|
$(viewstyle).addClass('active');
|
|
|
|
a = this._getUriObject($('uploadForm').getProperty('action'));
|
|
q = $H(this._getQueryObject(a.query));
|
|
q.set('folder', folder);
|
|
var query = [];
|
|
q.each(function(v, k){
|
|
if ($chk(v)) {
|
|
this.push(k+'='+v);
|
|
}
|
|
}, query);
|
|
a.query = query.join('&');
|
|
if (a.port) {
|
|
$('uploadForm').setProperty('action', a.scheme+'://'+a.domain+':'+a.port+a.path+'?'+a.query);
|
|
} else {
|
|
$('uploadForm').setProperty('action', a.scheme+'://'+a.domain+a.path+'?'+a.query);
|
|
}
|
|
},
|
|
|
|
oncreatefolder: function()
|
|
{
|
|
if ($('foldername').value.length) {
|
|
$('dirpath').value = this.getFolder();
|
|
submitbutton('createfolder');
|
|
}
|
|
},
|
|
|
|
setViewType: function(type)
|
|
{
|
|
$(type).addClass('active');
|
|
$(viewstyle).removeClass('active');
|
|
viewstyle = type;
|
|
var folder = this.getFolder();
|
|
this._setFrameUrl('index.php?option=com_media&view=mediaList&tmpl=component&folder='+folder+'&layout='+type);
|
|
},
|
|
|
|
refreshFrame: function()
|
|
{
|
|
this._setFrameUrl();
|
|
},
|
|
|
|
getFolder: function()
|
|
{
|
|
var url = this.frame.location.search.substring(1);
|
|
var args = this.parseQuery(url);
|
|
|
|
if (args['folder'] == "undefined") {
|
|
args['folder'] = "";
|
|
}
|
|
|
|
return args['folder'];
|
|
},
|
|
|
|
parseQuery: function(query)
|
|
{
|
|
var params = new Object();
|
|
if (!query) {
|
|
return params;
|
|
}
|
|
var pairs = query.split(/[;&]/);
|
|
for ( var i = 0; i < pairs.length; i++ )
|
|
{
|
|
var KeyVal = pairs[i].split('=');
|
|
if ( ! KeyVal || KeyVal.length != 2 ) {
|
|
continue;
|
|
}
|
|
var key = unescape( KeyVal[0] );
|
|
var val = unescape( KeyVal[1] ).replace(/\+ /g, ' ');
|
|
params[key] = val;
|
|
}
|
|
return params;
|
|
},
|
|
|
|
_setFrameUrl: function(url)
|
|
{
|
|
if ($chk(url)) {
|
|
this.frameurl = url;
|
|
}
|
|
this.frame.location.href = this.frameurl;
|
|
},
|
|
|
|
_getQueryObject: function(q) {
|
|
var vars = q.split(/[&;]/);
|
|
var rs = {};
|
|
if (vars.length) vars.each(function(val) {
|
|
var keys = val.split('=');
|
|
if (keys.length && keys.length == 2) rs[encodeURIComponent(keys[0])] = encodeURIComponent(keys[1]);
|
|
});
|
|
return rs;
|
|
},
|
|
|
|
_getUriObject: function(u){
|
|
var bits = u.match(/^(?:([^:\/?#.]+):)?(?:\/\/)?(([^:\/?#]*)(?::(\d*))?)((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[\?#]|$)))*\/?)?([^?#\/]*))?(?:\?([^#]*))?(?:#(.*))?/);
|
|
return (bits)
|
|
? bits.associate(['uri', 'scheme', 'authority', 'domain', 'port', 'path', 'directory', 'file', 'query', 'fragment'])
|
|
: null;
|
|
}
|
|
};
|
|
|
|
window.addEvent('domready', function(){
|
|
// Added to populate data on iframe load
|
|
MediaManager.initialize();
|
|
MediaManager.trace = 'start';
|
|
document.updateUploader = function() { MediaManager.onloadframe(); };
|
|
MediaManager.onloadframe();
|
|
});
|