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

Commit

Permalink
Clean legacy hard-coded gui preferences, and use get/setUserPreferenc…
Browse files Browse the repository at this point in the history
…e method in classes.

Make sure display pref is loaded at init time for FilesList, shoud fix #777
  • Loading branch information
cdujeu committed Jan 20, 2015
1 parent 60507c4 commit c562dc1
Show file tree
Hide file tree
Showing 6 changed files with 52 additions and 64 deletions.
8 changes: 4 additions & 4 deletions core/src/plugins/core.conf/class.AbstractConfDriver.php
Expand Up @@ -492,15 +492,15 @@ public function getOption($optionName)
*/
public function getExposedPreferences($userObject)
{
$stringPrefs = array("display","lang","diapo_autofit","sidebar_splitter_size","vertical_splitter_size","history/last_repository","pending_folder","thumb_size","plugins_preferences","upload_auto_send","upload_auto_close","upload_existing","action_bar_style");
$jsonPrefs = array("ls_history","columns_size", "columns_visibility", "gui_preferences");
$stringPrefs = array("lang","history/last_repository","pending_folder","plugins_preferences");
$jsonPrefs = array("ls_history","gui_preferences");
$prefs = array();
if ( $userObject->getId()=="guest" && ConfService::getCoreConf("SAVE_GUEST_PREFERENCES", "conf") === false) {
return array();
}
if ( ConfService::getCoreConf("SKIP_USER_HISTORY", "conf") === true ) {
$stringPrefs = array("display","lang","pending_folder", "thumb_size","plugins_preferences","upload_auto_send","upload_auto_close", "upload_existing","action_bar_style");
$jsonPrefs = array("columns_size", "columns_visibility", "gui_preferences");
$stringPrefs = array("lang","pending_folder", "plugins_preferences");
$jsonPrefs = array("gui_preferences");
$prefs["SKIP_USER_HISTORY"] = array("value" => "true", "type" => "string" );
}
foreach ($stringPrefs as $pref) {
Expand Down
2 changes: 1 addition & 1 deletion core/src/plugins/gui.ajax/res/js/ajaxplorer.js

Large diffs are not rendered by default.

Expand Up @@ -56,8 +56,8 @@ Class.create("ActionsToolbar", AjxpPane, {
this.buildActionBarStylingMenu();
this.style = this.options.defaultStyle;
this.styleObserver = function(){
if(ajaxplorer.user && ajaxplorer.user.getPreference("action_bar_style")){
this.style = ajaxplorer.user.getPreference("action_bar_style");
if(this.getUserPreference("action_bar_style")){
this.style = this.getUserPreference("action_bar_style");
}else{
this.style = this.options.defaultStyle;
}
Expand Down Expand Up @@ -565,9 +565,8 @@ Class.create("ActionsToolbar", AjxpPane, {
}.bind(this));
}
if(parent.ajxpPaneObject) parent.ajxpPaneObject.resize();
if(ajaxplorer.user && !start){
ajaxplorer.user.setPreference("action_bar_style", style);
ajaxplorer.user.savePreference("action_bar_style");
if(!start){
this.setUserPreference("action_bar_style", style);
}
}.bind(this);

Expand Down
Expand Up @@ -415,7 +415,6 @@ Class.create("AjxpPane", {

setUserPreference : function(prefName, prefValue){
if(!ajaxplorer || !ajaxplorer.user || !this.htmlElement) return;
//if(ajaxplorer.user.getPreference("SKIP_USER_HISTORY") == "true") return;
var guiPref = ajaxplorer.user.getPreference("gui_preferences", true);
if(!guiPref) guiPref = {};
var classkey = this.htmlElement.id+"_"+this.__className;
Expand Down
61 changes: 25 additions & 36 deletions core/src/plugins/gui.ajax/res/js/ajaxplorer/class.FilesList.js
Expand Up @@ -34,6 +34,10 @@ Class.create("FilesList", SelectableElements, {
_detailThumbSize : 28,
_inlineToolbarOptions: null,
_instanciatedToolbars : null,
// Copy get/setUserPrefs from AjxpPane
getUserPreference: AjxpPane.prototype.getUserPreference,
setUserPreference: AjxpPane.prototype.setUserPreference,

/**
* Constructor
* @param $super klass Reference to the constructor
Expand Down Expand Up @@ -85,18 +89,18 @@ Class.create("FilesList", SelectableElements, {

var userLoggedObserver = function(){
if(!ajaxplorer || !ajaxplorer.user || !this.htmlElement) return;
var disp = ajaxplorer.user.getPreference("display");
var disp = this.getUserPreference("display");
if(disp && (disp == 'thumb' || disp == 'list' || disp == 'detail')){
if(disp != this._displayMode) this.switchDisplayMode(disp);
}
this._thumbSize = parseInt(ajaxplorer.user.getPreference("thumb_size"));
this._thumbSize = parseInt(this.getUserPreference("thumb_size"));
if(this.slider){
this.slider.setValue(this._thumbSize);
this.resizeThumbnails();
}
}.bind(this);
this._registerObserver(document, "ajaxplorer:user_logged", userLoggedObserver);


var loadObserver = this.contextObserver.bind(this);
var childAddedObserver = this.childAddedToContext.bind(this);
Expand Down Expand Up @@ -154,7 +158,8 @@ Class.create("FilesList", SelectableElements, {
this._registerObserver(document, "ajaxplorer:component_config_changed", componentConfigObserver, false);
this._registerObserver(document, "ajaxplorer:selection_changed", selectionChangedObserver, false);
}

var userDisplay = this.getUserPreference("display");
if(userDisplay) this._displayMode = userDisplay;
this._thumbSize = 64;
this._crtImageIndex = 0;
if(this.options.fixedThumbSize){
Expand Down Expand Up @@ -319,18 +324,10 @@ Class.create("FilesList", SelectableElements, {
change = true;
}
if(change){
if(ajaxplorer && ajaxplorer.user){
var data = ajaxplorer.user.getPreference("columns_visibility", true) || {};
data = new Hash(data);
data.set(ajaxplorer.user.getActiveRepository(), this.hiddenColumns);
ajaxplorer.user.setPreference("columns_visibility", data, true);
}
this.initGUI();
this.empty(true);
this.fill(this.crtContext);
if(ajaxplorer && ajaxplorer.user){
ajaxplorer.user.savePreference("columns_visibility");
}
this.setUserPreference("columns_visibility", this.hiddenColumns);
}

},
Expand Down Expand Up @@ -453,7 +450,8 @@ Class.create("FilesList", SelectableElements, {
refreshGUI = true;
}else if(property.getAttribute("name") == "displayMode"){
var displayMode = property.getAttribute("value");
if(!(ajaxplorer && ajaxplorer.user && ajaxplorer.user.getPreference("display"))){
var userPrefDisp = this.getUserPreference("display");
if(!userPrefDisp){
this._displayMode = displayMode;
refreshGUI = true;
}
Expand Down Expand Up @@ -663,19 +661,15 @@ Class.create("FilesList", SelectableElements, {
var scrollElement, buffer;
if(this._displayMode == "list")
{
var data;
if(ajaxplorer && ajaxplorer.user && ajaxplorer.user.getPreference("columns_visibility", true)){
data = new Hash(ajaxplorer.user.getPreference("columns_visibility", true));
if(data.get(ajaxplorer.user.getActiveRepository())){
this.hiddenColumns = $A(data.get(ajaxplorer.user.getActiveRepository()));
}else{
this.hiddenColumns = $A();
}
this.hiddenColumns = $A();
var testPref = this.getUserPreference("columns_visibility");
if(testPref){
this.hiddenColumns = $A(testPref);
}
var visibleColumns = this.getVisibleColumns();
var userPref;
if(ajaxplorer && ajaxplorer.user && ajaxplorer.user.getPreference("columns_size", true)){
data = new Hash(ajaxplorer.user.getPreference("columns_size", true));
if(this.getUserPreference("columns_size")){
var data = new Hash(this.getUserPreference("columns_size"));
if(this.columnsTemplate && data.get(this.columnsTemplate)){
userPref = new Hash(data.get(this.columnsTemplate));
}else if(data.get(ajaxplorer.user.getActiveRepository())){
Expand Down Expand Up @@ -752,14 +746,13 @@ Class.create("FilesList", SelectableElements, {
this.prefSaver = window.setTimeout(function(){
if(!ajaxplorer.user || (this.gridStyle == "grid" && !this.columnsTemplate)) return;
var sizes = this._headerResizer.getCurrentSizes('percent');
var data = ajaxplorer.user.getPreference("columns_size", true);
var data = this.getUserPreference("columns_size");
data = (data?new Hash(data):new Hash());
sizes['type'] = 'percent';
var id = (this.columnsTemplate?this.columnsTemplate:ajaxplorer.user.getActiveRepository());
data.set(id, sizes);
ajaxplorer.user.setPreference("columns_size", data, true);
ajaxplorer.user.savePreference("columns_size");
}.bind(this), 2000);
this.setUserPreference("columns_size", data);
}.bind(this), 2000);
}.bind(this) );
this._sortableTable = new AjxpSortable(oElement, this.getVisibleSortTypes(), this.htmlElement.down('div.sort-table'));
if(this.options.groupByData) this._sortableTable.setGroupByData(this.options.groupByData);
Expand Down Expand Up @@ -852,8 +845,8 @@ Class.create("FilesList", SelectableElements, {
}.bind(this);
this.observe("resize", this.observer);

if(ajaxplorer && ajaxplorer.user && ajaxplorer.user.getPreference("thumb_size")){
this._thumbSize = parseInt(ajaxplorer.user.getPreference("thumb_size"));
if(this.getUserPreference("thumb_size")){
this._thumbSize = parseInt(this.getUserPreference("thumb_size"));
}
if(this._fixedThumbSize){
this._thumbSize = parseInt(this._fixedThumbSize);
Expand Down Expand Up @@ -921,8 +914,7 @@ Class.create("FilesList", SelectableElements, {
this.notify("resize");
}
if(!ajaxplorer || !ajaxplorer.user) return;
ajaxplorer.user.setPreference("thumb_size", this._thumbSize);
ajaxplorer.user.savePreference("thumb_size");
this.setUserPreference("thumb_size", this._thumbSize);
}.bind(this)
});
}
Expand Down Expand Up @@ -1155,10 +1147,7 @@ Class.create("FilesList", SelectableElements, {
this.empty(true);
this.fill(this.getCurrentContextNode());
this.fireChange();
if(ajaxplorer && ajaxplorer.user){
ajaxplorer.user.setPreference("display", this._displayMode);
ajaxplorer.user.savePreference("display");
}
this.setUserPreference("display", this._displayMode);
document.fire("ajaxplorer:switchDisplayMode-FilesList-" + this.htmlElement.id);
return this._displayMode;
},
Expand Down
35 changes: 18 additions & 17 deletions core/src/plugins/uploader.html/class.XHRUploader.js
Expand Up @@ -28,14 +28,18 @@ Class.create("XHRUploader", {
dataModel: null,
contextNode: null,
currentBackgroundPanel: null,
// Copy get/setUserPrefs from AjxpPane
getUserPreference: AjxpPane.prototype.getUserPreference,
setUserPreference: AjxpPane.prototype.setUserPreference,


initialize : function( formObject, mask ){

window.UploaderInstanceRunning = true;

formObject = $(formObject);
// Main form
this.mainForm = formObject;
this.htmlElement = this.mainForm = formObject;

// Where to write the list
this.listTarget = formObject.down('div.uploadFilesList');
Expand Down Expand Up @@ -312,32 +316,29 @@ Class.create("XHRUploader", {
optionPane.autoSendCheck.observe("click", function(e){
var autoSendOpt = optionPane.autoSendCheck.checked;
if(ajaxplorer.user){
ajaxplorer.user.setPreference('upload_auto_send', (autoSendOpt?'true':'false'));
ajaxplorer.user.savePreference('upload_auto_send');
this.setUserPreference('upload_auto_send', (autoSendOpt?'true':'false'));
}else{
setAjxpCookie('upload_auto_send', (autoSendOpt?'true':'false'));
}
});
}.bind(this));
optionPane.autoCloseCheck.observe("click", function(e){
var autoCloseOpt = optionPane.autoCloseCheck.checked;
if(ajaxplorer.user){
ajaxplorer.user.setPreference('upload_auto_close', (autoCloseOpt?'true':'false'));
ajaxplorer.user.savePreference('upload_auto_close');
this.setUserPreference('upload_auto_close', (autoCloseOpt?'true':'false'));
}else{
setAjxpCookie('upload_auto_close', (autoCloseOpt?'true':'false'));
}
});
}.bind(this));
optionPane.existingRadio.each(function(el){
el.observe("click", function(e){
var value = el.value;
if(ajaxplorer.user){
ajaxplorer.user.setPreference('upload_existing', value);
ajaxplorer.user.savePreference('upload_existing');
this.setUserPreference('upload_existing', value);
}else{
setAjxpCookie('upload_existing', value);
}
});
});
}.bind(this));
}.bind(this));
optionPane.getExistingBehaviour = function(){
var value;
optionPane.existingRadio.each(function(el){
Expand All @@ -352,8 +353,8 @@ Class.create("XHRUploader", {
message += '  '+ MessageHash[284] + ':' + this.max;
optionPane.optionsStrings.update(message);
var autoSendValue = false;
if(ajaxplorer.user && ajaxplorer.user.getPreference('upload_auto_send')){
autoSendValue = ajaxplorer.user.getPreference('upload_auto_send');
if(this.getUserPreference('upload_auto_send')){
autoSendValue = this.getUserPreference('upload_auto_send');
autoSendValue = (autoSendValue =="true" ? true:false);
}else if(this._globalConfigs.get('DEFAULT_AUTO_START')){
autoSendValue = this._globalConfigs.get('DEFAULT_AUTO_START');
Expand All @@ -364,8 +365,8 @@ Class.create("XHRUploader", {
optionPane.autoSendCheck.checked = autoSendValue;

var autoCloseValue = false;
if(ajaxplorer.user && ajaxplorer.user.getPreference('upload_auto_close')){
autoCloseValue = ajaxplorer.user.getPreference('upload_auto_close');
if(this.getUserPreference('upload_auto_close')){
autoCloseValue = this.getUserPreference('upload_auto_close');
autoCloseValue = (autoCloseValue =="true" ? true:false);
}else if(this._globalConfigs.get('DEFAULT_AUTO_CLOSE')){
autoCloseValue = this._globalConfigs.get('DEFAULT_AUTO_CLOSE');
Expand All @@ -376,8 +377,8 @@ Class.create("XHRUploader", {
optionPane.autoCloseCheck.checked = autoCloseValue;

var existingValue = 'overwrite';
if(ajaxplorer.user && ajaxplorer.user.getPreference('upload_existing')){
existingValue = ajaxplorer.user.getPreference('upload_existing');
if(this.getUserPreference('upload_existing')){
existingValue = this.getUserPreference('upload_existing');
}else if(this._globalConfigs.get('DEFAULT_EXISTING')){
existingValue = this._globalConfigs.get('DEFAULT_EXISTING');
}else if(getAjxpCookie('upload_existing')){
Expand Down

0 comments on commit c562dc1

Please sign in to comment.