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,19 +265,17 @@ 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(), system: true,
system: true, dividerbar: bSep,
dividerbar: bSep, disabled:
disabled: !oItem.selectable ||
!oItem.selectable || aDisabled.includes(oItem.fullNameRaw) ||
aDisabled.includes(oItem.fullNameRaw) || (fDisableCallback ? fDisableCallback(oItem) : false)
(fDisableCallback ? fDisableCallback(oItem) : false) });
}); bSep = false;
bSep = false;
}
}); });
bSep = true; bSep = true;
@ -293,22 +285,20 @@ 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: sDeepPrefix.repeat(oItem.deep + 1) +
new Array(oItem.deep + 1 - iUnDeep).join(sDeepPrefix) + (fRenameCallback ? fRenameCallback(oItem) : oItem.name()),
(fRenameCallback ? fRenameCallback(oItem) : oItem.name()), system: false,
system: false, dividerbar: bSep,
dividerbar: bSep, disabled:
disabled: !oItem.selectable ||
!oItem.selectable || aDisabled.includes(oItem.fullNameRaw) ||
aDisabled.includes(oItem.fullNameRaw) || (fDisableCallback ? fDisableCallback(oItem) : false)
(fDisableCallback ? fDisableCallback(oItem) : false) });
}); bSep = false;
bSep = false;
}
} }
} }
@ -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
) )
); );