cloudcmd/client/dom/select-by-pattern.js
2017-02-27 16:32:31 +02:00

52 lines
1.2 KiB
JavaScript

'use strict';
/* global DOM */
let SelectType = '*.*';
const TITLE = 'Cloud Commander';
const {getRegExp} = require('../../common/util');
module.exports = (msg, files) => {
const allMsg = `Specify file type for ${msg} selection`;
const cancel = false;
const {Dialog} = DOM;
Dialog.prompt(TITLE, allMsg, SelectType, {cancel}).then((type) => {
SelectType = type;
const regExp = getRegExp(type);
if (!files)
return;
let matches = 0;
files.forEach((current) => {
const name = DOM.getCurrentName(current);
if (name === '..')
return;
const isMatch = regExp.test(name);
if (!isMatch)
return;
++matches;
let isSelected = DOM.isSelected(current);
const shouldSel = msg === 'expand';
if (shouldSel)
isSelected = !isSelected;
if (isSelected)
DOM.toggleSelectedFile(current);
});
if (!matches)
Dialog.alert('Select Files', 'No matches found!');
});
};