* Don't crash with bad string formats
* File listing: If we fail to get an archive listing, fix attempt to format the string with a non-object
This commit is contained in:
parent
5bd7ecdb88
commit
746bd5abd0
|
@ -589,15 +589,22 @@ exports.getModule = class FileAreaList extends MenuModule {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setFileListNoListing(text) {
|
||||||
|
const fileListView = this.viewControllers.detailsFileList.getView(MciViewIds.detailsFileList.fileList);
|
||||||
|
if(fileListView) {
|
||||||
|
fileListView.complexItems = false;
|
||||||
|
fileListView.setItems( [ text ] );
|
||||||
|
fileListView.redraw();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
populateFileListing() {
|
populateFileListing() {
|
||||||
const fileListView = this.viewControllers.detailsFileList.getView(MciViewIds.detailsFileList.fileList);
|
const fileListView = this.viewControllers.detailsFileList.getView(MciViewIds.detailsFileList.fileList);
|
||||||
|
|
||||||
if(this.currentFileEntry.entryInfo.archiveType) {
|
if(this.currentFileEntry.entryInfo.archiveType) {
|
||||||
this.cacheArchiveEntries( (err, cacheStatus) => {
|
this.cacheArchiveEntries( (err, cacheStatus) => {
|
||||||
if(err) {
|
if(err) {
|
||||||
// :TODO: Handle me!!!
|
return this.setFileListNoListing('Failed to get file listing');
|
||||||
fileListView.setItems( [ 'Failed getting file listing' ] ); // :TODO: make this not suck
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if('re-cached' === cacheStatus) {
|
if('re-cached' === cacheStatus) {
|
||||||
|
@ -606,7 +613,8 @@ exports.getModule = class FileAreaList extends MenuModule {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
fileListView.setItems( [ stringFormat(this.menuConfig.config.notAnArchiveFormat || 'Not an archive', { fileName : this.currentFileEntry.fileName } ) ] );
|
const notAnArchiveFileName = stringFormat(this.menuConfig.config.notAnArchiveFormat || 'Not an archive', { fileName : this.currentFileEntry.fileName } );
|
||||||
|
this.setFileListNoListing(notAnArchiveFileName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -331,17 +331,25 @@ module.exports = function format(fmt, obj) {
|
||||||
transformer = match[2];
|
transformer = match[2];
|
||||||
formatSpec = match[3];
|
formatSpec = match[3];
|
||||||
|
|
||||||
value = getValue(obj, objPath);
|
try {
|
||||||
if(transformer) {
|
value = getValue(obj, objPath);
|
||||||
value = transformValue(transformer, value);
|
if(transformer) {
|
||||||
}
|
value = transformValue(transformer, value);
|
||||||
|
}
|
||||||
|
|
||||||
tokens = tokenizeFormatSpec(formatSpec || '');
|
tokens = tokenizeFormatSpec(formatSpec || '');
|
||||||
|
|
||||||
if(_.isNumber(value)) {
|
if(_.isNumber(value)) {
|
||||||
out += formatNumber(value, tokens);
|
out += formatNumber(value, tokens);
|
||||||
} else {
|
} else {
|
||||||
out += formatString(value, tokens);
|
out += formatString(value, tokens);
|
||||||
|
}
|
||||||
|
} catch(e) {
|
||||||
|
if(e instanceof KeyError) {
|
||||||
|
out += match[0]; // preserve full thing
|
||||||
|
} else if(e instanceof ValueError) {
|
||||||
|
out += value.toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue