openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit aac648d86e079e5687164ac8d4b5cc8a102b6a93
parent 50eb7a08b39b05ac6de208d7e23ddba9acf9a707
Author: Jan Dankert <devnull@localhost>
Date:   Mon,  7 Nov 2011 23:36:13 +0100

Javascript-Funktion für Link-Knöpfe.

Diffstat:
themes/default/include/elements.ini.php | 2+-
themes/default/include/html/link.inc.php | 30++++++++++++++++++++++++------
themes/default/js/openrat.js | 53++++++++++++++++++++++++++++++++++++++++++++++++-----
util/Html.class.php | 3+++
4 files changed, 76 insertions(+), 12 deletions(-)

diff --git a/themes/default/include/elements.ini.php b/themes/default/include/elements.ini.php @@ -24,7 +24,7 @@ input = class:text,default:,type:text,index,name:*,prefix,value,size:40,maxle inputarea= name,rows:10,cols:40,value,index,onchange,prefix,class:inputarea,default: insert = file,script,inline:false,url,name,function label = for:*,value -link = title:,config,target,var,url,class:,action,subaction,id,var1,value1,var2,value2,var3,value3,var4,value4,var5,value5,accesskey,name,anchor,frame:_self +link = title:,config,type:,target,var,url,class:,action,subaction,id,var1,value1,var2,value2,var3,value3,var4,value4,var5,value5,accesskey,name,anchor,frame:_self list = list:*,extract:false,key:list_key,value:list_value logo = name:* newline = diff --git a/themes/default/include/html/link.inc.php b/themes/default/include/html/link.inc.php @@ -35,12 +35,30 @@ #END-IF //$tmp_url = Html::url($attr_action,$attr_subaction,!empty($attr_id)?$attr_id:$this->getRequestId(),$params); - $json = new JSON(); - $tmp_data = $json->encode( array('action'=>!empty($attr_action)?$attr_action:$this->actionName,'subaction'=>!empty($attr_subaction)?$attr_subaction:$this->subActionName,'id'=>!empty($attr_id)?$attr_id:$this->getRequestId()) + + switch( $attr_type ) + { + case 'post': + $json = new JSON(); + $tmp_data = $json->encode( array('action'=>!empty($attr_action)?$attr_action:$this->actionName,'subaction'=>!empty($attr_subaction)?$attr_subaction:$this->subActionName,'id'=>!empty($attr_id)?$attr_id:$this->getRequestId()) +array(REQ_PARAM_TOKEN=>token()) +$params ); + $tmp_function_call = "submitLink('".str_replace("\n",'',str_replace('"','&quot;',$tmp_data))."');"; + break; + + case 'view': + $tmp_function_call = "startView(this,'".(!empty($attr_subaction)?$attr_subaction:$this->subActionName)."');"; + break; + + case 'url': + $tmp_function_call = "submitUrl(this,'".($attr_url)."');"; + break; + + default: + $tmp_function_call = "alert('TODO');"; + } - if ( substr($tmp_url,0,10) != 'javascript' ) - $tmp_url = "javascript:loadViewByName('".$attr_target."','".$tmp_url.(isset($attr_anchor)?'#'.$attr_anchor:'')."'); return false;"; +// if ( substr($tmp_url,0,10) != 'javascript' ) +// $tmp_url = "javascript:loadViewByName('".$attr_target."','".$tmp_url.(isset($attr_anchor)?'#'.$attr_anchor:'')."'); return false;"; -?><a target="<?php echo $attr_frame ?>"<?php if (isset($attr_name)) { ?> name="<?php echo $attr_name ?>"<?php }else{ ?> href="javascript:void(0);" onclick="linkSubmit('<?php echo str_replace("\n",'',str_replace('"','&quot;',$tmp_data)) ?>');" <?php } ?> class="<?php echo $attr_class ?>"<?php if (isset($attr_accesskey)) echo ' accesskey="'.$attr_accesskey.'"' ?> title="<?php echo encodeHtml($attr_title) ?>">- \ No newline at end of file +?><a target="<?php echo $attr_frame ?>"<?php if (isset($attr_name)) { ?> name="<?php echo $attr_name ?>"<?php }else{ ?> href="javascript:void(0);" onclick="<?php echo $tmp_function_call ?>" <?php } ?> class="<?php echo $attr_class ?>"<?php if (isset($attr_accesskey)) echo ' accesskey="'.$attr_accesskey.'"' ?> title="<?php echo encodeHtml($attr_title) ?>">+ \ No newline at end of file diff --git a/themes/default/js/openrat.js b/themes/default/js/openrat.js @@ -302,6 +302,51 @@ function loadBranch(li,type,id) /** + * Setzt neue View und aktualisiert alle Fenster. + * @param element + * @param action Action + * @param id Id + */ +function submitUrl( element,url ) +{ + postUrl( url ); + + // Alle refresh-fähigen Views mit dem neuen Objekt laden. + refreshAllRefreshables(); +} + + + +function postUrl(url) +{ + $.ajax( { 'type':'POST',url:url, data:{}, success:function(data, textStatus, jqXHR) + { + $('div.window div.status div.loader').html('&nbsp;'); + doResponse(data,textStatus); + } } ); + +} + + + +/** + * Setzt neue View und aktualisiert alle Fenster. + * @param element + * @param action Action + * @param id Id + */ +function startView( element,view ) +{ + var action = $(element).closest('div.frame').attr('data-action'); + var url = createUrl(action, view, 0); + loadView( $(element).closest('div.filler'), url ); + + // Alle refresh-fähigen Views mit dem neuen Objekt laden. + // refreshAllRefreshables(); +} + + +/** * Setzt neue Action und aktualisiert alle Fenster. * @param action Action * @param id Id @@ -345,20 +390,18 @@ function closeBranch(li,type,id) } -function linkSubmit(data) +function submitLink(data) { var params = jQuery.parseJSON( data ); var url = './dispatcher.php'; $.ajax( { 'type':'POST',url:url, data:params, success:function(data, textStatus, jqXHR) { - $('div.window div.status div.loader').html('&nbsp;'); - doResponse(data,textStatus); + $('div.window div.status div.loader').html('&nbsp;'); + doResponse(data,textStatus); } } ); } - - function formSubmit(form) { var status = $(form).parent().parent().parent().find('div.bottom div.status'); diff --git a/util/Html.class.php b/util/Html.class.php @@ -73,6 +73,9 @@ class Html // Session-Id ergaenzen if ( $conf['interface']['url']['add_sessionid'] ) $params[ session_name() ] = session_id(); + + if ( config('security','use_post_token') ) + $params[ 'token'] = token(); $fake_urls = $conf['interface']['url']['fake_url' ]; $url_format = $conf['interface']['url']['url_format'];