Make result buttons a button group and adopt styles
Change-Id: I703de5fcb5f7f19e84278a719a64c19c3bc016cc
diff --git a/dev/js/src/buttongroup.js b/dev/js/src/buttongroup.js
index b33c13a..a1dac7b 100644
--- a/dev/js/src/buttongroup.js
+++ b/dev/js/src/buttongroup.js
@@ -31,11 +31,11 @@
*/
add : function (title, classes, cb) {
var b = this._element.addE('span');
- b.addT(title);
b.setAttribute('title',title);
if (classes !== undefined) {
b.classList.add.apply(b.classList, classes);
};
+ b.addE('span').addT(title);
var that = this;
b.addEventListener('click', function (e) {
diff --git a/dev/js/src/init.js b/dev/js/src/init.js
index b4621d0..76bbf82 100644
--- a/dev/js/src/init.js
+++ b/dev/js/src/init.js
@@ -15,6 +15,7 @@
'hint',
'vc',
'tutorial',
+ 'buttongroup',
'lib/domReady',
'vc/array',
'lib/alertify',
@@ -29,6 +30,7 @@
hintClass,
vcClass,
tutClass,
+ buttonGroupClass,
domReady,
vcArray,
alertifyClass,
@@ -181,29 +183,19 @@
};
var result = d.getElementById('resultinfo');
- var resultButton = null;
- var leftButton = null;
+ var resultButton;
if (result != null) {
- // Add right buttons
- resultButton = result.addE('div');
- resultButton.classList.add('result', 'button');
-
- leftButton = result.addE('div');
- leftButton.classList.add('result', 'button', 'left');
+ // Add result button group
+ resultButton = buttonGroupClass.create(['result']);
+ result.appendChild(resultButton.element());
};
// There is a koralQuery
if (KorAP.koralQuery !== undefined) {
- if (resultButton !== null) {
+ if (result !== null) {
var kq;
- var toggle = d.createElement('a');
- toggle.setAttribute('title', loc.SHOW_KQ)
- toggle.classList.add('show-kq', 'button');
- toggle.addE('span')
- .addT(loc.SHOW_KQ);
- resultButton.appendChild(toggle);
var showKQ = function () {
if (kq === undefined) {
@@ -228,11 +220,8 @@
};
};
- if (toggle !== undefined) {
-
- // Show koralquery
- toggle.addEventListener('click', showKQ);
- };
+ // Add KoralQuery button
+ resultButton.add(loc.SHOW_KQ, ['show-kq','button-icon'], showKQ);
};
if (KorAP.koralQuery["errors"]) {
@@ -263,41 +252,16 @@
if (i > 0) {
if (resultButton !== null) {
-
/**
* Toggle the alignment (left <=> right)
*/
- // querySelector('div.button.right');
-
- var toggle = d.createElement('a');
- toggle.setAttribute('title', loc.TOGGLE_ALIGN);
- // Todo: Reuse old alignment from query
- var cl = toggle.classList;
- cl.add('align', 'right', 'button');
- toggle.addEventListener(
- 'click',
- function (e) {
- var ol = d.querySelector('#search > ol');
- ol.toggleClass("align-left", "align-right");
- this.toggleClass("left", "right");
- });
- toggle.addE('span').addT(loc.TOGGLE_ALIGN);
- resultButton.appendChild(toggle);
- };
- // Not ready yet
- /*
- if (leftButton !== null) {
- var metaInfo = d.createElement('a');
- metaInfo.setAttribute('title', loc.SHOW_META)
-
- var cl = metaInfo.classList;
- cl.add('show-meta', 'button');
- metaInfo.appendChild(d.createElement('span'))
- .appendChild(d.createTextNode(loc.SHOW_META));
- leftButton.appendChild(metaInfo);
+ resultButton.add(loc.TOGGLE_ALIGN, ['align','right','button-icon'], function (e) {
+ var ol = d.querySelector('#search > ol');
+ ol.toggleClass("align-left", "align-right");
+ this.toggleClass("left", "right");
+ });
};
- */
};
/**
diff --git a/dev/js/src/match/info.js b/dev/js/src/match/info.js
index f30287b..628659f 100644
--- a/dev/js/src/match/info.js
+++ b/dev/js/src/match/info.js
@@ -1,6 +1,12 @@
/**
* Information about a match.
*/
+/*
+ * TODO:
+ * Create a "views" object, that is the parent of this
+ * class and supports a simple .add() method to add views
+ * to an element.
+ */
define([
'match/infolayer',
'match/table',
diff --git a/dev/js/src/match/treemenu.js b/dev/js/src/match/treemenu.js
index 6b8a76a..0010271 100644
--- a/dev/js/src/match/treemenu.js
+++ b/dev/js/src/match/treemenu.js
@@ -46,7 +46,7 @@
return this._info;
},
- // Attach menu to
+ // Attach menu to button
attachTo : function (e) {
// this._attached = e;
diff --git a/dev/scss/base.scss b/dev/scss/base.scss
index 0688319..6da7901 100644
--- a/dev/scss/base.scss
+++ b/dev/scss/base.scss
@@ -1,8 +1,6 @@
@charset "utf-8";
@import "util";
-$border-size: 2px;
-
/**
* Basic global CSS rules for Kalamar
*/
@@ -137,35 +135,3 @@
button + button {
right: 0;
}
-
-
-.button-group {
- > span {
- cursor: pointer;
- box-shadow: $choose-box-shadow;
- font-size: 9pt;
- line-height: 1.5em;
- padding: 0 4px;
- display: inline-block;
- @include choose-item;
- border-style: solid;
- border-width: $border-size 0;
- &:hover {
- @include choose-hover;
- }
- &:first-child {
- border: {
- left-width: $border-size;
- top-left-radius: $standard-border-radius;
- bottom-left-radius: $standard-border-radius;
- }
- }
- &:last-child {
- border: {
- right-width: $border-size;
- top-right-radius: $standard-border-radius;
- bottom-right-radius: $standard-border-radius;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/dev/scss/main/buttongroup.scss b/dev/scss/main/buttongroup.scss
new file mode 100644
index 0000000..607f9e3
--- /dev/null
+++ b/dev/scss/main/buttongroup.scss
@@ -0,0 +1,42 @@
+@charset "utf-8";
+@import "../util";
+
+/*
+ * Define the base layout of horizontal button groups
+ */
+.button-group {
+ > span {
+ cursor: pointer;
+ box-shadow: $choose-box-shadow;
+ font-size: 9pt;
+ line-height: 1.5em;
+ padding: 0 4px;
+ display: inline-block;
+ @include choose-item;
+ border-style: solid;
+ border-width: $border-size 0;
+ &:hover {
+ @include choose-hover;
+ }
+ &:first-child {
+ border: {
+ left-width: $border-size;
+ top-left-radius: $standard-border-radius;
+ bottom-left-radius: $standard-border-radius;
+ }
+ }
+ &:last-child {
+ border: {
+ right-width: $border-size;
+ top-right-radius: $standard-border-radius;
+ bottom-right-radius: $standard-border-radius;
+ }
+ }
+ &.button-icon {
+ font-family: 'FontAwesome';
+ > span {
+ @include blind;
+ }
+ }
+ }
+}
diff --git a/dev/scss/main/kwic.scss b/dev/scss/main/kwic.scss
index 08a6103..63f143b 100644
--- a/dev/scss/main/kwic.scss
+++ b/dev/scss/main/kwic.scss
@@ -15,12 +15,11 @@
overflow-x: hidden;
overflow-y: visible;
width: auto;
- border: 1px solid black;
text-indent: 0;
list-style-type: none;
margin: 0;
padding: 0;
- border: 1px solid $kwic-border;
+ border: $result-border-size solid $kwic-border;
font-size: $font-size;
> li {
diff --git a/dev/scss/main/main.scss b/dev/scss/main/main.scss
index 3478a77..40ef483 100644
--- a/dev/scss/main/main.scss
+++ b/dev/scss/main/main.scss
@@ -1,16 +1,17 @@
-@import "highlight"; // JSON highlighting
-@import "kwic"; // Kwic view information
-@import "logos"; // Logo images
-@import "matchinfo"; // Match table
-@import "tree"; // Tree view
-@import "pagination"; // Pagination
-@import "query"; // View query
-@import "resultinfo"; // Information on results
-@import "tutorial"; // Embedded and non-embedded tutorial
-@import "koralquery"; // KoralQuery
-@import "tagger"; // Tagger
-@import "alertify";
-@import "intro"; // Intro page
+@import "highlight"; // JSON highlighting
+@import "kwic"; // Kwic view information
+@import "logos"; // Logo images
+@import "matchinfo"; // Match table
+@import "tree"; // Tree view
+@import "pagination"; // Pagination
+@import "query"; // View query
+@import "resultinfo"; // Information on results
+@import "tutorial"; // Embedded and non-embedded tutorial
+@import "koralquery"; // KoralQuery
+@import "tagger"; // Tagger
+@import "alertify"; // Styling alerts
+@import "intro"; // Intro page
+@import "buttongroup"; // Button groups
main {
margin: {
diff --git a/dev/scss/main/resultinfo.scss b/dev/scss/main/resultinfo.scss
index 5276f0a..0ad4fc1 100644
--- a/dev/scss/main/resultinfo.scss
+++ b/dev/scss/main/resultinfo.scss
@@ -16,73 +16,46 @@
margin: 0;
text-align: right;
}
+}
- div.result {
- vertical-align: bottom;
- display: inline-block;
+// Specify result button group layout
+.result.button-group {
+ vertical-align: bottom;
+ display: inline-block;
+ line-height: 1.3em;
+
+ > span {
line-height: 1.3em;
- > a {
- display: inline-block;
- cursor: pointer;
- position: relative;
- > span {
- @include blind;
- }
- box-shadow: $choose-box-shadow;
- @include standard-text-padding;
- // padding-top: 1pt;
- // padding-bottom: 3pt;
-
- @include choose-item;
- border: {
- top-width: $border-size;
- bottom-width: $border-size;
- top-style: solid;
- bottom-style: solid;
- }
- &:hover {
- @include choose-hover;
- }
+ border-width: $result-border-size 0;
+ &:first-child {
+ border-left-width: $result-border-size;
}
- > a:last-child {
- border: {
- top-right-radius: $standard-border-radius;
- bottom-right-radius: $standard-border-radius;
- right-width: $border-size;
- right-style: solid;
+ &:last-child {
+ border-right-width: $result-border-size;
}
- }
- > a:first-child {
- border: {
- top-left-radius: $standard-border-radius;
- bottom-left-radius: $standard-border-radius;
- left-width: $border-size;
- left-style: solid;
- }
- }
- > a::after {
- font-family: 'FontAwesome';
- }
- > a.align.left::after {
+ }
+
+ // Define icons for result buttons
+ .button-icon {
+ &.align.left::after {
content: $fa-left-align;
}
- > a.align.right::after {
+ &.align.right::after {
content: $fa-right-align;
}
- > a.show-kq::after {
+ &.show-kq::after {
content: $fa-code;
}
- > a.show-meta::after {
- content: $fa-metadata;
- }
}
}
+
#resultinfo.found {
position: relative;
// z-index: 20;
margin-bottom: 0px;
- div.result > a {
+
+ .button-group > span {
margin-bottom: 0;
border-bottom-width: 0;
box-shadow: none;
@@ -91,15 +64,20 @@
}
&:last-child {
border-bottom-right-radius: 0;
- }
+ }
}
+
+ /*
div.result.left {
position: absolute;
left: 0;
bottom: 0;
}
+ */
}
+
+
#total-results {
color: $total-results;
font-weight: bold;
diff --git a/dev/scss/util.scss b/dev/scss/util.scss
index d79f8ee..fcc4206 100644
--- a/dev/scss/util.scss
+++ b/dev/scss/util.scss
@@ -91,7 +91,8 @@
$item-padding: 3pt 6pt;
$button-width: 30px;
$base-padding: 8px;
-
+$border-size: 2px;
+$result-border-size: 1px;
$total-results: $light-green;
/**