diff --git a/js/extensions/googleAnalytics.js b/js/extensions/googleAnalytics.js index 8adceb8d..64c55294 100644 --- a/js/extensions/googleAnalytics.js +++ b/js/extensions/googleAnalytics.js @@ -186,5 +186,18 @@ define([ ]); }; + // Log error messages + googleAnalytics.onError = function(error) { + if(_.isString(error) || !error.message) { + return; + } + _gaq.push([ + '_trackEvent', + "Error", + "message", + error.message + ]); + }; + return googleAnalytics; }); \ No newline at end of file diff --git a/js/fileMgr.js b/js/fileMgr.js index 3d078fda..37947eb0 100644 --- a/js/fileMgr.js +++ b/js/fileMgr.js @@ -173,8 +173,8 @@ define([ // syncIndex associations syncLocations = syncLocations || {}; - var sync = _.reduce(syncLocations, function(sync, syncAttributes, syncIndex) { - return sync + syncIndex + ";"; + var sync = _.reduce(syncLocations, function(sync, syncAttributes) { + return sync + syncAttributes.syncIndex + ";"; }, ";"); localStorage[fileIndex + ".title"] = title; diff --git a/js/html/settingsTemplate.html b/js/html/settingsTemplate.html deleted file mode 100644 index a2dc75b4..00000000 --- a/js/html/settingsTemplate.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - -<%= documentTitle %> - - -<%= documentHTML %> - - \ No newline at end of file diff --git a/js/publisher.js b/js/publisher.js index 45270a38..c1daa72b 100644 --- a/js/publisher.js +++ b/js/publisher.js @@ -36,7 +36,11 @@ define([ // Store publishIndex publishAttributes.publishIndex = publishIndex; // Replace provider ID by provider module in attributes - publishAttributes.provider = providerMap[publishAttributes.provider]; + var provider = providerMap[publishAttributes.provider]; + if(!provider) { + throw new Error("Invalid provider ID: " + publishAttributes.provider); + } + publishAttributes.provider = provider; fileDesc.publishLocations[publishIndex] = publishAttributes; } catch(e) { @@ -60,7 +64,7 @@ define([ publishAttributes: publishAttributes }); } - catch (e) { + catch(e) { extensionMgr.onError(e); throw e; } @@ -233,7 +237,7 @@ define([ $(".action-download-template").click(function() { var content = publisher.applyTemplate(); var title = fileMgr.getCurrentFile().title; - utils.saveAs(content, title + ".txt"); + utils.saveAs(content, title + (settings.template.indexOf("documentHTML") === -1 ? ".md" : ".html")); }); }); diff --git a/js/settings.js b/js/settings.js index 8c7ee974..42582521 100644 --- a/js/settings.js +++ b/js/settings.js @@ -18,6 +18,9 @@ define([ '\n', + '\n', '\n', '<%= documentHTML %>\n', '' diff --git a/js/synchronizer.js b/js/synchronizer.js index 9d096204..4431cc42 100644 --- a/js/synchronizer.js +++ b/js/synchronizer.js @@ -28,7 +28,11 @@ define([ // Store syncIndex syncAttributes.syncIndex = syncIndex; // Replace provider ID by provider module in attributes - syncAttributes.provider = providerMap[syncAttributes.provider]; + var provider = providerMap[syncAttributes.provider]; + if(!provider) { + throw new Error("Invalid provider ID: " + syncAttributes.provider); + } + syncAttributes.provider = provider; fileDesc.syncLocations[syncIndex] = syncAttributes; } catch(e) {