commit 1d9d77d8725ed0a1e7dc1cd9e29869b1e6cf5bd7
parent 9a87010354c678d3e1414c0aefa53f9377dd4bee
Author: Jan Dankert <devnull@localhost>
Date: Thu, 21 Dec 2017 00:43:49 +0100
Fix: Bei Links muss man auch die Action vorgeben können.
Diffstat:
6 files changed, 35 insertions(+), 19 deletions(-)
diff --git a/modules/template-engine/components/html/link/Link.class.php b/modules/template-engine/components/html/link/Link.class.php
@@ -68,38 +68,38 @@ class LinkComponent extends Component
{
echo '<a';
- if (! empty($this->class))
+ if (isset($this->class))
echo ' class="' . $this->htmlvalue($this->class) . '"';
- if (! empty($this->title))
+ if (isset($this->title))
echo ' title="' . $this->htmlvalue($this->title) . '"';
- if (! empty($this->accesskey))
+ if (isset($this->accesskey))
echo ' accesskey="' . $this->htmlvalue($this->accesskey) . '"';
- if (! empty($this->frame))
+ if (isset($this->frame))
echo ' target="' . $this->htmlvalue($this->frame) . '"';
- if (! empty($this->name))
+ if (isset($this->name))
echo ' date-name="' . $this->htmlvalue($this->name) . '" name="' . $this->htmlvalue($this->name) . '"';
- if (! empty($this->url))
+ if (isset($this->url))
echo ' data-url="' . $this->htmlvalue($this->url) . '"';
- if (! empty($this->type))
+ if (isset($this->type))
echo ' data-type="' . $this->htmlvalue($this->type) . '"';
- if (! empty($this->action))
+ if (!empty($this->action))
echo ' data-action="' . $this->htmlvalue($this->action) . '"';
else
- echo ' data-action="<?php echo OR_ACTION ?>"';
+ echo ' data-action=""';
- if (! empty($this->subaction))
+ if (isset($this->subaction))
echo ' data-method="' . $this->htmlvalue($this->subaction) . '"';
else
echo ' data-method="<?php echo OR_METHOD ?>"';
- if (! empty($this->id))
+ if (isset($this->id))
echo ' data-id="' . $this->htmlvalue($this->id) . '"';
else
echo ' data-id="<?php echo OR_ID ?>"';
diff --git a/themes/default/js/openrat.js b/themes/default/js/openrat.js
@@ -696,9 +696,9 @@ function startView( element,method )
*/
function startDialog( name,action,method,id,params )
{
- if ( action== null)
+ if ( action== null || action.length ==0 )
action = $('#panel-content').find('li.active').data('action');
- if (id==null)
+ if (id==null || id.length ==0)
id = $('#panel-content').find('li.active').data('id' );
// if (params==null)
// params = {};
diff --git a/themes/default/js/openrat.min.js b/themes/default/js/openrat.min.js
@@ -4,7 +4,7 @@ else if(v<Math.min(o,c)){t.addClass('axle-x');t.children('div.divider').addClass
else if(o<c){t.addClass('axle-y');t.children('div.divider').addClass('to-bottom');t.children('div.first').removeClass('first').addClass('resizable');t.children('div.second').removeClass('first').addClass('autosize')}
else{t.addClass('axle-y');t.children('div.divider').addClass('to-top');t.children('div.first').removeClass('first').addClass('autosize');t.children('div.second').removeClass('first').addClass('resizable')};t.children('div.resizable').addClass('bar').data('size-factor',0.4);$(s).closest('div.panel').clone().addClass('resizable').removeClass('autosize').replaceAll(t.children('div.resizable'));t.find('ul.views > li').remove();$(s).detach().css({top:0,left:0}).appendTo(t.find('ul.views')).click();var a=$(n).closest('div.panel').replaceWith(t);t.children('div.autosize').replaceWith(a);if(a.hasClass('autosize')){t.addClass('autosize').removeClass('resizable')};if(a.hasClass('resizable')){t.addClass('resizable').removeClass('autosize')};a.addClass('autosize').removeClass('resizable');if(r.find('li').length==0){var a=r.closest('div.container');r.closest('div.panel').remove();if(a.hasClass('autosize'))a.children('div.panel').addClass('autosize').removeClass('resizable');else a.children('div.panel').addClass('resizable').removeClass('autosize');a.replaceWith(a.children('div.panel'));resizeWorkbench()};resizeWorkbench();registerWorkbenchEvents()}});if($('div#workbench div.panel.modal').length>0){$('div#workbench div.panel.modal').parent().addClass('modal');$('div#filler').fadeTo(500,0.5);$('div#workbench').addClass('modal')};$('div.container.axle-x > div.divider').draggable({stop:function(e,i){var t=i.position.left,a=$(this).hasClass('to-right')?1:-1;$(this).parent().children('div.resizable').each(function(){var e=((a*t)+$(this).width())/($(this).parent().width());e=Math.min(0.5,Math.max(0.1,e));$(this).data('size-factor',e)});resizeWorkbenchContainer($(this).parent())},axis:'x',revert:!0,revertDuration:0});$('div.container.axle-y > div.divider').draggable({stop:function(e,i){var t=i.position.top,a=$(this).hasClass('to-bottom')?1:-1;$(this).parent().children('div.resizable').each(function(){var e=((a*t)+$(this).height())/($(this).parent().height());e=Math.min(0.5,Math.max(0.1,e));$(this).data('size-factor',e)});resizeWorkbenchContainer($(this).parent())},axis:'y',revert:!0,revertDuration:0});$('ul.views > li.action').click(function(){$(this).orLoadView()});$('div.header').dblclick(function(){fullscreen(this)})};function refreshTitleBar(){$('div#header').load(createUrl('title','show',0),function(){$(this).fadeIn('slow');$('div.clickable.filtered').addClass('inactive');registerHeaderEvents()})};function loadViewByName(e,i){alert('loadViewByName');loadView($('div#'+e),i)};function loadView(e,i,t,s,n){var a=$(e).children('div.sheet.action-'+i+'.method-'+t+'.id-'+s);if(a.length==0){$(e).children('div.sheet').hide();a=$('<div class="sheet action-'+i+' method-'+t+' id-'+s+'" />');$(e).append(a)}
else{if(a.is(':visible')){return}
-else{$(e).children('div.sheet').hide();a.show();return}};var d=createUrl(i,t,s,n);$(a).empty().fadeTo(1,0.7).addClass('loader').html('').load(d,function(e,i,t){$(a).fadeTo(350,1);if(i=='error'){$(a).html('');$(a).removeClass('loader');notify('error',e);return};$(a).removeClass('loader');registerViewEvents(a)})};function registerViewEvents(e){$(e).trigger('orViewLoaded');$(e).find('input[data-hint]').orHint();$(e).closest('div.panel').find('div.header div.dropdown div.entry.perview').remove();$(e).find('div.headermenu > a').each(function(e,i){});$(e).find('div.header > a.back').each(function(i,t){$(t).removeClass('button').wrap('<div class="entry perview" />').parent().appendTo($(e).closest('div.panel').find('div.header div.dropdown').first())});$(e).find('div.selector.tree').each(function(){var e=this;$(this).orTree({type:'project',selectable:$(e).attr('data-types').split(','),id:$(e).attr('data-init-folderid'),onSelect:function(i,t,a){var s=$(e).parent();$(s).find('input[type=text]').attr('value',i);$(s).find('input[type=hidden]').attr('value',a)}})});$('div.content li.object').draggable({cursor:'move',revert:'invalid'});$('div.content li.object > div.entry[data-type=\'folder\']').droppable({accept:'li.object',hoverClass:'drophover',activeClass:'dropactive',drop:function(e,i){var t=i.draggable,a=$(this).parent();startDialog($(this).text(),$(t).attr('data-type'),'copy',$(a).attr('data-id'),{'action':$(t).attr('data-type'),'subaction':'copy','id':$(t).attr('data-id'),'targetFolderId':$(a).attr('data-id')});$(t).detach().css({top:0,left:0}).appendTo(a).click()}});$(e).find('input').change(function(){$(this).closest('div.panel').find('ul.views li.action.active').addClass('dirty')})};function registerHeaderEvents(){$('div#header').trigger('orHeaderLoaded');$('div.search input').blur(function(){$('div.search input div.dropdown').fadeOut()});$('div.search input').orHint();$('div.search input').orSearch({dropdown:'div.search div.dropdown'})};function fullscreen(e){$(e).closest('div.panel').fadeOut('fast',function(){$(this).toggleClass('fullscreen').fadeIn('fast')})};function loadTree(){if($('div#panel-tree li.action').data('action')=='tree'){$('div#panel-tree div.content > div.sheet.action-tree.method-tree').html(' ');$('div#panel-tree div.content > div.sheet.action-tree.method-tree').orTree({type:'root',id:0,onSelect:function(e,i,t){openNewAction(e,i,t,'')}});$('div#panel-tree div.content > div.sheet.action-tree.method-tree > ul.tree > div.tree').delay(500).click();$('div#panel-tree div.content > div.sheet.action-tree.method-tree > ul.tree > div.tree').delay(500).click()}};function submitUrl(e,i){postUrl(i,e);refreshAllRefreshables()};function postUrl(e,i){e+='&output=json';$.ajax({'type':'POST',url:e,data:{},success:function(e,t,a){$('div.panel div.status div.loader').html(' ');doResponse(e,t,i)}})};function startView(e,i){var t=$('#panel-content').find('li.active').data('action'),a=$('#panel-content').find('li.active').data('id');loadView($(e).closest('div.panel').find('div.content'),t,i,a)};function startDialog(e,i,t,a,s){if(i==null)i=$('#panel-content').find('li.active').data('action');if(a==null)a=$('#panel-content').find('li.active').data('id');$('div#filler').fadeTo(500,0.5);$('div#dialog').html('<div class="header"><ul class="views"><li class="action active"><img class="icon" title="" src="./themes/default/images/icon/'+t+'.png" /><div class="tabname" style="width:100px;">'+e+'</div></li></ul></div><div class="content" />');$('div#dialog').data('id',a);$('div#dialog').show();loadView($('div#dialog div.content'),i,t,a,s)};function modalView(e,i){var t=$(e).closest('div.panel').find('li.active').attr('data-action'),a=$(e).closest('div.panel').find('li.active').attr('data-method'),s=$(e).closest('div.panel').find('li.active').attr('data-id');$(e).closest('div.content').modal({'overlayClose':'true','xxxonClose':function(){alert('close)')}});loadView($(e).closest('div.content'),t,a,s)};function setTitle(e){if(e)$('head > title').text(e+' - '+$('head > title').data('default'));else $('head > title').text($('head > title').data('default'))};function openNewAction(e,i,t,a){setTitle(e);$('ul#history li.active').removeClass('active');if($('ul#history li.'+i+'.id'+t).length>0){$('ul#history li.'+i+'.id'+t).addClass('active')}
+else{$(e).children('div.sheet').hide();a.show();return}};var d=createUrl(i,t,s,n);$(a).empty().fadeTo(1,0.7).addClass('loader').html('').load(d,function(e,i,t){$(a).fadeTo(350,1);if(i=='error'){$(a).html('');$(a).removeClass('loader');notify('error',e);return};$(a).removeClass('loader');registerViewEvents(a)})};function registerViewEvents(e){$(e).trigger('orViewLoaded');$(e).find('input[data-hint]').orHint();$(e).closest('div.panel').find('div.header div.dropdown div.entry.perview').remove();$(e).find('div.headermenu > a').each(function(e,i){});$(e).find('div.header > a.back').each(function(i,t){$(t).removeClass('button').wrap('<div class="entry perview" />').parent().appendTo($(e).closest('div.panel').find('div.header div.dropdown').first())});$(e).find('div.selector.tree').each(function(){var e=this;$(this).orTree({type:'project',selectable:$(e).attr('data-types').split(','),id:$(e).attr('data-init-folderid'),onSelect:function(i,t,a){var s=$(e).parent();$(s).find('input[type=text]').attr('value',i);$(s).find('input[type=hidden]').attr('value',a)}})});$('div.content li.object').draggable({cursor:'move',revert:'invalid'});$('div.content li.object > div.entry[data-type=\'folder\']').droppable({accept:'li.object',hoverClass:'drophover',activeClass:'dropactive',drop:function(e,i){var t=i.draggable,a=$(this).parent();startDialog($(this).text(),$(t).attr('data-type'),'copy',$(a).attr('data-id'),{'action':$(t).attr('data-type'),'subaction':'copy','id':$(t).attr('data-id'),'targetFolderId':$(a).attr('data-id')});$(t).detach().css({top:0,left:0}).appendTo(a).click()}});$(e).find('input').change(function(){$(this).closest('div.panel').find('ul.views li.action.active').addClass('dirty')})};function registerHeaderEvents(){$('div#header').trigger('orHeaderLoaded');$('div.search input').blur(function(){$('div.search input div.dropdown').fadeOut()});$('div.search input').orHint();$('div.search input').orSearch({dropdown:'div.search div.dropdown'})};function fullscreen(e){$(e).closest('div.panel').fadeOut('fast',function(){$(this).toggleClass('fullscreen').fadeIn('fast')})};function loadTree(){if($('div#panel-tree li.action').data('action')=='tree'){$('div#panel-tree div.content > div.sheet.action-tree.method-tree').html(' ');$('div#panel-tree div.content > div.sheet.action-tree.method-tree').orTree({type:'root',id:0,onSelect:function(e,i,t){openNewAction(e,i,t,'')}});$('div#panel-tree div.content > div.sheet.action-tree.method-tree > ul.tree > div.tree').delay(500).click();$('div#panel-tree div.content > div.sheet.action-tree.method-tree > ul.tree > div.tree').delay(500).click()}};function submitUrl(e,i){postUrl(i,e);refreshAllRefreshables()};function postUrl(e,i){e+='&output=json';$.ajax({'type':'POST',url:e,data:{},success:function(e,t,a){$('div.panel div.status div.loader').html(' ');doResponse(e,t,i)}})};function startView(e,i){var t=$('#panel-content').find('li.active').data('action'),a=$('#panel-content').find('li.active').data('id');loadView($(e).closest('div.panel').find('div.content'),t,i,a)};function startDialog(e,i,t,a,s){if(i==null||i.length==0)i=$('#panel-content').find('li.active').data('action');if(a==null||a.length==0)a=$('#panel-content').find('li.active').data('id');$('div#filler').fadeTo(500,0.5);$('div#dialog').html('<div class="header"><ul class="views"><li class="action active"><img class="icon" title="" src="./themes/default/images/icon/'+t+'.png" /><div class="tabname" style="width:100px;">'+e+'</div></li></ul></div><div class="content" />');$('div#dialog').data('id',a);$('div#dialog').show();loadView($('div#dialog div.content'),i,t,a,s)};function modalView(e,i){var t=$(e).closest('div.panel').find('li.active').attr('data-action'),a=$(e).closest('div.panel').find('li.active').attr('data-method'),s=$(e).closest('div.panel').find('li.active').attr('data-id');$(e).closest('div.content').modal({'overlayClose':'true','xxxonClose':function(){alert('close)')}});loadView($(e).closest('div.content'),t,a,s)};function setTitle(e){if(e)$('head > title').text(e+' - '+$('head > title').data('default'));else $('head > title').text($('head > title').data('default'))};function openNewAction(e,i,t,a){setTitle(e);$('ul#history li.active').removeClass('active');if($('ul#history li.'+i+'.id'+t).length>0){$('ul#history li.'+i+'.id'+t).addClass('active')}
else{$('ul#history').append('<li class="action active '+i+' id'+t+'"><img src="'+OR_THEMES_EXT_DIR+'default/images/icon_'+i+'.png" title="" />'+e+'</li>');$('ul#history li.active').click(function(){$('ul#history li.active').removeClass('active');$(this).addClass('active');setNewAction(i,t,a)})};$('div#panel-content > div.header > ul.views li.active').removeClass('active');if($('div#panel-content > div.header > ul.views > li.'+i+'.id'+t).length>0){$('div#panel-content > div.header > ul.views > li.'+i+'.id'+t).addClass('active')}
else{$('div#panel-content > div.header > ul.views > li.active').removeClass('active');var s=7;if($('div#panel-content > div.header > ul.views > li.action').length>=s)$('div#panel-content > div.header > ul.views > li.action').first().remove();$('div#panel-content > div.header > ul.views').append('<li class="action active '+i+' id'+t+'" title="'+e+'" data-action="'+i+'" data-id="'+t+'" data-method="'+DEFAULT_CONTENT_ACTION+'"><img class="icon" src="'+OR_THEMES_EXT_DIR+'default/images/icon_'+i+'.png" title="" /><div class="tabname">'+e+'</div><img class="close icon" src="'+OR_THEMES_EXT_DIR+'default/images/icon/close.gif" title="" /></li>');resizeTabs($('div#contentbar'),!0);$('div#panel-content > div.header > ul.views').scrollLeft(9999);$('div#panel-content > div.header > ul.views img.close').click(function(){setTitle('');var i=$(this).closest('li.action').data('action'),t=$(this).closest('li.action').data('id');$('div#workbench div.content > div.sheet.action-'+i+'.id-'+t).remove();if($(this).closest('li.action').hasClass('active')){$('div#workbench div.refreshable div.content').html('');var e=$(this).closest('ul.views');$(this).parent().remove();$(e).find('li.action').last().click()}
else{$(this).parent().remove()};resizeTabs($('div#panel-content'),!0)});$('div#panel-content > div.header > ul.views > li.active').click(function(){$('div#panel-content > div.header > ul.views li.active').removeClass('active');$(this).addClass('active');setTitle($(this).children('div.tabname').text());setNewAction(i,t,a)});resizeTabs($('div#panel-content '))};setNewAction(i,t,a)};function filterMenus(e){$('div.clickable.filtered').addClass('inactive');$('div.clickable.filtered.on-action-'+e).removeClass('inactive')};function setNewAction(e,i,t){filterMenus(e);$('div#workbench ul.views > li.action.dependent').attr('data-action',e).attr('data-id',i).attr('data-extra',JSON.stringify(t));refreshAllRefreshables()};function setNewId(e){$('div#workbench div.refreshable').attr('data-id',e);refreshAllRefreshables()};function notifyBrowser(e){if(!('Notification' in window)){return}
diff --git a/themes/default/js/plugin/jquery-plugin-orLinkify.js b/themes/default/js/plugin/jquery-plugin-orLinkify.js
@@ -31,7 +31,7 @@ jQuery.fn.orLinkify = function()
else if ( type == 'dialog' )
{
- startDialog($(this).attr('data-name'),null,$(this).attr('data-method') );
+ startDialog($(this).attr('data-name'),$(this).attr('data-action'),$(this).attr('data-method') );
}
else if ( type == 'url' )
diff --git a/themes/default/js/plugin/jquery-plugin-orLinkify.min.js b/themes/default/js/plugin/jquery-plugin-orLinkify.min.js
@@ -1,7 +1,7 @@
;jQuery.fn.orLinkify=function(){return $(this).click(function(){$(this).find('a').first().each(function(){var t=$(this).attr('data-type');if($(this).parent().hasClass('inactive'))return;if(t=='post'){submitLink(this,$(this).attr('data-data'))}
else if(t=='view'){startView(this,$(this).attr('data-method'))}
else if(t=='modal'){startDialog($(this).attr('data-name'),null,$(this).attr('data-method'))}
-else if(t=='dialog'){startDialog($(this).attr('data-name'),null,$(this).attr('data-method'))}
+else if(t=='dialog'){startDialog($(this).attr('data-name'),$(this).attr('data-action'),$(this).attr('data-method'))}
else if(t=='url'){submitUrl(this,$(this).attr('data-url'))}
else if(t=='external'){window.open($(this).attr('data-url'),' _blank')}
else if(t=='popup'){window.open($(this).attr('data-url'),'Popup','location=no,menubar=no,scrollbars=yes,toolbar=no,resizable=yes')}
diff --git a/themes/default/templates/title/show.tpl.src.xml b/themes/default/templates/title/show.tpl.src.xml
@@ -185,6 +185,7 @@
+ <!-- Falls eingeloggt: Weitere Aktionsbuttons -->
<if true="var:isLoggedIn">
<part
@@ -204,7 +205,7 @@
</if>
- <!-- Info-Meldung anzeigen (sofern vorhanden -->
+ <!-- Info-Meldung anzeigen (sofern vorhanden) -->
<if not="" empty="config:login/motd">
<part class="toolbar-icon">
<image method="motd" align="left"></image>
@@ -222,26 +223,41 @@
+ <!-- Suche -->
<part class="search">
<input name="text" hint="message:search" icon="search"></input>
<part class="dropdown">
<text raw=""></text>
</part>
</part>
+
+ <!-- Benutzer -->
<part class="toolbar-icon user">
<image action="user" align="left"></image>
<text class="titletext" var="userfullname" maxlength="25"></text>
<image method="arrow_down" align="left"></image>
<!-- <part class="arrow-down" />-->
<part class="dropdown">
+
<part class="entry clickable">
- <link type="post" title="message:USER_PROFILE_DESC" action="start"
- subaction="profile">
+ <link type="dialog" title="message:USER_PROFILE_DESC" action="profile" subaction="edit">
<image action="user" align="left"></image>
<text key="profile"></text>
</link>
</part>
<part class="entry clickable">
+ <link type="dialog" title="message:USER_PROFILE_DESC" action="profile" subaction="pw">
+ <image action="user" align="left"></image>
+ <text key="password"></text>
+ </link>
+ </part>
+ <part class="entry clickable">
+ <link type="dialog" title="message:USER_PROFILE_DESC" action="profile" subaction="mail">
+ <image action="user" align="left"></image>
+ <text key="mail"></text>
+ </link>
+ </part>
+ <part class="entry clickable">
<link type="post" title="message:start" action="start"
subaction="start">
<image action="dashboard" align="left"></image>