mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Bugfix and simplify broken folderListOptionsBuilder() due to changes for #112
This commit is contained in:
parent
ee7d06fbfd
commit
e0adf7accd
6 changed files with 31 additions and 72 deletions
|
|
@ -214,7 +214,6 @@ rl.Utils = {
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {Array} aSystem
|
|
||||||
* @param {Array=} aDisabled
|
* @param {Array=} aDisabled
|
||||||
* @param {Array=} aHeaderLines
|
* @param {Array=} aHeaderLines
|
||||||
* @param {Function=} fDisableCallback
|
* @param {Function=} fDisableCallback
|
||||||
|
|
@ -223,7 +222,6 @@ rl.Utils = {
|
||||||
* @returns {Array}
|
* @returns {Array}
|
||||||
*/
|
*/
|
||||||
export function folderListOptionsBuilder(
|
export function folderListOptionsBuilder(
|
||||||
aSystem,
|
|
||||||
aDisabled,
|
aDisabled,
|
||||||
aHeaderLines,
|
aHeaderLines,
|
||||||
fRenameCallback,
|
fRenameCallback,
|
||||||
|
|
@ -231,56 +229,16 @@ export function folderListOptionsBuilder(
|
||||||
bNoSelectSelectable,
|
bNoSelectSelectable,
|
||||||
aList = FolderUserStore.folderList()
|
aList = FolderUserStore.folderList()
|
||||||
) {
|
) {
|
||||||
let /**
|
// FolderUserStore.folderListSystem()
|
||||||
* @type {?FolderModel}
|
|
||||||
*/
|
|
||||||
bSep = false,
|
|
||||||
aResult = [];
|
|
||||||
|
|
||||||
const sDeepPrefix = '\u00A0\u00A0\u00A0',
|
const
|
||||||
|
aResult = [],
|
||||||
|
sDeepPrefix = '\u00A0\u00A0\u00A0',
|
||||||
// FolderSystemPopupView should always be true
|
// FolderSystemPopupView should always be true
|
||||||
showUnsubscribed = (aSystem.length || bNoSelectSelectable) ? !SettingsUserStore.hideUnsubscribed() : true;
|
showUnsubscribed = fRenameCallback ? !SettingsUserStore.hideUnsubscribed() : true,
|
||||||
|
|
||||||
fDisableCallback = fDisableCallback || (() => false);
|
foldersWalk = folders => {
|
||||||
fRenameCallback = fRenameCallback || (oItem => oItem.name());
|
folders.forEach(oItem => {
|
||||||
|
|
||||||
if (!isArray(aDisabled)) {
|
|
||||||
aDisabled = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
isArray(aHeaderLines) && aHeaderLines.forEach(line =>
|
|
||||||
aResult.push({
|
|
||||||
id: line[0],
|
|
||||||
name: line[1],
|
|
||||||
system: false,
|
|
||||||
dividerbar: false,
|
|
||||||
disabled: false
|
|
||||||
})
|
|
||||||
);
|
|
||||||
|
|
||||||
bSep = true;
|
|
||||||
aSystem.forEach(oItem => {
|
|
||||||
aResult.push({
|
|
||||||
id: oItem.fullNameRaw,
|
|
||||||
name: fRenameCallback(oItem),
|
|
||||||
system: true,
|
|
||||||
dividerbar: bSep,
|
|
||||||
disabled:
|
|
||||||
!oItem.selectable ||
|
|
||||||
aDisabled.includes(oItem.fullNameRaw) ||
|
|
||||||
fDisableCallback(oItem)
|
|
||||||
});
|
|
||||||
bSep = false;
|
|
||||||
});
|
|
||||||
|
|
||||||
bSep = true;
|
|
||||||
aList.forEach(oItem => {
|
|
||||||
/*
|
|
||||||
if ((oItem.subscribed() || !oItem.exists || bBuildUnvisible)
|
|
||||||
&& (oItem.selectable || oItem.hasSubscribedSubfolders())
|
|
||||||
&& (FolderType.User === oItem.type() || !bSystem || oItem.hasSubscribedSubfolders()) {
|
|
||||||
) {
|
|
||||||
*/
|
|
||||||
if (showUnsubscribed || oItem.subscribed() || !oItem.exists || oItem.hasSubscribedSubfolders()) {
|
if (showUnsubscribed || oItem.subscribed() || !oItem.exists || oItem.hasSubscribedSubfolders()) {
|
||||||
aResult.push({
|
aResult.push({
|
||||||
id: oItem.fullNameRaw,
|
id: oItem.fullNameRaw,
|
||||||
|
|
@ -288,29 +246,34 @@ export function folderListOptionsBuilder(
|
||||||
sDeepPrefix.repeat(oItem.deep) +
|
sDeepPrefix.repeat(oItem.deep) +
|
||||||
fRenameCallback(oItem),
|
fRenameCallback(oItem),
|
||||||
system: false,
|
system: false,
|
||||||
dividerbar: bSep,
|
|
||||||
disabled: !bNoSelectSelectable && (
|
disabled: !bNoSelectSelectable && (
|
||||||
!oItem.selectable ||
|
!oItem.selectable ||
|
||||||
aDisabled.includes(oItem.fullNameRaw) ||
|
aDisabled.includes(oItem.fullNameRaw) ||
|
||||||
fDisableCallback(oItem))
|
fDisableCallback(oItem))
|
||||||
});
|
});
|
||||||
bSep = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (oItem.subFolders.length) {
|
if (oItem.subFolders.length) {
|
||||||
aResult = aResult.concat(
|
foldersWalk(oItem.subFolders());
|
||||||
folderListOptionsBuilder(
|
|
||||||
[],
|
|
||||||
aDisabled,
|
|
||||||
[],
|
|
||||||
fDisableCallback,
|
|
||||||
fRenameCallback,
|
|
||||||
bNoSelectSelectable,
|
|
||||||
oItem.subFolders()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
fDisableCallback = fDisableCallback || (() => false);
|
||||||
|
fRenameCallback = fRenameCallback || (oItem => oItem.name());
|
||||||
|
isArray(aDisabled) || (aDisabled = []);
|
||||||
|
|
||||||
|
isArray(aHeaderLines) && aHeaderLines.forEach(line =>
|
||||||
|
aResult.push({
|
||||||
|
id: line[0],
|
||||||
|
name: line[1],
|
||||||
|
system: false,
|
||||||
|
disabled: false
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
foldersWalk(aList);
|
||||||
|
|
||||||
return aResult;
|
return aResult;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,6 @@ class FilterPopupView extends AbstractViewPopup {
|
||||||
this.defaultOptionsAfterRender = defaultOptionsAfterRender;
|
this.defaultOptionsAfterRender = defaultOptionsAfterRender;
|
||||||
this.folderSelectList = ko.computed(() =>
|
this.folderSelectList = ko.computed(() =>
|
||||||
folderListOptionsBuilder(
|
folderListOptionsBuilder(
|
||||||
FolderUserStore.folderListSystem(),
|
|
||||||
[FolderUserStore.sieveAllowFileintoInbox ? '' : 'INBOX'],
|
[FolderUserStore.sieveAllowFileintoInbox ? '' : 'INBOX'],
|
||||||
[['', '']],
|
[['', '']],
|
||||||
item => item ? item.localName() : ''
|
item => item ? item.localName() : ''
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,6 @@ class FolderCreatePopupView extends AbstractViewPopup {
|
||||||
|
|
||||||
this.parentFolderSelectList = ko.computed(() =>
|
this.parentFolderSelectList = ko.computed(() =>
|
||||||
folderListOptionsBuilder(
|
folderListOptionsBuilder(
|
||||||
[],
|
|
||||||
[],
|
[],
|
||||||
[['', '']],
|
[['', '']],
|
||||||
oItem =>
|
oItem =>
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,6 @@ class FolderSystemPopupView extends AbstractViewPopup {
|
||||||
|
|
||||||
this.folderSelectList = ko.computed(() =>
|
this.folderSelectList = ko.computed(() =>
|
||||||
folderListOptionsBuilder(
|
folderListOptionsBuilder(
|
||||||
[],
|
|
||||||
FolderUserStore.folderListSystemNames(),
|
FolderUserStore.folderListSystemNames(),
|
||||||
[
|
[
|
||||||
['', this.sChooseOnText],
|
['', this.sChooseOnText],
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,6 @@ export class MessageListMailBoxUserView extends AbstractViewRight {
|
||||||
this.messageListError = MessageUserStore.listError;
|
this.messageListError = MessageUserStore.listError;
|
||||||
this.folderMenuForMove = ko.computed(() =>
|
this.folderMenuForMove = ko.computed(() =>
|
||||||
folderListOptionsBuilder(
|
folderListOptionsBuilder(
|
||||||
FolderUserStore.folderListSystem(),
|
|
||||||
[FolderUserStore.currentFolderFullNameRaw()],
|
[FolderUserStore.currentFolderFullNameRaw()],
|
||||||
[],
|
[],
|
||||||
item => item ? item.localName() : ''
|
item => item ? item.localName() : ''
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
<span class="caret"></span>
|
<span class="caret"></span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu g-ui-menu" role="menu" aria-labelledby="move-dropdown-id" role="menu" data-bind="foreach: folderMenuForMove">
|
<ul class="dropdown-menu g-ui-menu" role="menu" aria-labelledby="move-dropdown-id" role="menu" data-bind="foreach: folderMenuForMove">
|
||||||
<li class="e-item" role="presentation" data-bind="css: { 'disabled': disabled, 'dividerbar': dividerbar }, click: function (mdata, oEvent) { if (!disabled) $root.moveSelectedMessagesToFolder(id, oEvent && !!oEvent.ctrlKey); }">
|
<li class="e-item" role="presentation" data-bind="css: { 'disabled': disabled }, click: function (mdata, oEvent) { if (!disabled) $root.moveSelectedMessagesToFolder(id, oEvent && !!oEvent.ctrlKey); }">
|
||||||
<a class="e-link menuitem" href="#" tabindex="-1" data-bind="text: name"></a>
|
<a class="e-link menuitem" href="#" tabindex="-1" data-bind="text: name"></a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue