Parcourir la source

fixed clear filter: + sortable query non exists column

Piotr Labudda il y a 7 ans
Parent
commit
d2615a39d7
1 fichiers modifiés avec 22 ajouts et 11 suppressions
  1. 22 11
      SE/se-lib/TableAjax.php.createTableFiltersStateObject.js

+ 22 - 11
SE/se-lib/TableAjax.php.createTableFiltersStateObject.js

@@ -17,16 +17,18 @@ function createFilterStoreWithInitialData(initialFilter) {
 		currSortFlip: false
 	}
 	Object.keys(initialFilter).forEach(function (key) {
-		if ('currSortCol' === key) {
-			initialState.currSortCol = initialFilter[key]
-		} else if ('currSortFlip' === key) {
-			if ('desc' === initialFilter[key]) initialState.currSortFlip = true;
-			else if ('asc' === initialFilter[key]) initialState.currSortFlip = false;
-			else initialState.currSortFlip = Boolean(initialFilter[key]);
-		} else if ('f_' === key.substr(0, 2)) {
-			initialState.filter.set(key.substr(2), initialFilter[key])
-		} else if ('sf_' === key.substr(0, 3)) {
-			initialState.specialFilter.set(key.substr(3), initialFilter[key])
+		switch (key) {
+			case 'currSortCol': initialState.currSortCol = initialFilter['currSortCol']; break;
+			case 'currSortFlip': initialState.currSortFlip = _convertCurrSortFilp(initialFilter['currSortFlip']); break;
+			default: {
+				if ('f_' === key.substr(0, 2)) {
+					initialState.filter.set(key.substr(2), initialFilter[key])
+				} else if ('sf_' === key.substr(0, 3)) {
+					initialState.specialFilter.set(key.substr(3), initialFilter[key])
+				} else {
+					DBG && console.log('TODO: unsupported filter "' + key + '"')
+				}
+			}
 		}
 	})
 
@@ -69,7 +71,9 @@ function createFilterStoreWithInitialData(initialFilter) {
 				prevState.filter.clear();
 				prevState.specialFilter.clear();
 				return Object.assign(prevState, {
-					isLoading: false, isEmpty: true
+					isLoading: false, isEmpty: true,
+					currSortCol: initialFilter.currSortCol ? initialFilter.currSortCol : '',
+					currSortFlip: initialFilter.currSortFlip ? _convertCurrSortFilp(initialFilter.currSortFlip) : true,
 				});
 			}
 			case 'SET_LOADING': return Object.assign(prevState, { // TODO: is loading for filter store or another store for rows?
@@ -82,6 +86,13 @@ function createFilterStoreWithInitialData(initialFilter) {
 		}
 	}
 }
+function _convertCurrSortFilp(flip) {
+	switch (flip) {
+		case 'desc': return true;
+		case 'asc': return false;
+		default: return Boolean(flip)
+	}
+}
 function filterActions() {
 	var delay = 450;
 	var _filterTimeout = {};