updated categories, added category to note service

This commit is contained in:
Thomas Hervey
2018-07-21 21:09:17 -04:00
parent 658721a150
commit c3fe1fedd9
9 changed files with 157 additions and 117 deletions
-1
View File
@@ -9,7 +9,6 @@ export function actionMoveNote(noteID, toLoc) {
var note = services.osm.getNote(noteID);
note.move(geoVecInterp(note.loc, toLoc, t));
console.log('moved: ', note.loc);
// TODO: update
};
+4 -1
View File
@@ -875,10 +875,13 @@ export default {
if (!note.loc[0] || !note.loc[1] || !note.newComment) return; // location & description required
var comment = note.newComment;
if (note.newCategory && note.newCategory !== 'None') { comment += ' #' + note.newCategory; }
var path = '/api/0.6/notes?' +
'lat=' + note.loc[1] +
'&lon=' + note.loc[0] +
'&' + utilQsString({ text: note.newComment });
'&' + utilQsString({ text: comment });
_noteCache.inflightPost[note.id] = oauth.xhr(
{ method: 'POST', path: path },
wrapcb(this, done, _connectionID)
-63
View File
@@ -1,63 +0,0 @@
import { dispatch as d3_dispatch } from 'd3-dispatch';
import { select as d3_select, selectAll as d3_selectAll } from 'd3-selection';
import { services } from '../services';
import { uiField } from './field';
import { uiFormFields } from './form_fields';
export function uiNoteCategory(context) {
var formFields = uiFormFields(context);
var _note;
var _fieldsArr;
function noteCategory(selection) {
if (!_note.isNew()) return; // don't add category
var initial = false;
if (!_fieldsArr) {
initial = true;
var presets = context.presets();
_fieldsArr = [
uiField(context, presets.field('category'), null, { show: true, revert: false }),
];
_fieldsArr.forEach(function(field) {
field
.on('change', change);
});
}
selection
.append('div')
.attr('class', 'note-category')
.call(formFields.fieldsArr(_fieldsArr));
function change() {
var val = d3_select('input[name=\'category\']:checked').property('value') || undefined;
// NOTE: perhaps there is a better way to get value, something like ...
// var input = d3_select(this);
// var val = input.property('value') || undefined;
// store the unsaved comment with the note itself
_note = _note.update({ newCategory: val });
var osm = services.osm;
if (osm) {
osm.replaceNote(_note); // update note cache
}
}
}
noteCategory.note = function(_) {
if (!arguments.length) return _note;
_note = _;
return noteCategory;
};
return noteCategory;
}
+41 -6
View File
@@ -9,6 +9,9 @@ import { services } from '../services';
import { modeBrowse } from '../modes';
import { svgIcon } from '../svg';
import { uiField } from './field';
import { uiFormFields } from './form_fields';
import {
uiNoteComments,
uiNoteHeader,
@@ -20,15 +23,17 @@ import {
utilNoAuto,
utilRebind
} from '../util';
import { uiNoteCategory } from './note_category';
export function uiNoteEditor(context) {
var dispatch = d3_dispatch('change');
var noteComments = uiNoteComments();
var noteCategory = uiNoteCategory(context);
var noteHeader = uiNoteHeader();
var formFields = uiFormFields(context);
var _note;
var _fieldsArr;
function noteEditor(selection) {
@@ -109,8 +114,38 @@ export function uiNoteEditor(context) {
.append('div')
.attr('class', 'note-save save-section cf');
// if new note, show categories to pick from
if (_note.isNew()) {
noteSaveEnter.call(noteCategory.note(_note));
var presets = context.presets();
// NOTE: this key isn't a age and therefore there is no documentation (yet)
_fieldsArr = [
uiField(context, presets.field('category'), null, { show: true, revert: false }),
];
_fieldsArr.forEach(function(field) {
field
.on('change', changeCategory);
});
noteSaveEnter
.append('div')
.attr('class', 'note-category')
.call(formFields.fieldsArr(_fieldsArr));
}
function changeCategory() {
// NOTE: perhaps there is a better way to get value
var val = d3_select('input[name=\'category\']:checked').property('__data__') || undefined;
// store the unsaved category with the note itself
_note = _note.update({ newCategory: val });
var osm = services.osm;
if (osm) {
osm.replaceNote(_note); // update note cache
}
noteSave
.call(noteSaveButtons);
}
noteSaveEnter
@@ -127,8 +162,8 @@ export function uiNoteEditor(context) {
.attr('maxlength', 1000)
.property('value', function(d) { return d.newComment; })
.call(utilNoAuto)
.on('input', change)
.on('blur', change);
.on('input', changeInput)
.on('blur', changeInput);
// update
noteSave = noteSaveEnter
@@ -137,7 +172,7 @@ export function uiNoteEditor(context) {
.call(noteSaveButtons);
function change() {
function changeInput() {
var input = d3_select(this);
var val = input.property('value').trim() || undefined;