commit b16e331f5f7f7481e79e3792811fce51227bb14f
parent 15d2f9ea5bfdf3f76410e1e84dfcd3317b3e2337
Author: Jan Dankert <devnull@localhost>
Date: Tue, 5 Mar 2013 21:33:04 +0100
Umstellung: Attribut "data-action" pro View und nicht mehr nur pro Frame speichern.
Diffstat:
3 files changed, 46 insertions(+), 89 deletions(-)
diff --git a/themes/default/js/openrat.js b/themes/default/js/openrat.js
@@ -58,37 +58,34 @@ function refreshAll()
}
-function refreshAllRefreshables() {
-
+function refreshAllRefreshables()
+{
// Default-Inhalte der einzelnen Views laden.
- $('div#workbench div.refreshable li.active').each( function() {
- var method = $(this).attr('data-method');
- var p = $(this).closest('div.frame');
+ $('div#workbench div.bar ul.views li.active').each( function() {
+ if ( $(this).hasClass('static') )
+ return;
- var action = p.attr('data-action');
- var id = p.attr('data-id');
- var extraid = p.attr('data-extra');
- //alert(method+' '+action);
+ var method = $(this).attr('data-method');
+ var action = $(this).attr('data-action');
+ var id = $(this).attr('data-id');
+ var extraid = $(this).attr('data-extra');
- loadView( p.find('div.content'),createUrl(action,method,id,extraid));
+ loadView( $(this).closest('div.frame').find('div.content'),createUrl(action,method,id,extraid));
});
}
-function refreshActualView(element) {
-
+function refreshActualView( element )
+{
// Default-Inhalte der einzelnen Views laden.
$(element).closest('div.frame').find('li.active').each( function() {
var method = $(this).attr('data-method');
- var p = $(this).closest('div.frame');
- var action = p.attr('data-action');
- var id = p.attr('data-id');
- //alert(method+' '+action);
+ var action = $(this).attr('data-action');
+ var id = $(this).attr('data-id');
-
- loadView( p.find('div.content'),createUrl(action,method,id));
+ loadView( $(this).closest('div.frame').find('div.content'),createUrl(action,method,id));
});
}
@@ -115,13 +112,9 @@ function refreshWorkbench()
// Default-Inhalte der einzelnen Views laden.
$(this).fadeIn(750).find('li.active').each( function() {
var method = $(this).attr('data-method');
- var p = $(this).closest('div.frame');
- var action = p.attr('data-action');
- //alert(method+' '+action);
-
+ var action = $(this).attr('data-action');
- //alert('go2');
- loadView( p.find('div.content'),createUrl(action,method,0));
+ loadView( $(this).closest('div.frame').find('div.content'),createUrl(action,method,0));
});
// OnClick-Handler zum Scrollen der Tabs
@@ -258,43 +251,16 @@ function loadViewByName(viewName, url )
loadView( $('div#'+viewName),url );
}
+
+/**
+ * Laden einer View.
+ *
+ * @param jo
+ * @param url URL, von der der Inhalt geladen wird.
+ */
function loadView(jo, url )
{
- //alert("Lade "+url + " in Objekt "+jo);
- // E d i t o r
- var editorConfig = {
- skin : 'v2',
- baseHref: OR_THEMES_EXT_DIR+'../editor/editor/',
- customConfig : 'config-openrat.js',
- filebrowserUploadUrl:'./dispatcher.php?action=filebrowser&subaction=directupload&name=upload',
- filebrowserBrowseUrl:'./dispatcher.php?action=filebrowser&subaction=browse'
- };
-
- /*
- if ( $(jo).find('textarea#pageelement_edit_editor').size() > 0 )
- {
- var o=CKEDITOR.instances[ $('textarea.editor').attr('name') ];
- if (o) o.destroy();
- }
- */
-
- // Untermenü ermitteln.
- var submenu = "";
- var action = $(jo).closest("div.frame").attr("data-action");
- var method = $(jo).closest("div.frame").find("li.active").attr("data-method");
-
- /*
- *
- var menuEntries = menus[action];
- if ( menuEntries != null )
- {
- }
- */
-
- //alert(action+"_"+method);
-
$(jo).empty().fadeTo(1,0.7).addClass('loader').html('').load(url,function(response, status, xhr) {
- //$(jo).slideDown('fast');
$(jo).fadeTo(350,1);
if ( status == "error" )
@@ -323,14 +289,9 @@ function loadView(jo, url )
*/
function registerViewEvents( viewEl )
{
- //alert("o ist "+o);
- //$('textarea.editor').ckeditor( function() { /*alert("editor ready");*/ /* callback code */ }, editorConfig );
- //CKEDITOR.replace('text',{
- // customConfig : 'config-openrat.js'
- //});
var $formVorhanden = $(viewEl).find('form').size() > 0;
- var $formInput = $(viewEl).closest('div.frame').find('div.bottom > div.command > input')
+ var $formInput = $(viewEl).closest('div.frame').find('div.bottom > div.command > input');
if ( $formVorhanden )
$formInput.removeClass('invisible');
else
@@ -341,9 +302,6 @@ function registerViewEvents( viewEl )
$('div.window form input[name=login_name] ').attr('value',$('#uname' ).attr('value'));
$('div.window form input[name=login_password]').attr('value',$('#upassword').attr('value'));
}
- //$.get( createUrl('login','ping',0) );
- //alert( "user: "+$('#uname').attr('value') );
- //alert( "up: "+$('#upassword').attr('value') );
// Fokus nicht setzen, da mehrere Views sich sonst um den Fokus streiten.
//$(viewEl).find('input.focus').focus();
@@ -583,7 +541,7 @@ function fullscreen( element ) {
function loadTree()
{
// Nur, wenn ein Baum auch angezeigt werden soll.
- if ( $('div#tree').attr('data-action')=='tree' )
+ if ( $('div#tree li.action').data('action')=='tree' )
{
// Oberstes Tree-Element erzeugen
$('div#tree div.window div.content').html(" ");
@@ -640,11 +598,10 @@ function postUrl(url,element)
*/
function startView( element,view )
{
- //alert( "startView: "+$(element).html() );
- var action = $(element).closest('div.frame').attr('data-action');
- var id = $(element).closest('div.frame').attr('data-id' );
+ var action = $(element).closest('div.frame').find('li.active').data('action');
+ var id = $(element).closest('div.frame').find('li.active').data('id' );
var url = createUrl(action, view, id);
- //alert( "startView: "+action+"/"+view+"#"+id );
+
loadView( $(element).closest('div.frame').find('div.content'), url );
// Alle refresh-fähigen Views mit dem neuen Objekt laden.
@@ -660,14 +617,13 @@ function startView( element,view )
*/
function startDialog( element,method,action,modal )
{
- //alert( "startView: "+$(element).html() );
- var action = $(element).closest('div.frame').attr('data-action');
- var id = $(element).closest('div.frame').attr('data-id' );
+ var action = $(element).closest('div.frame').find('li.active').data('action');
+ var id = $(element).closest('div.frame').find('li.active').data('id' );
var url = createUrl(action, method, id);
- //alert( "startView: "+action+"/"+view+"#"+id );
$('div#filler').fadeTo(500,0.5);
- $('div#dialog').html('<div class="frame" data-action="'+action+'" data-method="'+method+'" data-id="'+id+'"><div class="window"><div class="content" /></div></div>');
+ //$('div#dialog').html('<div class="frame" data-action="'+action+'" data-method="'+method+'" data-id="'+id+'"><div class="window"><div class="content" /></div></div>');
+ $('div#dialog').html('<div class="frame"><div class="window"><div class="content" /></div></div>');
$('div#dialog').show();
loadView( $('div#dialog div.content'), url );
@@ -688,9 +644,8 @@ function startDialog( element,method,action,modal )
*/
function modalView( element,view )
{
- //alert( "startView: "+$(element).html() );
- var action = $(element).closest('div.frame').attr('data-action');
- var id = $(element).closest('div.frame').attr('data-id' );
+ var action = $(element).closest('div.frame').find('li.active').attr('data-action');
+ var id = $(element).closest('div.frame').find('li.active').attr('data-id' );
var url = createUrl(action, view, id);
$(element).closest('div.content').modal( { "overlayClose":"true","xxxonClose":function(){alert("close)");} } );
loadView( $(element).closest('div.content'), url );
@@ -752,7 +707,7 @@ function openNewAction( name,action,id,extraId )
if ( $('div#content > div.window > div.menu > div.views > ul.views > li.action').size() >= maxTabs )
$('div#content > div.window > div.menu > div.views > ul.views > li.action').first().remove();
- $('div#content > div.window > div.menu > div.views > ul.views').append('<li class="action active '+action+' id'+id+'" title="'+name+'" data-method="'+DEFAULT_CONTENT_ACTION+'"><img class="icon" src="'+OR_THEMES_EXT_DIR+'default/images/icon_'+action+'.png" title="" /><div class="tabname">'+name+'</div><img class="close icon" src="'+OR_THEMES_EXT_DIR+'default/images/icon/close.gif" title="" /></li>');
+ $('div#content > div.window > div.menu > div.views > ul.views').append('<li class="action active '+action+' id'+id+'" title="'+name+'" data-action="'+action+'" data-id="'+id+'" data-method="'+DEFAULT_CONTENT_ACTION+'"><img class="icon" src="'+OR_THEMES_EXT_DIR+'default/images/icon_'+action+'.png" title="" /><div class="tabname">'+name+'</div><img class="close icon" src="'+OR_THEMES_EXT_DIR+'default/images/icon/close.gif" title="" /></li>');
resizeTabs( $('div#contentbar'),true);
$('div#content > div.window > div.menu > div.views > ul.views').scrollLeft(9999);
$('div#content > div.window > div.menu > div.views > ul.views img.close').click( function()
@@ -817,7 +772,7 @@ function openNewAction( name,action,id,extraId )
*/
function setNewAction( action,id,extraId )
{
- $('div#workbench div.refreshable').attr('data-action',action).attr('data-id',id).attr('data-extra',JSON.stringify(extraId));
+ $('div#workbench ul.views > li.action.dependent').attr('data-action',action).attr('data-id',id).attr('data-extra',JSON.stringify(extraId));
// Alle refresh-fähigen Views mit dem neuen Objekt laden.
refreshAllRefreshables();
diff --git a/themes/default/js/plugin/jquery-plugin-orLoadView.js b/themes/default/js/plugin/jquery-plugin-orLoadView.js
@@ -1,16 +1,18 @@
/**
- * Baum darstellen.
+ * Laden einer View.
*/
jQuery.fn.orLoadView = function()
{
$(this).each(function(idx,treeEl)
{
- var method = $(this).attr('data-method');
+ var method = $(this).data('method');
+ var action = $(this).data('action');
+ var id = $(this).data('id');
+
var frame = $(this).closest('div.frame');
- var action = frame.attr('data-action');
- var id = frame.attr('data-id');
frame.find('ul.views li.active').removeClass('active');
$(this).addClass('active');
+
loadView( frame.find('div.content'),createUrl(action,method,id));
});
diff --git a/themes/default/layout/perspective/window.php b/themes/default/layout/perspective/window.php
@@ -11,7 +11,7 @@ function view_header( $name )
?>
-<div id="<?php echo $name ?>" data-action="<?php echo @$v['action'] ?>" class="frame<?php echo (@$v['refreshable']?' refreshable':'') ?><?php echo (@$v['modal']?' modal':'') ?>">
+<div id="<?php echo $name ?>" class="frame<?php echo (@$v['modal']?' modal':'') ?>">
<div class="window">
<div class="menu">
@@ -28,10 +28,10 @@ function view_header( $name )
foreach( $viewlist as $vn )
{
$tmp_text = langHtml('menu_'.$vn);
- $liClass = 'action'.($vn==$v['default']?' active':'');
+ $liClass = 'action'.($vn==$v['default']?' active':'').(@$v['refreshable']?' dependent':' static');
$icon_url = OR_THEMES_EXT_DIR.'default/images/icon/'.$vn.'.png';
- ?><li data-method="<?php echo $vn ?>" class="<?php echo $liClass?>" title="<?php echo langHtml('menu_'.$vn.'_desc'); ?>"><?php
+ ?><li data-action="<?php echo @$v['action'] ?>" data-method="<?php echo $vn ?>" class="<?php echo $liClass?>" title="<?php echo langHtml('menu_'.$vn.'_desc'); ?>"><?php
?><img class="icon" src="<?php echo $icon_url ?>" /><div class="tabname"><?php echo $tmp_text ?></div><?php
?></li><?php
}