Cleanup function folderListOptionsBuilder()

This commit is contained in:
djmaze 2021-03-23 22:45:30 +01:00
parent 36b66c3ec5
commit 650e962fdf
4 changed files with 37 additions and 55 deletions

View file

@ -216,9 +216,7 @@ rl.Utils = {
* @param {Array} aList * @param {Array} aList
* @param {Array=} aDisabled * @param {Array=} aDisabled
* @param {Array=} aHeaderLines * @param {Array=} aHeaderLines
* @param {?number=} iUnDeep
* @param {Function=} fDisableCallback * @param {Function=} fDisableCallback
* @param {Function=} fVisibleCallback
* @param {Function=} fRenameCallback * @param {Function=} fRenameCallback
* @param {boolean=} bSystem * @param {boolean=} bSystem
* @param {boolean=} bBuildUnvisible * @param {boolean=} bBuildUnvisible
@ -229,9 +227,7 @@ export function folderListOptionsBuilder(
aList, aList,
aDisabled, aDisabled,
aHeaderLines, aHeaderLines,
iUnDeep,
fDisableCallback, fDisableCallback,
fVisibleCallback,
fRenameCallback, fRenameCallback,
bSystem, bSystem,
bBuildUnvisible bBuildUnvisible
@ -246,9 +242,7 @@ export function folderListOptionsBuilder(
bBuildUnvisible = undefined === bBuildUnvisible ? false : !!bBuildUnvisible; bBuildUnvisible = undefined === bBuildUnvisible ? false : !!bBuildUnvisible;
bSystem = null == bSystem ? 0 < aSystem.length : bSystem; bSystem = null == bSystem ? 0 < aSystem.length : bSystem;
iUnDeep = null == iUnDeep ? 0 : iUnDeep;
fDisableCallback = null != fDisableCallback ? fDisableCallback : null; fDisableCallback = null != fDisableCallback ? fDisableCallback : null;
fVisibleCallback = null != fVisibleCallback ? fVisibleCallback : null;
fRenameCallback = null != fRenameCallback ? fRenameCallback : null; fRenameCallback = null != fRenameCallback ? fRenameCallback : null;
if (!isArray(aDisabled)) { if (!isArray(aDisabled)) {
@ -271,7 +265,6 @@ export function folderListOptionsBuilder(
bSep = true; bSep = true;
aSystem.forEach(oItem => { aSystem.forEach(oItem => {
if (fVisibleCallback ? fVisibleCallback(oItem) : true) {
aResult.push({ aResult.push({
id: oItem.fullNameRaw, id: oItem.fullNameRaw,
name: fRenameCallback ? fRenameCallback(oItem) : oItem.name(), name: fRenameCallback ? fRenameCallback(oItem) : oItem.name(),
@ -283,7 +276,6 @@ export function folderListOptionsBuilder(
(fDisableCallback ? fDisableCallback(oItem) : false) (fDisableCallback ? fDisableCallback(oItem) : false)
}); });
bSep = false; bSep = false;
}
}); });
bSep = true; bSep = true;
@ -293,12 +285,11 @@ export function folderListOptionsBuilder(
(oItem.subscribed() || !oItem.exists || bBuildUnvisible) && (oItem.subscribed() || !oItem.exists || bBuildUnvisible) &&
(oItem.selectable || oItem.hasSubscribedSubfolders()) (oItem.selectable || oItem.hasSubscribedSubfolders())
) { ) {
if (fVisibleCallback ? fVisibleCallback(oItem) : true) {
if (FolderType.User === oItem.type() || !bSystem || oItem.hasSubscribedSubfolders()) { if (FolderType.User === oItem.type() || !bSystem || oItem.hasSubscribedSubfolders()) {
aResult.push({ aResult.push({
id: oItem.fullNameRaw, id: oItem.fullNameRaw,
name: name:
new Array(oItem.deep + 1 - iUnDeep).join(sDeepPrefix) + sDeepPrefix.repeat(oItem.deep + 1) +
(fRenameCallback ? fRenameCallback(oItem) : oItem.name()), (fRenameCallback ? fRenameCallback(oItem) : oItem.name()),
system: false, system: false,
dividerbar: bSep, dividerbar: bSep,
@ -310,7 +301,6 @@ export function folderListOptionsBuilder(
bSep = false; bSep = false;
} }
} }
}
if (oItem.subscribed() && oItem.subFolders.length) { if (oItem.subscribed() && oItem.subFolders.length) {
aResult = aResult.concat( aResult = aResult.concat(
@ -319,9 +309,7 @@ export function folderListOptionsBuilder(
oItem.subFolders(), oItem.subFolders(),
aDisabled, aDisabled,
[], [],
iUnDeep,
fDisableCallback, fDisableCallback,
fVisibleCallback,
fRenameCallback, fRenameCallback,
bSystem, bSystem,
bBuildUnvisible bBuildUnvisible

View file

@ -104,9 +104,7 @@ export const FolderUserStore = new class {
this.folderListSystem(), this.folderListSystem(),
this.folderList(), this.folderList(),
[this.currentFolderFullNameRaw()], [this.currentFolderFullNameRaw()],
null, [],
null,
null,
null, null,
(item) => (item ? item.localName() : '') (item) => (item ? item.localName() : '')
) )
@ -119,8 +117,6 @@ export const FolderUserStore = new class {
[this.sieveAllowFileintoInbox ? '' : 'INBOX'], [this.sieveAllowFileintoInbox ? '' : 'INBOX'],
[['', '']], [['', '']],
null, null,
null,
null,
(item) => (item ? item.localName() : '') (item) => (item ? item.localName() : '')
) )
); );

View file

@ -23,19 +23,19 @@ class FolderCreatePopupView extends AbstractViewPopup {
selectedParentValue: UNUSED_OPTION_VALUE selectedParentValue: UNUSED_OPTION_VALUE
}); });
this.parentFolderSelectList = ko.computed(() => { this.parentFolderSelectList = ko.computed(() =>
const top = [], folderListOptionsBuilder(
list = FolderUserStore.folderList(), [],
fDisableCallback = FolderUserStore.namespace FolderUserStore.folderList(),
[],
[['', '']],
FolderUserStore.namespace
? item => FolderUserStore.namespace !== item.fullNameRaw.substr(0, FolderUserStore.namespace.length) ? item => FolderUserStore.namespace !== item.fullNameRaw.substr(0, FolderUserStore.namespace.length)
: null, : null,
fRenameCallback = oItem => oItem =>
oItem ? (oItem.isSystemFolder() ? oItem.name() + ' ' + oItem.manageFolderSystemName() : oItem.name()) : ''; oItem ? (oItem.isSystemFolder() ? oItem.name() + ' ' + oItem.manageFolderSystemName() : oItem.name()) : ''
)
top.push(['', '']); );
return folderListOptionsBuilder([], list, [], top, null, fDisableCallback, null, fRenameCallback);
});
this.defaultOptionsAfterRender = defaultOptionsAfterRender; this.defaultOptionsAfterRender = defaultOptionsAfterRender;

View file

@ -39,8 +39,6 @@ class FolderSystemPopupView extends AbstractViewPopup {
null, null,
null, null,
null, null,
null,
null,
true true
) )
); );