summaryrefslogtreecommitdiff
path: root/src/www
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2012-10-18 12:48:39 +0000
committerhallgren <hallgren@chalmers.se>2012-10-18 12:48:39 +0000
commit9a022a141ebcd0228cbc75aaadf32e7d1b84f207 (patch)
tree4502b7b12c0249b3917298a82a532a713e297bbe /src/www
parent36dd5502aa86cdf3ae9b730dd174eb91e9f41b8d (diff)
gfse: grammars can now contain one-line descriptions
Also fixed two small problems with public grammars.
Diffstat (limited to 'src/www')
-rw-r--r--src/www/gfse/editor.css3
-rw-r--r--src/www/gfse/editor.js22
-rw-r--r--src/www/gfse/gf_abs.js1
3 files changed, 24 insertions, 2 deletions
diff --git a/src/www/gfse/editor.css b/src/www/gfse/editor.css
index 6d605b3ab..6f11004cb 100644
--- a/src/www/gfse/editor.css
+++ b/src/www/gfse/editor.css
@@ -45,6 +45,9 @@ div.namebar table { width: 100%; }
.namebar h3, .sheet h3 { margin: 0; color: #009; }
.home h3 { margin-top: 0; color: #009; }
+div.comment:before { content: "-- "; }
+div.comment { color: #009; margin-left: 1em; }
+
td.right { text-align: right; }
td.center { text-align: center; }
diff --git a/src/www/gfse/editor.js b/src/www/gfse/editor.js
index c49b190b3..f7a89037a 100644
--- a/src/www/gfse/editor.js
+++ b/src/www/gfse/editor.js
@@ -98,7 +98,7 @@ function draw_grammar_list() {
var pubspan=[span_class("more",pub)]
}
return edtr([td(delete_button(del(i),"Delete this grammar")),
- td(title(gid.unique_name,link)),
+ td(title(gid.unique_name || "",link)),
td(more(clone(i),"Clone this grammar")),
td(pubspan)
])
@@ -161,6 +161,7 @@ function draw_grammar_list() {
function new_grammar() {
var g={basename:"Unnamed",
+ comment:"",
extends:[],
uextends:[],
abstract:{cats:[],funs:[]},
@@ -226,6 +227,7 @@ function open_public(file) {
delete g.index
delete g.unique_name
delete g.publishedAs
+ if(!g.uextends) g.uextends=[]
reload_grammar(g)
}
var parts=file.split(/[-.]/)
@@ -286,7 +288,10 @@ function draw_namebar(g,files) {
return div_class("namebar",
[table([tr([td(draw_name(g)),
td_center(center),
- td_right(right)])])])
+ td_right(right)]),
+ tr([attr({colspan:"3"},td(draw_comment(g)))])
+ ])
+ ])
}
function draw_name(g) {
@@ -803,6 +808,10 @@ function draw_abstract(g) {
return file;
}
+function draw_comment(g) {
+ return div_class("comment",editable("span",text(g.comment || ""),g,edit_comment,"Edit grammar description"));
+}
+
function module_name(g,ix) {
return ix==0 ? g.basename : g.basename+g.concretes[ix-1].langcode
}
@@ -1046,6 +1055,15 @@ function edit_name(g,el) {
}
string_editor(el,g.basename,change_name)
}
+
+function edit_comment(g,el) {
+ function change_comment(comment) {
+ g.comment=comment
+ reload_grammar(g);
+ return null;
+ }
+ string_editor(el,g.comment || "",change_comment)
+}
/* -------------------------------------------------------------------------- */
function draw_concrete(g,i) {
diff --git a/src/www/gfse/gf_abs.js b/src/www/gfse/gf_abs.js
index a66af812e..a234db753 100644
--- a/src/www/gfse/gf_abs.js
+++ b/src/www/gfse/gf_abs.js
@@ -9,6 +9,7 @@ type FunId = Id -- function name
type Type = [Cat] -- [Cat_1,...,Cat_n] means Cat_1 -> ... -> Cat_n
type Grammar = { basename: ModId,
+ comment: String,
extends: [ModId], -- in 1-to-1 correspondence with uextends
uextends: [UniqueId], -- added 2012-10-16
abstract: Abstract,