Skip to content

Commit 74682d4

Browse files
committed
[academic_query] add composite support (or fix)
SQUASHED: AUTO-COMMIT-src-components-widgets-academic-query.js,AUTO-COMMIT-src-components-widgets-academic-subquery.js,
1 parent c310416 commit 74682d4

File tree

2 files changed

+30
-18
lines changed

2 files changed

+30
-18
lines changed

src/components/widgets/academic-query.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ export default class AcademicQuery extends Morph {
7777
}
7878

7979
async livelyExample() {
80-
this.setQuery("And(Or(Y = '1985', Y = '2008'), Ti = 'disordered electronic systems')")
80+
this.setQuery("Composite(AA.AuId = 2055148755)")
81+
//this.setQuery("And(Or(Y = '1985', Y = '2008'), Ti = 'disordered electronic systems')")
8182
//this.setQuery("And(O='abc', Y='1000')")
8283
//this.setQuery("Y='1000'")
8384
}

src/components/widgets/academic-subquery.js

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ var g = ohm.grammar(
1818
"=" | "<" | ">"
1919
2020
Attribute (an attribute) =
21-
letter letter? letter?
21+
letter letter? letter? letter?
2222
2323
Value (a value) =
2424
"\'" alnum* "\'" -- string
@@ -89,8 +89,8 @@ s.addOperation(
8989
return comparator.sourceString;
9090
},
9191

92-
Attribute: function(a, b, c) {
93-
return [a.interpret(), b.interpret(), c.interpret()].join('');
92+
Attribute: function(a, b, c, d) {
93+
return [a.interpret(), b.interpret(), c.interpret(), d.interpret()].join('');
9494
},
9595

9696
Value: function(value) {
@@ -107,7 +107,8 @@ s.addOperation(
107107
},
108108

109109
Number: function(n) {
110-
return parseFloat(n.sourceString);
110+
//return parseFloat(n.sourceString);
111+
return n.sourceString;
111112
},
112113
Date: function(_1, year, _2, month, _3, day, _4) {
113114
return new Date(year.interpret(),
@@ -313,17 +314,24 @@ export default class AcademicSubquery extends Morph {
313314
query = conjunction + "(" + left + ", " + right + ")";
314315
}
315316
} else {
316-
var [attr, comp, val] = this.get('#inner')
317-
.querySelectorAll("span[name='queryPart']")
318-
.map(e => e.textContent);
319-
if (val)
320-
val = val.slice(0, val.length - 1); // remove last whitespace
321-
// TODO: keep the '' when parsing query so that we don't have
322-
// 3 spans here....
323-
// OOODER ich lass das mit dem Edit Mode, dafür gibt's ja schon
324-
// das input Feld
325-
//query = attr + comp + "'" + val + "'";
326-
query = attr + comp + val;
317+
var innerSpan = this.get('#inner');
318+
if (innerSpan) {
319+
lively.notify("INNERSPAN", innerSpan)
320+
var [attr, comp, val] = innerSpan
321+
.querySelectorAll("span[name='queryPart']")
322+
.map(e => e.textContent);
323+
if (val)
324+
val = val.slice(0, val.length - 1); // remove last whitespace
325+
// TODO: keep the '' when parsing query so that we don't have
326+
// 3 spans here....
327+
// OOODER ich lass das mit dem Edit Mode, dafür gibt's ja schon
328+
// das input Feld
329+
//query = attr + comp + "'" + val + "'";
330+
if (innerSpan.getAttribute("type") == "composite")
331+
query = "Composite(" + attr + comp + val + ")";
332+
else
333+
query = attr + comp + val;
334+
}
327335
}
328336

329337
return query
@@ -415,15 +423,18 @@ export default class AcademicSubquery extends Morph {
415423
span.appendChild(edit);
416424
break;
417425
}
426+
span.setAttribute("type", object.type);
418427

419428
var queryElement = <div class="dropTarget"><b>{span}</b></div>;
420429

421430
return queryElement;
422431
}
423432

424433
async livelyExample() {
425-
this.setQuery("And(Or(Y='1985', Y='2008'), Ti='disordered electronic systems')")
426-
//this.setQuery("And(O='abc', Y='1000')")
434+
//this.setQuery("Composite(AA.AuN=='susan t dumais')");
435+
this.setQuery("Composite(AA.AuId=2055148755)")
436+
//this.setQuery("And(Or(Y=1985, Y=2008), Ti='disordered electronic systems')")
437+
//this.setQuery("And(O='abc', Y=1000)")
427438
//this.setQuery("Y='1000'")
428439
}
429440

0 commit comments

Comments
 (0)