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
+13 -9
View File
@@ -305,19 +305,23 @@ en:
# castle_type=*
label: Type
category:
# 'none=*, option1=*, option2=*, option3=*, option4=*'
# 'none=*, updateDetails=*, missing=*, wrongLocation=*, groundtruth=*, doesNotExist=*, discussion=*'
label: Category
options:
# discussion=yes
discussion: Needs discussing
# doesNotExist=yes
doesNotExist: Does not or never existed
# groundtruth=yes
groundtruth: Ground truth or needs local confirmation
# missing=yes
missing: Something is missing
# none=yes
none: None
# option1=yes
option1: Option1
# option2=yes
option2: Option2
# option3=yes
option3: Option3
# option4=yes
option4: Option4
# updateDetails=yes
updateDetails: Update or add details
# wrongLocation=yes
wrongLocation: Wrong location
# category field placeholder
placeholder: Unknown
clothes:
+1 -1
View File
@@ -49,7 +49,7 @@
"capacity": {"key": "capacity", "type": "number", "minValue": 0, "label": "Capacity", "placeholder": "50, 100, 200..."},
"cash_in": {"key": "cash_in", "type": "check", "label": "Cash In"},
"castle_type": {"key": "castle_type", "type": "combo", "label": "Type"},
"category": {"type": "radio", "keys": ["none", "option1", "option2", "option3", "option4"], "label": "Category", "placeholder": "Unknown", "strings": {"options": {"none": "None", "option1": "Option1", "option2": "Option2", "option3": "Option3", "option4": "Option4"}}},
"category": {"type": "radio", "keys": ["none", "updateDetails", "missing", "wrongLocation", "groundtruth", "doesNotExist", "discussion"], "label": "Category", "placeholder": "Unknown", "strings": {"options": {"none": "None", "updateDetails": "Update or add details", "missing": "Something is missing", "wrongLocation": "Wrong location", "groundtruth": "Ground truth or needs local confirmation", "doesNotExist": "Does not or never existed", "discussion": "Needs discussing"}}},
"clothes": {"key": "clothes", "type": "semiCombo", "label": "Clothes"},
"club": {"key": "club", "type": "typeCombo", "label": "Type"},
"collection_times": {"key": "collection_times", "type": "text", "label": "Collection Times"},
+12 -8
View File
@@ -2,20 +2,24 @@
"type": "radio",
"keys": [
"none",
"option1",
"option2",
"option3",
"option4"
"updateDetails",
"missing",
"wrongLocation",
"groundtruth",
"doesNotExist",
"discussion"
],
"label": "Category",
"placeholder": "Unknown",
"strings": {
"options": {
"none": "None",
"option1": "Option1",
"option2": "Option2",
"option3": "Option3",
"option4": "Option4"
"updateDetails": "Update or add details",
"missing": "Something is missing",
"wrongLocation": "Wrong location",
"groundtruth": "Ground truth or needs local confirmation",
"doesNotExist": "Does not or never existed",
"discussion": "Needs discussing"
}
}
}
+80 -24
View File
@@ -6376,30 +6376,86 @@
{"key": "cash_in", "description": "Cash In"},
{"key": "castle_type", "description": "Type"},
{"key": "none", "value": "none", "description": "Category"},
{"key": "none", "value": "option1", "description": "Category"},
{"key": "none", "value": "option2", "description": "Category"},
{"key": "none", "value": "option3", "description": "Category"},
{"key": "none", "value": "option4", "description": "Category"},
{"key": "option1", "value": "none", "description": "Category"},
{"key": "option1", "value": "option1", "description": "Category"},
{"key": "option1", "value": "option2", "description": "Category"},
{"key": "option1", "value": "option3", "description": "Category"},
{"key": "option1", "value": "option4", "description": "Category"},
{"key": "option2", "value": "none", "description": "Category"},
{"key": "option2", "value": "option1", "description": "Category"},
{"key": "option2", "value": "option2", "description": "Category"},
{"key": "option2", "value": "option3", "description": "Category"},
{"key": "option2", "value": "option4", "description": "Category"},
{"key": "option3", "value": "none", "description": "Category"},
{"key": "option3", "value": "option1", "description": "Category"},
{"key": "option3", "value": "option2", "description": "Category"},
{"key": "option3", "value": "option3", "description": "Category"},
{"key": "option3", "value": "option4", "description": "Category"},
{"key": "option4", "value": "none", "description": "Category"},
{"key": "option4", "value": "option1", "description": "Category"},
{"key": "option4", "value": "option2", "description": "Category"},
{"key": "option4", "value": "option3", "description": "Category"},
{"key": "option4", "value": "option4", "description": "Category"},
{"key": "none", "value": "updateDetails", "description": "Category"},
{"key": "none", "value": "missing", "description": "Category"},
{"key": "none", "value": "wrongLocation", "description": "Category"},
{"key": "none", "value": "groundtruth", "description": "Category"},
{"key": "none", "value": "doesNotExist", "description": "Category"},
{"key": "none", "value": "discussion", "description": "Category"},
{"key": "updateDetails", "value": "none", "description": "Category"},
{
"key": "updateDetails",
"value": "updateDetails",
"description": "Category"
},
{"key": "updateDetails", "value": "missing", "description": "Category"},
{
"key": "updateDetails",
"value": "wrongLocation",
"description": "Category"
},
{"key": "updateDetails", "value": "groundtruth", "description": "Category"},
{
"key": "updateDetails",
"value": "doesNotExist",
"description": "Category"
},
{"key": "updateDetails", "value": "discussion", "description": "Category"},
{"key": "missing", "value": "none", "description": "Category"},
{"key": "missing", "value": "updateDetails", "description": "Category"},
{"key": "missing", "value": "missing", "description": "Category"},
{"key": "missing", "value": "wrongLocation", "description": "Category"},
{"key": "missing", "value": "groundtruth", "description": "Category"},
{"key": "missing", "value": "doesNotExist", "description": "Category"},
{"key": "missing", "value": "discussion", "description": "Category"},
{"key": "wrongLocation", "value": "none", "description": "Category"},
{
"key": "wrongLocation",
"value": "updateDetails",
"description": "Category"
},
{"key": "wrongLocation", "value": "missing", "description": "Category"},
{
"key": "wrongLocation",
"value": "wrongLocation",
"description": "Category"
},
{"key": "wrongLocation", "value": "groundtruth", "description": "Category"},
{
"key": "wrongLocation",
"value": "doesNotExist",
"description": "Category"
},
{"key": "wrongLocation", "value": "discussion", "description": "Category"},
{"key": "groundtruth", "value": "none", "description": "Category"},
{"key": "groundtruth", "value": "updateDetails", "description": "Category"},
{"key": "groundtruth", "value": "missing", "description": "Category"},
{"key": "groundtruth", "value": "wrongLocation", "description": "Category"},
{"key": "groundtruth", "value": "groundtruth", "description": "Category"},
{"key": "groundtruth", "value": "doesNotExist", "description": "Category"},
{"key": "groundtruth", "value": "discussion", "description": "Category"},
{"key": "doesNotExist", "value": "none", "description": "Category"},
{
"key": "doesNotExist",
"value": "updateDetails",
"description": "Category"
},
{"key": "doesNotExist", "value": "missing", "description": "Category"},
{
"key": "doesNotExist",
"value": "wrongLocation",
"description": "Category"
},
{"key": "doesNotExist", "value": "groundtruth", "description": "Category"},
{"key": "doesNotExist", "value": "doesNotExist", "description": "Category"},
{"key": "doesNotExist", "value": "discussion", "description": "Category"},
{"key": "discussion", "value": "none", "description": "Category"},
{"key": "discussion", "value": "updateDetails", "description": "Category"},
{"key": "discussion", "value": "missing", "description": "Category"},
{"key": "discussion", "value": "wrongLocation", "description": "Category"},
{"key": "discussion", "value": "groundtruth", "description": "Category"},
{"key": "discussion", "value": "doesNotExist", "description": "Category"},
{"key": "discussion", "value": "discussion", "description": "Category"},
{"key": "clothes", "description": "Clothes"},
{"key": "collection_times", "description": "Collection Times"},
{"key": "comment", "description": "Changeset Comment"},
+6 -4
View File
@@ -1672,10 +1672,12 @@
"placeholder": "Unknown",
"options": {
"none": "None",
"option1": "Option1",
"option2": "Option2",
"option3": "Option3",
"option4": "Option4"
"updateDetails": "Update or add details",
"missing": "Something is missing",
"wrongLocation": "Wrong location",
"groundtruth": "Ground truth or needs local confirmation",
"doesNotExist": "Does not or never existed",
"discussion": "Needs discussing"
}
},
"clothes": {
-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;