Skip to content
This repository has been archived by the owner on Nov 25, 2020. It is now read-only.

Commit

Permalink
Save Expand state - Fix #669
Browse files Browse the repository at this point in the history
  • Loading branch information
cdujeu committed Oct 15, 2014
1 parent a38d25b commit 20dae03
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 9 deletions.
4 changes: 2 additions & 2 deletions core/src/plugins/access.fs/fsTemplatePart.xml
Expand Up @@ -24,15 +24,15 @@
<div id="navigation_folders" ajxp_position="3">
<h3 class="colorcode-folder" ajxp_message_id="130">AJXP_MESSAGE[130]
<small id="folders_pane_toggler" ajxpClass="VisibilityToggler" ajxpOptions='{"widget_id":"folder_pane", "detection_id":"tree_container"}'>AJXP_MESSAGE[514]</small>
<small onclick="$('folder_pane').ajxpPaneObject.toggleClassNameSavingPref('show_first_level');$(this).toggleClassName('expand_button_hide');document.fire('ajaxplorer:tree_change');"><span class='expand_label_show' ajxp_message_id="516">AJXP_MESSAGE[516]</span><span class='expand_label_hide'ajxp_message_id="517">AJXP_MESSAGE[517]</span></small>&nbsp;
<small id="folders_pane_expander" onclick="$('folder_pane').ajxpPaneObject.toggleClassNameSavingPref('!show_first_level', 'folders_pane_expander', 'expand_button_hide');document.fire('ajaxplorer:tree_change');"><span class='expand_label_show' ajxp_message_id="516">AJXP_MESSAGE[516]</span><span class='expand_label_hide'ajxp_message_id="517">AJXP_MESSAGE[517]</span></small>&nbsp;
</h3>
<div id="folder_pane" class="show_first_level" ajxpClass="FoldersTree" ajxpOptions='{"display":"dz","replaceScroller":false,"fit":"content"}' ></div>
</div>
</div>
</div>
</div>
<div id="cpane_container" ajxpClass="AjxpPane" ajxpOptions='{"fit":"height","fitParent":"browser", "flexTo":"browser"}'>
<div id="cpane_tabs" ajxpClass="AjxpTabulator" ajxpOptions='{"fit":"height", "fitParent":"browser", "refireResize":0.5, "registerAsEditorOpener":true, "saveState":true,"events":{"ajaxplorer:context_changed":"this.switchTabulator(this.tabulatorData.first().id);"}, "defaultTabId": "files","tabInfos" : [{"id":"files","label":"","iconClass":"icon-folder-open", "element":"files_list_pane"}]}'>
<div id="cpane_tabs" ajxpClass="AjxpTabulator" ajxpOptions='{"fit":"height", "fitParent":"browser", "refireResize":0.5, "registerAsEditorOpener":true, "saveState":false,"events":{"ajaxplorer:context_changed":"this.switchTabulator(this.tabulatorData.first().id);"}, "defaultTabId": "files","tabInfos" : [{"id":"files","label":"","iconClass":"icon-folder-open", "element":"files_list_pane"}]}'>
<div id="files_list_pane" ajxpClass="AjxpPane">
<div id="files_list_header" ajxpClass="AjxpPane">
<div id="display_toolbar" class="text_only" ajxpClass="ActionsToolbar" ajxpOptions='{"submenuClassName":"panelHeaderMenu","submenuPosition":"bottom right","submenuOffsetTop":12,"toolbarsList":["content_pane-actions","vertical_splitter-actions"],"skipBubbling":true, "skipCarousel":true,"submenuOffsetTop":5}'></div>
Expand Down
2 changes: 1 addition & 1 deletion core/src/plugins/gui.ajax/res/js/ajaxplorer.js

Large diffs are not rendered by default.

44 changes: 38 additions & 6 deletions core/src/plugins/gui.ajax/res/js/ajaxplorer/class.AjxpPane.js
Expand Up @@ -97,8 +97,21 @@ Class.create("AjxpPane", {
this.scrollbar = new Control.ScrollBar(this.htmlElement,this.scroller, {fixed_scroll_distance:50});
}

if(this.getUserPreference('rootElementClassPreference')){
this.htmlElement.addClassName(this.getUserPreference('rootElementClassPreference'));
var cPref = this.getUserPreference('rootElementClassPreference');
if(cPref){
if(Object.isString(cPref))cPref= {className:cPref};
var cName = cPref['className'];
if(cName){
if(cName[0] == '!'){
cName = cName.substring(1);
this.htmlElement.removeClassName(cName);
}else{
this.htmlElement.addClassName(cName);
}
if(cPref['externalButtonId']){
$(cPref['externalButtonId']).toggleClassName(cPref['externalButtonClassName'])
}
}
}

},
Expand Down Expand Up @@ -320,13 +333,14 @@ Class.create("AjxpPane", {
addPaneHeader : function(headerLabel, headerIcon){
var label = new Element('span', {ajxp_message_id:headerLabel}).update(MessageHash[headerLabel]);
var header = new Element('div', {className:'panelHeader'}).update(label);
var ic;
if(headerIcon){
var ic = resolveImageSource(headerIcon, '/images/actions/ICON_SIZE', 16);
ic = resolveImageSource(headerIcon, '/images/actions/ICON_SIZE', 16);
header.insert({top: new Element("img", {src:ic, className:'panelHeaderIcon'})});
header.addClassName('panelHeaderWithIcon');
}
if(this.options.headerClose){
var ic = resolveImageSource(this.options.headerClose.icon, '/images/actions/ICON_SIZE', 16);
ic = resolveImageSource(this.options.headerClose.icon, '/images/actions/ICON_SIZE', 16);
var img = new Element("img", {src:ic, className:'panelHeaderCloseIcon', title:MessageHash[this.options.headerClose.title]});
header.insert({top: img});
var sp = this.options.headerClose.splitter;
Expand Down Expand Up @@ -355,9 +369,27 @@ Class.create("AjxpPane", {
}.bind(this));
},

toggleClassNameSavingPref:function(className){
toggleClassNameSavingPref:function(className, externalButtonId, externalButtonClassName){
var invert = false;
if(className[0] == '!') {
className = className.substring(1);
invert = true;
}
this.htmlElement.toggleClassName(className);
this.setUserPreference('rootElementClassPreference', this.htmlElement.hasClassName(className)?className:'');
if(externalButtonId){
$(externalButtonId).toggleClassName(externalButtonClassName);
}
var pref = {
externalButtonId:externalButtonId,
externalButtonClassName: externalButtonClassName
};
if(invert){
pref['className'] = this.htmlElement.hasClassName(className)?'':'!'+className;
}else{
pref['className'] = this.htmlElement.hasClassName(className)?className:'';

}
this.setUserPreference('rootElementClassPreference', pref)
},

getUserPreference : function(prefName){
Expand Down

0 comments on commit 20dae03

Please sign in to comment.