import usercss files drag'n'dropped into the manage page

This commit is contained in:
tophf 2017-12-06 11:03:43 +03:00
parent cc57d39443
commit 1273903b05
3 changed files with 13 additions and 2 deletions

View File

@ -276,7 +276,7 @@
data.version,
]))
).then(ok => ok &&
BG.usercssHelper.save(BG.deepCopy(Object.assign(style, {reason: 'update'})))
BG.usercssHelper.save(BG.deepCopy(Object.assign(style, dup && {reason: 'update'})))
.then(r => install(deepCopy(r)))
.catch(err => messageBox.alert(t('styleInstallFailed', err)))
);

View File

@ -393,6 +393,7 @@ var usercss = (() => {
};
const style = {
reason: 'install',
enabled: true,
sourceCode,
sections: [],

View File

@ -34,7 +34,17 @@ function importFromFile({fileTypeFilter, file} = {}) {
const fReader = new FileReader();
fReader.onloadend = event => {
fileInput.remove();
importFromString(event.target.result).then(numStyles => {
const text = event.target.result;
const maybeUsercss = !/^[\s\r\n]*\[/.test(text) &&
(text.includes('==UserStyle==') || /==UserStyle==/i.test(text));
(!maybeUsercss ?
importFromString(text) :
getOwnTab().then(tab => {
tab.url = URL.createObjectURL(new Blob([text], {type: 'text/css'}));
return BG.usercssHelper.openInstallPage(tab, {direct: true})
.then(() => URL.revokeObjectURL(tab.url));
})
).then(numStyles => {
document.body.style.cursor = '';
resolve(numStyles);
});