diff --git a/app/resources/locales/en_US/information.po b/app/resources/locales/en_US/information.po
index 835cddf26..7e18b4997 100644
--- a/app/resources/locales/en_US/information.po
+++ b/app/resources/locales/en_US/information.po
@@ -37,13 +37,13 @@ msgid "cos.select"
msgstr "Please select the collaboration (CO) you wish to manage."
msgid "flash.default"
-msgstr "Notice"
+msgstr "Notice: "
msgid "flash.error"
-msgstr "Error"
+msgstr "Error: "
msgid "flash.success"
-msgstr "Success"
+msgstr "Success: "
msgid "pagination.format"
msgstr "Page {{page}} of {{pages}}, Viewing {{start}}-{{end}} of {{count}}"
diff --git a/app/src/View/Helper/AlertHelper.php b/app/src/View/Helper/AlertHelper.php
new file mode 100644
index 000000000..a936fba04
--- /dev/null
+++ b/app/src/View/Helper/AlertHelper.php
@@ -0,0 +1,96 @@
+
+
+
+ ';
+ $dismissableClass = ' alert-dismissible';
+ }
+
+ $titleMarkup = '';
+ if(!empty($title)) {
+ $titleMarkup = '' . $title . '';
+ }
+
+ return '
+
+
+
+ ' . $this->getAlertIcon($type) . $titleMarkup . '
+
+
+ ' . $message . '
+
+ ' . $closeButton . '
+
+
+ ';
+ }
+
+ public function getAlertIcon(string $type) {
+ switch($type) {
+ case('success'): return 'check_circle';
+ case('info'): return 'info';
+ default: return 'report_problem';
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/View/Helper/FieldHelper.php b/app/src/View/Helper/FieldHelper.php
index 8ed937619..a1c04693f 100644
--- a/app/src/View/Helper/FieldHelper.php
+++ b/app/src/View/Helper/FieldHelper.php
@@ -34,7 +34,7 @@
use Cake\View\Helper;
class FieldHelper extends Helper {
- public $helpers = ['Form', 'Html', 'Url'];
+ public $helpers = ['Form', 'Html', 'Url', 'Alert'];
// Is this read-only or read-write?
protected $editable = true;
@@ -57,10 +57,9 @@ class FieldHelper extends Helper {
*/
public function banner(string $info) {
- return '
- info
- ' . $info . '
-
';
+ return '' .
+ $this->Alert->alert($info, 'warning')
+ . '';
}
/**
diff --git a/app/templates/Cos/select.php b/app/templates/Cos/select.php
index 0993a734d..2f61d5bbf 100644
--- a/app/templates/Cos/select.php
+++ b/app/templates/Cos/select.php
@@ -35,10 +35,7 @@
-
- info
- = __d('information','cos.none'); ?>
-
+ = $this->Alert->alert(__d('information','cos.none'), 'warning') ?>
= __d('information', 'cos.select'); ?>
-
-
-
info
-
+
+
+
+ = $this->Flash->render() ?>
+
+ Alert->alert($b, 'warning');
+ }
+ }
+ ?>
-Form->create($vv_obj);
diff --git a/app/templates/Standard/index.php b/app/templates/Standard/index.php
index 6d5136e8f..582d498e7 100644
--- a/app/templates/Standard/index.php
+++ b/app/templates/Standard/index.php
@@ -139,23 +139,23 @@ function _column_key($modelsName, $c, $tz=null) {
}
?>
-
-
-
- info
- = $b; ?>
-
-
-
-
-
-
- info
- = $b; ?>
-
-
-
+
+
+ = $this->Flash->render() ?>
+
+
+
+ = $this->Alert->alert($b, 'warning') ?>
+
+
+
+
+
+ = $this->Alert->alert($b, 'warning') ?>
+
+
+
diff --git a/app/templates/element/flash/default.php b/app/templates/element/flash/default.php
index c4e4a2f4b..b395c63de 100644
--- a/app/templates/element/flash/default.php
+++ b/app/templates/element/flash/default.php
@@ -1,4 +1,5 @@
-" onclick="this.classList.add('hidden');">= $message ?>
-*/ ?>
-
-
-
-
- = h($message); ?>
-
-
-
-
+ = $this->Alert->alert(h($message), 'warning', true, __d('information','flash.default')) ?>
diff --git a/app/templates/element/flash/error.php b/app/templates/element/flash/error.php
index 1d047dd32..2188d8162 100644
--- a/app/templates/element/flash/error.php
+++ b/app/templates/element/flash/error.php
@@ -8,23 +8,5 @@
*/ ?>
-
-
-
- = h($message); ?>
-
-
-
-
+ = $this->Alert->alert(h($message), 'danger', true, __d('information','flash.error')) ?>
diff --git a/app/templates/element/flash/success.php b/app/templates/element/flash/success.php
index b021443f1..f4c80a68e 100644
--- a/app/templates/element/flash/success.php
+++ b/app/templates/element/flash/success.php
@@ -3,28 +3,7 @@
$message = h($message);
}
?>
-= $message ?>
-*/ ?>
-
-
-
- = h($message); ?>
-
-
-
-
+ = $this->Alert->alert(h($message), 'success', true, __d('information','flash.success')) ?>
\ No newline at end of file
diff --git a/app/templates/layout/default.php b/app/templates/layout/default.php
index cf2deb5ee..c1cd1fa83 100644
--- a/app/templates/layout/default.php
+++ b/app/templates/layout/default.php
@@ -197,15 +197,6 @@
-
-
-
- = $this->Flash->render() ?>
-
= $this->element('dialog') ?>
diff --git a/app/webroot/css/co-base.css b/app/webroot/css/co-base.css
index d17395807..4c48b84ad 100644
--- a/app/webroot/css/co-base.css
+++ b/app/webroot/css/co-base.css
@@ -100,7 +100,7 @@ a {
#skip-to-content:focus {
top: 0;
transition: top 0.1s ease-in 0s, background 0.5s linear 0s;
- background-color: var(--cmg-color-blue-003);
+ background-color: var(--cmg-color-blue-002);
}
/* HEADER */
#banner {
@@ -346,66 +346,47 @@ body.logged-in #top-menu {
clear: both;
padding: 1em 0;
}
-/* NOTICES */
+/* ALERT MESSAGES */
#flash-messages {
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- margin: 1em auto;
- z-index: 100;
-}
-#flash-messages .toast-header img {
- width: 20px;
- margin-right: 0.3em;
+ margin: 0;
}
-#flash-messages .toast.success .toast-header {
- background-color: var(--cmg-color-green-003);
- color: white;
+.co-alert {
+ margin: 0 auto 1em;
+ border-radius: 0;
}
-#flash-messages .toast.error .toast-header {
- background-color: var(--cmg-color-red-002);
- color: white;
+.co-alert.alert-success {
+ background-color: var(--cmg-color-green-001);
+ border-color: var(--cmg-color-green-003);
}
-#flash-messages .toast.default .toast-header {
+.co-alert.alert-warning {
background-color: var(--cmg-color-yellow-001);
- color: black;
+ color: var(--cmg-color-yellow-002);
+ border-color: var(--cmg-color-yellow-003);
}
-#flash-messages .material-icons {
- font-size: 20px !important;
- padding: 0;
- margin: 0 4px 0 -10px;
- vertical-align: text-bottom;
+.co-alert.alert-danger {
+ background-color: var(--cmg-color-red-001);
+ color: var(--cmg-color-red-006);
+ border-color: var(--cmg-color-red-007);
}
-/* General icon and box styling */
-.co-info { /* info icon */
- float: left;
- margin: 0.3em 0.3em 0 0;
+.co-alert .alert-icon {
+ margin-right: 0.1rem;
}
-.co-alert { /* alert icon */
- float:left;
- margin:0 7px 20px 0;
+.co-alert .alert-title-text {
+ margin-right: 0.25em;
}
-.co-info-topbox {
- clear: both;
- padding: 1em;
- background-color: var(--cmg-color-yellow-002);
- margin-bottom: 1em;
+/* Alerts in the add-edit form: */
+ul.form-list li.alert-banner {
+ display: block;
+ padding: 0;
+}
+ul.form-list li.alert-banner .co-alert {
+ margin: 0;
+ border: none;
}
#lastLogin p {
margin-bottom: 0;
}
-#content .co-info-topbox .material-icons {
- color: var(--cmg-color-green-001);
- font-size: 26px;
- vertical-align: bottom;
- float: left;
- margin-right: 0.25em;
- margin-top: -0.1em;
-}
-.material-icons.error {
- color: var(--cmg-color-red-002);
-}
+/* MAIN NAVIGATION and CONTENT */
#main-wrapper {
position: relative;
}
@@ -538,7 +519,7 @@ body.logged-in #top-menu {
#main-menu ul.menu-panel-lists ul li a {
display: inline;
padding: 0;
- color: var(--cmg-color-blue-003);
+ color: var(--cmg-color-blue-002);
}
#main-menu ul.menu-panel-lists ul li a:hover {
text-decoration: underline;
@@ -714,7 +695,7 @@ body.logged-in #top-menu {
}
.top-filters input[type=text]:focus,
.side-search input[type=text]:focus {
- background-color: var(--cmg-color-yellow-003);
+ background-color: var(--cmg-color-yellow-004);
}
.top-filters .submit-button,
.top-filters .clear-button,
@@ -835,7 +816,7 @@ body.logged-in #top-menu {
background-color: var(--cmg-color-white);
}
#reconcile-table tr.match td {
- background-color: var(--cmg-color-green-002);
+ background-color: var(--cmg-color-green-004);
}
/* MATCHGRID MANAGEMENT */
#matchgrid-management {
@@ -975,7 +956,7 @@ th.actions {
top: 1px;
}
#pagination .btn-primary {
- background-color: var(--cmg-color-blue-003);
+ background-color: var(--cmg-color-blue-002);
border-color: var(--cmg-color-blue-002);
}
#pagination .btn-primary:hover,
@@ -1083,7 +1064,7 @@ ul.form-list input[type="password"] {
ul.form-list input[type="text"]:focus,
ul.form-list input[type="number"]:focus,
ul.form-list input[type="password"]:focus {
- background-color: var(--cmg-color-yellow-003);
+ background-color: var(--cmg-color-yellow-004);
}
ul.form-list select {
font-size: 0.9em;
@@ -1255,7 +1236,7 @@ ul.form-list .cm-time-picker-vals li {
margin: 0;
}
.cm-time-picker-vals button:focus {
- background-color: var(--cmg-color-blue-003);
+ background-color: var(--cmg-color-blue-002);
color: var(--cmg-color-white);
border-radius: 14px;
}
@@ -1456,7 +1437,7 @@ td.indented {
#co-loading-redirect span,
.co-loading-mini span {
animation: 1.2s linear infinite both loading;
- background-color: var(--cmg-color-blue-004);
+ background-color: var(--cmg-color-blue-003);
display: inline-block;
}
#co-loading span {
@@ -1505,9 +1486,9 @@ td.indented {
.btn-primary,
.btn-primary:focus,
.btn-primary:active {
- background-color: var(--cmg-color-blue-003);
+ background-color: var(--cmg-color-blue-002);
color: var(--cmg-color-white);
- border-color: var(--cmg-color-blue-003);
+ border-color: var(--cmg-color-blue-002);
}
.btn-primary,
.btn-primary:active {
@@ -1522,8 +1503,8 @@ td.indented {
.btn-primary.disabled,
.btn-primary:disabled {
color: var(--cmg-color-white);
- background-color: var(--cmg-color-blue-003);
- border-color: var(--cmg-color-blue-003);
+ background-color: var(--cmg-color-blue-002);
+ border-color: var(--cmg-color-blue-002);
opacity: 0.4;
}
.btn-default,
@@ -1532,7 +1513,7 @@ td.indented {
box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);
}
.btn-default:hover {
- background-color: var(--cmg-color-blue-003);
+ background-color: var(--cmg-color-blue-002);
color: var(--cmg-color-white) !important;
text-decoration: none !important;
}
@@ -1543,7 +1524,7 @@ td.indented {
.btn.link {
font-size: 1em;
text-decoration: underline;
- color: var(--cmg-color-blue-003);
+ color: var(--cmg-color-blue-002);
border: none;
}
/* Call to Action Blocks */
@@ -1578,34 +1559,34 @@ td.indented {
border: 1px solid transparent;
}
.bg-warning {
- background-color: var(--cmg-color-yellow-002);
+ background-color: var(--cmg-color-yellow-001);
}
.bg-primary {
- background-color: var(--cmg-color-blue-003);
+ background-color: var(--cmg-color-blue-002);
}
.bg-secondary {
background-color: var(--cmg-color-gray-002);
}
/* Bootstrap bg-outline */
.bg-outline-primary {
- color: var(--cmg-color-blue-003);
- border: 1px solid var(--cmg-color-blue-003);
+ color: var(--cmg-color-blue-002);
+ border: 1px solid var(--cmg-color-blue-002);
}
.bg-outline-info {
- color: var(--cmg-color-blue-006);
- border: 1px solid var(--cmg-color-blue-006);
+ color: var(--cmg-color-blue-004);
+ border: 1px solid var(--cmg-color-blue-004);
}
.bg-outline-danger {
color: var(--cmg-color-red-005);;
border: 1px solid var(--cmg-color-red-005);;
}
.bg-outline-success {
- color: var(--cmg-color-green-003);
- border: 1px solid var(--cmg-color-green-003);
+ color: var(--cmg-color-green-002);
+ border: 1px solid var(--cmg-color-green-002);
}
.bg-outline-warning {
- color: var(--cmg-color-yellow-002);
- border: 1px solid var(--cmg-color-yellow-002);
+ color: var(--cmg-color-yellow-001);
+ border: 1px solid var(--cmg-color-yellow-001);
}
.bg-outline-light {
color: var(--cmg-color-gray-004);
diff --git a/app/webroot/css/co-color.css b/app/webroot/css/co-color.css
index 7748a1bca..02412bea4 100644
--- a/app/webroot/css/co-color.css
+++ b/app/webroot/css/co-color.css
@@ -30,19 +30,20 @@
*/
:root {
- --cmg-color-blue-001: #06c; /* primary hyperlink color; accessible on backgrounds down to #e7e7e7 */
- --cmg-color-blue-002: #0067A3; /* Registry v5.x banner color, primary hyperlink hover color; pagination; accessible on backgrounds down to #dfdfdf */
- --cmg-color-blue-003: #0c75c0; /* submit buttons, .btn-primary */
- --cmg-color-blue-004: #9fc6e2; /* spinner */
- /*--cmg-color-blue-005: #53B1F4; !* link focus borders for keyboard nav *!*/
- --cmg-color-blue-005: #0067A3;
- --cmg-color-blue-006: #17a2b8; /* info badge */
+ /* Blues */
+ --cmg-color-blue-001: #06c; /* primary hyperlink color, spinner; accessible on backgrounds down to #e7e7e7 */
+ --cmg-color-blue-002: #115791; /* Registry v5.x banner color, submit buttons, .btn-primary,
+ primary hyperlink hover color; pagination; accessible on backgrounds down to #c9c9c9 */
+ --cmg-color-blue-003: #9fc6e2; /* spinner */
+ --cmg-color-blue-004: #17a2b8; /* info badge; XXX check for deprecated */
+ /* Dark Grays */
--cmg-color-gray-001: #222; /* body text */
- --cmg-color-gray-002: #555; /* headings text */
+ --cmg-color-gray-002: #444; /* headings text */
--cmg-color-gray-003: #666; /* disabled text or form fields */
--cmg-color-gray-004: #212529; /* badge light */
+ /* Light Grays */
--cmg-color-lightgray-001: #fafafa; /* background color */
--cmg-color-lightgray-002: #f8f8f8; /* background color */
--cmg-color-lightgray-003: #f5f5f5; /* background color */
@@ -54,20 +55,28 @@
--cmg-color-lightgray-009: #ededed; /* data-list background color */
--cmg-color-lightgray-010: #e8e8e8; /* co-grid background color */
- --cmg-color-green-001: #0b6623; /* infobox icon color */
- --cmg-color-green-002: #dfd; /* highlight: matching fields for reconciliation */
- --cmg-color-green-003: #28a745; /* success badge */
+ /* Greens */
+ --cmg-color-green-001: #b4ffba; /* alert: success */
+ --cmg-color-green-002: #28a745; /* alert: success text color, badge outline */
+ --cmg-color-green-003: #acf4b2; /* alert: success border color */
+ --cmg-color-green-004: #dfd; /* highlight: matching fields for reconciliation */
- --cmg-color-yellow-001: #f5f5bb; /* yellow warning */
- --cmg-color-yellow-002: #fbec88; /* infobox informational area */
- --cmg-color-yellow-003: #ffd; /* forms: focused input */
-
- --cmg-color-red-001: #fcc; /* red warning */
+ /* Yellows */
+ --cmg-color-yellow-001: #fffeb4; /* alert: warning */
+ --cmg-color-yellow-002: #41412e; /* alert: warning text color */
+ --cmg-color-yellow-003: #f6f5ae; /* alert: warning border color */
+ --cmg-color-yellow-004: #ffd; /* forms: focused input */
+
+ /* Reds */
+ --cmg-color-red-001: #ffd4d4; /* alert: danger */
--cmg-color-red-002: #c00; /* forms: error icons */
--cmg-color-red-003: #e33; /* title for deleted/archived */
--cmg-color-red-004: #c33; /* button */
--cmg-color-red-005: #dc3545; /* danger badge */
+ --cmg-color-red-006: #842029; /* alert: danger text color */
+ --cmg-color-red-007: #f8cece; /* alert: danger border color */
+ /* White and Black */
--cmg-color-white: #fff; /* white */
--cmg-color-black: #000; /* black */