diff --git a/modules/ui/changeset_editor.js b/modules/ui/changeset_editor.js index c6d4572b7..1552fedd6 100644 --- a/modules/ui/changeset_editor.js +++ b/modules/ui/changeset_editor.js @@ -11,12 +11,11 @@ import { utilRebind, utilTriggerEvent } from '../util'; export function uiChangesetEditor(context) { - var dispatch = d3_dispatch('change'), - formFields = uiFormFields(context), - fieldsArr, - tags, - changesetId; - + var dispatch = d3_dispatch('change'); + var formFields = uiFormFields(context); + var _fieldsArr; + var _tags; + var _changesetID; function changesetEditor(selection) { @@ -27,17 +26,17 @@ export function uiChangesetEditor(context) { function render(selection) { var initial = false; - if (!fieldsArr) { + if (!_fieldsArr) { initial = true; var presets = context.presets(); - fieldsArr = [ + _fieldsArr = [ uiField(context, presets.field('comment'), null, { show: true, revert: false }), uiField(context, presets.field('source'), null, { show: false, revert: false }), uiField(context, presets.field('hashtags'), null, { show: false, revert: false }), ]; - fieldsArr.forEach(function(field) { + _fieldsArr.forEach(function(field) { field .on('change', function(t, onInput) { dispatch.call('change', field, t, onInput); @@ -45,19 +44,19 @@ export function uiChangesetEditor(context) { }); } - fieldsArr.forEach(function(field) { + _fieldsArr.forEach(function(field) { field - .tags(tags); + .tags(_tags); }); selection - .call(formFields.fieldsArr(fieldsArr)); + .call(formFields.fieldsArr(_fieldsArr)); if (initial) { - var commentField = selection.select('#preset-input-comment'), - commentNode = commentField.node(); + var commentField = selection.select('#preset-input-comment'); + var commentNode = commentField.node(); if (commentNode) { commentNode.focus(); @@ -91,7 +90,7 @@ export function uiChangesetEditor(context) { } // Add warning if comment mentions Google - var hasGoogle = tags.comment.match(/google/i); + var hasGoogle = _tags.comment.match(/google/i); var commentWarning = selection.select('.form-field-comment').selectAll('.comment-warning') .data(hasGoogle ? [0] : []); @@ -123,18 +122,18 @@ export function uiChangesetEditor(context) { changesetEditor.tags = function(_) { - if (!arguments.length) return tags; - tags = _; - // Don't reset fieldsArr here. + if (!arguments.length) return _tags; + _tags = _; + // Don't reset _fieldsArr here. return changesetEditor; }; changesetEditor.changesetID = function(_) { - if (!arguments.length) return changesetId; - if (changesetId === _) return changesetEditor; - changesetId = _; - fieldsArr = null; + if (!arguments.length) return _changesetID; + if (_changesetID === _) return changesetEditor; + _changesetID = _; + _fieldsArr = null; return changesetEditor; }; diff --git a/modules/ui/commit.js b/modules/ui/commit.js index 8ced7f55c..9fa7e1007 100644 --- a/modules/ui/commit.js +++ b/modules/ui/commit.js @@ -18,7 +18,7 @@ import { utilRebind } from '../util'; var _changeset; var readOnlyTags = [ - /^_changesets_count$/, + /^changesets_count$/, /^created_by$/, /^ideditor:/, /^imagery_used$/, @@ -65,7 +65,6 @@ export function uiCommit(context) { var detected = utilDetect(); tags = { comment: context.storage('comment') || '', - source: context.storage('source') || '', created_by: ('iD ' + context.version).substr(0, 255), host: detected.host.substr(0, 255), locale: detected.locale.substr(0, 255) @@ -80,6 +79,11 @@ export function uiCommit(context) { tags.hashtags = hashtags; } + var source = context.storage('source'); + if (source) { + tags.source = source; + } + _changeset = new osmChangeset({ tags: tags }); } @@ -293,9 +297,6 @@ export function uiCommit(context) { } } if (changed.hasOwnProperty('source')) { - if (changed.source === undefined) { - changed.source = ''; - } if (!onInput) { context.storage('source', changed.source); context.storage('commentDate', Date.now());