var file = (e.originalEvent.hasOwnProperty('dataTransfer')) ? e.originalEvent.dataTransfer.files[0] : e.originalEvent.target.files[0]
- if (!file.type.match('application/json')) {
- return showAlert('danger', '<strong>Ruh roh.</strong> We can only read <code>.json</code> files. Please try again.', importDropTarget)
- }
-
var reader = new FileReader()
- reader.onload = (function () {
- return function (e) {
- var text = e.target.result
+ reader.onload = function (e) {
+ var text = e.target.result
- try {
- var json = JSON.parse(text)
-
- if (typeof json != 'object') {
- throw new Error('JSON data from config file is not an object.')
- }
+ try {
+ var json = JSON.parse(text)
- updateCustomizerFromJson(json)
- showAlert('success', '<strong>Woohoo!</strong> Your configuration was successfully uploaded. Tweak your settings, then hit Download.', importDropTarget)
- } catch (err) {
- return showAlert('danger', '<strong>Shucks.</strong> We can only read valid <code>.json</code> files. Please try again.', importDropTarget)
+ if (!$.isPlainObject(json)) {
+ throw new Error('JSON data from config file is not an object.')
}
+
+ updateCustomizerFromJson(json)
+ showAlert('success', '<strong>Woohoo!</strong> Your configuration was successfully uploaded. Tweak your settings, then hit Download.', importDropTarget)
+ } catch (err) {
+ return showAlert('danger', '<strong>Shucks.</strong> We can only read valid <code>.json</code> files. Please try again.', importDropTarget)
}
- })(file)
+ }
- reader.readAsText(file)
+ reader.readAsText(file, 'utf-8')
}
function handleConfigDragOver(e) {