summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/www/minibar/about.html21
-rw-r--r--src/www/minibar/minibar.css1
-rw-r--r--src/www/minibar/minibar.js35
3 files changed, 50 insertions, 7 deletions
diff --git a/src/www/minibar/about.html b/src/www/minibar/about.html
index 7c127fe5f..87df72e00 100644
--- a/src/www/minibar/about.html
+++ b/src/www/minibar/about.html
@@ -10,8 +10,10 @@
</head>
<body class=minibar>
+<header>
<h1>About Minibar</h1>
-
+</header>
+<main>
<a href="minibar.html">Minibar</a> is an alternative implementation of the
<a href="http://www.grammaticalframework.org/">GF</a> web app
<a href="http://www.grammaticalframework.org:41296/fridge/">Fridge Poetry</a>.
@@ -233,14 +235,23 @@ Some implementation details:
category names.
<li>[Added 2013-04-02] Minibar now remembers from one visit to the next
the selected set of target languages for each grammar.
+ <li>[Added 2019-08-05] Minibar can now display grammar documentation.
+ The documentation is taken from a file called
+ <var>Grammar</var><code>.pgf_info</code>, located
+ next to the <var>Grammar</var><code>.pgf</code> file on the server.
+ The first line of the documentation is displayed below the menu bar in
+ the minibar. The rest of the documentation is displayed when you press
+ the <b>More info</b> button (or the <b>i</b> button). The documentation
+ can contain HTML markup. Blank lines are treated as paragraph breaks.
</ul>
-
+</main>
+<footer>
<hr>
<div class=modtime><small>
-<!-- hhmts start -->Last modified: Tue Apr 2 15:49:32 CEST 2013 <!-- hhmts end -->
+<!-- hhmts start -->Last modified: Mon Aug 5 15:22:46 CEST 2019 <!-- hhmts end -->
</small></div>
<address>
-<a href="http://www.cse.chalmers.se/~hallgren/">TH</a>
-<img src="http://www.altocumulus.org/~hallgren/online.cgi?icon" alt="">
+<a href="http://www.cse.chalmers.se/~hallgren/">Thomas Hallgren</a>
</address>
+</footer>
</body> </html>
diff --git a/src/www/minibar/minibar.css b/src/www/minibar/minibar.css
index 2e4d646ea..5d77b4508 100644
--- a/src/www/minibar/minibar.css
+++ b/src/www/minibar/minibar.css
@@ -10,6 +10,7 @@ h1:first-child, h2:first-child { margin-top: 0; margin-bottom: 1ex; }
th, td { vertical-align: baseline; text-align: left; }
div.menubar { font-family: sans-serif; font-size: small; }
+div.infobar { margin: 5px; }
div#surface {
min-height: 3ex;
diff --git a/src/www/minibar/minibar.js b/src/www/minibar/minibar.js
index c299cb77c..6822e7926 100644
--- a/src/www/minibar/minibar.js
+++ b/src/www/minibar/minibar.js
@@ -53,13 +53,14 @@ function Minibar(server,opts) {
/* --- Creating user interface elements --------------------------------- */
this.menubar=div_class("menubar");
+ this.infobar=div_class("infobar");
this.extra=div_id("extra");
this.minibar=element(this.options.target);
this.minibar.innerHTML="";
with(this) {
appendChildren(menubar,[input.menus,translations.menus,input.buttons])
- appendChildren(minibar,[menubar,input.main,translations.main,extra]);
+ appendChildren(minibar,[menubar,infobar,input.main,translations.main,extra]);
if(options.help_url)
menubar.appendChild(button("Help",bind(open_help,this)));
append_extra_buttons(extra,options);
@@ -205,6 +206,30 @@ Minibar.prototype.change_grammar=function(grammar_info) {
t.grammar=grammar_info;
t.input.change_grammar(grammar_info)
t.translations.change_grammar(grammar_info)
+ t.get_pgf_info()
+}
+
+Minibar.prototype.get_pgf_info=function() {
+ var t=this;
+ var info_url=t.server.current_grammar_url+"_info";
+ clear(t.infobar)
+ t.pgf_info=null;
+ ajax_http_get(info_url,bind(t.show_pgf_info,t),function(){})
+}
+
+Minibar.prototype.show_pgf_info=function(info) {
+ var t=this;
+ var cnt=0;
+ console.log(info)
+ info=info.split("\n");
+ for(var i=0;i<info.length;i++) {
+ if(info[i]=="") info[i]="<p>"
+ else cnt++
+ }
+ t.pgf_info=info.join("\n")
+ t.infobar.innerHTML=info[0]+" "
+ if(cnt>1)
+ t.infobar.appendChild(button("More info",bind(t.show_grammarinfo,t)))
}
Minibar.prototype.show_grammarinfo=function() {
@@ -241,7 +266,10 @@ Minibar.prototype.show_grammarinfo=function() {
var cats=wrap("div",text(g.categories.join(", ")))
var funs=wrap("div",text(g.functions.join(", ")))
- var btn=button("More info",more)
+ var btn=button("Show more details",more)
+
+ var info=empty("div")
+ if(t.pgf_info) info.innerHTML=t.pgf_info
clear(t.translations.main)
var hdr=[text(g.name)]
@@ -249,8 +277,11 @@ Minibar.prototype.show_grammarinfo=function() {
hdr.push(text(" "))
hdr.push(wrap("small",text("("+g.lastmodified+")")))
}
+
appendChildren(this.translations.main,
[wrap("h3",hdr),
+ info,
+ text("The categories and functions in the grammar are listed below."),
btn,
wrap("h4",text("Start category")), text(g.startcat || ""),
wrap("h4",text("Categories")), cats,