diff --git a/adapter/adapter-api/pom.xml b/adapter/adapter-api/pom.xml
index adfa6c4a5..1bcb7308b 100644
--- a/adapter/adapter-api/pom.xml
+++ b/adapter/adapter-api/pom.xml
@@ -1,74 +1,78 @@
4.0.0
SHRINE Adapter Client API
shrine-adapter-client-api
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
net.shrine
shrine-crypto
${project.version}
net.shrine
shrine-client
${project.version}
net.shrine
shrine-protocol
${project.version}
com.sun.jersey.jersey-test-framework
jersey-test-framework-http
${jersey-version}
test
com.sun.jersey.contribs
jersey-simple-server
${jersey-version}
test
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.shrine
shrine-client
${project.version}
test-jar
test
net.shrine
shrine-config
${project.version}
test-jar
test
diff --git a/adapter/adapter-service/pom.xml b/adapter/adapter-service/pom.xml
index de3ff64b4..222de51eb 100644
--- a/adapter/adapter-service/pom.xml
+++ b/adapter/adapter-service/pom.xml
@@ -1,180 +1,184 @@
4.0.0
SHRINE Adapter
shrine-adapter-service
jar
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
org.apache.maven.plugins
maven-jar-plugin
test-jar
org.squeryl
squeryl_${scala-major-version}
org.scala-lang
scalap
org.scala-lang
scalap
${scala-version}
net.shrine
shrine-auth
${project.version}
net.shrine
shrine-adapter-client-api
${project.version}
net.shrine
shrine-data-commons
${project.version}
net.shrine
shrine-crypto
${project.version}
net.shrine
shrine-crypto
${project.version}
test-jar
test
net.shrine
shrine-client
${project.version}
net.shrine
shrine-protocol
${project.version}
net.shrine
shrine-config
${project.version}
com.typesafe.slick
slick_2.11
${slick-version}
org.suecarter
freeslick_2.11
${freeslick-version}
org.slf4j
slf4j-log4j12
${slf4j-version}
mysql
mysql-connector-java
com.sun.jersey.jersey-test-framework
jersey-test-framework-http
${jersey-version}
test
com.sun.jersey.contribs
jersey-simple-server
${jersey-version}
test
com.h2database
h2
test
org.easymock
easymock
test
org.springframework
spring-jdbc
test
net.shrine
shrine-util
${project.version}
test-jar
test
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.shrine
shrine-data-commons
${project.version}
test-jar
test
diff --git a/apps/dashboard-app/pom.xml b/apps/dashboard-app/pom.xml
index 9f35503e9..0e4ab5cd3 100644
--- a/apps/dashboard-app/pom.xml
+++ b/apps/dashboard-app/pom.xml
@@ -1,200 +1,208 @@
shrine-base
net.shrine
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
4.0.0
dashboard-app
+
1.23.3.1-SNAPSHOT
+
+
+
Dashboard App
jar
net.alchim31.maven
scala-maven-plugin
com.github.eirslett
frontend-maven-plugin
0.0.23
src/main/js
install node and npm
install-node-and-npm
v0.10.33
2.7.4
npm install
npm
generate-resources
install
bower install
bower
install
grunt default
grunt
--no-color
log4j
log4j
io.spray
spray-routing_2.11
${spray-version}
io.spray
spray-servlet_2.11
${spray-version}
io.spray
spray-util_2.11
${spray-version}
io.spray
spray-testkit_2.11
${spray-version}
test
com.typesafe.akka
akka-actor_2.11
${akka-version}
com.typesafe.akka
akka-slf4j_2.11
${akka-version}
com.typesafe.akka
akka-testkit_2.11
${akka-testkit-version}
test
org.json4s
json4s-native_2.11
${json4s-version}
com.typesafe.slick
slick_2.11
${slick-version}
org.slf4j
slf4j-log4j12
${slf4j-version}
com.h2database
h2
${h2-version}
test
net.shrine
shrine-protocol
${project.version}
net.shrine
shrine-utility-commons
${project.version}
net.shrine
shrine-crypto
${project.version}
test-jar
test
net.shrine
shrine-auth
${project.version}
net.shrine
shrine-data-commons
${project.version}
mysql
mysql-connector-java
${mysql-version}
io.jsonwebtoken
jjwt
${jjwt-version}
net.sourceforge.jtds
jtds
${jtds-version}
net.shrine
shrine-adapter-client-api
${project.version}
com.typesafe
config
${typesafe-config-version}
diff --git a/apps/dashboard-app/src/main/js/pom.xml b/apps/dashboard-app/src/main/js/pom.xml
index 26a59e587..e269b3efd 100644
--- a/apps/dashboard-app/src/main/js/pom.xml
+++ b/apps/dashboard-app/src/main/js/pom.xml
@@ -1,90 +1,94 @@
shrine-base
net.shrine
+
1.23.3.1-SNAPSHOT
+
+
+
4.0.0
dashboard-app-client
pom
com.github.eirslett
frontend-maven-plugin
0.0.23
install node and npm
install-node-and-npm
v0.10.33
2.7.4
npm install
npm
generate-resources
install
bower install
bower
install
grunt default
grunt
--no-color
diff --git a/apps/dashboard-war/pom.xml b/apps/dashboard-war/pom.xml
index 8addd9079..458392bc5 100644
--- a/apps/dashboard-war/pom.xml
+++ b/apps/dashboard-war/pom.xml
@@ -1,37 +1,41 @@
shrine-base
net.shrine
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
4.0.0
dashboard-war
Dashboard War
war
org.apache.maven.plugins
maven-war-plugin
shrine-dashboard
net.shrine
dashboard-app
${project.version}
org.slf4j
slf4j-log4j12
${slf4j-version}
runtime
diff --git a/apps/meta-app/pom.xml b/apps/meta-app/pom.xml
index d61964602..c1bfecce2 100644
--- a/apps/meta-app/pom.xml
+++ b/apps/meta-app/pom.xml
@@ -1,116 +1,120 @@
shrine-base
net.shrine
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
4.0.0
meta-app
MetaData App
jar
net.alchim31.maven
scala-maven-plugin
com.propensive
rapture-json_2.11
${rapture-version}
com.propensive
rapture-json-jawn_2.11
${rapture-version}
net.shrine
shrine-utility-commons
${project.version}
net.shrine
shrine-config
${project.version}
net.shrine
shrine-auth
${project.version}
net.shrine
shrine-qep
${project.version}
log4j
log4j
io.spray
spray-routing_2.11
${spray-version}
io.spray
spray-servlet_2.11
${spray-version}
io.spray
spray-util_2.11
${spray-version}
io.spray
spray-testkit_2.11
${spray-version}
test
com.typesafe.akka
akka-actor_2.11
${akka-version}
com.typesafe.akka
akka-slf4j_2.11
${akka-version}
com.typesafe.akka
akka-testkit_2.11
${akka-testkit-version}
test
org.json4s
json4s-native_2.11
${json4s-version}
com.typesafe
config
${typesafe-config-version}
mysql
mysql-connector-java
${mysql-version}
com.h2database
h2
test
\ No newline at end of file
diff --git a/apps/meta-war/pom.xml b/apps/meta-war/pom.xml
index 6ec1bf97e..ac3fba039 100644
--- a/apps/meta-war/pom.xml
+++ b/apps/meta-war/pom.xml
@@ -1,37 +1,41 @@
shrine-base
net.shrine
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
4.0.0
meta-war
MetaData War
war
org.apache.maven.plugins
maven-war-plugin
shrine-metadata
net.shrine
meta-app
${project.version}
org.slf4j
slf4j-log4j12
${slf4j-version}
runtime
\ No newline at end of file
diff --git a/apps/proxy/pom.xml b/apps/proxy/pom.xml
index 1bb5783fb..f013457f1 100644
--- a/apps/proxy/pom.xml
+++ b/apps/proxy/pom.xml
@@ -1,52 +1,56 @@
4.0.0
SHRINE Proxy
shrine-proxy
war
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.shrine
shrine-crypto
${project.version}
net.shrine
shrine-client
${project.version}
net.shrine
shrine-protocol
${project.version}
javax.servlet
javax.servlet-api
provided
src/main/scala
src/test/scala
shrine-proxy
net.alchim31.maven
scala-maven-plugin
diff --git a/apps/shrine-app/pom.xml b/apps/shrine-app/pom.xml
index 2268ea61a..f9a899c35 100644
--- a/apps/shrine-app/pom.xml
+++ b/apps/shrine-app/pom.xml
@@ -1,118 +1,122 @@
shrine-base
net.shrine
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
4.0.0
shrine-app
SHRINE App
jar
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.shrine
shrine-config
${project.version}
net.shrine
shrine-hms-core
${project.version}
net.shrine
shrine-qep
${project.version}
net.shrine
shrine-broadcaster-aggregator
${project.version}
net.shrine
shrine-broadcaster-service
${project.version}
net.shrine
shrine-adapter-service
${project.version}
net.shrine
shrine-crypto
${project.version}
net.shrine
shrine-ont-support
${project.version}
net.shrine
shrine-crypto
${project.version}
test-jar
test
net.shrine
shrine-protocol
${project.version}
test-jar
test
net.shrine
shrine-config
${project.version}
test-jar
test
net.shrine
shrine-broadcaster-aggregator
${project.version}
test-jar
test
net.shrine
shrine-client
${project.version}
test-jar
test
com.h2database
h2
${h2-version}
test
org.json4s
json4s-native_2.11
${json4s-version}
diff --git a/apps/steward-app/pom.xml b/apps/steward-app/pom.xml
index 9bdf19e88..598bb9c70 100644
--- a/apps/steward-app/pom.xml
+++ b/apps/steward-app/pom.xml
@@ -1,177 +1,181 @@
shrine-base
net.shrine
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
4.0.0
steward-app
Steward App
jar
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
com.github.eirslett
frontend-maven-plugin
1.0
src/main/js
install node and npm
install-node-and-npm
v7.7.3
4.1.2
npm install
npm
generate-resources
bower install
bower
gulp test and build
gulp
--no-color
io.spray
spray-routing_2.11
${spray-version}
io.spray
spray-servlet_2.11
${spray-version}
io.spray
spray-util_2.11
${spray-version}
io.spray
spray-testkit_2.11
${spray-version}
test
com.typesafe.akka
akka-actor_2.11
${akka-version}
com.typesafe.akka
akka-slf4j_2.11
${akka-version}
com.typesafe.akka
akka-testkit_2.11
${akka-testkit-version}
test
org.json4s
json4s-native_2.11
${json4s-version}
com.typesafe.slick
slick_2.11
${slick-version}
org.suecarter
freeslick_2.11
${freeslick-version}
org.slf4j
slf4j-log4j12
${slf4j-version}
com.h2database
h2
${h2-version}
test
net.shrine
shrine-protocol
${project.version}
net.shrine
shrine-email
${project.version}
net.shrine
shrine-data-commons
${project.version}
net.shrine
shrine-client
${project.version}
net.shrine
shrine-crypto
${project.version}
test-jar
test
net.shrine
shrine-auth
${project.version}
mysql
mysql-connector-java
${mysql-version}
diff --git a/apps/steward-app/src/main/js/app/assets/css/core.css b/apps/steward-app/src/main/js/app/assets/css/core.css
index 2713d6e84..9109acc20 100644
--- a/apps/steward-app/src/main/js/app/assets/css/core.css
+++ b/apps/steward-app/src/main/js/app/assets/css/core.css
@@ -1,592 +1,594 @@
@charset "UTF-8";
@font-face {
font-family: 'Nexa';
src: url("../fnt/nexa/nexa-light-webfont.eot");
src: url("../fnt/nexa/nexa-light-webfont.eot?#iefix") format("embedded-opentype"), url("../fnt/nexa/nexa-light-webfont.woff2") format("woff2"), url("../fnt/nexa/nexa-light-webfont.woff") format("woff"), url("../fnt/nexa/nexa-light-webfont.ttf") format("truetype"), url("../fnt/nexa/nexa-light-webfont.svg#nexa_lightregular") format("svg");
font-weight: normal;
font-style: normal; }
@font-face {
font-family: 'Nexa Bold';
src: url("../fnt/nexa/nexa-bold-webfont.eot");
src: url("../fnt/nexa/nexa-bold-webfont.eot?#iefix") format("embedded-opentype"), url("../fnt/nexa/nexa-bold-webfont.woff2") format("woff2"), url("../fnt/nexa/nexa-bold-webfont.woff") format("woff"), url("../fnt/nexa/nexa-bold-webfont.ttf") format("truetype"), url("../fnt/nexa/nexa-bold-webfont.svg#nexa_boldregular") format("svg");
font-weight: normal;
font-style: normal; }
@font-face {
font-family: 'Open Sans Regular';
src: url("../fnt/open-sans/opensans-regular-webfont.eot");
src: url("../fnt/open-sans/opensans-regular-webfont.eot?#iefix") format("embedded-opentype"), url("../fnt/open-sans/opensans-regular-webfont.woff2") format("woff2"), url("../fnt/open-sans/opensans-regular-webfont.woff") format("woff"), url("../fnt/open-sans/opensans-regular-webfont.ttf") format("truetype"), url("../fnt/open-sans/opensans-regular-webfont.svg#open_sansregular") format("svg");
font-weight: normal;
font-style: normal; }
@font-face {
font-family: 'Open Sans Semibold';
src: url("../fnt/open-sans/opensans-semibold-webfont.eot");
src: url("../fnt/open-sans/opensans-semibold-webfont.eot?#iefix") format("embedded-opentype"), url("../fnt/open-sans/opensans-semibold-webfont.woff2") format("woff2"), url("../fnt/open-sans/opensans-semibold-webfont.woff") format("woff"), url("../fnt/open-sans/opensans-semibold-webfont.ttf") format("truetype"), url("../fnt/open-sans/opensans-semibold-webfont.svg#open_sanssemibold") format("svg");
font-weight: normal;
font-style: normal; }
@font-face {
font-family: 'Roboto Bold';
src: url("../fnt/roboto/roboto-bold-webfont.eot");
src: url("../fnt/roboto/roboto-bold-webfont.eot?#iefix") format("embedded-opentype"), url("../fnt/roboto/roboto-bold-webfont.woff2") format("woff2"), url("../fnt/roboto/roboto-bold-webfont.woff") format("woff"), url("../fnt/roboto/roboto-bold-webfont.ttf") format("truetype"), url("../fnt/roboto/roboto-bold-webfont.svg#robotobold") format("svg");
font-weight: normal;
font-style: normal; }
@font-face {
font-family: 'Roboto Regular';
src: url("../fnt/roboto/roboto-regular-webfont.eot");
src: url("../fnt/roboto/roboto-regular-webfont.eot?#iefix") format("embedded-opentype"), url("../fnt/roboto/roboto-regular-webfont.woff2") format("woff2"), url("../fnt/roboto/roboto-regular-webfont.woff") format("woff"), url("../fnt/roboto/roboto-regular-webfont.ttf") format("truetype"), url("../fnt/roboto/roboto-regular-webfont.svg#robotoregular") format("svg");
font-weight: normal;
font-style: normal; }
.main-app {
background-image: url("../img/Background_Shrine.jpg");
background-size: cover;
background-color: transparent;
background-attachment: fixed;
width: 100%;
height: 100%;
width: calc(100vw);
height: calc(100vh);
min-width: 100%;
min-height: 100%; }
.shrine-navbar {
background-color: rgba(255, 255, 255, 0.62);
border-color: transparent;
font-family: "Nexa";
color: #5d5d5d;
min-height: 60px;
width: 100%;
height: 4.8em; }
.shrine-brand {
float: left;
padding: 22px 15px;
font-size: 30px;
line-height: 30px;
height: 30px; }
.shrine-brand strong {
font-family: "Nexa Bold";
color: #2c5566; }
.shrine-navbar .shrine-institution-logo {
background-image: url("/static/logo.png");
background-size: contain;
background-color: transparent;
background-color: rgba(255, 255, 255, 0.1);
background-repeat: no-repeat;
background-position: right top;
margin-right: 2%;
margin-top: 5px;
width: 4em;
height: 4em;
max-height: 4em;
max-width: 4em; }
.shrine-button {
cursor: pointer !important;
background-color: transparent;
border: none; }
.shrine-button span {
position: relative;
bottom: 5px; }
.shrine-btn-default {
margin-right: 6px;
border: none; }
.shrine-btn-on {
padding: 12px 12px;
border-radius: 0;
font-family: "Roboto Bold" !important;
color: #FFFFFF !important;
background: linear-gradient(rgba(4, 141, 190, 0.8), rgba(2, 89, 120, 0.8)), url("../img/bckg_diagonal_lines_no_border.png") !important; }
.shrine-btn-off {
padding: 6px 12px !important;
border-radius: 4px !important;
font-family: "Open Sans Semibold" !important;
background-color: #8896A4 !important;
color: #FFFFFF !important; }
.shrine-on, .shrine-on a {
font-family: "Roboto Bold" !important;
color: #FFFFFF !important;
background: linear-gradient(#048DBE, #025978) !important; }
.shrine-off {
font-family: "Roboto Regular" !important;
color: #2C5566 !important;
background-color: #ECEEEE !important; }
.shrine-button.disabled, .shrine-button[disabled] {
cursor: default !important;
opacity: 0.2 !important; }
.shrine-copy-bold {
font-family: "Nexa Bold";
color: #64818e; }
.shrine-copy {
font-family: "Nexa";
color: #000000; }
.row {
margin-right: 0;
margin-left: 0; }
td.error, span.error {
color: red; }
td.error a, td.error a:hover, span.error a, span.error a:hover {
color: inherit;
text-decoration: underline !important;
cursor: pointer; }
td.ok, span.ok {
color: green; }
.form-group span {
font-family: "Open Sans Semibold";
color: #2c5566; }
fieldset button {
color: #2E5366; }
fieldset button:hover, form a:hover {
color: #008CBA;
text-decoration: none;
cursor: pointer; }
form a {
font-family: "Open Sans Regular";
color: #647d8d;
text-decoration: none; }
footer img {
margin-left: 10px;
margin-top: 2px; }
footer {
background-color: rgba(50, 62, 74, 0.48);
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: 83px;
min-height: 83px;
max-width: 100%; }
table {
background-image: url("../img/bckg_diagonal_lines_no_border.png");
border: 1px solid #CCD8DF; }
.table tr > td:first-child {
width: 20%;
min-width: 140px; }
.table tr > td.thin-col {
width: 6%;
min-width: 35px; }
.table-striped > tbody > tr:nth-of-type(odd) {
background-color: #EFF6F9; }
.table-striped > tbody > tr:nth-of-type(even) {
background-color: #FFFFFF; }
thead tr {
border: 1px solid #CCD8DF; }
td {
border-right: 1px solid #CCD8DF;
overflow: hidden;
max-width: 450px;
word-break: break-all; }
thead tr td, thead tr td label, tfoot tr td span {
font-family: "Open Sans Semibold";
color: #003153; }
td a, td a:hover {
text-decoration: none !important;
cursor: pointer;
font-family: "Open Sans Semibold";
color: #003153; }
.shrine-panel {
background-image: url("../img/bckg_diagonal_lines.png");
background-size: 100% 100%;
padding-right: 20px;
padding-left: 20px;
padding-top: 30px;
- padding-bottom: 30px; }
+ padding-bottom: 30px;
+ width: 100%;
+ margin-left: 30%; }
/*!
* Start Bootstrap - SB Admin 2 Bootstrap Admin Theme (http://startbootstrap.com)
* Code licensed under the Apache License v2.0.
* For details, see http://www.apache.org/licenses/LICENSE-2.0.
*/
body {
background-image: url("../img/Background_Shrine.jpg");
background-repeat: no-repeat;
background-size: 100% 100%; }
#wrapper {
width: 100%;
padding-bottom: 83px;
/* clearance space for footer at bottom of long page */ }
.login-wrapper {
margin-top: 51px;
margin-right: 20px; }
#page-wrapper {
background-color: transparent;
margin-top: 54px;
margin-right: 20px; }
.navbar-top-links li {
display: inline-block; }
.navbar-top-links li:last-child {
margin-right: 15px; }
.navbar-top-links li a {
padding: 15px;
min-height: 50px;
font-family: "Open Sans Semibold";
color: #2c5566; }
.navbar-top-links .dropdown-menu li {
font-family: "Open Sans Semibold";
color: #2c5566;
display: block; }
.navbar-top-links .dropdown-menu li:last-child {
margin-right: 0; }
.navbar-top-links .dropdown-menu li a {
padding: 3px 20px;
min-height: 0; }
.navbar-top-links .dropdown-menu li a div {
white-space: normal; }
.navbar-top-links .dropdown-messages,
.navbar-top-links .dropdown-tasks,
.navbar-top-links .dropdown-alerts {
width: 310px;
min-width: 0; }
.navbar-top-links .dropdown-messages {
margin-left: 5px; }
.navbar-top-links .dropdown-tasks {
margin-left: -59px; }
.navbar-top-links .dropdown-alerts {
margin-left: -123px; }
.navbar-top-links {
right: 0;
left: auto; }
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0; }
.sidebar .sidebar-search {
padding: 15px; }
.sidebar ul li {
border-bottom: 1px solid #e7e7e7; }
.sidebar ul li a.active {
background-color: #eee; }
.sidebar .arrow {
float: right; }
.sidebar .fa.arrow:before {
content: "\f104"; }
.sidebar .active > a > .fa.arrow:before {
content: "\f107"; }
.sidebar .nav-second-level li,
.sidebar .nav-third-level li {
border-bottom: 0 !important; }
.sidebar .nav-second-level li a {
padding-left: 37px; }
.sidebar .nav-third-level li a {
padding-left: 52px; }
@media (min-width: 768px) {
.sidebar {
z-index: 1;
margin-top: 51px; }
.navbar-top-links .dropdown-messages,
.navbar-top-links .dropdown-tasks,
.navbar-top-links .dropdown-alerts {
margin-left: auto; } }
.btn-outline {
color: inherit;
background-color: transparent;
transition: all .5s; }
.btn-primary.btn-outline {
color: #428bca; }
.btn-success.btn-outline {
color: #5cb85c; }
.btn-info.btn-outline {
color: #5bc0de; }
.btn-warning.btn-outline {
color: #f0ad4e; }
.btn-danger.btn-outline {
color: #d9534f; }
.btn-primary.btn-outline:hover,
.btn-success.btn-outline:hover,
.btn-info.btn-outline:hover,
.btn-warning.btn-outline:hover,
.btn-danger.btn-outline:hover {
color: #fff; }
.chat {
margin: 0;
padding: 0;
list-style: none; }
.chat li {
margin-bottom: 10px;
padding-bottom: 5px;
border-bottom: 1px dotted #999; }
.chat li.left .chat-body {
margin-left: 60px; }
.chat li.right .chat-body {
margin-right: 60px; }
.chat li .chat-body p {
margin: 0; }
.panel .slidedown .glyphicon,
.chat .glyphicon {
margin-right: 5px; }
.chat-panel .panel-body {
height: 350px;
overflow-y: scroll; }
.login-panel {
margin-top: 25%; }
.flot-chart {
display: block;
height: 400px; }
.flot-chart-content {
width: 100%;
height: 100%; }
.dataTables_wrapper {
position: relative;
clear: both; }
table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
background: 0 0; }
table.dataTable thead .sorting_asc:after {
content: "\f0de";
float: right;
font-family: fontawesome; }
table.dataTable thead .sorting_desc:after {
content: "\f0dd";
float: right;
font-family: fontawesome; }
table.dataTable thead .sorting:after {
content: "\f0dc";
float: right;
font-family: fontawesome;
color: rgba(50, 50, 50, 0.5); }
.btn-circle {
width: 30px;
height: 30px;
padding: 6px 0;
border-radius: 15px;
text-align: center;
font-size: 12px;
line-height: 1.428571429; }
.btn-circle.btn-lg {
width: 50px;
height: 50px;
padding: 10px 16px;
border-radius: 25px;
font-size: 18px;
line-height: 1.33; }
.btn-circle.btn-xl {
width: 70px;
height: 70px;
padding: 10px 16px;
border-radius: 35px;
font-size: 24px;
line-height: 1.33; }
.show-grid [class^=col-] {
padding-top: 10px;
padding-bottom: 10px;
border: 1px solid #ddd;
background-color: #eee !important; }
.show-grid {
margin: 15px 0; }
.huge {
font-size: 40px; }
.panel-green {
border-color: #5cb85c; }
.panel-green .panel-heading {
border-color: #5cb85c;
color: #fff;
background-color: #5cb85c; }
.panel-green a {
color: #5cb85c; }
.panel-green a:hover {
color: #3d8b3d; }
.panel-red {
border-color: #d9534f; }
.panel-red .panel-heading {
border-color: #d9534f;
color: #fff;
background-color: #d9534f; }
.panel-red a {
color: #d9534f; }
.panel-red a:hover {
color: #b52b27; }
.panel-yellow {
border-color: #f0ad4e; }
.panel-yellow .panel-heading {
border-color: #f0ad4e;
color: #fff;
background-color: #f0ad4e; }
.panel-yellow a {
color: #f0ad4e; }
.panel-yellow a:hover {
color: #df8a13; }
.modal-content {
border: none; }
.shrine-modal {
background-color: white;
border: 1px solid #2c5566;
font-family: "Open Sans Semibold";
color: #2e5366;
padding: 15px; }
.shrine-modal form div.col-sm-12 {
border: 1px solid rgba(2, 89, 120, 0.8); }
.shrine-modal input, .shrine-modal textarea {
border-radius: 0px;
border: 1px solid #2c5566; }
.shrine-modal span {
font-family: "Nexa Bold";
color: #2e5366; }
.shrine-modal span:hover {
font-family: "Nexa Bold";
color: #008CBA; }
.shrine-modal button {
background-color: white;
border: none;
font-family: "Nexa Bold";
color: #2e5366; }
.shrine-modal button span {
position: relative;
bottom: 6px; }
.shrine-modal button:hover, .btn-success {
font-family: "Nexa Bold";
color: #008CBA;
background-color: transparent;
border: none; }
.shrine-login {
margin-top: 8%;
margin-left: 1%; }
.shrine-content {
overflow: auto; }
/*Fix for resizeable text area.*/
textarea {
resize: none; }
@media (min-width: 768px) {
.shrine-content {
padding: 0; } }
.shrine-calendar-input {
margin-right: 1px;
max-width: 50%; }
i.shrine-close {
float: right;
margin-top: -40px;
margin-right: -40px;
cursor: pointer;
color: #fff;
border: 2px solid #C8CED1;
border-radius: 30px;
background: #8896a4;
font-size: 31px;
font-weight: normal;
display: inline-block;
line-height: 0px;
padding: 11px 3px;
font-style: normal; }
i.shrine-close:hover {
background: #008cba; }
.shrine-close:before {
content: "×"; }
diff --git a/apps/steward-app/src/main/js/app/assets/css/shrine.css b/apps/steward-app/src/main/js/app/assets/css/shrine.css
index f64be8915..9277c2c03 100644
--- a/apps/steward-app/src/main/js/app/assets/css/shrine.css
+++ b/apps/steward-app/src/main/js/app/assets/css/shrine.css
@@ -1,1147 +1,1149 @@
@charset "UTF-8";
/* import timeline.scss */
@font-face {
font-family: 'Nexa';
src: url("../fnt/nexa/nexa-light-webfont.eot");
src: url("../fnt/nexa/nexa-light-webfont.eot?#iefix") format("embedded-opentype"), url("../fnt/nexa/nexa-light-webfont.woff2") format("woff2"), url("../fnt/nexa/nexa-light-webfont.woff") format("woff"), url("../fnt/nexa/nexa-light-webfont.ttf") format("truetype"), url("../fnt/nexa/nexa-light-webfont.svg#nexa_lightregular") format("svg");
font-weight: normal;
font-style: normal; }
@font-face {
font-family: 'Nexa Bold';
src: url("../fnt/nexa/nexa-bold-webfont.eot");
src: url("../fnt/nexa/nexa-bold-webfont.eot?#iefix") format("embedded-opentype"), url("../fnt/nexa/nexa-bold-webfont.woff2") format("woff2"), url("../fnt/nexa/nexa-bold-webfont.woff") format("woff"), url("../fnt/nexa/nexa-bold-webfont.ttf") format("truetype"), url("../fnt/nexa/nexa-bold-webfont.svg#nexa_boldregular") format("svg");
font-weight: normal;
font-style: normal; }
@font-face {
font-family: 'Open Sans Regular';
src: url("../fnt/open-sans/opensans-regular-webfont.eot");
src: url("../fnt/open-sans/opensans-regular-webfont.eot?#iefix") format("embedded-opentype"), url("../fnt/open-sans/opensans-regular-webfont.woff2") format("woff2"), url("../fnt/open-sans/opensans-regular-webfont.woff") format("woff"), url("../fnt/open-sans/opensans-regular-webfont.ttf") format("truetype"), url("../fnt/open-sans/opensans-regular-webfont.svg#open_sansregular") format("svg");
font-weight: normal;
font-style: normal; }
@font-face {
font-family: 'Open Sans Semibold';
src: url("../fnt/open-sans/opensans-semibold-webfont.eot");
src: url("../fnt/open-sans/opensans-semibold-webfont.eot?#iefix") format("embedded-opentype"), url("../fnt/open-sans/opensans-semibold-webfont.woff2") format("woff2"), url("../fnt/open-sans/opensans-semibold-webfont.woff") format("woff"), url("../fnt/open-sans/opensans-semibold-webfont.ttf") format("truetype"), url("../fnt/open-sans/opensans-semibold-webfont.svg#open_sanssemibold") format("svg");
font-weight: normal;
font-style: normal; }
@font-face {
font-family: 'Roboto Bold';
src: url("../fnt/roboto/roboto-bold-webfont.eot");
src: url("../fnt/roboto/roboto-bold-webfont.eot?#iefix") format("embedded-opentype"), url("../fnt/roboto/roboto-bold-webfont.woff2") format("woff2"), url("../fnt/roboto/roboto-bold-webfont.woff") format("woff"), url("../fnt/roboto/roboto-bold-webfont.ttf") format("truetype"), url("../fnt/roboto/roboto-bold-webfont.svg#robotobold") format("svg");
font-weight: normal;
font-style: normal; }
@font-face {
font-family: 'Roboto Regular';
src: url("../fnt/roboto/roboto-regular-webfont.eot");
src: url("../fnt/roboto/roboto-regular-webfont.eot?#iefix") format("embedded-opentype"), url("../fnt/roboto/roboto-regular-webfont.woff2") format("woff2"), url("../fnt/roboto/roboto-regular-webfont.woff") format("woff"), url("../fnt/roboto/roboto-regular-webfont.ttf") format("truetype"), url("../fnt/roboto/roboto-regular-webfont.svg#robotoregular") format("svg");
font-weight: normal;
font-style: normal; }
.main-app {
background-image: url("../img/Background_Shrine.jpg");
background-size: cover;
background-color: transparent;
background-attachment: fixed;
width: 100%;
height: 100%;
width: calc(100vw);
height: calc(100vh);
min-width: 100%;
min-height: 100%; }
.shrine-navbar {
background-color: rgba(255, 255, 255, 0.62);
border-color: transparent;
font-family: "Nexa";
color: #5d5d5d;
min-height: 60px;
width: 100%;
height: 4.8em; }
.shrine-brand {
float: left;
padding: 22px 15px;
font-size: 30px;
line-height: 30px;
height: 30px; }
.shrine-brand strong {
font-family: "Nexa Bold";
color: #2c5566; }
.shrine-navbar .shrine-institution-logo {
background-image: url("/static/logo.png");
background-size: contain;
background-color: transparent;
background-color: rgba(255, 255, 255, 0.1);
background-repeat: no-repeat;
background-position: right top;
margin-right: 2%;
margin-top: 5px;
width: 4em;
height: 4em;
max-height: 4em;
max-width: 4em; }
.shrine-button {
cursor: pointer !important;
background-color: transparent;
border: none; }
.shrine-button span {
position: relative;
bottom: 5px; }
.shrine-btn-default {
margin-right: 6px;
border: none; }
.shrine-btn-on {
padding: 12px 12px;
border-radius: 0;
font-family: "Roboto Bold" !important;
color: #FFFFFF !important;
background: linear-gradient(rgba(4, 141, 190, 0.8), rgba(2, 89, 120, 0.8)), url("../img/bckg_diagonal_lines_no_border.png") !important; }
.shrine-btn-off {
padding: 6px 12px !important;
border-radius: 4px !important;
font-family: "Open Sans Semibold" !important;
background-color: #8896A4 !important;
color: #FFFFFF !important; }
.shrine-on, .shrine-on a {
font-family: "Roboto Bold" !important;
color: #FFFFFF !important;
background: linear-gradient(#048DBE, #025978) !important; }
.shrine-off {
font-family: "Roboto Regular" !important;
color: #2C5566 !important;
background-color: #ECEEEE !important; }
.shrine-button.disabled, .shrine-button[disabled] {
cursor: default !important;
opacity: 0.2 !important; }
.shrine-copy-bold {
font-family: "Nexa Bold";
color: #64818e; }
.shrine-copy {
font-family: "Nexa";
color: #000000; }
.row {
margin-right: 0;
margin-left: 0; }
td.error, span.error {
color: red; }
td.error a, td.error a:hover, span.error a, span.error a:hover {
color: inherit;
text-decoration: underline !important;
cursor: pointer; }
td.ok, span.ok {
color: green; }
.form-group span {
font-family: "Open Sans Semibold";
color: #2c5566; }
fieldset button {
color: #2E5366; }
fieldset button:hover, form a:hover {
color: #008CBA;
text-decoration: none;
cursor: pointer; }
form a {
font-family: "Open Sans Regular";
color: #647d8d;
text-decoration: none; }
footer img {
margin-left: 10px;
margin-top: 2px; }
footer {
background-color: rgba(50, 62, 74, 0.48);
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: 83px;
min-height: 83px;
max-width: 100%; }
table {
background-image: url("../img/bckg_diagonal_lines_no_border.png");
border: 1px solid #CCD8DF; }
.table tr > td:first-child {
width: 20%;
min-width: 140px; }
.table tr > td.thin-col {
width: 6%;
min-width: 35px; }
.table-striped > tbody > tr:nth-of-type(odd) {
background-color: #EFF6F9; }
.table-striped > tbody > tr:nth-of-type(even) {
background-color: #FFFFFF; }
thead tr {
border: 1px solid #CCD8DF; }
td {
border-right: 1px solid #CCD8DF;
overflow: hidden;
max-width: 450px;
word-break: break-all; }
thead tr td, thead tr td label, tfoot tr td span {
font-family: "Open Sans Semibold";
color: #003153; }
td a, td a:hover {
text-decoration: none !important;
cursor: pointer;
font-family: "Open Sans Semibold";
color: #003153; }
.shrine-panel {
background-image: url("../img/bckg_diagonal_lines.png");
background-size: 100% 100%;
padding-right: 20px;
padding-left: 20px;
padding-top: 30px;
- padding-bottom: 30px; }
+ padding-bottom: 30px;
+ width: 100%;
+ margin-left: 30%; }
/*!
* Start Bootstrap - SB Admin 2 Bootstrap Admin Theme (http://startbootstrap.com)
* Code licensed under the Apache License v2.0.
* For details, see http://www.apache.org/licenses/LICENSE-2.0.
*/
body {
background-image: url("../img/Background_Shrine.jpg");
background-repeat: no-repeat;
background-size: 100% 100%; }
#wrapper {
width: 100%;
padding-bottom: 83px;
/* clearance space for footer at bottom of long page */ }
.login-wrapper {
margin-top: 51px;
margin-right: 20px; }
#page-wrapper {
background-color: transparent;
margin-top: 54px;
margin-right: 20px; }
.navbar-top-links li {
display: inline-block; }
.navbar-top-links li:last-child {
margin-right: 15px; }
.navbar-top-links li a {
padding: 15px;
min-height: 50px;
font-family: "Open Sans Semibold";
color: #2c5566; }
.navbar-top-links .dropdown-menu li {
font-family: "Open Sans Semibold";
color: #2c5566;
display: block; }
.navbar-top-links .dropdown-menu li:last-child {
margin-right: 0; }
.navbar-top-links .dropdown-menu li a {
padding: 3px 20px;
min-height: 0; }
.navbar-top-links .dropdown-menu li a div {
white-space: normal; }
.navbar-top-links .dropdown-messages,
.navbar-top-links .dropdown-tasks,
.navbar-top-links .dropdown-alerts {
width: 310px;
min-width: 0; }
.navbar-top-links .dropdown-messages {
margin-left: 5px; }
.navbar-top-links .dropdown-tasks {
margin-left: -59px; }
.navbar-top-links .dropdown-alerts {
margin-left: -123px; }
.navbar-top-links {
right: 0;
left: auto; }
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0; }
.sidebar .sidebar-search {
padding: 15px; }
.sidebar ul li {
border-bottom: 1px solid #e7e7e7; }
.sidebar ul li a.active {
background-color: #eee; }
.sidebar .arrow {
float: right; }
.sidebar .fa.arrow:before {
content: "\f104"; }
.sidebar .active > a > .fa.arrow:before {
content: "\f107"; }
.sidebar .nav-second-level li,
.sidebar .nav-third-level li {
border-bottom: 0 !important; }
.sidebar .nav-second-level li a {
padding-left: 37px; }
.sidebar .nav-third-level li a {
padding-left: 52px; }
@media (min-width: 768px) {
.sidebar {
z-index: 1;
margin-top: 51px; }
.navbar-top-links .dropdown-messages,
.navbar-top-links .dropdown-tasks,
.navbar-top-links .dropdown-alerts {
margin-left: auto; } }
.btn-outline {
color: inherit;
background-color: transparent;
transition: all .5s; }
.btn-primary.btn-outline {
color: #428bca; }
.btn-success.btn-outline {
color: #5cb85c; }
.btn-info.btn-outline {
color: #5bc0de; }
.btn-warning.btn-outline {
color: #f0ad4e; }
.btn-danger.btn-outline {
color: #d9534f; }
.btn-primary.btn-outline:hover,
.btn-success.btn-outline:hover,
.btn-info.btn-outline:hover,
.btn-warning.btn-outline:hover,
.btn-danger.btn-outline:hover {
color: #fff; }
.chat {
margin: 0;
padding: 0;
list-style: none; }
.chat li {
margin-bottom: 10px;
padding-bottom: 5px;
border-bottom: 1px dotted #999; }
.chat li.left .chat-body {
margin-left: 60px; }
.chat li.right .chat-body {
margin-right: 60px; }
.chat li .chat-body p {
margin: 0; }
.panel .slidedown .glyphicon,
.chat .glyphicon {
margin-right: 5px; }
.chat-panel .panel-body {
height: 350px;
overflow-y: scroll; }
.login-panel {
margin-top: 25%; }
.flot-chart {
display: block;
height: 400px; }
.flot-chart-content {
width: 100%;
height: 100%; }
.dataTables_wrapper {
position: relative;
clear: both; }
table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
background: 0 0; }
table.dataTable thead .sorting_asc:after {
content: "\f0de";
float: right;
font-family: fontawesome; }
table.dataTable thead .sorting_desc:after {
content: "\f0dd";
float: right;
font-family: fontawesome; }
table.dataTable thead .sorting:after {
content: "\f0dc";
float: right;
font-family: fontawesome;
color: rgba(50, 50, 50, 0.5); }
.btn-circle {
width: 30px;
height: 30px;
padding: 6px 0;
border-radius: 15px;
text-align: center;
font-size: 12px;
line-height: 1.428571429; }
.btn-circle.btn-lg {
width: 50px;
height: 50px;
padding: 10px 16px;
border-radius: 25px;
font-size: 18px;
line-height: 1.33; }
.btn-circle.btn-xl {
width: 70px;
height: 70px;
padding: 10px 16px;
border-radius: 35px;
font-size: 24px;
line-height: 1.33; }
.show-grid [class^=col-] {
padding-top: 10px;
padding-bottom: 10px;
border: 1px solid #ddd;
background-color: #eee !important; }
.show-grid {
margin: 15px 0; }
.huge {
font-size: 40px; }
.panel-green {
border-color: #5cb85c; }
.panel-green .panel-heading {
border-color: #5cb85c;
color: #fff;
background-color: #5cb85c; }
.panel-green a {
color: #5cb85c; }
.panel-green a:hover {
color: #3d8b3d; }
.panel-red {
border-color: #d9534f; }
.panel-red .panel-heading {
border-color: #d9534f;
color: #fff;
background-color: #d9534f; }
.panel-red a {
color: #d9534f; }
.panel-red a:hover {
color: #b52b27; }
.panel-yellow {
border-color: #f0ad4e; }
.panel-yellow .panel-heading {
border-color: #f0ad4e;
color: #fff;
background-color: #f0ad4e; }
.panel-yellow a {
color: #f0ad4e; }
.panel-yellow a:hover {
color: #df8a13; }
.modal-content {
border: none; }
.shrine-modal {
background-color: white;
border: 1px solid #2c5566;
font-family: "Open Sans Semibold";
color: #2e5366;
padding: 15px; }
.shrine-modal form div.col-sm-12 {
border: 1px solid rgba(2, 89, 120, 0.8); }
.shrine-modal input, .shrine-modal textarea {
border-radius: 0px;
border: 1px solid #2c5566; }
.shrine-modal span {
font-family: "Nexa Bold";
color: #2e5366; }
.shrine-modal span:hover {
font-family: "Nexa Bold";
color: #008CBA; }
.shrine-modal button {
background-color: white;
border: none;
font-family: "Nexa Bold";
color: #2e5366; }
.shrine-modal button span {
position: relative;
bottom: 6px; }
.shrine-modal button:hover, .btn-success {
font-family: "Nexa Bold";
color: #008CBA;
background-color: transparent;
border: none; }
.shrine-login {
margin-top: 8%;
margin-left: 1%; }
.shrine-content {
overflow: auto; }
/*Fix for resizeable text area.*/
textarea {
resize: none; }
@media (min-width: 768px) {
.shrine-content {
padding: 0; } }
.shrine-calendar-input {
margin-right: 1px;
max-width: 50%; }
i.shrine-close {
float: right;
margin-top: -40px;
margin-right: -40px;
cursor: pointer;
color: #fff;
border: 2px solid #C8CED1;
border-radius: 30px;
background: #8896a4;
font-size: 31px;
font-weight: normal;
display: inline-block;
line-height: 0px;
padding: 11px 3px;
font-style: normal; }
i.shrine-close:hover {
background: #008cba; }
.shrine-close:before {
content: "×"; }
.timeline {
position: relative;
padding: 20px 0 20px;
list-style: none; }
.timeline:before {
content: " ";
position: absolute;
top: 0;
bottom: 0;
left: 50%;
width: 3px;
margin-left: -1.5px;
background-color: #eeeeee; }
.timeline > li {
position: relative;
margin-bottom: 20px; }
.timeline > li:before,
.timeline > li:after {
content: " ";
display: table; }
.timeline > li:after {
clear: both; }
.timeline > li:before,
.timeline > li:after {
content: " ";
display: table; }
.timeline > li:after {
clear: both; }
.timeline > li > .timeline-panel {
float: left;
position: relative;
width: 46%;
padding: 20px;
border: 1px solid #d4d4d4;
border-radius: 2px;
-webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, 0.175);
box-shadow: 0 1px 6px rgba(0, 0, 0, 0.175); }
.timeline > li > .timeline-panel:before {
content: " ";
display: inline-block;
position: absolute;
top: 26px;
right: -15px;
border-top: 15px solid transparent;
border-right: 0 solid #ccc;
border-bottom: 15px solid transparent;
border-left: 15px solid #ccc; }
.timeline > li > .timeline-panel:after {
content: " ";
display: inline-block;
position: absolute;
top: 27px;
right: -14px;
border-top: 14px solid transparent;
border-right: 0 solid #fff;
border-bottom: 14px solid transparent;
border-left: 14px solid #fff; }
.timeline > li > .timeline-badge {
z-index: 100;
position: absolute;
top: 16px;
left: 50%;
width: 50px;
height: 50px;
margin-left: -25px;
border-radius: 50% 50% 50% 50%;
text-align: center;
font-size: 1.4em;
line-height: 50px;
color: #fff;
background-color: #999999; }
.timeline > li.timeline-inverted > .timeline-panel {
float: right; }
.timeline > li.timeline-inverted > .timeline-panel:before {
right: auto;
left: -15px;
border-right-width: 15px;
border-left-width: 0; }
.timeline > li.timeline-inverted > .timeline-panel:after {
right: auto;
left: -14px;
border-right-width: 14px;
border-left-width: 0; }
.timeline-badge.primary {
background-color: #2e6da4 !important; }
.timeline-badge.success {
background-color: #3f903f !important; }
.timeline-badge.warning {
background-color: #f0ad4e !important; }
.timeline-badge.danger {
background-color: #d9534f !important; }
.timeline-badge.info {
background-color: #5bc0de !important; }
.timeline-title {
margin-top: 0;
color: inherit; }
.timeline-body > p,
.timeline-body > ul {
margin-bottom: 0; }
.timeline-body > p + p {
margin-top: 5px; }
@media (max-width: 767px) {
ul.timeline:before {
left: 40px; }
ul.timeline > li > .timeline-panel {
width: calc(100% - 90px);
width: -moz-calc(100% - 90px);
width: -webkit-calc(100% - 90px); }
ul.timeline > li > .timeline-badge {
top: 16px;
left: 15px;
margin-left: 0; }
ul.timeline > li > .timeline-panel {
float: right; }
ul.timeline > li > .timeline-panel:before {
right: auto;
left: -15px;
border-right-width: 15px;
border-left-width: 0; }
ul.timeline > li > .timeline-panel:after {
right: auto;
left: -14px;
border-right-width: 14px;
border-left-width: 0; } }
/* -- stats-graph styles -- */
.stats-minimized, .stats-graph-minimized, .stats-ontology-minimized {
cursor: pointer;
opacity: .7; }
.stats-minimized:hover, .stats-graph-minimized:hover, .stats-ontology-minimized:hover {
border: 1px solid white;
opacity: 1; }
.stats-graph-minimized {
transform: translate(60%, -20%) scale(0.1, 0.25); }
.stats-ontology-minimized {
transform: translate(60%, 0%) scale(0.1, 0.25); }
.stats-stage-base, .stats-graph-container, .stats-ontology-container {
padding-bottom: 0px;
padding-top: 0px;
color: white;
margin: 0 auto;
width: 100%; }
.stats-graph-container {
border-bottom: none;
overflow: hidden;
padding-top: .6em; }
.stats-ontology-container {
overflow: auto;
height: 100vh; }
.stats-graph-container .bar-bg {
background-color: white;
height: 30px;
margin: 0 auto 10px auto;
line-height: 30px;
font-size: 16px;
font-family: Roboto, sans-serif;
font-weight: 100;
color: white;
padding: 0 0 0 10px;
position: relative; }
.stats-graph-container .bar-bg .user {
position: absolute;
z-index: 4;
left: .2em; }
.stats-graph-container .bar-bg .bar {
opacity: .8;
z-index: 1;
background-color: #125c8a;
border: 1px solid #1c8ed6;
height: 30px;
transition: 0.7s;
width: 100%;
display: block;
animation: stats-bar-before 1 1.8s;
position: absolute;
top: 0;
left: 0;
z-index: 2;
padding-right: 8px;
text-align: right; }
.stats-graph-container .bar-bg .bar:hover {
background: rgba(0, 0, 0, 0.5);
cursor: pointer; }
@keyframes stats-bar-before {
0% {
width: 0px; }
100% {
width: 100%; } }
.digest ul {
top: 15rem;
left: 5rem;
float: left;
clear: left;
margin: .25em;
padding: 0; }
.digest ul::before {
display: none; }
.digest ul li {
display: block;
position: relative;
float: left;
clear: both;
right: auto;
padding-left: 1em;
width: auto;
text-align: center;
color: white;
animation: showterm .25s; }
.digest ul li a {
display: block;
position: relative;
float: left;
z-index: 4;
margin: .25em;
padding: .25em;
background: white;
color: #C0C0C0;
border: 2px solid #94a0b4;
border-radius: .5rem;
transition: all .75s;
font-weight: 300;
font-family: sans-serif; }
.digest .expandable {
position: absolute;
z-index: 4;
top: 0;
left: -.5em;
margin: .65em;
padding: 0;
width: .8em;
height: .8em;
text-align: center;
line-height: .6em;
font-size: 1em;
background-color: white;
color: #C0C0C0;
border: 1px solid #94a0b4;
border-radius: .25rem; }
.digest > ul {
position: relative;
font-family: "Georgia"; }
.digest > ul:before {
left: .5em; }
.digest > ul:after {
display: none; }
@keyframes showterm {
0% {
top: -.5rem;
opacity: 0; }
100% {
top: 0rem;
opacity: 1; } }
ul:after {
color: blue;
border: solid gray 1px;
border-radius: .1em; }
ul > li > a {
color: blue;
background: white; }
.digest li span.expandable:hover,
.digest li span.expandable:hover + a,
.digest li span.expandable:hover + a + ul li a,
.digest li a:hover,
.digest li a:hover + ul li a {
background: rgba(50, 130, 136, 0) !important;
color: #fff;
cursor: pointer;
z-index: 1000;
text-decoration: none; }
.digest li a:hover + ul li::after,
.digest li a:hover + ul li::before,
.digest li a:hover + ul::before,
.digest li a:hover + ul ul::before {
border-color: #99C794 !important; }
/* color settings */
a {
font-family: "Roboto", sans-serif;
font-size: 14px;
font-weight: 400;
line-height: 1.5em;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
color: #000000; }
.red {
background: rgba(158, 56, 68, 0.5) !important;
border: 1px solid #9e3844 !important; }
.dark-red {
background: rgba(236, 95, 103, 0.5) !important;
border: 1px solid #EC5F67 !important; }
.dark-blue {
background: rgba(53, 105, 151, 0.75) !important;
border: 1px solid #6699CC !important; }
.blue {
background: rgba(102, 153, 204, 0.25) !important;
border: 1px solid #6699CC !important; }
.purple {
background: rgba(197, 148, 197, 0.5) !important;
border: 1px solid #C594C0 !important; }
.ont-hidden {
margin: auto;
position: fixed;
top: 100px;
left: 0;
right: 0;
width: 50%;
max-width: 630px;
min-width: 320px;
opacity: 0;
height: auto;
z-index: 2000;
visibility: hidden;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
backface-visibility: hidden; }
.ont-overlay {
position: fixed;
width: 100%;
height: 100%;
visibility: visible;
top: 0;
left: 0;
z-index: 2000;
opacity: 1;
background: rgba(0, 0, 0, 0.9);
-webkit-transition: all 0.3s;
-moz-transition: all 0.3s;
transition: all 0.1s; }
button.ont-close {
display: block;
background: transparent;
color: #c0c0c0;
right: 2%;
top: 2%;
position: absolute;
border-radius: 9px;
font-size: 20px;
cursor: pointer;
border: none; }
button.ont-close:hover {
color: #fff; }
.tooltip-toggle {
cursor: pointer;
position: relative; }
.tooltip-toggle::before {
border: 1px solid rgba(255, 255, 255, 0.8);
position: absolute;
top: -5rem;
left: -3rem;
background-color: rgba(0, 0, 0, 0.8);
border-radius: 5px;
color: #fff;
content: attr(aria-label);
padding: 1rem;
text-transform: none;
-webkit-transition: all 2s;
transition: all 2s;
width: 160px; }
.tooltip-toggle::after {
position: absolute;
top: -.8rem;
left: 5rem;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 5px solid white;
content: " ";
font-size: 0;
line-height: 0;
margin-left: -5px;
width: 0; }
.tooltip-toggle::before, .tooltip-toggle::after {
color: #efefef;
font-family: monospace;
font-size: 16px;
opacity: 0;
pointer-events: none;
text-align: center; }
.tooltip-toggle:focus::before, .tooltip-toggle:focus::after, .tooltip-toggle:hover::before, .tooltip-toggle:hover::after {
opacity: 1;
-webkit-transition: all 2s;
transition: all 2s; }
.topic-dropdown {
z-index: 20000;
margin: 4rem;
left: 0%;
color: rgba(0, 0, 0, 0.87);
font-family: "Roboto", sans-serif;
font-size: 14px;
font-weight: 300;
line-height: 1.5em;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
position: fixed; }
.topic-dropdown div.title {
text-transform: uppercase;
font-weight: 500;
font-size: 1.3em;
color: #63BCF8; }
.topic-dropdown .tdd-btn {
text-align: left;
max-width: 1000px;
outline: 0;
/* takes care of blue outline */
display: -webkit-inline-box;
display: -webkit-inline-flex;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: justify;
-webkit-justify-content: space-between;
-ms-flex-pack: justify;
justify-content: space-between;
background: rgba(0, 0, 0, 0.75);
border: 1px solid #63BCF8 !important;
min-width: 400px;
border: 0;
border-radius: 4px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
box-sizing: border-box;
padding: 16px 20px;
color: #FFFFFF;
font-size: 12px;
font-weight: 300;
letter-spacing: 1.2px;
text-transform: uppercase;
overflow: hidden;
cursor: pointer; }
.topic-dropdown .tdd-btn:hover {
cursor: pointer; }
.topic-dropdown .tdd-list {
position: absolute;
top: 100%;
left: 0px;
background: rgba(0, 0, 0, 0.75);
border: 1px solid #63BCF8 !important;
width: 100%;
border-radius: 4px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
text-align: left;
opacity: 0;
visibility: hidden;
-webkit-transition: 0.3s ease;
transition: 0.3s ease;
max-height: 75vh;
overflow: auto; }
.topic-dropdown .tdd-list a {
display: block;
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
padding: 16px 0;
color: inherit;
text-decoration: none;
background: none !important; }
.topic-dropdown .tdd-list:before {
content: '';
position: absolute;
top: -6px;
left: 20px;
width: 0;
height: 0;
box-shadow: 2px -2px 6px rgba(0, 0, 0, 0.05);
border-top: 6px solid #63BCF8;
border-right: 6px solid #63BCF8;
border-bottom: 6px solid transparent;
border-left: 6px solid transparent;
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
mix-blend-mode: multiple; }
.topic-dropdown .tdd-list li {
z-index: 100;
position: relative;
padding: 0 20px;
color: white; }
.topic-dropdown .tdd-list li.active {
color: #5380F7; }
.topic-dropdown .tdd-list li:first-child {
border-radius: 4px 4px 0 0; }
.topic-dropdown .tdd-list li:last-child {
border-radius: 0 0 4px 4px; }
.topic-dropdown .tdd-list li:last-child a {
border-bottom: 0; }
.topic-dropdown .tdd-list-open {
-webkit-transform: translate(0, 20px);
transform: translate(0, 20px);
opacity: 1 !important;
visibility: visible !important; }
.dropdown-arrow {
content: '';
opacity: .8;
position: absolute;
right: 10px;
top: 43px;
width: 0;
height: 0;
box-shadow: 2px -2px 6px rgba(0, 0, 0, 0.05);
border-top: 4px solid #63BCF8;
border-right: 4px solid #63BCF8;
border-bottom: 4px solid transparent;
border-left: 4px solid transparent;
-webkit-transform: rotate(-45deg);
transform: rotate(135deg); }
diff --git a/apps/steward-app/src/main/js/app/client/statistics/query-digest/topic-dropdown.js b/apps/steward-app/src/main/js/app/client/statistics/query-digest/topic-dropdown.js
index 214f5cb5e..29cb73a29 100644
--- a/apps/steward-app/src/main/js/app/client/statistics/query-digest/topic-dropdown.js
+++ b/apps/steward-app/src/main/js/app/client/statistics/query-digest/topic-dropdown.js
@@ -1,57 +1,59 @@
(function () {
'use strict';
angular.module('shrine.steward.statistics')
.directive('topicDropdown', TopicDropdownFactory);
function TopicDropdownFactory() {
var templateUrl = './app/client/statistics/' +
'query-digest/topic-dropdown.tpl.html';
var topicDropdown = {
scope: {
topics: '=',
topicSelected: '&'
},
restrict: 'E',
controller: TopicDropdownController,
link: TopicDropdownLinker,
controllerAs: 'dropdown',
templateUrl: templateUrl
};
return topicDropdown;
}
TopicDropdownController.$inject = ['$scope', 'OntologyTermService'];
function TopicDropdownController($scope, OntologyTermService) {
var dropdown = this;
dropdown.ontologyTermService = OntologyTermService;
dropdown.topics = $scope.topics;
dropdown.reset = reset;
/**
* Reset handler.
*/
function reset(events, data) {
dropdown.selected = {
title: 'All'
};
+
+ dropdown.open = false;
}
}
function TopicDropdownLinker(scope) {
var clearTopicsWatch = scope.$watch('topics', function (after, before) {
var dropdown = scope.dropdown;
// -- listen for reset --//
scope.$on('reset-digest', dropdown.reset);
if (after && after.length) {
dropdown.topics = after;
}
});
}
})();
diff --git a/apps/steward-app/src/main/js/app/client/statistics/statistics-graph/statistics-graph.js b/apps/steward-app/src/main/js/app/client/statistics/statistics-graph/statistics-graph.js
index dc589d0d8..ae33ae0a0 100644
--- a/apps/steward-app/src/main/js/app/client/statistics/statistics-graph/statistics-graph.js
+++ b/apps/steward-app/src/main/js/app/client/statistics/statistics-graph/statistics-graph.js
@@ -1,56 +1,55 @@
(function () {
angular.module('shrine.steward.statistics')
.directive('statisticsGraph', StatisticsGraphDirective);
function StatisticsGraphDirective() {
var templateUrl = './app/client/statistics/statistics-graph/' +
'statistics-graph.tpl.html';
var statisticsGraph = {
restrict: 'E',
templateUrl: templateUrl,
controller: StatisticsGraphController,
controllerAs: 'graph',
link: StatisticsGraphLink,
scope: {
graphData: '=',
graphClick: '&' /** todo pass in click handler. **/
}
};
return statisticsGraph;
}
StatisticsGraphController.$inject = ['$scope', 'StatisticsGraphService'];
function StatisticsGraphController($scope, svc) {
var graph = this;
- //graphService = svc;
graph.graphData = $scope.graphData;
graph.toPercentage = toPercentage;
graph.formatuserName = formatuserName;
graph.graphClick = $scope.graphClick;
graph.clearUsers = svc.clearUsers;
graph.formatuserName = formatuserName;
function toPercentage(value) {
var maxQueryCount = svc.getMaxUserQueryCount(graph.graphData.users) || 1;
return svc.getCountAsPercentage(value, maxQueryCount);
}
function formatuserName(userName) {
return svc.formatuserName(userName);
}
}
StatisticsGraphLink.$inject = ['scope'];
function StatisticsGraphLink(scope) {
scope.$watch('graphData', function (before, after) {
var graph = scope.graph;
graph.graphData = scope.graphData;
graph.clearUsers();
});
var test = arguments;
}
})();
\ No newline at end of file
diff --git a/apps/steward-app/src/main/js/app/client/steward.controller.js b/apps/steward-app/src/main/js/app/client/steward.controller.js
index 8cad1df3f..c4a5062b2 100644
--- a/apps/steward-app/src/main/js/app/client/steward.controller.js
+++ b/apps/steward-app/src/main/js/app/client/steward.controller.js
@@ -1,39 +1,29 @@
(function () {
angular.module('shrine.steward')
.controller('StewardController', StewardController);
StewardController.$inject = ['$location','StewardService'];
function StewardController($location, StewardService) {
var steward = this;
steward.isUserLoggedIn = StewardService.isUserLoggedIn;
steward.getUsername = StewardService.getUsername;
steward.getRole = StewardService.getRole;
steward.isSteward = StewardService.isSteward;
steward.showStewardMenuOptions = false;
- setLoggedOutLayout();
steward.logout = logout;
// -- set login callback. todo: investigate advantage of broadcaster instead. -- //
StewardService.setLoginSubscriber(loginSubscriber);
- function setLoggedInLayout() {
- steward.layoutWidth = 10;
- }
-
- function setLoggedOutLayout() {
- steward.layoutWidth = 12;
- }
function logout() {
- setLoggedOutLayout();
StewardService.logoutUser();
}
function loginSubscriber(appUser) {
steward.showStewardMenuOptions = steward.isSteward();
- setLoggedInLayout();
}
}
})();
diff --git a/apps/steward-app/src/main/js/app/client/topics/topics.controller.js b/apps/steward-app/src/main/js/app/client/topics/topics.controller.js
index 7721f4b4b..1ffccfe6c 100644
--- a/apps/steward-app/src/main/js/app/client/topics/topics.controller.js
+++ b/apps/steward-app/src/main/js/app/client/topics/topics.controller.js
@@ -1,301 +1,303 @@
(function () {
'use strict';
angular
.module('shrine.steward.topics')
.controller('TopicsController', TopicsController);
TopicsController.$inject = ['TopicsService', 'TopicsModel', '$uibModal', '$scope'];
function TopicsController(TopicsService, TopicsModel, $uibModal, $scope) {
// -- set up locals --//
var topics = this;
var model = TopicsModel;
var service = TopicsService;
var initialState = null;
var modelUpdate = model.getStewardTopics;
// -- todo: move to service ? --//
// -- public -- //
topics.sortData = {
sortDirection: 'ascending',
arrowClass: 'fa-caret-up',
column: 'id',
pageIndex: service.viewConfig.index, // -- current page number --//
range: service.viewConfig.range, // -- range of paging numbers at bottom --//
limit: service.viewConfig.limit, // -- number of results to show in table per page --//
length: 0, // -- total number of topic results --//
skip: 0, // -- number of results to skip --//
state: service.states.state1 // -- pending, approved, rejected --//
};
topics.showStewardMenu = service.isSteward();
topics.update = update;
topics.dateFormatter = service.dateFormatter;
topics.openTopic = openTopic;
topics.createTopic = createTopic;
topics.onPageSelected = onPageSelected;
init();
- function setDefaultState() {
+ function setDefaultState(state) {
// -- local vars -- //
var sortData = topics.sortData;
- sortData.state = service.states.state1; // -- pending, approved, rejected --//
+ sortData.state = state || service.states.state1; // -- pending, approved, rejected --//
sortData.sortDirection = 'ascending';
sortData.arrowClass = 'fa-caret-up';
sortData.column = 'changeDate';
sortData.pageIndex = service.viewConfig.index; // -- current page number --//
sortData.range = service.viewConfig.range; // -- range of paging numbers at bottom --//
sortData.limit = service.viewConfig.limit; // -- number of results to show in table per page --//
sortData.length = 0; // -- total number of topic results --//
sortData.skip = 0; // -- number of results to skip --//
if (!topics.showStewardMenu) {
modelUpdate = model.getResearcherTopics;
sortData.state = undefined;
}
}
function toggleSort(column) {
var sortData = topics.sortData;
//change direction if same column is clicked.
if (sortData.column === column) {
// -- todo, dislike nested ifs --//
if (topics.sortData.sortDirection !== 'ascending') {
topics.sortData.sortDirection = 'ascending';
topics.sortData.arrowClass = 'fa-caret-up';
}
else {
topics.sortData.sortDirection = 'descending';
topics.sortData.arrowClass = 'fa-caret-down';
}
}
//default is descending.
else {
topics.sortData.sortDirection = 'ascending';
topics.sortData.arrowClass = 'fa-caret-up';
sortData.column = column;
}
}
/*
* Handler for when pagination page is changed.
*/
function onPageSelected() {
var mult;
var sortData = topics.sortData;
mult = (sortData.pageIndex > 0) ? sortData.pageIndex - 1 : 0;
sortData.skip = sortData.limit * mult;
refreshTopics(sortData.skip, sortData.limit);
}
function refreshTopics() {
var sortData = topics.sortData;
modelUpdate(sortData.skip, sortData.limit, sortData.state, sortData.column,
sortData.sortDirection)
.then(function (data) {
topics.topics = data.topics;
topics.length = data.totalCount;
sortData.length = data.totalCount;
sortData.totalPages = Math.ceil(sortData.length / sortData.limit);
+
});
}
function startMenuWatch() {
$scope.sortData = topics.sortData;
$scope.$watch('sortData.state', function (newVal, oldVal) {
if (oldVal !== newVal) {
refreshTopics();
+ setDefaultState(topics.sortData.state);
}
});
}
function init() {
setDefaultState();
refreshTopics();
startMenuWatch();
}
function update(column) {
toggleSort(column);
refreshTopics();
}
// -- todo create modal service instead of inlining code -- //
function openTopic(topic) {
var modalInstance = $uibModal.open({
animation: true,
templateUrl: './app/client/topics/directives/topic-detail.tpl.html',
controller: TopicDetailController,
controllerAs: 'detail',
resolve: {
topic: function () {
return topic;
},
onClose: function () {
return refreshTopics;
}
}
});
}
function createTopic() {
var modalInstance = $uibModal.open({
animation: true,
templateUrl: './app/client/topics/directives/new-topic.tpl.html',
controller: NewTopicController,
controllerAs: 'newTopic',
resolve: {
onClose: function () {
return refreshTopics;
}
},
});
}
}
// -- todo: should be in its own file. -- //
NewTopicController.$inject = ['$uibModalInstance', 'onClose', 'TopicsModel'];
function NewTopicController($uibModalInstance, onClose, TopicsModel) {
var newTopic = this;
var model = TopicsModel;
newTopic.name = '';
newTopic.description = '';
// -- public --//
newTopic.ok = ok;
newTopic.cancel = cancel;
// -- private -- //
function ok() {
var name = newTopic.name;
var description = newTopic.description;
makeRequest()
.then(finish);
}
function makeRequest() {
return model.requestNewTopic({
'name': newTopic.name,
'description': newTopic.description
});
}
function finish() {
onClose();
$uibModalInstance.close();
}
function cancel() {
$uibModalInstance.dismiss('cancel');
}
}
// -- ditto...own file --//
TopicDetailController.$inject = ['$scope', '$uibModalInstance', 'topic', 'onClose', 'TopicsService', 'TopicsModel'];
function TopicDetailController($scope, $uibModalInstance, topic, onClose, TopicsService, TopicsModel) {
var detail = this;
var service = TopicsService;
var model = TopicsModel;
var isSteward = service.isSteward();
var dateFormatter = service.dateFormatter;
var topicDescription = topic.description;
var loadedState = topic.state;
detail.topic = topic;
detail.topicState = loadedState;
detail.tabState = 'description';
detail.isSteward = isSteward;
detail.dateFormatter = dateFormatter;
detail.topicName = topic.name;
detail.topicDescription = topic.description;
// -- public methods --//
detail.cancel = cancel;
detail.canViewHistory = canViewHistory;
detail.showSteward = isSteward;
detail.isEditable = isEditable;
detail.setState = setState;
detail.update = update;
function cancel() {
$uibModalInstance.dismiss('cancel');
}
function isEditable() {
return isSteward || topic.state === 'Pending';
}
function setState(state) {
if (isEditable()) {
detail.tabState = state;
}
}
function finish() {
onClose();
$uibModalInstance.dismiss('cancel');
}
// -- private -- //
function stewardUpdate() {
topic.state = detail.topicState;
switch (topic.state) {
case 'Approved':
model.approveTopic(topic.id)
.then(finish);
break;
case 'Rejected':
model.rejectTopic(topic.id)
.then(finish);
break;
default:
$uibModalInstance.close($scope.topic);
}
}
function researcherUpdate() {
model.updateTopic({
name: detail.topicName,
description: detail.topicDescription,
id: detail.topic.id
})
.then(finish);
}
function update() {
if (isSteward) {
stewardUpdate();
}
else {
researcherUpdate();
}
}
function canViewHistory() {
var stewardCanViewApprovedAndRejected = isSteward && loadedState !== 'Pending';
var researcherCanViewOnlyApproved = loadedState === 'Approved';
var ifEditingDenyAll = detail.tabState === 'edit';
if (ifEditingDenyAll) {
return false;
}
return stewardCanViewApprovedAndRejected || researcherCanViewOnlyApproved;
}
}
})();
\ No newline at end of file
diff --git a/apps/steward-app/src/main/js/app/mock/steward-mock.service.js b/apps/steward-app/src/main/js/app/mock/steward-mock.service.js
index bd19e041b..d2c3b982d 100644
--- a/apps/steward-app/src/main/js/app/mock/steward-mock.service.js
+++ b/apps/steward-app/src/main/js/app/mock/steward-mock.service.js
@@ -1,111 +1,111 @@
var ShrineMockService = require('./shrine-mock.service');
var stewardData = require('./data/steward-data');
var StewardMockService = function (data) {
this.data = data || stewardData;
ShrineMockService.call(this);
}
/** inherit shrine mock methods **/
StewardMockService.prototype = Object.create(ShrineMockService.prototype);
StewardMockService.prototype.getTopics = function (numberOfResults, state, role) {
state = state || 'Pending';
role = role || 'DataSteward';
var results = [];
for (var i = 0; i < numberOfResults; i++) {
var mockResult = this.data.topic;
var user = (role === 'DataSteward') ? this.getMockDave() : this.getMockBen();
mockResult.fullName = user.fullName;
mockResult.role = user.roles;
mockResult.userName = user.userName;
mockResult.createdBy = user;
mockResult.name = i + ' ' + mockResult.name;
mockResult.state = state;
mockResult.description = i + ' ' + mockResult.description;
results.push(mockResult);
}
return results;
}
StewardMockService.prototype.getQueryHistory = function (numberOfResults, role) {
var results = [];
var topic = this.getTopics(1, 'Approved', role)[0];
var user = (role === 'DataSteward') ? this.getMockDave() : this.getMockBen();
for (var i = 0; i < numberOfResults; i++) {
var result = this.data.queryResult;
result.topic = topic;
result.user = user;
results.push(result);
}
return results;
}
//"https://shrine-dev1.catalyst:6443/steward/steward/statistics/topicsPerState?minDate=1476207028000&maxDate=1476898228000"
StewardMockService.prototype.getTopicsPerState = function () {
return {
data: {
total: 0,
topicsPerState: []
}
}
}
StewardMockService.prototype.getQueriesPerUser = function () {
var totalQueries = 600;
var users = {
'Ben': 70,
'Isha': 40,
'Ty': 30,
'Dave': 80,
'Keith': 100,
'Dr. Evil': 280
};
var jira1847Users = {
- 'nn80': 43,
+ 'nn80': 50,
'ij22': 52,
- 'shrine': 16
+ 'shrine': 51
};
var keys = Object.keys(jira1847Users);
var queriesPerUser = [];
for (var i = 0; i < keys.length; i++) {
var user = this.getMockUser(keys[i]);
var numberOfQueries = jira1847Users[keys[i]];
queriesPerUser.push({
_1: user,
_2: numberOfQueries
});
}
return {
total: totalQueries,
queriesPerUser: queriesPerUser
}
}
StewardMockService.prototype.getJSONQueryHistory = function() {
var queryRecords = this.data.queryHistory;
return {
'totalCount': 144,
'skipped': 0,
'queryRecords': queryRecords
};
}
module.exports = new StewardMockService();
\ No newline at end of file
diff --git a/apps/steward-app/src/main/js/app/sass/core.scss b/apps/steward-app/src/main/js/app/sass/core.scss
index 9fc3895ed..ca2aec0e6 100644
--- a/apps/steward-app/src/main/js/app/sass/core.scss
+++ b/apps/steward-app/src/main/js/app/sass/core.scss
@@ -1,768 +1,770 @@
@font-face {
font-family: 'Nexa';
src: url('../fnt/nexa/nexa-light-webfont.eot');
src: url('../fnt/nexa/nexa-light-webfont.eot?#iefix') format('embedded-opentype'),
url('../fnt/nexa/nexa-light-webfont.woff2') format('woff2'),
url('../fnt/nexa/nexa-light-webfont.woff') format('woff'),
url('../fnt/nexa/nexa-light-webfont.ttf') format('truetype'),
url('../fnt/nexa/nexa-light-webfont.svg#nexa_lightregular') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Nexa Bold';
src: url('../fnt/nexa/nexa-bold-webfont.eot');
src: url('../fnt/nexa/nexa-bold-webfont.eot?#iefix') format('embedded-opentype'),
url('../fnt/nexa/nexa-bold-webfont.woff2') format('woff2'),
url('../fnt/nexa/nexa-bold-webfont.woff') format('woff'),
url('../fnt/nexa/nexa-bold-webfont.ttf') format('truetype'),
url('../fnt/nexa/nexa-bold-webfont.svg#nexa_boldregular') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Open Sans Regular';
src: url('../fnt/open-sans/opensans-regular-webfont.eot');
src: url('../fnt/open-sans/opensans-regular-webfont.eot?#iefix') format('embedded-opentype'),
url('../fnt/open-sans/opensans-regular-webfont.woff2') format('woff2'),
url('../fnt/open-sans/opensans-regular-webfont.woff') format('woff'),
url('../fnt/open-sans/opensans-regular-webfont.ttf') format('truetype'),
url('../fnt/open-sans/opensans-regular-webfont.svg#open_sansregular') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Open Sans Semibold';
src: url('../fnt/open-sans/opensans-semibold-webfont.eot');
src: url('../fnt/open-sans/opensans-semibold-webfont.eot?#iefix') format('embedded-opentype'),
url('../fnt/open-sans/opensans-semibold-webfont.woff2') format('woff2'),
url('../fnt/open-sans/opensans-semibold-webfont.woff') format('woff'),
url('../fnt/open-sans/opensans-semibold-webfont.ttf') format('truetype'),
url('../fnt/open-sans/opensans-semibold-webfont.svg#open_sanssemibold') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Roboto Bold';
src: url('../fnt/roboto/roboto-bold-webfont.eot');
src: url('../fnt/roboto/roboto-bold-webfont.eot?#iefix') format('embedded-opentype'),
url('../fnt/roboto/roboto-bold-webfont.woff2') format('woff2'),
url('../fnt/roboto/roboto-bold-webfont.woff') format('woff'),
url('../fnt/roboto/roboto-bold-webfont.ttf') format('truetype'),
url('../fnt/roboto/roboto-bold-webfont.svg#robotobold') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Roboto Regular';
src: url('../fnt/roboto/roboto-regular-webfont.eot');
src: url('../fnt/roboto/roboto-regular-webfont.eot?#iefix') format('embedded-opentype'),
url('../fnt/roboto/roboto-regular-webfont.woff2') format('woff2'),
url('../fnt/roboto/roboto-regular-webfont.woff') format('woff'),
url('../fnt/roboto/roboto-regular-webfont.ttf') format('truetype'),
url('../fnt/roboto/roboto-regular-webfont.svg#robotoregular') format('svg');
font-weight: normal;
font-style: normal;
}
.main-app{
background-image: url('../img/Background_Shrine.jpg');
background-size: cover;
background-color: transparent;
background-attachment: fixed;
width: 100%;
height:100%;
width: calc(100vw);
height: calc(100vh);
min-width: 100%;
min-height: 100%;
}
.shrine-navbar {
background-color: rgba(255, 255, 255, 0.62);
border-color: transparent;
font-family: "Nexa";
color: #5d5d5d;
min-height: 60px;
width: 100%;
height: 4.8em;
}
.shrine-brand {
float: left;
padding: 22px 15px;
font-size: 30px;
line-height: 30px;
height: 30px;
}
.shrine-brand strong {
font-family: "Nexa Bold";
color: #2c5566;
}
.shrine-navbar .shrine-institution-logo {
background-image: url('/static/logo.png');
background-size: contain;
background-color: transparent;
background-color: rgba(255,255,255,0.1);
background-repeat: no-repeat;
background-position: right top;
margin-right: 2%;
margin-top: 5px;
width: 4em;
height: 4em;
max-height: 4em;
max-width: 4em;
}
.shrine-button {
cursor: pointer !important;
background-color: transparent;
border: none;
}
.shrine-button span {
position: relative;
bottom: 5px;
}
.shrine-btn-default {
margin-right: 6px;
border:none;
}
.shrine-btn-on {
padding: 12px 12px;
border-radius: 0;
font-family: "Roboto Bold" !important;
color: #FFFFFF !important;
background:
linear-gradient(rgba(4, 141, 190, .80), rgba(2, 89, 120, .80)),
url('../img/bckg_diagonal_lines_no_border.png') !important;
}
.shrine-btn-off {
padding: 6px 12px !important;
border-radius: 4px !important;
font-family: "Open Sans Semibold" !important;
background-color: #8896A4 !important;
color: #FFFFFF !important;
}
.shrine-on, .shrine-on a {
font-family: "Roboto Bold" !important;
color: #FFFFFF !important;
background: linear-gradient(#048DBE, #025978) !important;
}
.shrine-off {
font-family: "Roboto Regular" !important;
color: #2C5566 !important;
background-color: #ECEEEE !important;
}
.shrine-button.disabled, .shrine-button[disabled] {
cursor: default !important;
opacity: 0.2 !important;
}
.shrine-copy-bold {
font-family: "Nexa Bold";
color: #64818e;
}
.shrine-copy {
font-family: "Nexa";
color: #000000;
}
.row {
margin-right: 0;
margin-left: 0;
}
td.error, span.error {
color: red;
}
td.error a, td.error a:hover, span.error a, span.error a:hover{
color: inherit;
text-decoration: underline !important;
cursor: pointer;
}
td.ok, span.ok {
color:green;
}
.form-group span {
font-family: "Open Sans Semibold";
color: #2c5566;
}
fieldset button {
color: #2E5366;
}
fieldset button:hover, form a:hover {
color: #008CBA;
text-decoration: none;
cursor: pointer;
}
form a {
font-family: "Open Sans Regular";
color: #647d8d;
text-decoration: none;
}
footer img {
margin-left: 10px;
margin-top: 2px;
}
footer {
background-color: rgba(50, 62, 74, 0.48);
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: 83px;
min-height: 83px;
max-width: 100%;
}
table {
background-image: url('../img/bckg_diagonal_lines_no_border.png');
border: 1px solid #CCD8DF;
}
.table tr>td:first-child {
width: 20%;
min-width: 140px;
}
.table tr>td.thin-col {
width: 6%;
min-width: 35px;
}
.table-striped>tbody>tr:nth-of-type(odd) {
background-color: #EFF6F9;
}
.table-striped>tbody>tr:nth-of-type(even) {
background-color: #FFFFFF;
}
thead tr{
border: 1px solid #CCD8DF;
}
td{
border-right: 1px solid #CCD8DF;
overflow: hidden;
max-width: 450px;
word-break: break-all;
}
thead tr td, thead tr td label, tfoot tr td span{
font-family: "Open Sans Semibold";
color: #003153;
}
td a, td a:hover{
text-decoration: none !important;
cursor: pointer;
font-family: "Open Sans Semibold";
color: #003153;
}
.shrine-panel{
background-image: url('../img/bckg_diagonal_lines.png');
background-size: 100% 100%;
padding-right: 20px;
padding-left: 20px;
padding-top: 30px;
padding-bottom: 30px;
+ width: 100%;
+ margin-left: 30%;
}
/*!
* Start Bootstrap - SB Admin 2 Bootstrap Admin Theme (http://startbootstrap.com)
* Code licensed under the Apache License v2.0.
* For details, see http://www.apache.org/licenses/LICENSE-2.0.
*/
body {
background-image: url('../img/Background_Shrine.jpg');
background-repeat:no-repeat;
background-size:100% 100%;
}
#wrapper {
width: 100%;
padding-bottom: 83px; /* clearance space for footer at bottom of long page */
}
.login-wrapper{
margin-top: 51px;
margin-right: 20px;
}
#page-wrapper {
background-color: transparent;
margin-top: 54px;
margin-right: 20px;
}
.navbar-top-links li {
display: inline-block;
}
.navbar-top-links li:last-child {
margin-right: 15px;
}
.navbar-top-links li a {
padding: 15px;
min-height: 50px;
font-family: "Open Sans Semibold";
color: #2c5566;
}
.navbar-top-links .dropdown-menu li {
font-family: "Open Sans Semibold";
color: #2c5566;
display: block;
}
.navbar-top-links .dropdown-menu li:last-child {
margin-right: 0;
}
.navbar-top-links .dropdown-menu li a {
padding: 3px 20px;
min-height: 0;
}
.navbar-top-links .dropdown-menu li a div {
white-space: normal;
}
.navbar-top-links .dropdown-messages,
.navbar-top-links .dropdown-tasks,
.navbar-top-links .dropdown-alerts {
width: 310px;
min-width: 0;
}
.navbar-top-links .dropdown-messages {
margin-left: 5px;
}
.navbar-top-links .dropdown-tasks {
margin-left: -59px;
}
.navbar-top-links .dropdown-alerts {
margin-left: -123px;
}
.navbar-top-links{
right: 0;
left: auto;
}
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.sidebar .sidebar-search {
padding: 15px;
}
.sidebar ul li {
border-bottom: 1px solid #e7e7e7;
}
.sidebar ul li a.active {
background-color: #eee;
}
.sidebar .arrow {
float: right;
}
.sidebar .fa.arrow:before {
content: "\f104";
}
.sidebar .active>a>.fa.arrow:before {
content: "\f107";
}
.sidebar .nav-second-level li,
.sidebar .nav-third-level li {
border-bottom: 0!important;
}
.sidebar .nav-second-level li a {
padding-left: 37px;
}
.sidebar .nav-third-level li a {
padding-left: 52px;
}
@media(min-width:768px) {
.sidebar {
z-index: 1;
margin-top: 51px;
}
.navbar-top-links .dropdown-messages,
.navbar-top-links .dropdown-tasks,
.navbar-top-links .dropdown-alerts {
margin-left: auto;
}
}
.btn-outline {
color: inherit;
background-color: transparent;
transition: all .5s;
}
.btn-primary.btn-outline {
color: #428bca;
}
.btn-success.btn-outline {
color: #5cb85c;
}
.btn-info.btn-outline {
color: #5bc0de;
}
.btn-warning.btn-outline {
color: #f0ad4e;
}
.btn-danger.btn-outline {
color: #d9534f;
}
.btn-primary.btn-outline:hover,
.btn-success.btn-outline:hover,
.btn-info.btn-outline:hover,
.btn-warning.btn-outline:hover,
.btn-danger.btn-outline:hover {
color: #fff;
}
.chat {
margin: 0;
padding: 0;
list-style: none;
}
.chat li {
margin-bottom: 10px;
padding-bottom: 5px;
border-bottom: 1px dotted #999;
}
.chat li.left .chat-body {
margin-left: 60px;
}
.chat li.right .chat-body {
margin-right: 60px;
}
.chat li .chat-body p {
margin: 0;
}
.panel .slidedown .glyphicon,
.chat .glyphicon {
margin-right: 5px;
}
.chat-panel .panel-body {
height: 350px;
overflow-y: scroll;
}
.login-panel {
margin-top: 25%;
}
.flot-chart {
display: block;
height: 400px;
}
.flot-chart-content {
width: 100%;
height: 100%;
}
.dataTables_wrapper {
position: relative;
clear: both;
}
table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
background: 0 0;
}
table.dataTable thead .sorting_asc:after {
content: "\f0de";
float: right;
font-family: fontawesome;
}
table.dataTable thead .sorting_desc:after {
content: "\f0dd";
float: right;
font-family: fontawesome;
}
table.dataTable thead .sorting:after {
content: "\f0dc";
float: right;
font-family: fontawesome;
color: rgba(50,50,50,.5);
}
.btn-circle {
width: 30px;
height: 30px;
padding: 6px 0;
border-radius: 15px;
text-align: center;
font-size: 12px;
line-height: 1.428571429;
}
.btn-circle.btn-lg {
width: 50px;
height: 50px;
padding: 10px 16px;
border-radius: 25px;
font-size: 18px;
line-height: 1.33;
}
.btn-circle.btn-xl {
width: 70px;
height: 70px;
padding: 10px 16px;
border-radius: 35px;
font-size: 24px;
line-height: 1.33;
}
.show-grid [class^=col-] {
padding-top: 10px;
padding-bottom: 10px;
border: 1px solid #ddd;
background-color: #eee!important;
}
.show-grid {
margin: 15px 0;
}
.huge {
font-size: 40px;
}
.panel-green {
border-color: #5cb85c;
}
.panel-green .panel-heading {
border-color: #5cb85c;
color: #fff;
background-color: #5cb85c;
}
.panel-green a {
color: #5cb85c;
}
.panel-green a:hover {
color: #3d8b3d;
}
.panel-red {
border-color: #d9534f;
}
.panel-red .panel-heading {
border-color: #d9534f;
color: #fff;
background-color: #d9534f;
}
.panel-red a {
color: #d9534f;
}
.panel-red a:hover {
color: #b52b27;
}
.panel-yellow {
border-color: #f0ad4e;
}
.panel-yellow .panel-heading {
border-color: #f0ad4e;
color: #fff;
background-color: #f0ad4e;
}
.panel-yellow a {
color: #f0ad4e;
}
.panel-yellow a:hover {
color: #df8a13;
}
.modal-content{
border: none;
}
.shrine-modal{
background-color: white;
border: 1px solid #2c5566;
font-family: "Open Sans Semibold";
color: #2e5366;
padding: 15px;
}
.shrine-modal form div.col-sm-12{
border: 1px solid rgba(2, 89, 120, .80);
}
.shrine-modal input, .shrine-modal textarea{
border-radius: 0px;
border: 1px solid #2c5566;
}
.shrine-modal span{
font-family: "Nexa Bold";
color: #2e5366;
}
.shrine-modal span:hover{
font-family: "Nexa Bold";
color: #008CBA;
}
.shrine-modal button{
background-color: white;
border: none;
font-family: "Nexa Bold";
color: #2e5366;
}
.shrine-modal button span{
position: relative;
bottom: 6px;
}
.shrine-modal button:hover, .btn-success{
font-family: "Nexa Bold";
color: #008CBA;
background-color: transparent;
border: none;
}
.shrine-login{
margin-top: 8%;
margin-left: 1%;
}
.shrine-content{
overflow: auto;
}
/*Fix for resizeable text area.*/
textarea{
resize: none;
}
@media (min-width: 768px) {
.shrine-content {
padding: 0;
}
}
.shrine-calendar-input{
margin-right: 1px;
max-width:50%;
}
i.shrine-close{
float:right;
margin-top:-40px;
margin-right:-40px;
cursor:pointer;
color: #fff;
border: 2px solid #C8CED1;
border-radius: 30px;
background: #8896a4;
font-size: 31px;
font-weight: normal;
display: inline-block;
line-height: 0px;
padding: 11px 3px;
font-style:normal;
}
i.shrine-close:hover{
background: #008cba;
}
.shrine-close:before {
content: "×";
}
diff --git a/apps/steward-app/src/main/js/index.html b/apps/steward-app/src/main/js/index.html
index b1831e0c5..3b464f82f 100644
--- a/apps/steward-app/src/main/js/index.html
+++ b/apps/steward-app/src/main/js/index.html
@@ -1,121 +1,121 @@
Shrine Data Steward
SHRINE DATA STEWARD
Hello,
{{steward.getUsername()}}
\ No newline at end of file
diff --git a/apps/steward-war/pom.xml b/apps/steward-war/pom.xml
index 491afd96d..4ebd14806 100644
--- a/apps/steward-war/pom.xml
+++ b/apps/steward-war/pom.xml
@@ -1,43 +1,47 @@
shrine-base
net.shrine
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
4.0.0
steward
Steward War
war
org.apache.maven.plugins
maven-war-plugin
steward
net.shrine
steward-app
${project.version}
com.h2database
h2
${h2-version}
test
org.slf4j
slf4j-log4j12
${slf4j-version}
runtime
diff --git a/apps/war/pom.xml b/apps/war/pom.xml
index b870c4cb1..bc245c65e 100644
--- a/apps/war/pom.xml
+++ b/apps/war/pom.xml
@@ -1,64 +1,68 @@
4.0.0
SHRINE War
shrine-war
war
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.shrine
shrine-app
${project.version}
net.shrine
shrine-adapter-service
${project.version}
javax.servlet
javax.servlet-api
provided
com.sun.jersey
jersey-servlet
net.shrine
shrine-adapter-service
${project.version}
test-jar
test
org.slf4j
slf4j-log4j12
${slf4j-version}
runtime
shrine-cell
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
diff --git a/commons/auth/pom.xml b/commons/auth/pom.xml
index 5140856fd..bcfda6a59 100644
--- a/commons/auth/pom.xml
+++ b/commons/auth/pom.xml
@@ -1,90 +1,94 @@
4.0.0
SHRINE Auth*
shrine-auth
jar
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
net.shrine
shrine-protocol
${project.version}
com.typesafe.akka
akka-actor_2.11
${akka-version}
org.json4s
json4s-native_2.11
${json4s-version}
io.spray
spray-client_2.11
${spray-version}
io.spray
spray-routing_2.11
${spray-version}
io.spray
spray-servlet_2.11
${spray-version}
io.spray
spray-util_2.11
${spray-version}
io.spray
spray-testkit_2.11
${spray-version}
test
com.typesafe.akka
akka-slf4j_2.11
${akka-version}
com.typesafe.akka
akka-testkit_2.11
${akka-version}
test
net.shrine
shrine-client
${project.version}
net.shrine
shrine-test-commons
${project.version}
test-jar
test
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
diff --git a/commons/client/pom.xml b/commons/client/pom.xml
index dd6417107..700fd09bf 100644
--- a/commons/client/pom.xml
+++ b/commons/client/pom.xml
@@ -1,68 +1,72 @@
4.0.0
SHRINE Client
shrine-client
jar
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.shrine
shrine-protocol
${project.version}
net.shrine
shrine-crypto
${project.version}
net.shrine
shrine-crypto
${project.version}
test-jar
test
net.shrine
shrine-config
${project.version}
com.sun.jersey
jersey-client
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
org.apache.maven.plugins
maven-jar-plugin
test-jar
diff --git a/commons/config/pom.xml b/commons/config/pom.xml
index 8f0eda918..c544325b8 100644
--- a/commons/config/pom.xml
+++ b/commons/config/pom.xml
@@ -1,56 +1,60 @@
4.0.0
SHRINE Config
shrine-config
jar
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.sf.opencsv
opencsv
com.typesafe
config
net.shrine
shrine-util
${project.version}
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
org.apache.maven.plugins
maven-jar-plugin
test-jar
diff --git a/commons/crypto/pom.xml b/commons/crypto/pom.xml
index 6ecfed8a7..54e9a2470 100644
--- a/commons/crypto/pom.xml
+++ b/commons/crypto/pom.xml
@@ -1,82 +1,86 @@
4.0.0
SHRINE Crypto
shrine-crypto
jar
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.shrine
shrine-protocol
${project.version}
net.shrine
shrine-config
${project.version}
org.bouncycastle
bcpkix-jdk15on
${bouncy-castle-version}
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
org.apache.maven.plugins
maven-jar-plugin
test-jar
diff --git a/commons/data-commons/pom.xml b/commons/data-commons/pom.xml
index 51671f80c..b31994811 100644
--- a/commons/data-commons/pom.xml
+++ b/commons/data-commons/pom.xml
@@ -1,87 +1,91 @@
4.0.0
SHRINE Data Access Classes
shrine-data-commons
jar
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
org.apache.maven.plugins
maven-jar-plugin
test-jar
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.shrine
shrine-config
${project.version}
net.shrine
shrine-util
${project.version}
org.suecarter
freeslick_2.11
${freeslick-version}
org.squeryl
squeryl_${scala-major-version}
org.scala-lang
scalap
org.scala-lang
scalap
${scala-version}
org.springframework
spring-jdbc
test
com.h2database
h2
test
diff --git a/commons/email/pom.xml b/commons/email/pom.xml
index 15a8b9e6b..15404de66 100644
--- a/commons/email/pom.xml
+++ b/commons/email/pom.xml
@@ -1,72 +1,76 @@
4.0.0
SHRINE Email
shrine-email
jar
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
org.slf4j
slf4j-simple
${slf4j-version}
test
org.json4s
json4s-native_2.11
${json4s-version}
me.lessis
courier_2.11
${courier-version}
net.shrine
shrine-config
${project.version}
net.shrine
shrine-test-commons
${project.version}
test-jar
test
org.jvnet.mock-javamail
mock-javamail
${mock-javamail-version}
test
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
org.apache.maven.plugins
maven-jar-plugin
2.6
test-jar
diff --git a/commons/ont-support/pom.xml b/commons/ont-support/pom.xml
index a95d1ea3b..a761e097a 100644
--- a/commons/ont-support/pom.xml
+++ b/commons/ont-support/pom.xml
@@ -1,63 +1,67 @@
4.0.0
SHRINE Ontology Support
shrine-ont-support
jar
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.shrine
shrine-protocol
${project.version}
net.shrine
shrine-util
${project.version}
net.shrine
shrine-crypto
${project.version}
net.shrine
shrine-crypto
${project.version}
test-jar
test
net.shrine
shrine-config
${project.version}
net.shrine
shrine-client
${project.version}
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
diff --git a/commons/protocol-query/pom.xml b/commons/protocol-query/pom.xml
index 4983f73aa..cebcc4a4c 100644
--- a/commons/protocol-query/pom.xml
+++ b/commons/protocol-query/pom.xml
@@ -1,57 +1,61 @@
4.0.0
SHRINE Query Protocol
shrine-protocol-query
jar
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.liftweb
lift-json_${scala-major-version}
org.scala-lang
scalap
org.scala-lang
scalap
${scala-version}
net.shrine
shrine-util
${project.version}
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
diff --git a/commons/protocol/pom.xml b/commons/protocol/pom.xml
index 434bb6922..cdb2fe8f9 100644
--- a/commons/protocol/pom.xml
+++ b/commons/protocol/pom.xml
@@ -1,87 +1,91 @@
4.0.0
SHRINE Protocol
shrine-protocol
jar
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
net.shrine
shrine-protocol-query
${project.version}
net.shrine
shrine-util
${project.version}
net.shrine
shrine-util
${project.version}
test-jar
test
net.shrine
shrine-config
${project.version}
net.shrine
shrine-data-commons
${project.version}
net.liftweb
lift-json_${scala-major-version}
org.easymock
easymock
test
net.shrine
shrine-test-commons
${project.version}
test-jar
test
src/main/scala
src/test/scala
src/main/resources
true
shrine-versions.properties
net.alchim31.maven
scala-maven-plugin
org.apache.maven.plugins
maven-jar-plugin
test-jar
diff --git a/commons/test-commons/pom.xml b/commons/test-commons/pom.xml
index dceed9e80..8267dc0b8 100644
--- a/commons/test-commons/pom.xml
+++ b/commons/test-commons/pom.xml
@@ -1,48 +1,52 @@
4.0.0
SHRINE Test Commons
shrine-test-commons
jar
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
com.sun.jersey
jersey-client
test
com.sun.jersey.jersey-test-framework
jersey-test-framework-http
${jersey-version}
test
src/test/scala
org.apache.maven.plugins
maven-jar-plugin
test-jar
net.alchim31.maven
scala-maven-plugin
diff --git a/commons/util/pom.xml b/commons/util/pom.xml
index 898369192..ab68bb946 100644
--- a/commons/util/pom.xml
+++ b/commons/util/pom.xml
@@ -1,125 +1,129 @@
4.0.0
SHRINE Utility Code
shrine-util
jar
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
com.typesafe.slick
slick_2.11
${slick-version}
io.spray
spray-httpx_2.11
${spray-version}
org.slf4j
slf4j-simple
${slf4j-version}
test
net.liftweb
lift-json_${scala-major-version}
org.scala-lang
scalap
org.scala-lang
scalap
${scala-version}
log4j
log4j
net.shrine
shrine-test-commons
${project.version}
test-jar
test
org.json4s
json4s-native_2.11
${json4s-version}
com.h2database
h2
test
org.xerial
sqlite-jdbc
3.15.1
test
org.spire-math
jawn-parser_2.11
${jawn-version}
org.spire-math
jawn-ast_2.11
${jawn-version}
com.propensive
rapture-json_2.11
${rapture-version}
com.propensive
rapture-json-jawn_2.11
${rapture-version}
src/main/scala
src/test/scala
src/main/resources
net.alchim31.maven
scala-maven-plugin
org.apache.maven.plugins
maven-jar-plugin
2.6
test-jar
diff --git a/hms-support/hms-core/pom.xml b/hms-support/hms-core/pom.xml
index 36d890d79..10b908f1d 100644
--- a/hms-support/hms-core/pom.xml
+++ b/hms-support/hms-core/pom.xml
@@ -1,62 +1,66 @@
net.shrine
shrine-hms-support
+
1.23.3.1-SNAPSHOT
+
+
+
4.0.0
shrine-hms-core
SHRINE HMS Support (Core Classes)
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.shrine
shrine-auth
${project.version}
net.shrine
shrine-protocol
${project.version}
net.shrine
shrine-client
${project.version}
net.shrine
shrine-crypto
${project.version}
net.shrine
shrine-crypto
${project.version}
test-jar
test
org.easymock
easymock
test
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
diff --git a/hms-support/pom.xml b/hms-support/pom.xml
index be8debca3..d238e303e 100644
--- a/hms-support/pom.xml
+++ b/hms-support/pom.xml
@@ -1,15 +1,19 @@
4.0.0
SHRINE HMS Support
shrine-hms-support
pom
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
hms-core
diff --git a/hub/broadcaster-aggregator/pom.xml b/hub/broadcaster-aggregator/pom.xml
index 8950deb38..d1261f17c 100644
--- a/hub/broadcaster-aggregator/pom.xml
+++ b/hub/broadcaster-aggregator/pom.xml
@@ -1,161 +1,165 @@
4.0.0
SHRINE Broadcaster Aggregator
shrine-broadcaster-aggregator
jar
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
src/main/scala
src/test/scala
org.codehaus.mojo
tomcat-maven-plugin
1.0-beta-1
net.alchim31.maven
scala-maven-plugin
org.apache.maven.plugins
maven-jar-plugin
test-jar
net.shrine
shrine-adapter-client-api
${project.version}
net.shrine
shrine-client
${project.version}
net.shrine
shrine-protocol
${project.version}
net.shrine
shrine-data-commons
${project.version}
mysql
mysql-connector-java
net.shrine
shrine-util
${project.version}
test-jar
test
net.shrine
shrine-crypto
${project.version}
test-jar
test
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.shrine
shrine-data-commons
${project.version}
test-jar
test
net.shrine
shrine-config
${project.version}
test-jar
test
com.sun.jersey.jersey-test-framework
jersey-test-framework-http
${jersey-version}
test
com.sun.jersey.contribs
jersey-simple-server
${jersey-version}
test
com.h2database
h2
test
org.easymock
easymock
test
org.springframework
spring-jdbc
test
org.codehaus.mojo
findbugs-maven-plugin
2.3.1
Max
org.codehaus.mojo
cobertura-maven-plugin
2.3
org.apache.maven.plugins
maven-checkstyle-plugin
2.5
org.apache.maven.plugins
maven-pmd-plugin
2.4
1.6
diff --git a/hub/broadcaster-service/pom.xml b/hub/broadcaster-service/pom.xml
index dd28d69f3..a3d7f6b53 100644
--- a/hub/broadcaster-service/pom.xml
+++ b/hub/broadcaster-service/pom.xml
@@ -1,148 +1,152 @@
4.0.0
SHRINE Broadcast Service
shrine-broadcaster-service
jar
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
com.sun.jersey
jersey-server
net.shrine
shrine-broadcaster-aggregator
${project.version}
net.shrine
shrine-crypto
${project.version}
net.shrine
shrine-client
${project.version}
net.shrine
shrine-adapter-client-api
${project.version}
net.shrine
shrine-protocol
${project.version}
net.shrine
shrine-data-commons
${project.version}
log4j
log4j
com.sun.jersey.jersey-test-framework
jersey-test-framework-http
${jersey-version}
test
com.sun.jersey.contribs
jersey-simple-server
${jersey-version}
test
com.h2database
h2
test
org.easymock
easymock
test
org.springframework
spring-jdbc
test
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.shrine
shrine-data-commons
${project.version}
test-jar
test
org.codehaus.mojo
findbugs-maven-plugin
2.3.1
Max
org.codehaus.mojo
cobertura-maven-plugin
2.3
org.apache.maven.plugins
maven-checkstyle-plugin
2.5
org.apache.maven.plugins
maven-pmd-plugin
2.4
1.6
diff --git a/install/pom.xml b/install/pom.xml
index 8a55ae589..475532897 100644
--- a/install/pom.xml
+++ b/install/pom.xml
@@ -1,34 +1,38 @@
4.0.0
SHRINE Install Scripts
shrine-install-scripts
pom
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
shrine-install-scripts
org.apache.maven.plugins
maven-assembly-plugin
src/main/assembly/assembly.xml
make-assembly
package
single
diff --git a/integration/pom.xml b/integration/pom.xml
index bfad66625..d9482d824 100644
--- a/integration/pom.xml
+++ b/integration/pom.xml
@@ -1,145 +1,149 @@
4.0.0
SHRINE Integration Tests
shrine-integration-tests
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
net.shrine
shrine-crypto
${project.version}
net.shrine
shrine-crypto
${project.version}
test-jar
test
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.shrine
shrine-data-commons
${project.version}
test-jar
test
net.shrine
shrine-protocol
${project.version}
test
net.shrine
shrine-adapter-service
${project.version}
test
net.shrine
shrine-adapter-service
${project.version}
test-jar
test
net.shrine
shrine-adapter-client-api
${project.version}
test
net.shrine
shrine-broadcaster-aggregator
${project.version}
test
net.shrine
shrine-qep
${project.version}
test
net.shrine
shrine-broadcaster-service
${project.version}
test
com.h2database
h2
test
org.slf4j
slf4j-log4j12
test
org.springframework
spring-jdbc
test
com.sun.jersey.jersey-test-framework
jersey-test-framework-http
${jersey-version}
test
com.sun.jersey.contribs
jersey-simple-server
${jersey-version}
test
com.typesafe.slick
slick-hikaricp_2.11
${slick-version}
test
org.spire-math
jawn-parser_2.11
${jawn-version}
org.spire-math
jawn-ast_2.11
${jawn-version}
com.propensive
rapture-json_2.11
${rapture-version}
com.propensive
rapture-json-jawn_2.11
${rapture-version}
diff --git a/pom.xml b/pom.xml
index 2728d8819..c9f7b04bb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,393 +1,397 @@
4.0.0
SHRINE
net.shrine
shrine-base
pom
+
1.23.3.1-SNAPSHOT
+
+
+
UTF-8
4.2.5.RELEASE
2.6.2
2.11.8
2.11
4.12
1.7.22
1.2.17
1.19
2.2.6
3.2.2
0.9.7
1.3.1
1.4.193
3.4
5.1.40
2.3
3.0.1
0.9.5
1.3.4
2.4.16
2.4.16
3.5.0
3.1.1
3.1.1.1
1.56
0.1.3
1.9
0.7.0
1.3.1
0.10.4
2.0.0-M8
apps/meta-app
apps/meta-war
apps/dashboard-app
apps/dashboard-war
apps/steward-app
apps/steward-war
apps/proxy
apps/shrine-app
apps/war
qep/service
hub/broadcaster-aggregator
hub/broadcaster-service
adapter/adapter-api
adapter/adapter-service
hms-support
tools
commons/util
commons/email
commons/auth
commons/protocol-query
commons/data-commons
commons/protocol
commons/crypto
commons/client
commons/config
commons/ont-support
commons/test-commons
install
integration
shrine-webclient
net.alchim31.maven
scala-maven-plugin
${scala-maven-plugin-version}
compile
compile
compile
test-compile
testCompile
test-compile
process-resources
compile
incremental
true
-XX:+AggressiveOpts
-XX:CompileThreshold=500
-XX:+UseFastAccessorMethods
-XX:+UseStringCache
-XX:+OptimizeStringConcat
-XX:+TieredCompilation
-XX:+UseConcMarkSweepGC
-XX:+DoEscapeAnalysis
-server
-Xms64m
-Xmx1024m
-XX:MaxPermSize=384m
${scala-version}
-Xcheckinit
-unchecked
-deprecation
-Xlint:adapted-args,inaccessible,infer-any,missing-interpolator,private-shadow,type-parameter-shadow,unsound-match
7
7
maven-compiler-plugin
7
7
org.codehaus.mojo
buildnumber-maven-plugin
1.1
org.apache.maven.plugins
maven-jar-plugin
2.4
org.apache.maven.plugins
maven-war-plugin
2.1.1
org.codehaus.mojo
buildnumber-maven-plugin
validate
create
{0,date,yyyy-MM-dd HH:mm:ss}
(not available)
org.apache.maven.plugins
maven-jar-plugin
true
${buildNumber}
${scmBranch}
${timestamp}
org.apache.maven.plugins
maven-war-plugin
true
${buildNumber}
${scmBranch}
${timestamp}
org.apache.tomcat.maven
tomcat7-maven-plugin
2.2
true
true
true
true
http://shrine-dev1.catalyst:6060/shrine/rest/happy
scm:git:https://open.med.harvard.edu/stash/scm/shrine/shrine.git
CBMI-Nexus
https://repo.open.med.harvard.edu/nexus/content/groups/public/
com.typesafe
config
${typesafe-config-version}
log4j
log4j
${log4j-version}
org.springframework
spring-jdbc
${spring.version}
test
com.h2database
h2
${h2-version}
test
org.easymock
easymock
${easymock-version}
test
org.slf4j
slf4j-log4j12
${slf4j-version}
test
mysql
mysql-connector-java
${mysql-version}
net.sf.opencsv
opencsv
${opencsv-version}
net.liftweb
lift-json_${scala-major-version}
${lift-version}
com.sun.jersey
jersey-server
${jersey-version}
com.sun.jersey
jersey-servlet
${jersey-version}
com.sun.jersey
jersey-client
${jersey-version}
org.squeryl
squeryl_${scala-major-version}
${squeryl-version}
javax.servlet
javax.servlet-api
${servlet-api-version}
provided
org.bouncycastle
bcpkix-jdk15on
${bouncy-castle-version}
org.scala-lang
scala-library
${scala-version}
junit
junit
${junit-version}
test
org.scalatest
scalatest_${scala-major-version}
${scalatest-version}
test
org.scala-lang
scala-actors
org.scala-lang
scala-reflect
org.scala-lang
scala-actors
${scala-version}
test
org.scala-lang
scala-reflect
${scala-version}
nexus
Nexus Repo
https://repo.open.med.harvard.edu/nexus/content/repositories/snapshots
false
nexus
Nexus Repo
https://repo.open.med.harvard.edu/nexus/content/repositories/releases-internal
diff --git a/qep/service/pom.xml b/qep/service/pom.xml
index a2eed71df..57001f5f0 100644
--- a/qep/service/pom.xml
+++ b/qep/service/pom.xml
@@ -1,218 +1,222 @@
4.0.0
SHRINE Service
shrine-qep
jar
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
../../pom.xml
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
false
org.squeryl
squeryl_${scala-major-version}
org.scala-lang
scalap
org.scala-lang
scalap
${scala-version}
com.sun.jersey
jersey-server
com.sun.jersey
jersey-client
net.shrine
shrine-auth
${project.version}
net.shrine
shrine-broadcaster-aggregator
${project.version}
net.shrine
shrine-crypto
${project.version}
net.shrine
shrine-client
${project.version}
net.shrine
shrine-adapter-client-api
${project.version}
net.shrine
shrine-protocol
${project.version}
net.shrine
shrine-data-commons
${project.version}
net.shrine
shrine-hms-core
${project.version}
com.typesafe.slick
slick_2.11
${slick-version}
org.suecarter
freeslick_2.11
${freeslick-version}
org.slf4j
slf4j-log4j12
${slf4j-version}
mysql
mysql-connector-java
log4j
log4j
com.sun.jersey.jersey-test-framework
jersey-test-framework-http
${jersey-version}
test
com.sun.jersey.contribs
jersey-simple-server
${jersey-version}
test
com.h2database
h2
test
org.easymock
easymock
test
org.springframework
spring-jdbc
test
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.shrine
shrine-data-commons
${project.version}
test-jar
test
net.shrine
shrine-config
${project.version}
test-jar
test
net.shrine
shrine-util
${project.version}
test-jar
test
org.codehaus.mojo
findbugs-maven-plugin
2.3.1
Max
org.codehaus.mojo
cobertura-maven-plugin
2.3
org.apache.maven.plugins
maven-checkstyle-plugin
2.5
org.apache.maven.plugins
maven-pmd-plugin
2.4
1.6
diff --git a/shrine-webclient/pom.xml b/shrine-webclient/pom.xml
index d684f984f..d3378add0 100644
--- a/shrine-webclient/pom.xml
+++ b/shrine-webclient/pom.xml
@@ -1,40 +1,44 @@
4.0.0
SHRINE Web Client
shrine-webclient
pom
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
1.5
2.4
maven-assembly-plugin
${assembly-plugin-version}
assembly
package
single
src/main/assembly/assembly.xml
\ No newline at end of file
diff --git a/shrine-webclient/src/main/js/client/js-i2b2/cells/CRC/CRC_ctrlr_Dates.js b/shrine-webclient/src/main/js/client/js-i2b2/cells/CRC/CRC_ctrlr_Dates.js
index faecd500d..ca9bd1139 100644
--- a/shrine-webclient/src/main/js/client/js-i2b2/cells/CRC/CRC_ctrlr_Dates.js
+++ b/shrine-webclient/src/main/js/client/js-i2b2/cells/CRC/CRC_ctrlr_Dates.js
@@ -1,271 +1,271 @@
/**
* @projectDescription The Date Constraint controller (GUI-only controller).
* @inherits i2b2.CRC.ctrlr
* @namespace i2b2.CRC.ctrlr.dateConstraint
* @author Nick Benik, Griffin Weber MD PhD
* @version 1.3
* ----------------------------------------------------------------------------------------
* updated 9-15-08: RC4 launch [Nick Benik]
*/
console.group('Load & Execute component file: CRC > ctrlr > Dates');
console.time('execute time');
// ================================================================================================== //
i2b2.CRC.ctrlr.dateConstraint = {
defaultStartDate: '12/01/1979',
defaultEndDate: '12/31/2006',
currentPanelIndex: false,
// ================================================================================================== //
showDates: function(panelControllerIndex) {
var dm = i2b2.CRC.model.queryCurrent;
var panelIndex = i2b2.CRC.ctrlr.QT.panelControllers[panelControllerIndex].panelCurrentIndex;
if (undefined==dm.panels[i2b2.CRC.ctrlr.QT.temporalGroup][panelIndex]) return;
var qn = dm.panels[i2b2.CRC.ctrlr.QT.temporalGroup][panelIndex];
this.currentPanelIndex = panelIndex;
// only build the prompt box 1 time
if (!i2b2.CRC.view.modalDates) {
var handleSubmit = function(){
var closure_pi = i2b2.CRC.ctrlr.dateConstraint.currentPanelIndex;
// save the dates
if (i2b2.CRC.ctrlr.dateConstraint.doProcessDates(closure_pi)) {
// saved and validated, close modal form
this.submit();
}
};
var handleCancel = function(){
this.cancel();
}
i2b2.CRC.view.modalDates = new YAHOO.widget.SimpleDialog("constraintDates", {
width: "400px",
fixedcenter: true,
constraintoviewport: true,
modal: true,
zindex: 700,
buttons: [{
text: "OK",
isDefault: true,
handler: handleSubmit
}, {
text: "Cancel",
handler: handleCancel
}]
});
$('constraintDates').show();
i2b2.CRC.view.modalDates.render(document.body);
}
i2b2.CRC.view.modalDates.show();
// load our panel data
var DateRecord = new Object;
if (qn.dateFrom) {
DateRecord.Start = padNumber(qn.dateFrom.Month,2)+'/'+padNumber(qn.dateFrom.Day,2)+'/'+qn.dateFrom.Year;
} else {
DateRecord.Start = this.defaultStartDate;
}
$('constraintDateStart').value = DateRecord.Start;
if (qn.dateTo) {
DateRecord.End = padNumber(qn.dateTo.Month,2)+'/'+padNumber(qn.dateTo.Day,2)+'/'+qn.dateTo.Year;
} else {
// DateRecord.End = this.defaultEndDate;
var curdate = new Date();
DateRecord.End = padNumber(curdate.getMonth()+1,2)+'/'+padNumber(curdate.getDate(),2)+'/'+curdate.getFullYear();
}
$('constraintDateEnd').value = DateRecord.End;
if (qn.dateFrom) {
$('checkboxDateStart').checked = true;
$('constraintDateStart').disabled = false;
} else {
$('checkboxDateStart').checked = false;
$('constraintDateStart').disabled = true;
}
if (qn.dateTo) {
$('checkboxDateEnd').checked = true;
$('constraintDateEnd').disabled = false;
} else {
$('checkboxDateEnd').checked = false;
$('constraintDateEnd').disabled = true;
}
},
// ================================================================================================== //
toggleDate: function() {
if ($('checkboxDateStart').checked) {
$('constraintDateStart').disabled = false;
setTimeout("$('constraintDateStart').select()",150);
} else {
$('constraintDateStart').disabled = true;
}
if ($('checkboxDateEnd').checked) {
$('constraintDateEnd').disabled = false;
setTimeout("$('constraintDateEnd').select()", 150);
} else {
$('constraintDateEnd').disabled = true;
}
},
// ================================================================================================== //
doShowCalendar: function(whichDate) {
// create calendar if not already initialized
if (!this.DateConstrainCal) {
this.DateConstrainCal = new YAHOO.widget.Calendar("DateContstrainCal","calendarDiv");
this.DateConstrainCal.selectEvent.subscribe(this.dateSelected, this.DateConstrainCal,true);
}
this.DateConstrainCal.clear();
// process click
if (whichDate=='S') {
if ($('checkboxDateStart').checked==false) { return; }
var apos = Position.cumulativeOffset($('dropDateStart'));
var cx = apos[0] - $("calendarDiv").getWidth() + $('dropDateStart').width + 3;
var cy = apos[1] + $('dropDateStart').height + 3;
$("calendarDiv").style.top = cy+'px';
$("calendarDiv").style.left = cx+'px';
$("constraintDateStart").select();
var sDateValue = $('constraintDateStart').value;
} else {
if ($('checkboxDateEnd').checked==false) { return; }
var apos = Position.cumulativeOffset($('dropDateEnd'));
var cx = apos[0] - $("calendarDiv").getWidth() + $('dropDateEnd').width + 3;
var cy = apos[1] + $('dropDateEnd').height + 3;
$("calendarDiv").style.top = cy+'px';
$("calendarDiv").style.left = cx+'px';
$("constraintDateEnd").select();
var sDateValue = $('constraintDateEnd').value;
}
var rxDate = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
if (rxDate.test(sDateValue)) {
var aDate = sDateValue.split(/\//);
this.DateConstrainCal.setMonth(aDate[0]-1);
this.DateConstrainCal.setYear(aDate[2]);
} else {
alert("Invalid Date Format, please use mm/dd/yyyy or select a date using the calendar.");
}
// save our date type on the calendar object for later use
this.whichDate = whichDate;
// display everything
$("calendarDiv").show();
var w = window.innerWidth || (window.document.documentElement.clientWidth || window.document.body.clientWidth);
var h = window.innerHeight || (window.document.documentElement.clientHeight || window.document.body.clientHeight);
$("calendarDivMask").style.top = "0px";
$("calendarDivMask").style.left = "0px";
$("calendarDivMask").style.width = (w - 10) + "px";
$("calendarDivMask").style.height = (h - 10) + "px";
$("calendarDivMask").show();
this.DateConstrainCal.render(document.body);
},
// ================================================================================================== //
dateSelected: function(eventName, selectedDate) {
// function is event callback fired by YUI Calendar control
// (this function looses it's class scope)
var cScope = i2b2.CRC.ctrlr.dateConstraint;
if (cScope.whichDate=='S') {
var tn = $('constraintDateStart');
} else {
var tn = $('constraintDateEnd');
}
var selectDate = selectedDate[0][0];
tn.value = selectDate[1]+'/'+selectDate[2]+'/'+selectDate[0];
cScope.hideCalendar.call(cScope);
},
// ================================================================================================== //
hideCalendar: function() {
$("calendarDiv").hide();
$("calendarDivMask").hide();
},
// ================================================================================================== //
doProcessDates: function(panelIndex) {
// push the dates into the data model
var sDateError = false;
//^(0[1-9]|1[012])(\\|\-)(0[1-9]|[12][0-9]|3[01])(\\|\-)(19|20)\d\d$
///^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
var rxDate = /^([1-9]|0[1-9]|1[012])(\/|\-)([1-9]|0[1-9]|[12][0-9]|3[01])(\/|\-)(19|20)\d\d$/;
var DateRecord = {};
var startChecked = $('checkboxDateStart').checked;
var endChecked = $('checkboxDateEnd').checked;
var startDate, endDate;
var dm = i2b2.CRC.model.queryCurrent.panels[i2b2.CRC.ctrlr.QT.temporalGroup][panelIndex];
this.currentPanelIndex = panelIndex;
// start date
if (startChecked) {
DateRecord.Start = {};
startDate = $('constraintDateStart').value;
if (rxDate.test(startDate)) {
var aDate = startDate.split(/\//);
DateRecord.Start.Month = padNumber(aDate[0],2);
DateRecord.Start.Day = padNumber(aDate[1],2);
DateRecord.Start.Year = aDate[2];
} else {
sDateError = "Invalid Start Date\n";
}
}
// test the end date.
if (endChecked) {
DateRecord.End = {};
endDate = $('constraintDateEnd').value;
if (rxDate.test(endDate)) {
var aDate = endDate.split(/\//);
DateRecord.End.Month = padNumber(aDate[0]);
DateRecord.End.Day = padNumber(aDate[1]);
DateRecord.End.Year = aDate[2];
} else {
sDateError = "Invalid End Date\n";
}
}
//make sure dates are in proper order.
if(startDate && endDate) {
var start = new Date(startDate);
var end = new Date(endDate);
- if(start.valueOf() >= end.valueOf()) {
+ if(start.valueOf() > end.valueOf()) {
sDateError = "Invalid Date Range\n";
}
}
//must check
//add an additional if statement that ensures start date is smaller than the end date.
//if(sDate)
// check for processing errors
if (sDateError) {
sDateError += "\nPlease use the following format: mm/dd/yyyy";
alert(sDateError);
return false;
} else {
// attach the data to our panel data
if (DateRecord.Start) {
dm.dateFrom = DateRecord.Start;
} else {
delete dm.dateFrom;
}
if (DateRecord.End) {
dm.dateTo = DateRecord.End;
} else {
delete dm.dateTo;
}
// clear the query name and set the query as having dirty data
var QT = i2b2.CRC.ctrlr.QT;
QT.doSetQueryName.call(QT,'');
}
// redraw buttons if needed
var panelctrlFound = false;
var pd = i2b2.CRC.ctrlr.QT;
for (var i=0; i
.box {
margin-top: 1%;
width: 100%;
transition: all .2s ease; }
-
-.box.blue {
- background: #1881CB; }
-
-.box.red {
- background: #AD3137; }
-
-.box.black {
- background: #424242; }
+ .box-wrapper > .box .hideextra {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis; }
+ .box-wrapper > .box section {
+ margin: 20 0 6 0; }
+ .box-wrapper > .box section .v-full {
+ height: 90vh; }
+ .box-wrapper > .box section .v-full > table {
+ padding-bottom: 10%; }
+ .box-wrapper > .box section .v-min {
+ height: 100px; }
+ .box-wrapper > .box section .v-min > table {
+ padding-bottom: 1%; }
+ .box-wrapper > .box section .tbl-content {
+ overflow: auto;
+ margin-top: 0px;
+ border: 1px solid rgba(98, 108, 146, 0.3); }
+ .box-wrapper > .box table {
+ width: 100%;
+ table-layout: fixed; }
+ .box-wrapper > .box table .tbl-header {
+ background-color: rgba(98, 108, 146, 0.3); }
+ .box-wrapper > .box table .tbl-header div.tbl-header {
+ max-width: 5rem; }
+ .box-wrapper > .box table tr {
+ cursor: pointer; }
+ .box-wrapper > .box table tr:hover {
+ background: rgba(98, 108, 146, 0.3) !important; }
+ .box-wrapper > .box table th {
+ padding: 2px 4px 4px 2px;
+ text-align: left;
+ font-weight: 500;
+ font-size: .75rem;
+ color: #626C92;
+ text-transform: uppercase;
+ border-bottom: solid 1px rgba(98, 108, 146, 0.1);
+ border-left: solid 1px rgba(98, 108, 146, 0.1); }
+ .box-wrapper > .box table td {
+ transition: all .5s ease;
+ padding: 2px;
+ text-align: left;
+ vertical-align: top;
+ font-weight: 300;
+ font-size: 12px;
+ color: black;
+ border-bottom: solid 1px rgba(98, 108, 146, 0.1);
+ border-left: solid 1px rgba(98, 108, 146, 0.1); }
.circle-pagination {
position: absolute;
z-index: 1000;
list-style-type: none;
margin: 0;
top: -.3rem; }
-
-.circle-pagination li {
- border-radius: 50%;
- border: 2px solid #626C92;
- width: 12px;
- height: 12px;
- padding: 4px;
- margin: 6px;
- cursor: pointer;
- float: left;
- transition: all .2s ease; }
-
-.circle-pagination li.active,
-.circle-pagination li:hover {
- background: #626C92;
- width: 14px;
- height: 14px; }
-
-.circle-pagination li.active div,
-.circle-pagination li div:hover {
- color: white; }
-
-.circle-pagination li div {
- font-size: .6rem;
- width: 24px;
- position: relative;
- left: -6px;
- top: 1px;
- color: #626C92;
- font-weight: 600;
- text-transform: capitalize; }
-
-h1 {
- font-size: 30px;
- color: #626C92;
- text-transform: uppercase;
- font-weight: 300;
- text-align: center;
- margin-bottom: 15px; }
-
-table {
- width: 100%;
- table-layout: fixed; }
-
-.tbl-header {
- background-color: rgba(98, 108, 146, 0.3); }
-
-.tbl-header div.tbl-header {
- max-width: 5rem; }
-
-@media screen and (-webkit-min-device-pixel-ratio: 0) and (min-height: 150px) {
- .tbl-content {
- height: 90% !important; } }
-
-.tbl-content {
- height: 450px;
- overflow-x: auto;
- margin-top: 0px;
- border: 1px solid rgba(98, 108, 146, 0.3); }
-
-.tbl-content tr {
- cursor: pointer; }
-
-.tbl-content tr:hover {
- background: rgba(98, 108, 146, 0.3) !important; }
-
-th {
- padding: 2px 4px 4px 2px;
- text-align: center;
- font-weight: 500;
- font-size: .75rem;
- color: #626C92;
- text-transform: uppercase; }
-
-td {
- transition: all .5s ease;
- padding: 2px;
- text-align: center;
- vertical-align: top;
- font-weight: 300;
- font-size: 12px;
- color: black;
- border-bottom: solid 1px rgba(98, 108, 146, 0.1); }
-
-section {
- margin: 20 0 6 0; }
-
-/* for custom scrollbar for webkit browser*/
-::-webkit-scrollbar {
- width: 8px; }
-
-::-webkit-scrollbar-track {
- -webkit-box-shadow: inset 0 0 6px rgba(98, 108, 146, 0.3); }
-
-::-webkit-scrollbar-thumb {
- -webkit-box-shadow: inset 0 0 6px #626c92; }
-
-.hideextra {
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis; }
+ .circle-pagination li {
+ border-radius: 50%;
+ border: 2px solid #626C92;
+ width: 12px;
+ height: 12px;
+ padding: 4px;
+ margin: 6px;
+ cursor: pointer;
+ float: left;
+ transition: all .2s ease; }
+ .circle-pagination li.active, .circle-pagination li:hover {
+ background: #626C92;
+ width: 14px;
+ height: 14px; }
+ .circle-pagination li.active div,
+ .circle-pagination li div:hover {
+ color: white; }
+ .circle-pagination li div {
+ font-size: .6rem;
+ width: 24px;
+ position: relative;
+ left: -6px;
+ top: 1px;
+ color: #626C92;
+ font-weight: 600;
+ text-transform: capitalize; }
diff --git a/shrine-webclient/src/main/js/client/js-shrine/config.js b/shrine-webclient/src/main/js/client/js-shrine/config.js
index b4a2777a5..28586e949 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/config.js
+++ b/shrine-webclient/src/main/js/client/js-shrine/config.js
@@ -1,333 +1,337 @@
System.config({
defaultJSExtensions: true,
transpiler: false,
paths: {
"*": "dist/*",
"github:*": "jspm_packages/github/*",
"npm:*": "jspm_packages/npm/*"
},
map: {
"aurelia-animator-css": "npm:aurelia-animator-css@1.0.1",
"aurelia-bootstrapper": "npm:aurelia-bootstrapper@1.0.0",
"aurelia-fetch-client": "npm:aurelia-fetch-client@1.0.1",
"aurelia-framework": "npm:aurelia-framework@1.0.6",
"aurelia-history-browser": "npm:aurelia-history-browser@1.0.0",
"aurelia-loader-default": "npm:aurelia-loader-default@1.0.0",
"aurelia-logging-console": "npm:aurelia-logging-console@1.0.0",
"aurelia-pal-browser": "npm:aurelia-pal-browser@1.0.0",
"aurelia-polyfills": "npm:aurelia-polyfills@1.1.1",
"aurelia-router": "npm:aurelia-router@1.3.0",
"aurelia-templating-binding": "npm:aurelia-templating-binding@1.0.0",
"aurelia-templating-resources": "npm:aurelia-templating-resources@1.1.1",
"aurelia-templating-router": "npm:aurelia-templating-router@1.0.0",
"bluebird": "npm:bluebird@3.4.1",
"bootstrap": "github:twbs/bootstrap@3.3.7",
"fetch": "github:github/fetch@1.0.0",
"font-awesome": "npm:font-awesome@4.6.3",
"jquery": "npm:jquery@2.2.4",
"text": "github:systemjs/plugin-text@0.0.8",
"github:jspm/nodelibs-assert@0.1.0": {
"assert": "npm:assert@1.4.1"
},
"github:jspm/nodelibs-buffer@0.1.0": {
"buffer": "npm:buffer@3.6.0"
},
"github:jspm/nodelibs-process@0.1.2": {
"process": "npm:process@0.11.9"
},
"github:jspm/nodelibs-util@0.1.0": {
"util": "npm:util@0.10.3"
},
"github:jspm/nodelibs-vm@0.1.0": {
"vm-browserify": "npm:vm-browserify@0.0.4"
},
"github:twbs/bootstrap@3.3.7": {
"jquery": "npm:jquery@2.2.4"
},
"npm:assert@1.4.1": {
"assert": "github:jspm/nodelibs-assert@0.1.0",
"buffer": "github:jspm/nodelibs-buffer@0.1.0",
"process": "github:jspm/nodelibs-process@0.1.2",
"util": "npm:util@0.10.3"
},
"npm:aurelia-animator-css@1.0.1": {
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-pal": "npm:aurelia-pal@1.3.0",
"aurelia-templating": "npm:aurelia-templating@1.1.1"
},
"npm:aurelia-binding@1.0.9": {
"aurelia-logging": "npm:aurelia-logging@1.3.1",
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-pal": "npm:aurelia-pal@1.3.0",
"aurelia-task-queue": "npm:aurelia-task-queue@1.1.0"
},
"npm:aurelia-bootstrapper@1.0.0": {
"aurelia-event-aggregator": "npm:aurelia-event-aggregator@1.0.1",
"aurelia-framework": "npm:aurelia-framework@1.0.6",
"aurelia-history": "npm:aurelia-history@1.0.0",
"aurelia-history-browser": "npm:aurelia-history-browser@1.0.0",
"aurelia-loader-default": "npm:aurelia-loader-default@1.0.0",
"aurelia-logging-console": "npm:aurelia-logging-console@1.0.0",
"aurelia-pal": "npm:aurelia-pal@1.3.0",
"aurelia-pal-browser": "npm:aurelia-pal-browser@1.0.0",
"aurelia-polyfills": "npm:aurelia-polyfills@1.1.1",
"aurelia-router": "npm:aurelia-router@1.3.0",
"aurelia-templating": "npm:aurelia-templating@1.1.1",
"aurelia-templating-binding": "npm:aurelia-templating-binding@1.0.0",
"aurelia-templating-resources": "npm:aurelia-templating-resources@1.1.1",
"aurelia-templating-router": "npm:aurelia-templating-router@1.0.0"
},
"npm:aurelia-dependency-injection@1.3.1": {
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-pal": "npm:aurelia-pal@1.3.0"
},
"npm:aurelia-event-aggregator@1.0.1": {
"aurelia-logging": "npm:aurelia-logging@1.3.1"
},
"npm:aurelia-framework@1.0.6": {
"aurelia-binding": "npm:aurelia-binding@1.0.9",
"aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1",
"aurelia-loader": "npm:aurelia-loader@1.0.0",
"aurelia-logging": "npm:aurelia-logging@1.3.1",
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-pal": "npm:aurelia-pal@1.3.0",
"aurelia-path": "npm:aurelia-path@1.1.1",
"aurelia-task-queue": "npm:aurelia-task-queue@1.1.0",
"aurelia-templating": "npm:aurelia-templating@1.1.1"
},
"npm:aurelia-history-browser@1.0.0": {
"aurelia-history": "npm:aurelia-history@1.0.0",
"aurelia-pal": "npm:aurelia-pal@1.3.0"
},
"npm:aurelia-loader-default@1.0.0": {
"aurelia-loader": "npm:aurelia-loader@1.0.0",
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-pal": "npm:aurelia-pal@1.3.0"
},
"npm:aurelia-loader@1.0.0": {
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-path": "npm:aurelia-path@1.1.1"
},
"npm:aurelia-logging-console@1.0.0": {
"aurelia-logging": "npm:aurelia-logging@1.3.1"
},
"npm:aurelia-metadata@1.0.3": {
"aurelia-pal": "npm:aurelia-pal@1.3.0"
},
"npm:aurelia-pal-browser@1.0.0": {
"aurelia-pal": "npm:aurelia-pal@1.3.0"
},
"npm:aurelia-polyfills@1.1.1": {
"aurelia-pal": "npm:aurelia-pal@1.3.0"
},
"npm:aurelia-route-recognizer@1.1.0": {
"aurelia-path": "npm:aurelia-path@1.1.1"
},
"npm:aurelia-router@1.3.0": {
"aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1",
"aurelia-event-aggregator": "npm:aurelia-event-aggregator@1.0.1",
"aurelia-history": "npm:aurelia-history@1.0.0",
"aurelia-logging": "npm:aurelia-logging@1.3.1",
"aurelia-path": "npm:aurelia-path@1.1.1",
"aurelia-route-recognizer": "npm:aurelia-route-recognizer@1.1.0"
},
"npm:aurelia-task-queue@1.1.0": {
"aurelia-pal": "npm:aurelia-pal@1.3.0"
},
"npm:aurelia-templating-binding@1.0.0": {
"aurelia-binding": "npm:aurelia-binding@1.0.9",
"aurelia-logging": "npm:aurelia-logging@1.3.1",
"aurelia-templating": "npm:aurelia-templating@1.1.1"
},
"npm:aurelia-templating-resources@1.1.1": {
"aurelia-binding": "npm:aurelia-binding@1.0.9",
"aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1",
"aurelia-loader": "npm:aurelia-loader@1.0.0",
"aurelia-logging": "npm:aurelia-logging@1.3.1",
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-pal": "npm:aurelia-pal@1.3.0",
"aurelia-path": "npm:aurelia-path@1.1.1",
"aurelia-task-queue": "npm:aurelia-task-queue@1.1.0",
"aurelia-templating": "npm:aurelia-templating@1.1.1"
},
"npm:aurelia-templating-router@1.0.0": {
"aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1",
"aurelia-logging": "npm:aurelia-logging@1.3.1",
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-pal": "npm:aurelia-pal@1.3.0",
"aurelia-path": "npm:aurelia-path@1.1.1",
"aurelia-router": "npm:aurelia-router@1.3.0",
"aurelia-templating": "npm:aurelia-templating@1.1.1"
},
"npm:aurelia-templating@1.1.1": {
"aurelia-binding": "npm:aurelia-binding@1.0.9",
"aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1",
"aurelia-loader": "npm:aurelia-loader@1.0.0",
"aurelia-logging": "npm:aurelia-logging@1.3.1",
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-pal": "npm:aurelia-pal@1.3.0",
"aurelia-path": "npm:aurelia-path@1.1.1",
"aurelia-task-queue": "npm:aurelia-task-queue@1.1.0"
},
"npm:bluebird@3.4.1": {
"process": "github:jspm/nodelibs-process@0.1.2"
},
"npm:buffer@3.6.0": {
"base64-js": "npm:base64-js@0.0.8",
"child_process": "github:jspm/nodelibs-child_process@0.1.0",
"fs": "github:jspm/nodelibs-fs@0.1.2",
"ieee754": "npm:ieee754@1.1.8",
"isarray": "npm:isarray@1.0.0",
"process": "github:jspm/nodelibs-process@0.1.2"
},
"npm:font-awesome@4.6.3": {
"css": "github:systemjs/plugin-css@0.1.31"
},
"npm:inherits@2.0.1": {
"util": "github:jspm/nodelibs-util@0.1.0"
},
"npm:process@0.11.9": {
"assert": "github:jspm/nodelibs-assert@0.1.0",
"fs": "github:jspm/nodelibs-fs@0.1.2",
"vm": "github:jspm/nodelibs-vm@0.1.0"
},
"npm:util@0.10.3": {
"inherits": "npm:inherits@2.0.1",
"process": "github:jspm/nodelibs-process@0.1.2"
},
"npm:vm-browserify@0.0.4": {
"indexof": "npm:indexof@0.0.1"
}
},
- depCache: {
- "repository/qep.repository.js": [
- "aurelia-framework",
- "aurelia-fetch-client",
- "fetch"
- ],
- "views/mailto/mailto.js": [
- "aurelia-framework",
- "views/mailto/mailto.service",
- "views/mailto/mailto.config"
- ],
- "views/mailto/mailto.service.js": [
- "aurelia-framework",
- "repository/qep.repository"
- ],
- "views/query-viewer/query-viewer.js": [
- "aurelia-framework",
- "views/query-viewer/query-viewer.service"
- ],
- "views/query-viewer/query-viewer.service.js": [
- "aurelia-framework",
- "repository/qep.repository",
- "./query-viewer.config"
- ]
- },
bundles: {
"app-build.js": [
+ "common/i2b2.service.js",
"main.js",
"repository/qep.repository.js",
"shell.html!github:systemjs/plugin-text@0.0.8.js",
"shell.js",
"views/mailto/mailto.config.js",
"views/mailto/mailto.html!github:systemjs/plugin-text@0.0.8.js",
"views/mailto/mailto.js",
"views/mailto/mailto.service.js",
"views/query-viewer/box-style.converter.js",
"views/query-viewer/query-viewer.config.js",
"views/query-viewer/query-viewer.html!github:systemjs/plugin-text@0.0.8.js",
"views/query-viewer/query-viewer.js",
+ "views/query-viewer/query-viewer.model.js",
"views/query-viewer/query-viewer.service.js",
"views/query-viewer/result-style.converter.js",
"views/query-viewer/result-value.converter.js"
],
"aurelia.js": [
"github:github/fetch@1.0.0.js",
"github:github/fetch@1.0.0/fetch.js",
"npm:aurelia-binding@1.0.9.js",
"npm:aurelia-binding@1.0.9/aurelia-binding.js",
"npm:aurelia-bootstrapper@1.0.0.js",
"npm:aurelia-bootstrapper@1.0.0/aurelia-bootstrapper.js",
"npm:aurelia-dependency-injection@1.3.1.js",
"npm:aurelia-dependency-injection@1.3.1/aurelia-dependency-injection.js",
"npm:aurelia-event-aggregator@1.0.1.js",
"npm:aurelia-event-aggregator@1.0.1/aurelia-event-aggregator.js",
"npm:aurelia-fetch-client@1.0.1.js",
"npm:aurelia-fetch-client@1.0.1/aurelia-fetch-client.js",
"npm:aurelia-framework@1.0.6.js",
"npm:aurelia-framework@1.0.6/aurelia-framework.js",
"npm:aurelia-history-browser@1.0.0.js",
"npm:aurelia-history-browser@1.0.0/aurelia-history-browser.js",
"npm:aurelia-history@1.0.0.js",
"npm:aurelia-history@1.0.0/aurelia-history.js",
"npm:aurelia-loader-default@1.0.0.js",
"npm:aurelia-loader-default@1.0.0/aurelia-loader-default.js",
"npm:aurelia-loader@1.0.0.js",
"npm:aurelia-loader@1.0.0/aurelia-loader.js",
"npm:aurelia-logging-console@1.0.0.js",
"npm:aurelia-logging-console@1.0.0/aurelia-logging-console.js",
"npm:aurelia-logging@1.3.1.js",
"npm:aurelia-logging@1.3.1/aurelia-logging.js",
"npm:aurelia-metadata@1.0.3.js",
"npm:aurelia-metadata@1.0.3/aurelia-metadata.js",
"npm:aurelia-pal-browser@1.0.0.js",
"npm:aurelia-pal-browser@1.0.0/aurelia-pal-browser.js",
"npm:aurelia-pal@1.3.0.js",
"npm:aurelia-pal@1.3.0/aurelia-pal.js",
"npm:aurelia-path@1.1.1.js",
"npm:aurelia-path@1.1.1/aurelia-path.js",
"npm:aurelia-polyfills@1.1.1.js",
"npm:aurelia-polyfills@1.1.1/aurelia-polyfills.js",
"npm:aurelia-route-recognizer@1.1.0.js",
"npm:aurelia-route-recognizer@1.1.0/aurelia-route-recognizer.js",
"npm:aurelia-router@1.3.0.js",
"npm:aurelia-router@1.3.0/aurelia-router.js",
"npm:aurelia-task-queue@1.1.0.js",
"npm:aurelia-task-queue@1.1.0/aurelia-task-queue.js",
"npm:aurelia-templating-binding@1.0.0.js",
"npm:aurelia-templating-binding@1.0.0/aurelia-templating-binding.js",
"npm:aurelia-templating-resources@1.1.1.js",
"npm:aurelia-templating-resources@1.1.1/abstract-repeater.js",
"npm:aurelia-templating-resources@1.1.1/analyze-view-factory.js",
"npm:aurelia-templating-resources@1.1.1/array-repeat-strategy.js",
"npm:aurelia-templating-resources@1.1.1/attr-binding-behavior.js",
"npm:aurelia-templating-resources@1.1.1/aurelia-hide-style.js",
"npm:aurelia-templating-resources@1.1.1/aurelia-templating-resources.js",
"npm:aurelia-templating-resources@1.1.1/binding-mode-behaviors.js",
"npm:aurelia-templating-resources@1.1.1/binding-signaler.js",
"npm:aurelia-templating-resources@1.1.1/compose.js",
"npm:aurelia-templating-resources@1.1.1/css-resource.js",
"npm:aurelia-templating-resources@1.1.1/debounce-binding-behavior.js",
"npm:aurelia-templating-resources@1.1.1/dynamic-element.js",
"npm:aurelia-templating-resources@1.1.1/focus.js",
"npm:aurelia-templating-resources@1.1.1/hide.js",
"npm:aurelia-templating-resources@1.1.1/html-resource-plugin.js",
"npm:aurelia-templating-resources@1.1.1/html-sanitizer.js",
"npm:aurelia-templating-resources@1.1.1/if.js",
"npm:aurelia-templating-resources@1.1.1/map-repeat-strategy.js",
"npm:aurelia-templating-resources@1.1.1/null-repeat-strategy.js",
"npm:aurelia-templating-resources@1.1.1/number-repeat-strategy.js",
"npm:aurelia-templating-resources@1.1.1/repeat-strategy-locator.js",
"npm:aurelia-templating-resources@1.1.1/repeat-utilities.js",
"npm:aurelia-templating-resources@1.1.1/repeat.js",
"npm:aurelia-templating-resources@1.1.1/replaceable.js",
"npm:aurelia-templating-resources@1.1.1/sanitize-html.js",
"npm:aurelia-templating-resources@1.1.1/set-repeat-strategy.js",
"npm:aurelia-templating-resources@1.1.1/show.js",
"npm:aurelia-templating-resources@1.1.1/signal-binding-behavior.js",
"npm:aurelia-templating-resources@1.1.1/throttle-binding-behavior.js",
"npm:aurelia-templating-resources@1.1.1/update-trigger-binding-behavior.js",
"npm:aurelia-templating-resources@1.1.1/with.js",
"npm:aurelia-templating-router@1.0.0.js",
"npm:aurelia-templating-router@1.0.0/aurelia-templating-router.js",
"npm:aurelia-templating-router@1.0.0/route-href.js",
"npm:aurelia-templating-router@1.0.0/route-loader.js",
"npm:aurelia-templating-router@1.0.0/router-view.js",
"npm:aurelia-templating@1.1.1.js",
"npm:aurelia-templating@1.1.1/aurelia-templating.js",
"npm:jquery@2.2.4.js",
"npm:jquery@2.2.4/dist/jquery.js"
]
+ },
+ depCache: {
+ "repository/qep.repository.js": [
+ "aurelia-framework",
+ "aurelia-fetch-client",
+ "fetch"
+ ],
+ "views/mailto/mailto.js": [
+ "aurelia-framework",
+ "views/mailto/mailto.service",
+ "views/mailto/mailto.config"
+ ],
+ "views/mailto/mailto.service.js": [
+ "aurelia-framework",
+ "repository/qep.repository"
+ ],
+ "views/query-viewer/query-viewer.js": [
+ "aurelia-framework",
+ "views/query-viewer/query-viewer.service",
+ "common/i2b2.service.js",
+ "./query-viewer.model"
+ ],
+ "views/query-viewer/query-viewer.service.js": [
+ "aurelia-framework",
+ "repository/qep.repository",
+ "./query-viewer.config"
+ ]
}
});
\ No newline at end of file
diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/app-build.js b/shrine-webclient/src/main/js/client/js-shrine/dist/app-build.js
index f01043142..4e59ec819 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/dist/app-build.js
+++ b/shrine-webclient/src/main/js/client/js-shrine/dist/app-build.js
@@ -1 +1 @@
-"bundle";System.register("main.js",[],function(a,b){"use strict";function c(a){a.use.standardConfiguration().developmentLogging(),a.start().then(function(){return a.setRoot("shell")})}return a("configure",c),{setters:[],execute:function(){}}}),function(){var a=System.amdDefine;a("shell.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return" "})}(),System.register("shell.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("Shell",d=function(){function a(){c(this,a)}return a.prototype.configureRouter=function(a,b){a.title="SHRINE Webclient Plugin",a.map([{route:["","mailto"],moduleId:"views/mailto/mailto"},{route:"query-viewer",moduleId:"views/query-viewer/query-viewer"}]),this.router=b},a}()),a("Shell",d)}}}),function(){var a=System.amdDefine;a("views/mailto/mailto.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return'If you have questions about your query results or this SHRINE network, contact the Data Steward at your site.
Email Data Steward
'})}(),System.register("views/mailto/mailto.service.js",["aurelia-framework","repository/qep.repository"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a.inject},function(a){e=a.QEPRepository}],execute:function(){a("MailToService",(f=d(e),h=f(g=function(){function a(b){c(this,a),this.repository=b}return a.prototype.fetchStewardEmail=function(){return this.repository.fetchStewardEmail()},a}())||g)),a("MailToService",h)}}}),System.register("views/mailto/mailto.config.js",[],function(a,b){"use strict";var c;return{setters:[],execute:function(){a("MailConfig",c={mailto:"mailto:",subject:"subject="+encodeURIComponent("Question from a SHRINE User"),body:encodeURIComponent("Please enter the suggested information and your question. Your data steward will reply to this email.\n\n***Never send patient information, passwords, or other sensitive information by email****\nName:\nTitle:\nUser name (to log into SHRINE):\nTelephone Number (optional):\nPreferred email address (optional):\n\nQuestion or Comment:")}),a("MailConfig",c)}}}),System.register("views/mailto/mailto.js",["aurelia-framework","views/mailto/mailto.service","views/mailto/mailto.config"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.inject},function(a){e=a.MailToService},function(a){f=a.MailConfig}],execute:function(){a("MailTo",(g=d(e,f),i=g(h=function(){function a(b,d){c(this,a),this.service=b,this.config=d}return a.prototype.openEmail=function(){var a=this;this.service.fetchStewardEmail().then(function(b){return window.top.location=a.getComposition(b),a})},a.prototype.getComposition=function(a){return this.config.mailto+a+"?"+this.config.subject+"&"+this.config.body},a}())||h)),a("MailTo",i)}}}),System.register("views/query-viewer/box-style.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("BoxStyleValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return"transform: translate("+String(-100*a)+"%);"},a}()),a("BoxStyleValueConverter",d)}}}),function(){var a=System.amdDefine;a("views/query-viewer/query-viewer.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return'
'})}(),System.register("repository/qep.repository.js",["aurelia-framework","aurelia-fetch-client","fetch"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.inject},function(a){e=a.HttpClient},function(a){}],execute:function(){f=function(){function a(a,b){for(var c=0;c0?a.split('"')[1]:a})["catch"](function(){return""})},f(a,[{key:"url",get:function(){var a=document.URL,b=":6443/shrine-metadata/";return a.substring(0,a.lastIndexOf(":"))+b}},{key:"auth",get:function(){var a=sessionStorage.getItem("shrine.auth");return sessionStorage.removeItem("shrine.auth"),a}}]),a}())||h)),a("QEPRepository",i)}}}),System.register("views/query-viewer/query-viewer.config.js",[],function(a,b){"use strict";var c;return{setters:[],execute:function(){a("QueryViewerConfig",c={maxNodesPerScreen:10}),a("QueryViewerConfig",c)}}}),System.register("views/query-viewer/query-viewer.service.js",["aurelia-framework","repository/qep.repository","./query-viewer.config"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.inject},function(a){e=a.QEPRepository},function(a){f=a.QueryViewerConfig}],execute:function(){a("QueryViewerService",(g=d(e,f),i=g(h=function(){function a(b,d){c(this,a),this.repository=b,this.config=d}return a.prototype.fetchPreviousQueries=function(){return this.repository.fetchPreviousQueries()},a.prototype.getScreens=function(a,b){var c=this;return new Promise(function(d,e){for(var f=a.sort().length,g=[],h=0;h1})["catch"](function(a){return console.log(a)})})||h)),a("QueryViewer",i)}}}),System.register("views/query-viewer/result-style.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("ResultStyleValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){var b=this.isUnresolved(a)?"color:"+this.getColorValue(a):"";return b},a.prototype.isUnresolved=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"FINISHED";return!a||a.status!==b},a.prototype.getColorValue=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ERROR",c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"#FF0000",d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#00FF00";return a&&a.status!==b?d:c},a}()),a("ResultStyleValueConverter",d)}}}),System.register("views/query-viewer/result-value.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("ResultValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return a?"FINISHED"!==a.status?a.status:a.count<0?"<10":a.count:"not available"},a}()),a("ResultValueConverter",d)}}});
\ No newline at end of file
+"bundle";System.register("main.js",[],function(a,b){"use strict";function c(a){a.use.standardConfiguration().developmentLogging(),a.start().then(function(){return a.setRoot("shell")})}return a("configure",c),{setters:[],execute:function(){}}}),function(){var a=System.amdDefine;a("shell.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return" "})}(),System.register("shell.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("Shell",d=function(){function a(){c(this,a)}return a.prototype.configureRouter=function(a,b){a.title="SHRINE Webclient Plugin",a.map([{route:"mailto",moduleId:"views/mailto/mailto"},{route:["","query-viewer"],moduleId:"views/query-viewer/query-viewer"}]),this.router=b},a}()),a("Shell",d)}}}),function(){var a=System.amdDefine;a("views/mailto/mailto.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return'If you have questions about your query results or this SHRINE network, contact the Data Steward at your site.
Email Data Steward
'})}(),System.register("views/mailto/mailto.service.js",["aurelia-framework","repository/qep.repository"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a.inject},function(a){e=a.QEPRepository}],execute:function(){a("MailToService",(f=d(e),h=f(g=function(){function a(b){c(this,a),this.repository=b}return a.prototype.fetchStewardEmail=function(){return this.repository.fetchStewardEmail()},a}())||g)),a("MailToService",h)}}}),System.register("views/mailto/mailto.config.js",[],function(a,b){"use strict";var c;return{setters:[],execute:function(){a("MailConfig",c={mailto:"mailto:",subject:"subject="+encodeURIComponent("Question from a SHRINE User"),body:encodeURIComponent("Please enter the suggested information and your question. Your data steward will reply to this email.\n\n***Never send patient information, passwords, or other sensitive information by email****\nName:\nTitle:\nUser name (to log into SHRINE):\nTelephone Number (optional):\nPreferred email address (optional):\n\nQuestion or Comment:")}),a("MailConfig",c)}}}),System.register("views/mailto/mailto.js",["aurelia-framework","views/mailto/mailto.service","views/mailto/mailto.config"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.inject},function(a){e=a.MailToService},function(a){f=a.MailConfig}],execute:function(){a("MailTo",(g=d(e,f),i=g(h=function(){function a(b,d){c(this,a),this.service=b,this.config=d}return a.prototype.openEmail=function(){var a=this;this.service.fetchStewardEmail().then(function(b){return window.top.location=a.getComposition(b),a})},a.prototype.getComposition=function(a){return this.config.mailto+a+"?"+this.config.subject+"&"+this.config.body},a}())||h)),a("MailTo",i)}}}),System.register("views/query-viewer/box-style.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("BoxStyleValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return"transform: translate("+String(-100*a)+"%);"},a}()),a("BoxStyleValueConverter",d)}}}),function(){var a=System.amdDefine;a("views/query-viewer/query-viewer.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return'
'})}(),System.register("repository/qep.repository.js",["aurelia-framework","aurelia-fetch-client","fetch"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.inject},function(a){e=a.HttpClient},function(a){}],execute:function(){f=function(){function a(a,b){for(var c=0;c0?a.split('"')[1]:a})["catch"](function(){return""})},f(a,[{key:"url",get:function(){var a=document.URL,b=":6443/shrine-metadata/";return a.substring(0,a.lastIndexOf(":"))+b}},{key:"auth",get:function(){var a=sessionStorage.getItem("shrine.auth");return sessionStorage.removeItem("shrine.auth"),a}}]),a}())||h)),a("QEPRepository",i)}}}),System.register("views/query-viewer/query-viewer.config.js",[],function(a,b){"use strict";var c;return{setters:[],execute:function(){a("QueryViewerConfig",c={maxNodesPerScreen:10}),a("QueryViewerConfig",c)}}}),System.register("views/query-viewer/query-viewer.service.js",["aurelia-framework","repository/qep.repository","./query-viewer.config"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.inject},function(a){e=a.QEPRepository},function(a){f=a.QueryViewerConfig}],execute:function(){a("QueryViewerService",(g=d(e,f),i=g(h=function(){function a(b,d,e){c(this,a),this.repository=b,this.config=d}return a.prototype.fetchPreviousQueries=function(){return this.repository.fetchPreviousQueries()},a.prototype.getScreens=function(a,b){var c=this;return new Promise(function(d,e){for(var f=a.sort().length,g=[],h=0;h0&&void 0!==arguments[0]?arguments[0]:window;c(this,b);var d=e(a,"i2b2");this.onResize=function(a){return d?d.events.changedZoomWindows.subscribe(a):null},this.onHistory=function(a){return d?d.CRC.ctrlr.history.events.onDataUpdate.subscribe(a):null}}),a("I2B2Service",d),e=function(a,b){return g(a)?f(a)[b]:null},f=function(a){return a.parent.window},g=function(a){return a&&a.parent&&a.parent.window}}}}),System.register("views/query-viewer/query-viewer.model.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("QueryViewerModel",d=function b(){c(this,b),this.isLoaded=!1,this.screens=[]}),a("QueryViewerModel",d)}}}),System.register("views/query-viewer/query-viewer.js",["aurelia-framework","views/query-viewer/query-viewer.service","common/i2b2.service.js","./query-viewer.model"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i,j,k;return{setters:[function(a){d=a.inject,e=a.computedFrom},function(a){f=a.QueryViewerService},function(a){g=a.I2B2Service},function(a){h=a.QueryViewerModel}],execute:function(){a("QueryViewer",(i=d(f,g,h),k=i(j=function b(a,d,e){var f=this;c(this,b),this.screenIndex=0,this.showCircles=!1,this.service=a,this.vertStyle="v-min";var g=function(a){return f.service.getScreens(a.adapters,a.queryResults)},h=function(a){f.screens=a,f.showCircles=f.screens.length>1,e.screens=a,e.isLoaded=!0},i=function(){return f.service.fetchPreviousQueries().then(g).then(h)["catch"](function(a){return console.log(a)})},j=function(){return e.isLoaded?h(e.screens):i()},k=function(a){return"ADD"!==a.action};d.onResize(function(a,b){return f.vertStyle=b.find(k)?"v-min":"v-full"}),d.onHistory(i),j()})||j)),a("QueryViewer",k)}}}),System.register("views/query-viewer/result-style.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("ResultStyleValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){var b=this.isUnresolved(a)?"color:"+this.getColorValue(a):"";return b},a.prototype.isUnresolved=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"FINISHED";return!a||a.status!==b},a.prototype.getColorValue=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ERROR",c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"#FF0000",d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#00FF00";return a&&a.status!==b?d:c},a}()),a("ResultStyleValueConverter",d)}}}),System.register("views/query-viewer/result-value.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("ResultValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return a?"FINISHED"!==a.status?a.status:a.count<0?"<=10":a.count:"not available"},a}()),a("ResultValueConverter",d)}}});
\ No newline at end of file
diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.service.js b/shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.service.js
new file mode 100644
index 000000000..414b79660
--- /dev/null
+++ b/shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.service.js
@@ -0,0 +1,45 @@
+System.register([], function (_export, _context) {
+ "use strict";
+
+ var I2B2Service, getLib, getParent, hasParent;
+
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+
+ return {
+ setters: [],
+ execute: function () {
+ _export('I2B2Service', I2B2Service = function I2B2Service() {
+ var context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
+
+ _classCallCheck(this, I2B2Service);
+
+ var i2b2 = getLib(context, 'i2b2');
+ this.onResize = function (f) {
+ return i2b2 ? i2b2.events.changedZoomWindows.subscribe(f) : null;
+ };
+ this.onHistory = function (f) {
+ return i2b2 ? i2b2.CRC.ctrlr.history.events.onDataUpdate.subscribe(f) : null;
+ };
+ });
+
+ _export('I2B2Service', I2B2Service);
+
+ getLib = function getLib(context, lib) {
+ return hasParent(context) ? getParent(context)[lib] : null;
+ };
+
+ getParent = function getParent(context) {
+ return context.parent.window;
+ };
+
+ hasParent = function hasParent(context) {
+ return context && context.parent && context.parent.window;
+ };
+ }
+ };
+});
+//# sourceMappingURL=i2b2.service.js.map
diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.service.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.service.js.map
new file mode 100644
index 000000000..362fe9845
--- /dev/null
+++ b/shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.service.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["common/i2b2.service.js"],"names":["I2B2Service","context","window","i2b2","getLib","onResize","events","changedZoomWindows","subscribe","f","onHistory","CRC","ctrlr","history","onDataUpdate","lib","hasParent","getParent","parent"],"mappings":";;;;;;;;;;;;;;mCAAaA,W,GACT,uBAA8B;AAAA,oBAAlBC,OAAkB,uEAARC,MAAQ;;AAAA;;AAC1B,oBAAMC,OAAOC,OAAOH,OAAP,EAAgB,MAAhB,CAAb;AACA,qBAAKI,QAAL,GAAgB;AAAA,2BAAMF,IAAD,GAASA,KAAKG,MAAL,CAAYC,kBAAZ,CAA+BC,SAA/B,CAAyCC,CAAzC,CAAT,GAAuD,IAA5D;AAAA,iBAAhB;AACA,qBAAKC,SAAL,GAAiB;AAAA,2BAAMP,IAAD,GAAQA,KAAKQ,GAAL,CAASC,KAAT,CAAeC,OAAf,CAAuBP,MAAvB,CAA8BQ,YAA9B,CAA2CN,SAA3C,CAAqDC,CAArD,CAAR,GAAkE,IAAvE;AAAA,iBAAjB;AACH,a;;;;AAICL,kB,GAAS,SAATA,MAAS,CAACH,OAAD,EAAUc,GAAV;AAAA,uBAAkBC,UAAUf,OAAV,IAAqBgB,UAAUhB,OAAV,EAAmBc,GAAnB,CAArB,GAA+C,IAAjE;AAAA,a;;AACTE,qB,GAAY,SAAZA,SAAY,CAAChB,OAAD;AAAA,uBAAaA,QAAQiB,MAAR,CAAehB,MAA5B;AAAA,a;;AACZc,qB,GAAY,SAAZA,SAAY,CAACf,OAAD;AAAA,uBAAaA,WAAWA,QAAQiB,MAAnB,IAA6BjB,QAAQiB,MAAR,CAAehB,MAAzD;AAAA,a","file":"i2b2.service.js","sourceRoot":"/src"}
\ No newline at end of file
diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/shell.js b/shrine-webclient/src/main/js/client/js-shrine/dist/shell.js
index 843a83a0e..8e3d0b4e9 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/dist/shell.js
+++ b/shrine-webclient/src/main/js/client/js-shrine/dist/shell.js
@@ -1,35 +1,35 @@
System.register([], function (_export, _context) {
"use strict";
var Shell;
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
return {
setters: [],
execute: function () {
_export('Shell', Shell = function () {
function Shell() {
_classCallCheck(this, Shell);
}
Shell.prototype.configureRouter = function configureRouter(config, router) {
config.title = 'SHRINE Webclient Plugin';
- config.map([{ route: ['', 'mailto'], moduleId: 'views/mailto/mailto' }, { route: 'query-viewer', moduleId: 'views/query-viewer/query-viewer' }]);
+ config.map([{ route: 'mailto', moduleId: 'views/mailto/mailto' }, { route: ['', 'query-viewer'], moduleId: 'views/query-viewer/query-viewer' }]);
this.router = router;
};
return Shell;
}());
_export('Shell', Shell);
}
};
});
//# sourceMappingURL=shell.js.map
diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/shell.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/shell.js.map
index 08e5cd1c5..936f9e4ea 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/dist/shell.js.map
+++ b/shrine-webclient/src/main/js/client/js-shrine/dist/shell.js.map
@@ -1 +1 @@
-{"version":3,"sources":["shell.js"],"names":["Shell","configureRouter","config","router","title","map","route","moduleId"],"mappings":";;;;;;;;;;;;;;uBAAaA,K;;;;;wBACXC,e,4BAAgBC,M,EAAQC,M,EAAQ;;AAE9BD,iBAAOE,KAAP,GAAe,yBAAf;AACAF,iBAAOG,GAAP,CAAW,CACT,EAACC,OAAO,CAAC,EAAD,EAAK,QAAL,CAAR,EAAwBC,UAAU,qBAAlC,EADS,EAET,EAACD,OAAO,cAAR,EAAwBC,UAAU,iCAAlC,EAFS,CAAX;;AAKA,eAAKJ,MAAL,GAAcA,MAAd;AACD,S","file":"shell.js","sourceRoot":"/src"}
\ No newline at end of file
+{"version":3,"sources":["shell.js"],"names":["Shell","configureRouter","config","router","title","map","route","moduleId"],"mappings":";;;;;;;;;;;;;;uBAAaA,K;;;;;wBACXC,e,4BAAgBC,M,EAAQC,M,EAAQ;;AAE9BD,iBAAOE,KAAP,GAAe,yBAAf;AACAF,iBAAOG,GAAP,CAAW,CACT,EAACC,OAAO,QAAR,EAAkBC,UAAU,qBAA5B,EADS,EAET,EAACD,OAAO,CAAC,EAAD,EAAK,cAAL,CAAR,EAA8BC,UAAU,iCAAxC,EAFS,CAAX;;AAKA,eAAKJ,MAAL,GAAcA,MAAd;AACD,S","file":"shell.js","sourceRoot":"/src"}
\ No newline at end of file
diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.html b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.html
index 0f5b51d0f..3e569108c 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.html
+++ b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.html
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.js b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.js
index bec7ef1cd..34cdd2d4d 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.js
+++ b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.js
@@ -1,44 +1,68 @@
-System.register(['aurelia-framework', 'views/query-viewer/query-viewer.service'], function (_export, _context) {
+System.register(['aurelia-framework', 'views/query-viewer/query-viewer.service', 'common/i2b2.service.js', './query-viewer.model'], function (_export, _context) {
"use strict";
- var inject, computedFrom, QueryViewerService, _dec, _class, QueryViewer;
+ var inject, computedFrom, QueryViewerService, I2B2Service, QueryViewerModel, _dec, _class, QueryViewer;
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
return {
setters: [function (_aureliaFramework) {
inject = _aureliaFramework.inject;
computedFrom = _aureliaFramework.computedFrom;
}, function (_viewsQueryViewerQueryViewerService) {
QueryViewerService = _viewsQueryViewerQueryViewerService.QueryViewerService;
+ }, function (_commonI2b2ServiceJs) {
+ I2B2Service = _commonI2b2ServiceJs.I2B2Service;
+ }, function (_queryViewerModel) {
+ QueryViewerModel = _queryViewerModel.QueryViewerModel;
}],
execute: function () {
- _export('QueryViewer', QueryViewer = (_dec = inject(QueryViewerService), _dec(_class = function QueryViewer(service) {
+ _export('QueryViewer', QueryViewer = (_dec = inject(QueryViewerService, I2B2Service, QueryViewerModel), _dec(_class = function QueryViewer(service, i2b2Svc, model) {
var _this = this;
_classCallCheck(this, QueryViewer);
this.screenIndex = 0;
this.showCircles = false;
this.service = service;
- this.service.fetchPreviousQueries().then(function (result) {
- var queries = result.queryResults;
- var nodes = result.adapters;
- return service.getScreens(nodes, queries);
- }).then(function (screens) {
+ this.vertStyle = 'v-min';
+
+ var parseResultToScreens = function parseResultToScreens(result) {
+ return _this.service.getScreens(result.adapters, result.queryResults);
+ };
+ var setVM = function setVM(screens) {
_this.screens = screens;
_this.showCircles = _this.screens.length > 1;
- }).catch(function (error) {
- return console.log(error);
+ model.screens = screens;
+ model.isLoaded = true;
+ };
+ var refresh = function refresh() {
+ return _this.service.fetchPreviousQueries().then(parseResultToScreens).then(setVM).catch(function (error) {
+ return console.log(error);
+ });
+ };
+
+ var init = function init() {
+ return model.isLoaded ? setVM(model.screens) : refresh();
+ };
+
+ var isMinimized = function isMinimized(e) {
+ return e.action !== 'ADD';
+ };
+ i2b2Svc.onResize(function (a, b) {
+ return _this.vertStyle = b.find(isMinimized) ? 'v-min' : 'v-full';
});
+ i2b2Svc.onHistory(refresh);
+
+ init();
}) || _class));
_export('QueryViewer', QueryViewer);
}
};
});
//# sourceMappingURL=query-viewer.js.map
diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.js.map
index 9d6b4a030..7bf91badc 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.js.map
+++ b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.js.map
@@ -1 +1 @@
-{"version":3,"sources":["views/query-viewer/query-viewer.js"],"names":["inject","computedFrom","QueryViewerService","QueryViewer","service","screenIndex","showCircles","fetchPreviousQueries","then","queries","result","queryResults","nodes","adapters","getScreens","screens","length","catch","console","log","error"],"mappings":";;;;;;;;;;;;;AAASA,kB,qBAAAA,M;AAAQC,wB,qBAAAA,Y;;AACRC,8B,uCAAAA,kB;;;mCAGIC,W,WADZH,OAAOE,kBAAP,C,gBAEG,qBAAYE,OAAZ,EAAqB;AAAA;;AAAA;;AACjB,qBAAKC,WAAL,GAAmB,CAAnB;AACA,qBAAKC,WAAL,GAAmB,KAAnB;AACA,qBAAKF,OAAL,GAAeA,OAAf;AACA,qBAAKA,OAAL,CACKG,oBADL,GAEKC,IAFL,CAEU,kBAAU;AACZ,wBAAMC,UAAUC,OAAOC,YAAvB;AACA,wBAAMC,QAAQF,OAAOG,QAArB;AACA,2BAAOT,QAAQU,UAAR,CAAmBF,KAAnB,EAA0BH,OAA1B,CAAP;AACH,iBANL,EAOKD,IAPL,CAOU,mBAAW;AACb,0BAAKO,OAAL,GAAeA,OAAf;AACA,0BAAKT,WAAL,GAAmB,MAAKS,OAAL,CAAaC,MAAb,GAAsB,CAAzC;AACH,iBAVL,EAWKC,KAXL,CAWW;AAAA,2BAASC,QAAQC,GAAR,CAAYC,KAAZ,CAAT;AAAA,iBAXX;AAYH,a","file":"query-viewer.js","sourceRoot":"/src"}
\ No newline at end of file
+{"version":3,"sources":["views/query-viewer/query-viewer.js"],"names":["inject","computedFrom","QueryViewerService","I2B2Service","QueryViewerModel","QueryViewer","service","i2b2Svc","model","screenIndex","showCircles","vertStyle","parseResultToScreens","getScreens","result","adapters","queryResults","setVM","screens","length","isLoaded","refresh","fetchPreviousQueries","then","catch","console","log","error","init","isMinimized","e","action","onResize","a","b","find","onHistory"],"mappings":";;;;;;;;;;;;;AAASA,kB,qBAAAA,M;AAAQC,wB,qBAAAA,Y;;AACRC,8B,uCAAAA,kB;;AACAC,uB,wBAAAA,W;;AACDC,4B,qBAAAA,gB;;;mCAGKC,W,WADZL,OAAOE,kBAAP,EAA2BC,WAA3B,EAAwCC,gBAAxC,C,gBAEG,qBAAYE,OAAZ,EAAqBC,OAArB,EAA8BC,KAA9B,EAAqC;AAAA;;AAAA;;AAGjC,qBAAKC,WAAL,GAAmB,CAAnB;AACA,qBAAKC,WAAL,GAAmB,KAAnB;AACA,qBAAKJ,OAAL,GAAeA,OAAf;AACA,qBAAKK,SAAL,GAAiB,OAAjB;;AAGA,oBAAMC,uBAAuB,SAAvBA,oBAAuB;AAAA,2BAAU,MAAKN,OAAL,CAAaO,UAAb,CAAwBC,OAAOC,QAA/B,EAAyCD,OAAOE,YAAhD,CAAV;AAAA,iBAA7B;AACA,oBAAMC,QAAQ,SAARA,KAAQ,UAAW;AACrB,0BAAKC,OAAL,GAAeA,OAAf;AACA,0BAAKR,WAAL,GAAmB,MAAKQ,OAAL,CAAaC,MAAb,GAAsB,CAAzC;AACAX,0BAAMU,OAAN,GAAgBA,OAAhB;AACAV,0BAAMY,QAAN,GAAiB,IAAjB;AACH,iBALD;AAMA,oBAAMC,UAAU,SAAVA,OAAU;AAAA,2BAAM,MAAKf,OAAL,CACjBgB,oBADiB,GAEjBC,IAFiB,CAEZX,oBAFY,EAGjBW,IAHiB,CAGZN,KAHY,EAIjBO,KAJiB,CAIX;AAAA,+BAASC,QAAQC,GAAR,CAAYC,KAAZ,CAAT;AAAA,qBAJW,CAAN;AAAA,iBAAhB;;AAMA,oBAAMC,OAAO,SAAPA,IAAO;AAAA,2BAAOpB,MAAMY,QAAP,GAAkBH,MAAMT,MAAMU,OAAZ,CAAlB,GAAyCG,SAA/C;AAAA,iBAAb;;AAGA,oBAAMQ,cAAc,SAAdA,WAAc;AAAA,2BAAKC,EAAEC,MAAF,KAAa,KAAlB;AAAA,iBAApB;AACAxB,wBAAQyB,QAAR,CAAiB,UAACC,CAAD,EAAIC,CAAJ;AAAA,2BAAU,MAAKvB,SAAL,GAAiBuB,EAAEC,IAAF,CAAON,WAAP,IAAsB,OAAtB,GAAgC,QAA3D;AAAA,iBAAjB;AACAtB,wBAAQ6B,SAAR,CAAkBf,OAAlB;;AAGAO;AACH,a","file":"query-viewer.js","sourceRoot":"/src"}
\ No newline at end of file
diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.model.js b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.model.js
new file mode 100644
index 000000000..09e4cce64
--- /dev/null
+++ b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.model.js
@@ -0,0 +1,26 @@
+System.register([], function (_export, _context) {
+ "use strict";
+
+ var QueryViewerModel;
+
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+
+ return {
+ setters: [],
+ execute: function () {
+ _export("QueryViewerModel", QueryViewerModel = function QueryViewerModel() {
+ _classCallCheck(this, QueryViewerModel);
+
+ this.isLoaded = false;
+ this.screens = [];
+ });
+
+ _export("QueryViewerModel", QueryViewerModel);
+ }
+ };
+});
+//# sourceMappingURL=query-viewer.model.js.map
diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.model.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.model.js.map
new file mode 100644
index 000000000..cf2fee99a
--- /dev/null
+++ b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.model.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["views/query-viewer/query-viewer.model.js"],"names":["QueryViewerModel","isLoaded","screens"],"mappings":";;;;;;;;;;;;;;wCAAaA,gB,GACT,4BAAc;AAAA;;AACV,qBAAKC,QAAL,GAAgB,KAAhB;AACA,qBAAKC,OAAL,GAAe,EAAf;AACH,a","file":"query-viewer.model.js","sourceRoot":"/src"}
\ No newline at end of file
diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.service.js b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.service.js
index 5410b8f69..e2d66de78 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.service.js
+++ b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.service.js
@@ -1,91 +1,91 @@
System.register(['aurelia-framework', 'repository/qep.repository', './query-viewer.config'], function (_export, _context) {
"use strict";
var inject, QEPRepository, QueryViewerConfig, _dec, _class, QueryViewerService;
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
return {
setters: [function (_aureliaFramework) {
inject = _aureliaFramework.inject;
}, function (_repositoryQepRepository) {
QEPRepository = _repositoryQepRepository.QEPRepository;
}, function (_queryViewerConfig) {
QueryViewerConfig = _queryViewerConfig.QueryViewerConfig;
}],
execute: function () {
_export('QueryViewerService', QueryViewerService = (_dec = inject(QEPRepository, QueryViewerConfig), _dec(_class = function () {
- function QueryViewerService(repository, config) {
+ function QueryViewerService(repository, config, i2b2Svc) {
_classCallCheck(this, QueryViewerService);
this.repository = repository;
this.config = config;
}
QueryViewerService.prototype.fetchPreviousQueries = function fetchPreviousQueries() {
return this.repository.fetchPreviousQueries();
};
QueryViewerService.prototype.getScreens = function getScreens(nodes, queries) {
var _this = this;
return new Promise(function (resolve, reject) {
var lastNodeIndex = nodes.sort().length;
var screens = [];
for (var i = 0; i < lastNodeIndex; i = i + _this.config.maxNodesPerScreen) {
var numberOfNodesOnScreen = _this.getNumberOfNodesOnScreen(nodes, i, _this.config.maxNodesPerScreen);
var endIndex = numberOfNodesOnScreen - 1;
var screenId = _this.getScreenId(nodes, i, endIndex);
var screenNodes = nodes.slice(i, numberOfNodesOnScreen);
var screenNodesToQueriesMap = _this.mapQueriesToScreenNodes(screenNodes, queries, _this.findQueriesForNode);
screens.push({
id: screenId,
nodes: screenNodes,
results: screenNodesToQueriesMap
});
}
resolve(screens);
});
};
QueryViewerService.prototype.mapQueriesToScreenNodes = function mapQueriesToScreenNodes(nodes, queries) {
var results = [];
queries.forEach(function (q, i) {
var result = {
name: q.query.queryName,
id: q.query.networkId,
nodeResults: []
};
nodes.forEach(function (n) {
result.nodeResults.push(q.adaptersToResults.find(function (a) {
return a.adapterNode === n;
}));
});
results.push(result);
});
return results;
};
QueryViewerService.prototype.getNumberOfNodesOnScreen = function getNumberOfNodesOnScreen(nodes, startIndex) {
var numNodes = startIndex + this.config.maxNodesPerScreen;
return numNodes < nodes.length ? numNodes : nodes.length;
};
QueryViewerService.prototype.getScreenId = function getScreenId(nodes, start, end) {
var startNode = nodes[start];
var endNode = nodes[end];
return String(startNode).substr(0, 1) + '-' + String(endNode).substr(0, 1);
};
return QueryViewerService;
}()) || _class));
_export('QueryViewerService', QueryViewerService);
}
};
});
//# sourceMappingURL=query-viewer.service.js.map
diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.service.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.service.js.map
index e0d702e22..317cb552b 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.service.js.map
+++ b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/query-viewer.service.js.map
@@ -1 +1 @@
-{"version":3,"sources":["views/query-viewer/query-viewer.service.js"],"names":["inject","QEPRepository","QueryViewerConfig","QueryViewerService","repository","config","fetchPreviousQueries","getScreens","nodes","queries","Promise","resolve","reject","lastNodeIndex","sort","length","screens","i","maxNodesPerScreen","numberOfNodesOnScreen","getNumberOfNodesOnScreen","endIndex","screenId","getScreenId","screenNodes","slice","screenNodesToQueriesMap","mapQueriesToScreenNodes","findQueriesForNode","push","id","results","forEach","q","result","name","query","queryName","networkId","nodeResults","adaptersToResults","find","a","adapterNode","n","startIndex","numNodes","start","end","startNode","endNode","String","substr"],"mappings":";;;;;;;;;;;;;AAASA,kB,qBAAAA,M;;AACDC,yB,4BAAAA,a;;AACAC,6B,sBAAAA,iB;;;0CAGKC,kB,WADZH,OAAOC,aAAP,EAAsBC,iBAAtB,C;AAEG,4CAAYE,UAAZ,EAAwBC,MAAxB,EAAgC;AAAA;;AAC5B,yBAAKD,UAAL,GAAkBA,UAAlB;AACA,yBAAKC,MAAL,GAAcA,MAAd;AACH;;6CAEDC,oB,mCAAuB;AACnB,2BAAO,KAAKF,UAAL,CAAgBE,oBAAhB,EAAP;AACH,iB;;6CAEDC,U,uBAAWC,K,EAAOC,O,EAAS;AAAA;;AACvB,2BAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACpC,4BAAMC,gBAAgBL,MAAMM,IAAN,GAAaC,MAAnC;AACA,4BAAMC,UAAU,EAAhB;AACA,6BAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIJ,aAApB,EAAmCI,IAAIA,IAAI,MAAKZ,MAAL,CAAYa,iBAAvD,EAA0E;AACtE,gCAAMC,wBAAwB,MAAKC,wBAAL,CAA8BZ,KAA9B,EAAqCS,CAArC,EAAwC,MAAKZ,MAAL,CAAYa,iBAApD,CAA9B;AACA,gCAAMG,WAAWF,wBAAwB,CAAzC;AACA,gCAAMG,WAAW,MAAKC,WAAL,CAAiBf,KAAjB,EAAwBS,CAAxB,EAA2BI,QAA3B,CAAjB;AACA,gCAAMG,cAAchB,MAAMiB,KAAN,CAAYR,CAAZ,EAAeE,qBAAf,CAApB;AACA,gCAAMO,0BAA0B,MAAKC,uBAAL,CAA6BH,WAA7B,EAA0Cf,OAA1C,EAAmD,MAAKmB,kBAAxD,CAAhC;AACAZ,oCAAQa,IAAR,CAAa;AACTC,oCAAIR,QADK;AAETd,uCAAOgB,WAFE;AAGTO,yCAASL;AAHA,6BAAb;AAKH;AACDf,gCAAQK,OAAR;AACH,qBAhBM,CAAP;AAiBH,iB;;6CAEDW,uB,oCAAwBnB,K,EAAOC,O,EAAS;AACpC,wBAAMsB,UAAU,EAAhB;AACAtB,4BAAQuB,OAAR,CAAiB,UAACC,CAAD,EAAIhB,CAAJ,EAAU;AACvB,4BAAMiB,SAAS;AACXC,kCAAMF,EAAEG,KAAF,CAAQC,SADH;AAEXP,gCAAIG,EAAEG,KAAF,CAAQE,SAFD;AAGXC,yCAAa;AAHF,yBAAf;AAKA/B,8BAAMwB,OAAN,CAAc,aAAK;AACfE,mCAAOK,WAAP,CAAmBV,IAAnB,CAAwBI,EAAEO,iBAAF,CAAoBC,IAApB,CAA0B;AAAA,uCAAKC,EAAEC,WAAF,KAAkBC,CAAvB;AAAA,6BAA1B,CAAxB;AACH,yBAFD;AAGAb,gCAAQF,IAAR,CAAaK,MAAb;AACH,qBAVD;AAWA,2BAAOH,OAAP;AACH,iB;;6CAEDX,wB,qCAAyBZ,K,EAAOqC,U,EAAY;AACxC,wBAAMC,WAAWD,aAAa,KAAKxC,MAAL,CAAYa,iBAA1C;AACA,2BAAO4B,WAAWtC,MAAMO,MAAjB,GAA0B+B,QAA1B,GAAqCtC,MAAMO,MAAlD;AACH,iB;;6CAEDQ,W,wBAAYf,K,EAAOuC,K,EAAOC,G,EAAK;AAC3B,wBAAMC,YAAYzC,MAAMuC,KAAN,CAAlB;AACA,wBAAMG,UAAU1C,MAAMwC,GAAN,CAAhB;AACA,2BAAOG,OAAOF,SAAP,EAAkBG,MAAlB,CAAyB,CAAzB,EAA4B,CAA5B,IAAiC,GAAjC,GAAuCD,OAAOD,OAAP,EAAgBE,MAAhB,CAAuB,CAAvB,EAA0B,CAA1B,CAA9C;AACH,iB","file":"query-viewer.service.js","sourceRoot":"/src"}
\ No newline at end of file
+{"version":3,"sources":["views/query-viewer/query-viewer.service.js"],"names":["inject","QEPRepository","QueryViewerConfig","QueryViewerService","repository","config","i2b2Svc","fetchPreviousQueries","getScreens","nodes","queries","Promise","resolve","reject","lastNodeIndex","sort","length","screens","i","maxNodesPerScreen","numberOfNodesOnScreen","getNumberOfNodesOnScreen","endIndex","screenId","getScreenId","screenNodes","slice","screenNodesToQueriesMap","mapQueriesToScreenNodes","findQueriesForNode","push","id","results","forEach","q","result","name","query","queryName","networkId","nodeResults","adaptersToResults","find","a","adapterNode","n","startIndex","numNodes","start","end","startNode","endNode","String","substr"],"mappings":";;;;;;;;;;;;;AAAQA,kB,qBAAAA,M;;AACAC,yB,4BAAAA,a;;AACAC,6B,sBAAAA,iB;;;0CAIKC,kB,WADZH,OAAOC,aAAP,EAAsBC,iBAAtB,C;AAEG,4CAAYE,UAAZ,EAAwBC,MAAxB,EAAgCC,OAAhC,EAAyC;AAAA;;AACrC,yBAAKF,UAAL,GAAkBA,UAAlB;AACA,yBAAKC,MAAL,GAAcA,MAAd;AACH;;6CAEDE,oB,mCAAuB;AACnB,2BAAO,KAAKH,UAAL,CAAgBG,oBAAhB,EAAP;AACH,iB;;6CAEDC,U,uBAAWC,K,EAAOC,O,EAAS;AAAA;;AACvB,2BAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACpC,4BAAMC,gBAAgBL,MAAMM,IAAN,GAAaC,MAAnC;AACA,4BAAMC,UAAU,EAAhB;AACA,6BAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIJ,aAApB,EAAmCI,IAAIA,IAAI,MAAKb,MAAL,CAAYc,iBAAvD,EAA0E;AACtE,gCAAMC,wBAAwB,MAAKC,wBAAL,CAA8BZ,KAA9B,EAAqCS,CAArC,EAAwC,MAAKb,MAAL,CAAYc,iBAApD,CAA9B;AACA,gCAAMG,WAAWF,wBAAwB,CAAzC;AACA,gCAAMG,WAAW,MAAKC,WAAL,CAAiBf,KAAjB,EAAwBS,CAAxB,EAA2BI,QAA3B,CAAjB;AACA,gCAAMG,cAAchB,MAAMiB,KAAN,CAAYR,CAAZ,EAAeE,qBAAf,CAApB;AACA,gCAAMO,0BAA0B,MAAKC,uBAAL,CAA6BH,WAA7B,EAA0Cf,OAA1C,EAAmD,MAAKmB,kBAAxD,CAAhC;AACAZ,oCAAQa,IAAR,CAAa;AACTC,oCAAIR,QADK;AAETd,uCAAOgB,WAFE;AAGTO,yCAASL;AAHA,6BAAb;AAKH;AACDf,gCAAQK,OAAR;AACH,qBAhBM,CAAP;AAiBH,iB;;6CAEDW,uB,oCAAwBnB,K,EAAOC,O,EAAS;AACpC,wBAAMsB,UAAU,EAAhB;AACAtB,4BAAQuB,OAAR,CAAiB,UAACC,CAAD,EAAIhB,CAAJ,EAAU;AACvB,4BAAMiB,SAAS;AACXC,kCAAMF,EAAEG,KAAF,CAAQC,SADH;AAEXP,gCAAIG,EAAEG,KAAF,CAAQE,SAFD;AAGXC,yCAAa;AAHF,yBAAf;AAKA/B,8BAAMwB,OAAN,CAAc,aAAK;AACfE,mCAAOK,WAAP,CAAmBV,IAAnB,CAAwBI,EAAEO,iBAAF,CAAoBC,IAApB,CAA0B;AAAA,uCAAKC,EAAEC,WAAF,KAAkBC,CAAvB;AAAA,6BAA1B,CAAxB;AACH,yBAFD;AAGAb,gCAAQF,IAAR,CAAaK,MAAb;AACH,qBAVD;AAWA,2BAAOH,OAAP;AACH,iB;;6CAEDX,wB,qCAAyBZ,K,EAAOqC,U,EAAY;AACxC,wBAAMC,WAAWD,aAAa,KAAKzC,MAAL,CAAYc,iBAA1C;AACA,2BAAO4B,WAAWtC,MAAMO,MAAjB,GAA0B+B,QAA1B,GAAqCtC,MAAMO,MAAlD;AACH,iB;;6CAEDQ,W,wBAAYf,K,EAAOuC,K,EAAOC,G,EAAK;AAC3B,wBAAMC,YAAYzC,MAAMuC,KAAN,CAAlB;AACA,wBAAMG,UAAU1C,MAAMwC,GAAN,CAAhB;AACA,2BAAOG,OAAOF,SAAP,EAAkBG,MAAlB,CAAyB,CAAzB,EAA4B,CAA5B,IAAiC,GAAjC,GAAuCD,OAAOD,OAAP,EAAgBE,MAAhB,CAAuB,CAAvB,EAA0B,CAA1B,CAA9C;AACH,iB","file":"query-viewer.service.js","sourceRoot":"/src"}
\ No newline at end of file
diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-value.converter.js b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-value.converter.js
index 67d15fb97..358c8f4f9 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-value.converter.js
+++ b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-value.converter.js
@@ -1,38 +1,38 @@
System.register([], function (_export, _context) {
"use strict";
var ResultValueConverter;
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
return {
setters: [],
execute: function () {
_export('ResultValueConverter', ResultValueConverter = function () {
function ResultValueConverter() {
_classCallCheck(this, ResultValueConverter);
}
ResultValueConverter.prototype.toView = function toView(value) {
if (!value) {
return 'not available';
}
if (value.status !== "FINISHED") {
return value.status;
}
- return value.count < 0 ? '<10' : value.count;
+ return value.count < 0 ? '<=10' : value.count;
};
return ResultValueConverter;
}());
_export('ResultValueConverter', ResultValueConverter);
}
};
});
//# sourceMappingURL=result-value.converter.js.map
diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-value.converter.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-value.converter.js.map
index 3e26c723e..975dc3080 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-value.converter.js.map
+++ b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-value.converter.js.map
@@ -1 +1 @@
-{"version":3,"sources":["views/query-viewer/result-value.converter.js"],"names":["ResultValueConverter","toView","value","status","count"],"mappings":";;;;;;;;;;;;;;4CAAaA,oB;;;;;+CACTC,M,mBAAOC,K,EAAO;AACV,wBAAI,CAACA,KAAL,EAAY;AACR,+BAAO,eAAP;AACH;;AAED,wBAAIA,MAAMC,MAAN,KAAiB,UAArB,EAAiC;AAC7B,+BAAOD,MAAMC,MAAb;AACH;AACD,2BAAOD,MAAME,KAAN,GAAc,CAAd,GAAiB,KAAjB,GAAyBF,MAAME,KAAtC;AACH,iB","file":"result-value.converter.js","sourceRoot":"/src"}
\ No newline at end of file
+{"version":3,"sources":["views/query-viewer/result-value.converter.js"],"names":["ResultValueConverter","toView","value","status","count"],"mappings":";;;;;;;;;;;;;;4CAAaA,oB;;;;;+CACTC,M,mBAAOC,K,EAAO;AACV,wBAAI,CAACA,KAAL,EAAY;AACR,+BAAO,eAAP;AACH;;AAED,wBAAIA,MAAMC,MAAN,KAAiB,UAArB,EAAiC;AAC7B,+BAAOD,MAAMC,MAAb;AACH;AACD,2BAAOD,MAAME,KAAN,GAAc,CAAd,GAAiB,MAAjB,GAA0BF,MAAME,KAAvC;AACH,iB","file":"result-value.converter.js","sourceRoot":"/src"}
\ No newline at end of file
diff --git a/shrine-webclient/src/main/js/client/js-shrine/export/assets/css/styles.css b/shrine-webclient/src/main/js/client/js-shrine/export/assets/css/styles.css
index b3f1d87b8..6b8404978 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/export/assets/css/styles.css
+++ b/shrine-webclient/src/main/js/client/js-shrine/export/assets/css/styles.css
@@ -1,206 +1,150 @@
-/** {
- box-sizing: border-box;
-}
-html,
-body {
- height: 100%;
-}*/
.mailto {
box-sizing: border-box;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
padding: 10px;
- font-family: 'Source Sans Pro', serif;
color: #333;
background: #f2f2f2;
- height: 100%; }
-
-.mailto p {
- font-size: 16px;
- line-height: 1.6em; }
-
-.mailto .button {
- border: 1px solid #6576a8;
- background: #6d85ad;
- border: 0;
- outline: 0;
- font-family: 'Source Sans Pro', serif;
- font-weight: bold;
- text-transform: uppercase;
- text-decoration: none;
- letter-spacing: 1px;
- color: #fff;
- cursor: pointer; }
-
-.mailto .button:hover {
- background: #9cb8d9; }
-
-.mailto .button:active {
- background: #6576a8; }
-
-.mailto .button--large {
- position: relative;
- padding: 15px 30px;
- border-radius: 5px;
- font-size: 16px; }
-
-.mailto .button--large:active {
- top: 1px; }
-
-.mailto .content {
- max-width: 350px;
- text-align: center; }
-
-.mailto .email {
- position: relative; }
+ height: 100% p;
+ height-font-size: 16px;
+ height-line-height: 1.6em; }
+ .mailto .button {
+ border: 1px solid #6576a8;
+ background: #6d85ad;
+ border: 0;
+ outline: 0;
+ font-weight: bold;
+ text-transform: uppercase;
+ text-decoration: none;
+ letter-spacing: 1px;
+ color: #fff;
+ cursor: pointer; }
+ .mailto .button:hover {
+ background: #9cb8d9; }
+ .mailto .button:active {
+ background: #6576a8; }
+ .mailto .button--large {
+ position: relative;
+ padding: 15px 30px;
+ border-radius: 5px;
+ font-size: 16px; }
+ .mailto .button--large:active {
+ top: 1px; }
+ .mailto .content {
+ max-width: 350px;
+ text-align: center; }
+ .mailto .email {
+ position: relative; }
@import url(http://fonts.googleapis.com/css?family=Roboto:400,500,300,700);
body {
overflow: hidden;
- /*background: -webkit-linear-gradient(left, #6B73A2, #9BB5DA);
- background: linear-gradient(to bottom, #6B73A2, #9BB5DA);*/
background: rgba(255, 255, 255, 0.9);
font-family: 'Roboto', sans-serif; }
html,
body,
.box-wrapper {
width: 100%;
height: 100%;
margin: 0; }
.box-wrapper {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-ms-flex-wrap: wrap;
flex-wrap: wrap; }
-.box {
+.box-wrapper > .box {
margin-top: 1%;
width: 100%;
transition: all .2s ease; }
-
-.box.blue {
- background: #1881CB; }
-
-.box.red {
- background: #AD3137; }
-
-.box.black {
- background: #424242; }
+ .box-wrapper > .box .hideextra {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis; }
+ .box-wrapper > .box section {
+ margin: 20 0 6 0; }
+ .box-wrapper > .box section .v-full {
+ height: 90vh; }
+ .box-wrapper > .box section .v-full > table {
+ padding-bottom: 10%; }
+ .box-wrapper > .box section .v-min {
+ height: 100px; }
+ .box-wrapper > .box section .v-min > table {
+ padding-bottom: 1%; }
+ .box-wrapper > .box section .tbl-content {
+ overflow: auto;
+ margin-top: 0px;
+ border: 1px solid rgba(98, 108, 146, 0.3); }
+ .box-wrapper > .box table {
+ width: 100%;
+ table-layout: fixed; }
+ .box-wrapper > .box table .tbl-header {
+ background-color: rgba(98, 108, 146, 0.3); }
+ .box-wrapper > .box table .tbl-header div.tbl-header {
+ max-width: 5rem; }
+ .box-wrapper > .box table tr {
+ cursor: pointer; }
+ .box-wrapper > .box table tr:hover {
+ background: rgba(98, 108, 146, 0.3) !important; }
+ .box-wrapper > .box table th {
+ padding: 2px 4px 4px 2px;
+ text-align: left;
+ font-weight: 500;
+ font-size: .75rem;
+ color: #626C92;
+ text-transform: uppercase;
+ border-bottom: solid 1px rgba(98, 108, 146, 0.1);
+ border-left: solid 1px rgba(98, 108, 146, 0.1); }
+ .box-wrapper > .box table td {
+ transition: all .5s ease;
+ padding: 2px;
+ text-align: left;
+ vertical-align: top;
+ font-weight: 300;
+ font-size: 12px;
+ color: black;
+ border-bottom: solid 1px rgba(98, 108, 146, 0.1);
+ border-left: solid 1px rgba(98, 108, 146, 0.1); }
.circle-pagination {
position: absolute;
z-index: 1000;
list-style-type: none;
margin: 0;
top: -.3rem; }
-
-.circle-pagination li {
- border-radius: 50%;
- border: 2px solid #626C92;
- width: 12px;
- height: 12px;
- padding: 4px;
- margin: 6px;
- cursor: pointer;
- float: left;
- transition: all .2s ease; }
-
-.circle-pagination li.active,
-.circle-pagination li:hover {
- background: #626C92;
- width: 14px;
- height: 14px; }
-
-.circle-pagination li.active div,
-.circle-pagination li div:hover {
- color: white; }
-
-.circle-pagination li div {
- font-size: .6rem;
- width: 24px;
- position: relative;
- left: -6px;
- top: 1px;
- color: #626C92;
- font-weight: 600;
- text-transform: capitalize; }
-
-h1 {
- font-size: 30px;
- color: #626C92;
- text-transform: uppercase;
- font-weight: 300;
- text-align: center;
- margin-bottom: 15px; }
-
-table {
- width: 100%;
- table-layout: fixed; }
-
-.tbl-header {
- background-color: rgba(98, 108, 146, 0.3); }
-
-.tbl-header div.tbl-header {
- max-width: 5rem; }
-
-@media screen and (-webkit-min-device-pixel-ratio: 0) and (min-height: 150px) {
- .tbl-content {
- height: 90% !important; } }
-
-.tbl-content {
- height: 450px;
- overflow-x: auto;
- margin-top: 0px;
- border: 1px solid rgba(98, 108, 146, 0.3); }
-
-.tbl-content tr {
- cursor: pointer; }
-
-.tbl-content tr:hover {
- background: rgba(98, 108, 146, 0.3) !important; }
-
-th {
- padding: 2px 4px 4px 2px;
- text-align: center;
- font-weight: 500;
- font-size: .75rem;
- color: #626C92;
- text-transform: uppercase; }
-
-td {
- transition: all .5s ease;
- padding: 2px;
- text-align: center;
- vertical-align: top;
- font-weight: 300;
- font-size: 12px;
- color: black;
- border-bottom: solid 1px rgba(98, 108, 146, 0.1); }
-
-section {
- margin: 20 0 6 0; }
-
-/* for custom scrollbar for webkit browser*/
-::-webkit-scrollbar {
- width: 8px; }
-
-::-webkit-scrollbar-track {
- -webkit-box-shadow: inset 0 0 6px rgba(98, 108, 146, 0.3); }
-
-::-webkit-scrollbar-thumb {
- -webkit-box-shadow: inset 0 0 6px #626c92; }
-
-.hideextra {
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis; }
+ .circle-pagination li {
+ border-radius: 50%;
+ border: 2px solid #626C92;
+ width: 12px;
+ height: 12px;
+ padding: 4px;
+ margin: 6px;
+ cursor: pointer;
+ float: left;
+ transition: all .2s ease; }
+ .circle-pagination li.active, .circle-pagination li:hover {
+ background: #626C92;
+ width: 14px;
+ height: 14px; }
+ .circle-pagination li.active div,
+ .circle-pagination li div:hover {
+ color: white; }
+ .circle-pagination li div {
+ font-size: .6rem;
+ width: 24px;
+ position: relative;
+ left: -6px;
+ top: 1px;
+ color: #626C92;
+ font-weight: 600;
+ text-transform: capitalize; }
diff --git a/shrine-webclient/src/main/js/client/js-shrine/export/config.js b/shrine-webclient/src/main/js/client/js-shrine/export/config.js
index b4a2777a5..28586e949 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/export/config.js
+++ b/shrine-webclient/src/main/js/client/js-shrine/export/config.js
@@ -1,333 +1,337 @@
System.config({
defaultJSExtensions: true,
transpiler: false,
paths: {
"*": "dist/*",
"github:*": "jspm_packages/github/*",
"npm:*": "jspm_packages/npm/*"
},
map: {
"aurelia-animator-css": "npm:aurelia-animator-css@1.0.1",
"aurelia-bootstrapper": "npm:aurelia-bootstrapper@1.0.0",
"aurelia-fetch-client": "npm:aurelia-fetch-client@1.0.1",
"aurelia-framework": "npm:aurelia-framework@1.0.6",
"aurelia-history-browser": "npm:aurelia-history-browser@1.0.0",
"aurelia-loader-default": "npm:aurelia-loader-default@1.0.0",
"aurelia-logging-console": "npm:aurelia-logging-console@1.0.0",
"aurelia-pal-browser": "npm:aurelia-pal-browser@1.0.0",
"aurelia-polyfills": "npm:aurelia-polyfills@1.1.1",
"aurelia-router": "npm:aurelia-router@1.3.0",
"aurelia-templating-binding": "npm:aurelia-templating-binding@1.0.0",
"aurelia-templating-resources": "npm:aurelia-templating-resources@1.1.1",
"aurelia-templating-router": "npm:aurelia-templating-router@1.0.0",
"bluebird": "npm:bluebird@3.4.1",
"bootstrap": "github:twbs/bootstrap@3.3.7",
"fetch": "github:github/fetch@1.0.0",
"font-awesome": "npm:font-awesome@4.6.3",
"jquery": "npm:jquery@2.2.4",
"text": "github:systemjs/plugin-text@0.0.8",
"github:jspm/nodelibs-assert@0.1.0": {
"assert": "npm:assert@1.4.1"
},
"github:jspm/nodelibs-buffer@0.1.0": {
"buffer": "npm:buffer@3.6.0"
},
"github:jspm/nodelibs-process@0.1.2": {
"process": "npm:process@0.11.9"
},
"github:jspm/nodelibs-util@0.1.0": {
"util": "npm:util@0.10.3"
},
"github:jspm/nodelibs-vm@0.1.0": {
"vm-browserify": "npm:vm-browserify@0.0.4"
},
"github:twbs/bootstrap@3.3.7": {
"jquery": "npm:jquery@2.2.4"
},
"npm:assert@1.4.1": {
"assert": "github:jspm/nodelibs-assert@0.1.0",
"buffer": "github:jspm/nodelibs-buffer@0.1.0",
"process": "github:jspm/nodelibs-process@0.1.2",
"util": "npm:util@0.10.3"
},
"npm:aurelia-animator-css@1.0.1": {
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-pal": "npm:aurelia-pal@1.3.0",
"aurelia-templating": "npm:aurelia-templating@1.1.1"
},
"npm:aurelia-binding@1.0.9": {
"aurelia-logging": "npm:aurelia-logging@1.3.1",
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-pal": "npm:aurelia-pal@1.3.0",
"aurelia-task-queue": "npm:aurelia-task-queue@1.1.0"
},
"npm:aurelia-bootstrapper@1.0.0": {
"aurelia-event-aggregator": "npm:aurelia-event-aggregator@1.0.1",
"aurelia-framework": "npm:aurelia-framework@1.0.6",
"aurelia-history": "npm:aurelia-history@1.0.0",
"aurelia-history-browser": "npm:aurelia-history-browser@1.0.0",
"aurelia-loader-default": "npm:aurelia-loader-default@1.0.0",
"aurelia-logging-console": "npm:aurelia-logging-console@1.0.0",
"aurelia-pal": "npm:aurelia-pal@1.3.0",
"aurelia-pal-browser": "npm:aurelia-pal-browser@1.0.0",
"aurelia-polyfills": "npm:aurelia-polyfills@1.1.1",
"aurelia-router": "npm:aurelia-router@1.3.0",
"aurelia-templating": "npm:aurelia-templating@1.1.1",
"aurelia-templating-binding": "npm:aurelia-templating-binding@1.0.0",
"aurelia-templating-resources": "npm:aurelia-templating-resources@1.1.1",
"aurelia-templating-router": "npm:aurelia-templating-router@1.0.0"
},
"npm:aurelia-dependency-injection@1.3.1": {
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-pal": "npm:aurelia-pal@1.3.0"
},
"npm:aurelia-event-aggregator@1.0.1": {
"aurelia-logging": "npm:aurelia-logging@1.3.1"
},
"npm:aurelia-framework@1.0.6": {
"aurelia-binding": "npm:aurelia-binding@1.0.9",
"aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1",
"aurelia-loader": "npm:aurelia-loader@1.0.0",
"aurelia-logging": "npm:aurelia-logging@1.3.1",
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-pal": "npm:aurelia-pal@1.3.0",
"aurelia-path": "npm:aurelia-path@1.1.1",
"aurelia-task-queue": "npm:aurelia-task-queue@1.1.0",
"aurelia-templating": "npm:aurelia-templating@1.1.1"
},
"npm:aurelia-history-browser@1.0.0": {
"aurelia-history": "npm:aurelia-history@1.0.0",
"aurelia-pal": "npm:aurelia-pal@1.3.0"
},
"npm:aurelia-loader-default@1.0.0": {
"aurelia-loader": "npm:aurelia-loader@1.0.0",
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-pal": "npm:aurelia-pal@1.3.0"
},
"npm:aurelia-loader@1.0.0": {
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-path": "npm:aurelia-path@1.1.1"
},
"npm:aurelia-logging-console@1.0.0": {
"aurelia-logging": "npm:aurelia-logging@1.3.1"
},
"npm:aurelia-metadata@1.0.3": {
"aurelia-pal": "npm:aurelia-pal@1.3.0"
},
"npm:aurelia-pal-browser@1.0.0": {
"aurelia-pal": "npm:aurelia-pal@1.3.0"
},
"npm:aurelia-polyfills@1.1.1": {
"aurelia-pal": "npm:aurelia-pal@1.3.0"
},
"npm:aurelia-route-recognizer@1.1.0": {
"aurelia-path": "npm:aurelia-path@1.1.1"
},
"npm:aurelia-router@1.3.0": {
"aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1",
"aurelia-event-aggregator": "npm:aurelia-event-aggregator@1.0.1",
"aurelia-history": "npm:aurelia-history@1.0.0",
"aurelia-logging": "npm:aurelia-logging@1.3.1",
"aurelia-path": "npm:aurelia-path@1.1.1",
"aurelia-route-recognizer": "npm:aurelia-route-recognizer@1.1.0"
},
"npm:aurelia-task-queue@1.1.0": {
"aurelia-pal": "npm:aurelia-pal@1.3.0"
},
"npm:aurelia-templating-binding@1.0.0": {
"aurelia-binding": "npm:aurelia-binding@1.0.9",
"aurelia-logging": "npm:aurelia-logging@1.3.1",
"aurelia-templating": "npm:aurelia-templating@1.1.1"
},
"npm:aurelia-templating-resources@1.1.1": {
"aurelia-binding": "npm:aurelia-binding@1.0.9",
"aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1",
"aurelia-loader": "npm:aurelia-loader@1.0.0",
"aurelia-logging": "npm:aurelia-logging@1.3.1",
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-pal": "npm:aurelia-pal@1.3.0",
"aurelia-path": "npm:aurelia-path@1.1.1",
"aurelia-task-queue": "npm:aurelia-task-queue@1.1.0",
"aurelia-templating": "npm:aurelia-templating@1.1.1"
},
"npm:aurelia-templating-router@1.0.0": {
"aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1",
"aurelia-logging": "npm:aurelia-logging@1.3.1",
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-pal": "npm:aurelia-pal@1.3.0",
"aurelia-path": "npm:aurelia-path@1.1.1",
"aurelia-router": "npm:aurelia-router@1.3.0",
"aurelia-templating": "npm:aurelia-templating@1.1.1"
},
"npm:aurelia-templating@1.1.1": {
"aurelia-binding": "npm:aurelia-binding@1.0.9",
"aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1",
"aurelia-loader": "npm:aurelia-loader@1.0.0",
"aurelia-logging": "npm:aurelia-logging@1.3.1",
"aurelia-metadata": "npm:aurelia-metadata@1.0.3",
"aurelia-pal": "npm:aurelia-pal@1.3.0",
"aurelia-path": "npm:aurelia-path@1.1.1",
"aurelia-task-queue": "npm:aurelia-task-queue@1.1.0"
},
"npm:bluebird@3.4.1": {
"process": "github:jspm/nodelibs-process@0.1.2"
},
"npm:buffer@3.6.0": {
"base64-js": "npm:base64-js@0.0.8",
"child_process": "github:jspm/nodelibs-child_process@0.1.0",
"fs": "github:jspm/nodelibs-fs@0.1.2",
"ieee754": "npm:ieee754@1.1.8",
"isarray": "npm:isarray@1.0.0",
"process": "github:jspm/nodelibs-process@0.1.2"
},
"npm:font-awesome@4.6.3": {
"css": "github:systemjs/plugin-css@0.1.31"
},
"npm:inherits@2.0.1": {
"util": "github:jspm/nodelibs-util@0.1.0"
},
"npm:process@0.11.9": {
"assert": "github:jspm/nodelibs-assert@0.1.0",
"fs": "github:jspm/nodelibs-fs@0.1.2",
"vm": "github:jspm/nodelibs-vm@0.1.0"
},
"npm:util@0.10.3": {
"inherits": "npm:inherits@2.0.1",
"process": "github:jspm/nodelibs-process@0.1.2"
},
"npm:vm-browserify@0.0.4": {
"indexof": "npm:indexof@0.0.1"
}
},
- depCache: {
- "repository/qep.repository.js": [
- "aurelia-framework",
- "aurelia-fetch-client",
- "fetch"
- ],
- "views/mailto/mailto.js": [
- "aurelia-framework",
- "views/mailto/mailto.service",
- "views/mailto/mailto.config"
- ],
- "views/mailto/mailto.service.js": [
- "aurelia-framework",
- "repository/qep.repository"
- ],
- "views/query-viewer/query-viewer.js": [
- "aurelia-framework",
- "views/query-viewer/query-viewer.service"
- ],
- "views/query-viewer/query-viewer.service.js": [
- "aurelia-framework",
- "repository/qep.repository",
- "./query-viewer.config"
- ]
- },
bundles: {
"app-build.js": [
+ "common/i2b2.service.js",
"main.js",
"repository/qep.repository.js",
"shell.html!github:systemjs/plugin-text@0.0.8.js",
"shell.js",
"views/mailto/mailto.config.js",
"views/mailto/mailto.html!github:systemjs/plugin-text@0.0.8.js",
"views/mailto/mailto.js",
"views/mailto/mailto.service.js",
"views/query-viewer/box-style.converter.js",
"views/query-viewer/query-viewer.config.js",
"views/query-viewer/query-viewer.html!github:systemjs/plugin-text@0.0.8.js",
"views/query-viewer/query-viewer.js",
+ "views/query-viewer/query-viewer.model.js",
"views/query-viewer/query-viewer.service.js",
"views/query-viewer/result-style.converter.js",
"views/query-viewer/result-value.converter.js"
],
"aurelia.js": [
"github:github/fetch@1.0.0.js",
"github:github/fetch@1.0.0/fetch.js",
"npm:aurelia-binding@1.0.9.js",
"npm:aurelia-binding@1.0.9/aurelia-binding.js",
"npm:aurelia-bootstrapper@1.0.0.js",
"npm:aurelia-bootstrapper@1.0.0/aurelia-bootstrapper.js",
"npm:aurelia-dependency-injection@1.3.1.js",
"npm:aurelia-dependency-injection@1.3.1/aurelia-dependency-injection.js",
"npm:aurelia-event-aggregator@1.0.1.js",
"npm:aurelia-event-aggregator@1.0.1/aurelia-event-aggregator.js",
"npm:aurelia-fetch-client@1.0.1.js",
"npm:aurelia-fetch-client@1.0.1/aurelia-fetch-client.js",
"npm:aurelia-framework@1.0.6.js",
"npm:aurelia-framework@1.0.6/aurelia-framework.js",
"npm:aurelia-history-browser@1.0.0.js",
"npm:aurelia-history-browser@1.0.0/aurelia-history-browser.js",
"npm:aurelia-history@1.0.0.js",
"npm:aurelia-history@1.0.0/aurelia-history.js",
"npm:aurelia-loader-default@1.0.0.js",
"npm:aurelia-loader-default@1.0.0/aurelia-loader-default.js",
"npm:aurelia-loader@1.0.0.js",
"npm:aurelia-loader@1.0.0/aurelia-loader.js",
"npm:aurelia-logging-console@1.0.0.js",
"npm:aurelia-logging-console@1.0.0/aurelia-logging-console.js",
"npm:aurelia-logging@1.3.1.js",
"npm:aurelia-logging@1.3.1/aurelia-logging.js",
"npm:aurelia-metadata@1.0.3.js",
"npm:aurelia-metadata@1.0.3/aurelia-metadata.js",
"npm:aurelia-pal-browser@1.0.0.js",
"npm:aurelia-pal-browser@1.0.0/aurelia-pal-browser.js",
"npm:aurelia-pal@1.3.0.js",
"npm:aurelia-pal@1.3.0/aurelia-pal.js",
"npm:aurelia-path@1.1.1.js",
"npm:aurelia-path@1.1.1/aurelia-path.js",
"npm:aurelia-polyfills@1.1.1.js",
"npm:aurelia-polyfills@1.1.1/aurelia-polyfills.js",
"npm:aurelia-route-recognizer@1.1.0.js",
"npm:aurelia-route-recognizer@1.1.0/aurelia-route-recognizer.js",
"npm:aurelia-router@1.3.0.js",
"npm:aurelia-router@1.3.0/aurelia-router.js",
"npm:aurelia-task-queue@1.1.0.js",
"npm:aurelia-task-queue@1.1.0/aurelia-task-queue.js",
"npm:aurelia-templating-binding@1.0.0.js",
"npm:aurelia-templating-binding@1.0.0/aurelia-templating-binding.js",
"npm:aurelia-templating-resources@1.1.1.js",
"npm:aurelia-templating-resources@1.1.1/abstract-repeater.js",
"npm:aurelia-templating-resources@1.1.1/analyze-view-factory.js",
"npm:aurelia-templating-resources@1.1.1/array-repeat-strategy.js",
"npm:aurelia-templating-resources@1.1.1/attr-binding-behavior.js",
"npm:aurelia-templating-resources@1.1.1/aurelia-hide-style.js",
"npm:aurelia-templating-resources@1.1.1/aurelia-templating-resources.js",
"npm:aurelia-templating-resources@1.1.1/binding-mode-behaviors.js",
"npm:aurelia-templating-resources@1.1.1/binding-signaler.js",
"npm:aurelia-templating-resources@1.1.1/compose.js",
"npm:aurelia-templating-resources@1.1.1/css-resource.js",
"npm:aurelia-templating-resources@1.1.1/debounce-binding-behavior.js",
"npm:aurelia-templating-resources@1.1.1/dynamic-element.js",
"npm:aurelia-templating-resources@1.1.1/focus.js",
"npm:aurelia-templating-resources@1.1.1/hide.js",
"npm:aurelia-templating-resources@1.1.1/html-resource-plugin.js",
"npm:aurelia-templating-resources@1.1.1/html-sanitizer.js",
"npm:aurelia-templating-resources@1.1.1/if.js",
"npm:aurelia-templating-resources@1.1.1/map-repeat-strategy.js",
"npm:aurelia-templating-resources@1.1.1/null-repeat-strategy.js",
"npm:aurelia-templating-resources@1.1.1/number-repeat-strategy.js",
"npm:aurelia-templating-resources@1.1.1/repeat-strategy-locator.js",
"npm:aurelia-templating-resources@1.1.1/repeat-utilities.js",
"npm:aurelia-templating-resources@1.1.1/repeat.js",
"npm:aurelia-templating-resources@1.1.1/replaceable.js",
"npm:aurelia-templating-resources@1.1.1/sanitize-html.js",
"npm:aurelia-templating-resources@1.1.1/set-repeat-strategy.js",
"npm:aurelia-templating-resources@1.1.1/show.js",
"npm:aurelia-templating-resources@1.1.1/signal-binding-behavior.js",
"npm:aurelia-templating-resources@1.1.1/throttle-binding-behavior.js",
"npm:aurelia-templating-resources@1.1.1/update-trigger-binding-behavior.js",
"npm:aurelia-templating-resources@1.1.1/with.js",
"npm:aurelia-templating-router@1.0.0.js",
"npm:aurelia-templating-router@1.0.0/aurelia-templating-router.js",
"npm:aurelia-templating-router@1.0.0/route-href.js",
"npm:aurelia-templating-router@1.0.0/route-loader.js",
"npm:aurelia-templating-router@1.0.0/router-view.js",
"npm:aurelia-templating@1.1.1.js",
"npm:aurelia-templating@1.1.1/aurelia-templating.js",
"npm:jquery@2.2.4.js",
"npm:jquery@2.2.4/dist/jquery.js"
]
+ },
+ depCache: {
+ "repository/qep.repository.js": [
+ "aurelia-framework",
+ "aurelia-fetch-client",
+ "fetch"
+ ],
+ "views/mailto/mailto.js": [
+ "aurelia-framework",
+ "views/mailto/mailto.service",
+ "views/mailto/mailto.config"
+ ],
+ "views/mailto/mailto.service.js": [
+ "aurelia-framework",
+ "repository/qep.repository"
+ ],
+ "views/query-viewer/query-viewer.js": [
+ "aurelia-framework",
+ "views/query-viewer/query-viewer.service",
+ "common/i2b2.service.js",
+ "./query-viewer.model"
+ ],
+ "views/query-viewer/query-viewer.service.js": [
+ "aurelia-framework",
+ "repository/qep.repository",
+ "./query-viewer.config"
+ ]
}
});
\ No newline at end of file
diff --git a/shrine-webclient/src/main/js/client/js-shrine/export/dist/app-build.js b/shrine-webclient/src/main/js/client/js-shrine/export/dist/app-build.js
index f01043142..4e59ec819 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/export/dist/app-build.js
+++ b/shrine-webclient/src/main/js/client/js-shrine/export/dist/app-build.js
@@ -1 +1 @@
-"bundle";System.register("main.js",[],function(a,b){"use strict";function c(a){a.use.standardConfiguration().developmentLogging(),a.start().then(function(){return a.setRoot("shell")})}return a("configure",c),{setters:[],execute:function(){}}}),function(){var a=System.amdDefine;a("shell.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return" "})}(),System.register("shell.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("Shell",d=function(){function a(){c(this,a)}return a.prototype.configureRouter=function(a,b){a.title="SHRINE Webclient Plugin",a.map([{route:["","mailto"],moduleId:"views/mailto/mailto"},{route:"query-viewer",moduleId:"views/query-viewer/query-viewer"}]),this.router=b},a}()),a("Shell",d)}}}),function(){var a=System.amdDefine;a("views/mailto/mailto.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return'If you have questions about your query results or this SHRINE network, contact the Data Steward at your site.
Email Data Steward
'})}(),System.register("views/mailto/mailto.service.js",["aurelia-framework","repository/qep.repository"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a.inject},function(a){e=a.QEPRepository}],execute:function(){a("MailToService",(f=d(e),h=f(g=function(){function a(b){c(this,a),this.repository=b}return a.prototype.fetchStewardEmail=function(){return this.repository.fetchStewardEmail()},a}())||g)),a("MailToService",h)}}}),System.register("views/mailto/mailto.config.js",[],function(a,b){"use strict";var c;return{setters:[],execute:function(){a("MailConfig",c={mailto:"mailto:",subject:"subject="+encodeURIComponent("Question from a SHRINE User"),body:encodeURIComponent("Please enter the suggested information and your question. Your data steward will reply to this email.\n\n***Never send patient information, passwords, or other sensitive information by email****\nName:\nTitle:\nUser name (to log into SHRINE):\nTelephone Number (optional):\nPreferred email address (optional):\n\nQuestion or Comment:")}),a("MailConfig",c)}}}),System.register("views/mailto/mailto.js",["aurelia-framework","views/mailto/mailto.service","views/mailto/mailto.config"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.inject},function(a){e=a.MailToService},function(a){f=a.MailConfig}],execute:function(){a("MailTo",(g=d(e,f),i=g(h=function(){function a(b,d){c(this,a),this.service=b,this.config=d}return a.prototype.openEmail=function(){var a=this;this.service.fetchStewardEmail().then(function(b){return window.top.location=a.getComposition(b),a})},a.prototype.getComposition=function(a){return this.config.mailto+a+"?"+this.config.subject+"&"+this.config.body},a}())||h)),a("MailTo",i)}}}),System.register("views/query-viewer/box-style.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("BoxStyleValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return"transform: translate("+String(-100*a)+"%);"},a}()),a("BoxStyleValueConverter",d)}}}),function(){var a=System.amdDefine;a("views/query-viewer/query-viewer.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return'
'})}(),System.register("repository/qep.repository.js",["aurelia-framework","aurelia-fetch-client","fetch"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.inject},function(a){e=a.HttpClient},function(a){}],execute:function(){f=function(){function a(a,b){for(var c=0;c0?a.split('"')[1]:a})["catch"](function(){return""})},f(a,[{key:"url",get:function(){var a=document.URL,b=":6443/shrine-metadata/";return a.substring(0,a.lastIndexOf(":"))+b}},{key:"auth",get:function(){var a=sessionStorage.getItem("shrine.auth");return sessionStorage.removeItem("shrine.auth"),a}}]),a}())||h)),a("QEPRepository",i)}}}),System.register("views/query-viewer/query-viewer.config.js",[],function(a,b){"use strict";var c;return{setters:[],execute:function(){a("QueryViewerConfig",c={maxNodesPerScreen:10}),a("QueryViewerConfig",c)}}}),System.register("views/query-viewer/query-viewer.service.js",["aurelia-framework","repository/qep.repository","./query-viewer.config"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.inject},function(a){e=a.QEPRepository},function(a){f=a.QueryViewerConfig}],execute:function(){a("QueryViewerService",(g=d(e,f),i=g(h=function(){function a(b,d){c(this,a),this.repository=b,this.config=d}return a.prototype.fetchPreviousQueries=function(){return this.repository.fetchPreviousQueries()},a.prototype.getScreens=function(a,b){var c=this;return new Promise(function(d,e){for(var f=a.sort().length,g=[],h=0;h1})["catch"](function(a){return console.log(a)})})||h)),a("QueryViewer",i)}}}),System.register("views/query-viewer/result-style.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("ResultStyleValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){var b=this.isUnresolved(a)?"color:"+this.getColorValue(a):"";return b},a.prototype.isUnresolved=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"FINISHED";return!a||a.status!==b},a.prototype.getColorValue=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ERROR",c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"#FF0000",d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#00FF00";return a&&a.status!==b?d:c},a}()),a("ResultStyleValueConverter",d)}}}),System.register("views/query-viewer/result-value.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("ResultValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return a?"FINISHED"!==a.status?a.status:a.count<0?"<10":a.count:"not available"},a}()),a("ResultValueConverter",d)}}});
\ No newline at end of file
+"bundle";System.register("main.js",[],function(a,b){"use strict";function c(a){a.use.standardConfiguration().developmentLogging(),a.start().then(function(){return a.setRoot("shell")})}return a("configure",c),{setters:[],execute:function(){}}}),function(){var a=System.amdDefine;a("shell.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return" "})}(),System.register("shell.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("Shell",d=function(){function a(){c(this,a)}return a.prototype.configureRouter=function(a,b){a.title="SHRINE Webclient Plugin",a.map([{route:"mailto",moduleId:"views/mailto/mailto"},{route:["","query-viewer"],moduleId:"views/query-viewer/query-viewer"}]),this.router=b},a}()),a("Shell",d)}}}),function(){var a=System.amdDefine;a("views/mailto/mailto.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return'If you have questions about your query results or this SHRINE network, contact the Data Steward at your site.
Email Data Steward
'})}(),System.register("views/mailto/mailto.service.js",["aurelia-framework","repository/qep.repository"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a.inject},function(a){e=a.QEPRepository}],execute:function(){a("MailToService",(f=d(e),h=f(g=function(){function a(b){c(this,a),this.repository=b}return a.prototype.fetchStewardEmail=function(){return this.repository.fetchStewardEmail()},a}())||g)),a("MailToService",h)}}}),System.register("views/mailto/mailto.config.js",[],function(a,b){"use strict";var c;return{setters:[],execute:function(){a("MailConfig",c={mailto:"mailto:",subject:"subject="+encodeURIComponent("Question from a SHRINE User"),body:encodeURIComponent("Please enter the suggested information and your question. Your data steward will reply to this email.\n\n***Never send patient information, passwords, or other sensitive information by email****\nName:\nTitle:\nUser name (to log into SHRINE):\nTelephone Number (optional):\nPreferred email address (optional):\n\nQuestion or Comment:")}),a("MailConfig",c)}}}),System.register("views/mailto/mailto.js",["aurelia-framework","views/mailto/mailto.service","views/mailto/mailto.config"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.inject},function(a){e=a.MailToService},function(a){f=a.MailConfig}],execute:function(){a("MailTo",(g=d(e,f),i=g(h=function(){function a(b,d){c(this,a),this.service=b,this.config=d}return a.prototype.openEmail=function(){var a=this;this.service.fetchStewardEmail().then(function(b){return window.top.location=a.getComposition(b),a})},a.prototype.getComposition=function(a){return this.config.mailto+a+"?"+this.config.subject+"&"+this.config.body},a}())||h)),a("MailTo",i)}}}),System.register("views/query-viewer/box-style.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("BoxStyleValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return"transform: translate("+String(-100*a)+"%);"},a}()),a("BoxStyleValueConverter",d)}}}),function(){var a=System.amdDefine;a("views/query-viewer/query-viewer.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return'
'})}(),System.register("repository/qep.repository.js",["aurelia-framework","aurelia-fetch-client","fetch"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.inject},function(a){e=a.HttpClient},function(a){}],execute:function(){f=function(){function a(a,b){for(var c=0;c0?a.split('"')[1]:a})["catch"](function(){return""})},f(a,[{key:"url",get:function(){var a=document.URL,b=":6443/shrine-metadata/";return a.substring(0,a.lastIndexOf(":"))+b}},{key:"auth",get:function(){var a=sessionStorage.getItem("shrine.auth");return sessionStorage.removeItem("shrine.auth"),a}}]),a}())||h)),a("QEPRepository",i)}}}),System.register("views/query-viewer/query-viewer.config.js",[],function(a,b){"use strict";var c;return{setters:[],execute:function(){a("QueryViewerConfig",c={maxNodesPerScreen:10}),a("QueryViewerConfig",c)}}}),System.register("views/query-viewer/query-viewer.service.js",["aurelia-framework","repository/qep.repository","./query-viewer.config"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.inject},function(a){e=a.QEPRepository},function(a){f=a.QueryViewerConfig}],execute:function(){a("QueryViewerService",(g=d(e,f),i=g(h=function(){function a(b,d,e){c(this,a),this.repository=b,this.config=d}return a.prototype.fetchPreviousQueries=function(){return this.repository.fetchPreviousQueries()},a.prototype.getScreens=function(a,b){var c=this;return new Promise(function(d,e){for(var f=a.sort().length,g=[],h=0;h0&&void 0!==arguments[0]?arguments[0]:window;c(this,b);var d=e(a,"i2b2");this.onResize=function(a){return d?d.events.changedZoomWindows.subscribe(a):null},this.onHistory=function(a){return d?d.CRC.ctrlr.history.events.onDataUpdate.subscribe(a):null}}),a("I2B2Service",d),e=function(a,b){return g(a)?f(a)[b]:null},f=function(a){return a.parent.window},g=function(a){return a&&a.parent&&a.parent.window}}}}),System.register("views/query-viewer/query-viewer.model.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("QueryViewerModel",d=function b(){c(this,b),this.isLoaded=!1,this.screens=[]}),a("QueryViewerModel",d)}}}),System.register("views/query-viewer/query-viewer.js",["aurelia-framework","views/query-viewer/query-viewer.service","common/i2b2.service.js","./query-viewer.model"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i,j,k;return{setters:[function(a){d=a.inject,e=a.computedFrom},function(a){f=a.QueryViewerService},function(a){g=a.I2B2Service},function(a){h=a.QueryViewerModel}],execute:function(){a("QueryViewer",(i=d(f,g,h),k=i(j=function b(a,d,e){var f=this;c(this,b),this.screenIndex=0,this.showCircles=!1,this.service=a,this.vertStyle="v-min";var g=function(a){return f.service.getScreens(a.adapters,a.queryResults)},h=function(a){f.screens=a,f.showCircles=f.screens.length>1,e.screens=a,e.isLoaded=!0},i=function(){return f.service.fetchPreviousQueries().then(g).then(h)["catch"](function(a){return console.log(a)})},j=function(){return e.isLoaded?h(e.screens):i()},k=function(a){return"ADD"!==a.action};d.onResize(function(a,b){return f.vertStyle=b.find(k)?"v-min":"v-full"}),d.onHistory(i),j()})||j)),a("QueryViewer",k)}}}),System.register("views/query-viewer/result-style.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("ResultStyleValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){var b=this.isUnresolved(a)?"color:"+this.getColorValue(a):"";return b},a.prototype.isUnresolved=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"FINISHED";return!a||a.status!==b},a.prototype.getColorValue=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ERROR",c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"#FF0000",d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#00FF00";return a&&a.status!==b?d:c},a}()),a("ResultStyleValueConverter",d)}}}),System.register("views/query-viewer/result-value.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("ResultValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return a?"FINISHED"!==a.status?a.status:a.count<0?"<=10":a.count:"not available"},a}()),a("ResultValueConverter",d)}}});
\ No newline at end of file
diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/common/i2b2.service.js b/shrine-webclient/src/main/js/client/js-shrine/src/common/i2b2.service.js
new file mode 100644
index 000000000..172995419
--- /dev/null
+++ b/shrine-webclient/src/main/js/client/js-shrine/src/common/i2b2.service.js
@@ -0,0 +1,12 @@
+export class I2B2Service {
+ constructor(context = window) {
+ const i2b2 = getLib(context, 'i2b2');
+ this.onResize = f => (i2b2) ? i2b2.events.changedZoomWindows.subscribe(f) : null;
+ this.onHistory = f => (i2b2)? i2b2.CRC.ctrlr.history.events.onDataUpdate.subscribe(f) : null;
+ }
+}
+
+//@todo compose these functions?
+const getLib = (context, lib) => hasParent(context) ? getParent(context)[lib] : null;
+const getParent = (context) => context.parent.window;
+const hasParent = (context) => context && context.parent && context.parent.window;
diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/shell.js b/shrine-webclient/src/main/js/client/js-shrine/src/shell.js
index 7a8ad2933..caa10a1aa 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/src/shell.js
+++ b/shrine-webclient/src/main/js/client/js-shrine/src/shell.js
@@ -1,12 +1,12 @@
export class Shell {
configureRouter(config, router) {
config.title = 'SHRINE Webclient Plugin';
config.map([
- {route: ['', 'mailto'], moduleId: 'views/mailto/mailto'},
- {route: 'query-viewer', moduleId: 'views/query-viewer/query-viewer'}
+ {route: 'mailto', moduleId: 'views/mailto/mailto'},
+ {route: ['', 'query-viewer'], moduleId: 'views/query-viewer/query-viewer'}
]);
this.router = router;
}
}
diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/mailto/mailto.scss b/shrine-webclient/src/main/js/client/js-shrine/src/views/mailto/mailto.scss
index 1eb869fd1..72bdf4fdc 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/src/views/mailto/mailto.scss
+++ b/shrine-webclient/src/main/js/client/js-shrine/src/views/mailto/mailto.scss
@@ -1,64 +1,50 @@
-/** {
- box-sizing: border-box;
-}
-html,
-body {
- height: 100%;
-}*/
-
-
.mailto {
box-sizing: border-box;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
padding: 10px;
- font-family: 'Source Sans Pro', serif;
color: #333;
background: #f2f2f2;
height: 100%
-}
-
-.mailto p {
- font-size: 16px;
- line-height: 1.6em;
-}
-
-
-.mailto .button {
- border: 1px solid #6576a8;
- background: #6d85ad;
- border: 0;
- outline: 0;
- font-family: 'Source Sans Pro', serif;
- font-weight: bold;
- text-transform: uppercase;
- text-decoration: none;
- letter-spacing: 1px;
- color: #fff;
- cursor: pointer;
-}
-.mailto .button:hover {
- background: #9cb8d9;
-}
-.mailto .button:active {
- background: #6576a8;
-}
-.mailto .button--large {
- position: relative;
- padding: 15px 30px;
- border-radius: 5px;
- font-size: 16px;
-}
-.mailto .button--large:active {
- top: 1px;
-}
-.mailto .content {
- max-width: 350px;
- text-align: center;
-}
-.mailto .email {
- position: relative;
-}
+ p {
+ font-size: 16px;
+ line-height: 1.6em;
+ }
+ .button {
+ border: 1px solid #6576a8;
+ background: #6d85ad;
+ border: 0;
+ outline: 0;
+ font-weight: bold;
+ text-transform: uppercase;
+ text-decoration: none;
+ letter-spacing: 1px;
+ color: #fff;
+ cursor: pointer;
+ &:hover {
+ background: #9cb8d9;
+ }
+ &:active{
+ background: #6576a8;
+ }
+ }
+ .button--large {
+ position: relative;
+ padding: 15px 30px;
+ border-radius: 5px;
+ font-size: 16px;
+ &:active{
+ top: 1px;
+ }
+ }
+ .content{
+ max-width: 350px;
+ text-align: center;
+ }
+ .email {
+ position: relative;
+ }
+}
\ No newline at end of file
diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.html b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.html
index bcc78135f..e1bbfe300 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.html
+++ b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.html
@@ -1,49 +1,49 @@
-
+
\ No newline at end of file
diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.js b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.js
index e50f4649c..63949a77d 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.js
+++ b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.js
@@ -1,25 +1,43 @@
import { inject, computedFrom } from 'aurelia-framework';
import { QueryViewerService } from 'views/query-viewer/query-viewer.service';
+import { I2B2Service } from 'common/i2b2.service.js';
+import {QueryViewerModel} from './query-viewer.model';
-@inject(QueryViewerService)
+@inject(QueryViewerService, I2B2Service, QueryViewerModel)
export class QueryViewer {
- constructor(service) {
+ constructor(service, i2b2Svc, model) {
+
+ // -- init -- //
this.screenIndex = 0;
this.showCircles = false;
this.service = service;
- this.service
+ this.vertStyle = 'v-min';
+
+ // -- fetch queries -- //
+ const parseResultToScreens = result => this.service.getScreens(result.adapters, result.queryResults);
+ const setVM = screens => {
+ this.screens = screens;
+ this.showCircles = this.screens.length > 1;
+ model.screens = screens;
+ model.isLoaded = true;
+ };
+ const refresh = () => this.service
.fetchPreviousQueries()
- .then(result => {
- const queries = result.queryResults;
- const nodes = result.adapters
- return service.getScreens(nodes, queries);
- })
- .then(screens => {
- this.screens = screens;
- this.showCircles = this.screens.length > 1;
- })
+ .then(parseResultToScreens)
+ .then(setVM)
.catch(error => console.log(error));
+
+ const init = () => (model.isLoaded)? setVM(model.screens) : refresh();
+
+ // -- add i2b2 event listener -- //
+ const isMinimized = e => e.action !== 'ADD';
+ const setVertStyle = (a, b) => this.vertStyle = b.find(isMinimized) ? 'v-min' : 'v-full';
+ i2b2Svc.onResize(setVertStyle);
+ i2b2Svc.onHistory(refresh);
+
+ init();
}
}
+
diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.model.js b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.model.js
new file mode 100644
index 000000000..c55329318
--- /dev/null
+++ b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.model.js
@@ -0,0 +1,6 @@
+export class QueryViewerModel{
+ constructor() {
+ this.isLoaded = false;
+ this.screens = [];
+ }
+}
\ No newline at end of file
diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.scss b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.scss
index ee414d2f9..cd5c60631 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.scss
+++ b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.scss
@@ -1,174 +1,135 @@
@import url(http://fonts.googleapis.com/css?family=Roboto:400,500,300,700);
body{
overflow: hidden;
- /*background: -webkit-linear-gradient(left, #6B73A2, #9BB5DA);
- background: linear-gradient(to bottom, #6B73A2, #9BB5DA);*/
background: rgba(255, 255, 255, 0.9);
font-family: 'Roboto', sans-serif;
}
html,
body,
.box-wrapper{
width: 100%;
height: 100%;
margin: 0;
}
.box-wrapper{
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
-.box {
+.box-wrapper > .box {
margin-top: 1%;
width: 100%;
transition: all .2s ease;
+ .hideextra {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow:ellipsis;
+ }
+ section{
+ margin: 20 0 6 0;
+ .v-full {
+ height: 90vh;
+ }
+ .v-full > table{
+ padding-bottom: 10%;
+ }
+ .v-min{
+ height: 100px;
+ }
+ .v-min > table {
+ padding-bottom: 1%;
+ }
+ .tbl-content{
+ overflow: auto;
+ margin-top: 0px;
+ border: 1px solid rgba(98,108,146,0.3);
+ }
+ }
+ table{
+ width:100%;
+ table-layout: fixed;
+ .tbl-header{
+ background-color: rgba(98,108,146, .3);
+ div.tbl-header{
+ max-width: 5rem;
+ }
+ }
+
+ tr{
+ cursor: pointer;
+ &:hover{
+ background: rgba(98,108,146, .3) !important;
+ }
+ }
+
+ th{
+ padding: 2px 4px 4px 2px;
+ text-align: left;
+ font-weight: 500;
+ font-size: .75rem;
+ color: #626C92;
+ text-transform: uppercase;
+ border-bottom: solid 1px rgba(98,108,146,0.1);
+ border-left: solid 1px rgba(98,108,146,0.1);
+ }
+ td{
+ transition: all .5s ease;
+ padding: 2px;
+ text-align: left;
+ vertical-align: top;
+ font-weight: 300;
+ font-size: 12px;
+ color: black;
+ border-bottom: solid 1px rgba(98,108,146,0.1);
+ border-left: solid 1px rgba(98,108,146,0.1);
+ }
+ }
}
-.box.blue {
- background: #1881CB;
-}
-.box.red {
- background: #AD3137;
-}
-.box.black {
- background: #424242;
-}
-
-
.circle-pagination {
position: absolute;
z-index: 1000;
list-style-type: none;
margin: 0;
top: -.3rem;
-}
-.circle-pagination li {
- border-radius: 50%;
- border: 2px solid #626C92;
- width: 12px;
- height: 12px;
- padding: 4px;
- margin: 6px;
- cursor: pointer;
- float: left;
- transition: all .2s ease;
-}
-.circle-pagination li.active,
-.circle-pagination li:hover {
- background: #626C92;
- width: 14px;
- height:14px;
-}
-
-.circle-pagination li.active div,
-.circle-pagination li div:hover{
- color:white;
-}
-
-.circle-pagination li div{
- font-size: .6rem;
- width: 24px;
- position: relative;
- left: -6px;
- top: 1px;
- color: #626C92;
- font-weight: 600;
- text-transform: capitalize;
-}
-
-h1{
- font-size: 30px;
- color: #626C92;
- text-transform: uppercase;
- font-weight: 300;
- text-align: center;
- margin-bottom: 15px;
-}
-table{
- width:100%;
- table-layout: fixed;
-}
-.tbl-header{
- background-color: rgba(98,108,146, .3);
- }
-
-
-
-.tbl-header div.tbl-header{
- max-width: 5rem;
-}
-
-
-@media screen and (-webkit-min-device-pixel-ratio:0) and (min-height: 150px){
- .tbl-content{
- height: 90% !important;
+ li {
+ border-radius: 50%;
+ border: 2px solid #626C92;
+ width: 12px;
+ height: 12px;
+ padding: 4px;
+ margin: 6px;
+ cursor: pointer;
+ float: left;
+ transition: all .2s ease;
+ &.active,
+ &:hover{
+ background: #626C92;
+ width: 14px;
+ height:14px;
+ }
+ &.active div,
+ & div:hover{
+ color:white;
+ }
+ div {
+ font-size: .6rem;
+ width: 24px;
+ position: relative;
+ left: -6px;
+ top: 1px;
+ color: #626C92;
+ font-weight: 600;
+ text-transform: capitalize;
+ }
}
-}
-
-
-.tbl-content{
- height: 450px;
- overflow-x:auto;
- margin-top: 0px;
- border: 1px solid rgba(98,108,146,0.3);
-}
-
-.tbl-content tr{
- cursor: pointer;
-}
-
-.tbl-content tr:hover{
- background: rgba(98,108,146, .3) !important;
-}
-
-th{
- padding: 2px 4px 4px 2px;
- text-align: center;
- font-weight: 500;
- font-size: .75rem;
- color: #626C92;
- text-transform: uppercase;
-}
-
-
-td{
- transition: all .5s ease;
- padding: 2px;
- text-align: center;
- vertical-align: top;
- font-weight: 300;
- font-size: 12px;
- color: black;
- border-bottom: solid 1px rgba(98,108,146,0.1);
-}
-
-section{
- margin: 20 0 6 0;
-}
-
-/* for custom scrollbar for webkit browser*/
-
-::-webkit-scrollbar {
- width: 8px;
-}
-::-webkit-scrollbar-track {
- -webkit-box-shadow: inset 0 0 6px rgba(98,108,146,.3);
-}
-::-webkit-scrollbar-thumb {
- -webkit-box-shadow: inset 0 0 6px rgba(98,108,146,1);
-}
-
-.hideextra {
- white-space: nowrap;
- overflow: hidden;
- text-overflow:ellipsis;
}
\ No newline at end of file
diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.service.js b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.service.js
index 3a1cdf222..334a02da5 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.service.js
+++ b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/query-viewer.service.js
@@ -1,62 +1,63 @@
-import { inject } from 'aurelia-framework';
+import {inject} from 'aurelia-framework';
import {QEPRepository} from 'repository/qep.repository';
import {QueryViewerConfig} from './query-viewer.config';
+
@inject(QEPRepository, QueryViewerConfig)
export class QueryViewerService {
- constructor(repository, config) {
+ constructor(repository, config, i2b2Svc) {
this.repository = repository;
this.config = config;
}
fetchPreviousQueries() {
return this.repository.fetchPreviousQueries();
}
getScreens(nodes, queries) {
return new Promise((resolve, reject) => {
const lastNodeIndex = nodes.sort().length;
const screens = [];
for (let i = 0; i < lastNodeIndex; i = i + this.config.maxNodesPerScreen) {
const numberOfNodesOnScreen = this.getNumberOfNodesOnScreen(nodes, i, this.config.maxNodesPerScreen);
const endIndex = numberOfNodesOnScreen - 1;
const screenId = this.getScreenId(nodes, i, endIndex);
const screenNodes = nodes.slice(i, numberOfNodesOnScreen);
const screenNodesToQueriesMap = this.mapQueriesToScreenNodes(screenNodes, queries, this.findQueriesForNode);
screens.push({
id: screenId,
nodes: screenNodes,
results: screenNodesToQueriesMap
});
}
resolve(screens);
});
}
mapQueriesToScreenNodes(nodes, queries) {
const results = [];
queries.forEach( (q, i) => {
const result = {
name: q.query.queryName,
id: q.query.networkId,
nodeResults: []
};
nodes.forEach(n => {
result.nodeResults.push(q.adaptersToResults.find( a => a.adapterNode === n));
});
results.push(result);
});
return results;
}
getNumberOfNodesOnScreen(nodes, startIndex) {
const numNodes = startIndex + this.config.maxNodesPerScreen;
return numNodes < nodes.length ? numNodes : nodes.length;
}
getScreenId(nodes, start, end) {
const startNode = nodes[start];
const endNode = nodes[end];
return String(startNode).substr(0, 1) + '-' + String(endNode).substr(0, 1);
}
}
\ No newline at end of file
diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/result-value.converter.js b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/result-value.converter.js
index 4a43ced34..765835bcf 100644
--- a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/result-value.converter.js
+++ b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/result-value.converter.js
@@ -1,12 +1,12 @@
export class ResultValueConverter {
toView(value) {
if (!value) {
return 'not available';
}
if (value.status !== "FINISHED") {
return value.status;
}
- return value.count < 0? '<10' : value.count;
+ return value.count < 0? '<=10' : value.count;
}
}
\ No newline at end of file
diff --git a/tools/adapter-queries-to-qep/pom.xml b/tools/adapter-queries-to-qep/pom.xml
index 50d3410be..411df45a6 100644
--- a/tools/adapter-queries-to-qep/pom.xml
+++ b/tools/adapter-queries-to-qep/pom.xml
@@ -1,57 +1,61 @@
4.0.0
SHRINE Copy Adapter Queries to QEP
adapter-queries-to-qep
jar
net.shrine
shrine-tools
+
1.23.3.1-SNAPSHOT
+
+
+
net.shrine
shrine-data-commons
${project.version}
com.typesafe
config
net.shrine
shrine-adapter-service
${project.version}
net.shrine
shrine-qep
${project.version}
org.slf4j
slf4j-log4j12
${slf4j-version}
runtime
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
maven-assembly-plugin
adapter-queries-to-qep-${project.version}
false
diff --git a/tools/batch-querier/pom.xml b/tools/batch-querier/pom.xml
index 1ab68f7d7..16171ad34 100644
--- a/tools/batch-querier/pom.xml
+++ b/tools/batch-querier/pom.xml
@@ -1,86 +1,90 @@
4.0.0
SHRINE Query Automation Utility
shrine-batch-querier-utility
jar
net.shrine
shrine-tools
+
1.23.3.1-SNAPSHOT
+
+
+
net.shrine
shrine-crypto
${project.version}
net.shrine
shrine-client
${project.version}
net.shrine
shrine-utility-commons
${project.version}
net.shrine
shrine-utility-commons
${project.version}
test-jar
test
net.shrine
shrine-test-commons
${project.version}
test-jar
test
org.rogach
scallop_${scala-major-version}
${scallop-version}
net.sf.opencsv
opencsv
com.typesafe
config
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
maven-assembly-plugin
shrine-batch-querier-${project.version}
false
diff --git a/tools/mapping-automation/pom.xml b/tools/mapping-automation/pom.xml
index 2c5bd6a8f..315f46fac 100644
--- a/tools/mapping-automation/pom.xml
+++ b/tools/mapping-automation/pom.xml
@@ -1,85 +1,89 @@
4.0.0
SHRINE Term Mapping Automation Utilities
shrine-mapping-automation
jar
net.shrine
shrine-tools
+
1.23.3.1-SNAPSHOT
+
+
+
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.shrine
shrine-config
${project.version}
net.shrine
shrine-ont-support
${project.version}
net.shrine
shrine-utility-commons
${project.version}
net.shrine
shrine-utility-commons
${project.version}
test-jar
test
org.rogach
scallop_${scala-major-version}
${scallop-version}
net.sf.opencsv
opencsv
com.typesafe
config
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
maven-assembly-plugin
shrine-mapping-tools-${project.version}
false
diff --git a/tools/monitor/pom.xml b/tools/monitor/pom.xml
index d1e07ec56..b84368418 100644
--- a/tools/monitor/pom.xml
+++ b/tools/monitor/pom.xml
@@ -1,90 +1,94 @@
4.0.0
SHRINE Monitor Utilities
shrine-monitor-utilities
jar
net.shrine
shrine-tools
+
1.23.3.1-SNAPSHOT
+
+
+
ant
ant-javamail
1.6.5
net.shrine
shrine-broadcaster-aggregator
${project.version}
net.shrine
shrine-config
${project.version}
org.codehaus.groovy.modules.http-builder
http-builder
0.5.1
org.codehaus.groovy
groovy
org.codehaus.gmaven.runtime
gmaven-runtime-1.7
1.3
mysql
mysql-connector-java
com.h2database
h2
test
net.sf.opencsv
opencsv
org.apache.commons
commons-email
1.2
org.codehaus.gmaven
gmaven-plugin
maven-assembly-plugin
shrine-monitor-${project.version}.zip
false
diff --git a/tools/pom.xml b/tools/pom.xml
index 9c2c95003..014f66055 100644
--- a/tools/pom.xml
+++ b/tools/pom.xml
@@ -1,81 +1,85 @@
4.0.0
SHRINE Tools
shrine-tools
pom
net.shrine
shrine-base
+
1.23.3.1-SNAPSHOT
+
+
+
1.5
2.4
monitor
utility-commons
scanner
batch-querier
adapter-queries-to-qep
many-qep-queries
mapping-automation
net.shrine
shrine-protocol
${project.version}
org.codehaus.gmaven
gmaven-plugin
${gmaven-plugin-version}
compile
testCompile
true
true
true
maven-assembly-plugin
${assembly-plugin-version}
assembly
package
single
src/main/assembly/assembly.xml
diff --git a/tools/scanner/pom.xml b/tools/scanner/pom.xml
index b9f7dddfd..126c82d1a 100644
--- a/tools/scanner/pom.xml
+++ b/tools/scanner/pom.xml
@@ -1,103 +1,107 @@
4.0.0
SHRINE Scanner Utility
shrine-scanner-utility
jar
net.shrine
shrine-tools
+
1.23.3.1-SNAPSHOT
+
+
+
net.shrine
shrine-test-commons
${project.version}
test-jar
test
net.shrine
shrine-ont-support
${project.version}
net.shrine
shrine-hms-core
${project.version}
net.shrine
shrine-config
${project.version}
net.shrine
shrine-crypto
${project.version}
net.shrine
shrine-utility-commons
${project.version}
net.shrine
shrine-utility-commons
${project.version}
test-jar
test
org.rogach
scallop_${scala-major-version}
${scallop-version}
net.sf.opencsv
opencsv
com.typesafe
config
net.shrine
shrine-broadcaster-aggregator
${project.version}
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
maven-assembly-plugin
shrine-scanner-${project.version}
false
diff --git a/tools/utility-commons/pom.xml b/tools/utility-commons/pom.xml
index f3eb2da07..7b0de1d42 100644
--- a/tools/utility-commons/pom.xml
+++ b/tools/utility-commons/pom.xml
@@ -1,64 +1,68 @@
4.0.0
SHRINE Common Classes for Utilities
shrine-utility-commons
jar
net.shrine
shrine-tools
+
1.23.3.1-SNAPSHOT
+
+
+
net.shrine
shrine-test-commons
${project.version}
test-jar
test
org.rogach
scallop_${scala-major-version}
${scallop-version}
net.sf.opencsv
opencsv
com.typesafe
config
src/main/scala
src/test/scala
net.alchim31.maven
scala-maven-plugin
org.apache.maven.plugins
maven-jar-plugin
test-jar