You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2018/04/08 16:49:36 UTC

[24/46] logging-log4j-audit git commit: Fixed the catalog editor. Support using a branch

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/jtable.2.4.0/themes/metro/red/jtable.css
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/jtable.2.4.0/themes/metro/red/jtable.css b/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/jtable.2.4.0/themes/metro/red/jtable.css
new file mode 100644
index 0000000..9a169ea
--- /dev/null
+++ b/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/jtable.2.4.0/themes/metro/red/jtable.css
@@ -0,0 +1,495 @@
+/* jTable metro style theme - Red
+ * Created by Halil İbrahim Kalkan
+ * http://www.jtable.org
+ */
+@font-face {
+  font-family: 'Open Sans';
+  font-style: normal;
+  font-weight: 300;
+  src: local('Open Sans Light'), local('OpenSans-Light'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/DXI1ORHCpsQm3Vp6mXoaTRa1RVmPjeKy21_GQJaLlJI.woff) format('woff');
+}
+@font-face {
+  font-family: 'Open Sans';
+  font-style: italic;
+  font-weight: 300;
+  src: local('Open Sans Light Italic'), local('OpenSansLight-Italic'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/PRmiXeptR36kaC0GEAetxrsuoFAk0leveMLeqYtnfAY.woff) format('woff');
+}
+@font-face {
+  font-family: 'Open Sans';
+  font-style: normal;
+  font-weight: 400;
+  src: local('Open Sans'), local('OpenSans'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/u-WUoqrET9fUeobQW7jkRT8E0i7KZn-EPnyo3HZu7kw.woff) format('woff');
+}
+@font-face {
+  font-family: 'Open Sans';
+  font-style: italic;
+  font-weight: 400;
+  src: local('Open Sans Italic'), local('OpenSans-Italic'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/xjAJXh38I15wypJXxuGMBtIh4imgI8P11RFo6YPCPC0.woff) format('woff');
+}
+@font-face {
+  font-family: 'Open Sans';
+  font-style: normal;
+  font-weight: 600;
+  src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/MTP_ySUJH_bn48VBG8sNSha1RVmPjeKy21_GQJaLlJI.woff) format('woff');
+}
+@font-face {
+  font-family: 'Open Sans';
+  font-style: italic;
+  font-weight: 600;
+  src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/PRmiXeptR36kaC0GEAetxmWeb5PoA5ztb49yLyUzH1A.woff) format('woff');
+}
+@font-face {
+  font-family: 'Open Sans';
+  font-style: normal;
+  font-weight: 700;
+  src: local('Open Sans Bold'), local('OpenSans-Bold'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/k3k702ZOKiLJc3WVjuplzBa1RVmPjeKy21_GQJaLlJI.woff) format('woff');
+}
+@font-face {
+  font-family: 'Open Sans';
+  font-style: italic;
+  font-weight: 700;
+  src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'), url(http://themes.googleusercontent.com/static/fonts/opensans/v6/PRmiXeptR36kaC0GEAetxoUt79146ZFaIJxILcpzmhI.woff) format('woff');
+}
+div.jtable-main-container {
+  position: relative;
+}
+div.jtable-main-container div.jtable-title {
+  position: relative;
+  text-align: left;
+}
+div.jtable-main-container div.jtable-title .jtable-close-button {
+  right: 0px;
+  top: 0px;
+  bottom: 0px;
+  position: absolute;
+}
+div.jtable-main-container div.jtable-title div.jtable-toolbar {
+  bottom: 0px;
+  right: 0px;
+  position: absolute;
+  display: inline-block;
+  margin-right: 5px;
+}
+div.jtable-main-container div.jtable-title div.jtable-toolbar span.jtable-toolbar-item {
+  position: relative;
+  display: inline-block;
+  margin: 0px 0px 0px 5px;
+  cursor: pointer;
+  font-size: 0.9em;
+  padding: 2px;
+  vertical-align: bottom;
+}
+div.jtable-main-container div.jtable-title div.jtable-toolbar span.jtable-toolbar-item span.jtable-toolbar-item-icon {
+  display: inline-block;
+  margin: 2px;
+  vertical-align: middle;
+  width: 16px;
+  height: 16px;
+}
+div.jtable-main-container div.jtable-title div.jtable-toolbar span.jtable-toolbar-item span.jtable-toolbar-item-text {
+  display: inline-block;
+  margin: 2px;
+  vertical-align: middle;
+}
+div.jtable-main-container div.jtable-title .jtable-close-button + div.jtable-toolbar {
+  margin-right: 30px;
+}
+div.jtable-main-container table.jtable {
+  width: 100%;
+}
+div.jtable-main-container table.jtable thead th {
+  vertical-align: middle;
+  text-align: left;
+}
+div.jtable-main-container table.jtable thead th.jtable-column-header div.jtable-column-header-container {
+  position: relative;
+}
+div.jtable-main-container table.jtable thead th.jtable-column-header div.jtable-column-header-container span.jtable-column-header-text {
+  display: inline-block;
+}
+div.jtable-main-container table.jtable thead th.jtable-column-header div.jtable-column-header-container div.jtable-column-resize-handler {
+  position: absolute;
+  height: 24px;
+  width: 8px;
+  right: -8px;
+  top: -2px;
+  z-index: 2;
+  cursor: col-resize;
+}
+div.jtable-main-container table.jtable thead th.jtable-command-column-header {
+  text-align: center;
+}
+div.jtable-main-container table.jtable thead th.jtable-column-header-selecting {
+  text-align: center;
+  width: 1%;
+}
+div.jtable-main-container table.jtable thead th.jtable-column-header-selecting input {
+  cursor: pointer;
+}
+div.jtable-main-container table.jtable thead th.jtable-column-header-sortable {
+  cursor: pointer;
+}
+div.jtable-main-container table.jtable tbody tr > td .jtable-command-button {
+  margin: 0px;
+  padding: 0px;
+  cursor: pointer;
+  border: none;
+  display: inline;
+}
+div.jtable-main-container table.jtable tbody tr > td .jtable-command-button span {
+  display: none;
+}
+div.jtable-main-container table.jtable tbody tr > td.jtable-command-column {
+  text-align: center;
+  vertical-align: middle;
+}
+div.jtable-main-container table.jtable tbody tr > td.jtable-selecting-column {
+  text-align: center;
+  vertical-align: middle;
+}
+div.jtable-main-container table.jtable tbody tr > td.jtable-selecting-column input {
+  cursor: pointer;
+}
+div.jtable-main-container table.jtable tbody tr.jtable-no-data-row {
+  text-align: center;
+}
+div.jtable-main-container > div.jtable-bottom-panel {
+  position: relative;
+  min-height: 24px;
+  text-align: left;
+}
+div.jtable-main-container > div.jtable-bottom-panel div.jtable-right-area {
+  right: 0px;
+  top: 0px;
+  bottom: 0px;
+  position: absolute;
+}
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list {
+  display: inline-block;
+}
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-space,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-first,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-last,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-previous,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-next,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-active {
+  padding: 2px 5px;
+  display: inline-block;
+  cursor: pointer;
+}
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-space,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-active,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-disabled {
+  cursor: default;
+}
+div.jtable-main-container > div.jtable-bottom-panel span.jtable-page-size-change {
+  margin-left: 5px;
+}
+div.jtable-main-container > div.jtable-bottom-panel span.jtable-goto-page {
+  margin-left: 5px;
+}
+div.jtable-main-container > div.jtable-bottom-panel span.jtable-goto-page input[type=text] {
+  width: 22px;
+}
+div.jtable-main-container > div.jtable-bottom-panel span.jtable-page-info {
+  vertical-align: middle;
+}
+div.jtable-main-container div.jtable-column-resize-bar {
+  opacity: 0.5;
+  filter: alpha(opacity=50);
+  position: absolute;
+  display: none;
+  width: 1px;
+  background-color: #000;
+}
+div.jtable-main-container div.jtable-column-selection-container {
+  position: absolute;
+  display: none;
+  border: 1px solid #C8C8C8;
+  background: #fff;
+  color: #000;
+  z-index: 101;
+  padding: 5px;
+}
+div.jtable-main-container div.jtable-column-selection-container ul.jtable-column-select-list {
+  margin: 0px;
+  padding: 0px;
+  list-style: none;
+}
+div.jtable-main-container div.jtable-column-selection-container ul.jtable-column-select-list li {
+  margin: 0px;
+  padding: 2px 0px;
+}
+div.jtable-main-container div.jtable-column-selection-container ul.jtable-column-select-list li label span {
+  position: relative;
+  top: -1px;
+  margin-left: 4px;
+}
+div.jtable-main-container div.jtable-column-selection-container ul.jtable-column-select-list li input[type="checkbox"] {
+  cursor: pointer;
+}
+form.jtable-dialog-form div.jtable-input-field-container {
+  padding: 2px 0px 3px 0px;
+  border-bottom: 1px solid #ddd;
+}
+form.jtable-dialog-form div.jtable-input-field-container:last-child {
+  border: none;
+}
+form.jtable-dialog-form div.jtable-input-label {
+  padding: 2px 3px;
+  font-size: 1.1em;
+  color: #666;
+}
+form.jtable-dialog-form div.jtable-input {
+  padding: 2px;
+}
+form.jtable-dialog-form div.jtable-date-input {
+  /* No additional style */
+
+}
+form.jtable-dialog-form div.jtable-text-input {
+  /* No additional style */
+
+}
+form.jtable-dialog-form span.jtable-option-text-clickable {
+  position: relative;
+  top: -2px;
+}
+form.jtable-dialog-form div.jtable-textarea-input textarea {
+  width: 300px;
+  min-height: 60px;
+}
+form.jtable-dialog-form div.jtable-checkbox-input span,
+form.jtable-dialog-form div.jtable-radio-input span {
+  padding-left: 4px;
+}
+form.jtable-dialog-form div.jtable-radio-input input,
+form.jtable-dialog-form div.jtable-checkbox-input input,
+form.jtable-dialog-form span.jtable-option-text-clickable {
+  cursor: pointer;
+}
+div.jtable-busy-panel-background {
+  opacity: 0.1;
+  filter: alpha(opacity=50);
+  z-index: 998;
+  position: absolute;
+  background-color: #000;
+}
+div.jtable-busy-panel-background.jtable-busy-panel-background-invisible {
+  background-color: transparent;
+}
+div.jtable-busy-message {
+  cursor: wait;
+  z-index: 999;
+  position: absolute;
+  margin: 5px;
+}
+div.jtable-contextmenu-overlay {
+  position: fixed;
+  left: 0px;
+  top: 0px;
+  width: 100%;
+  height: 100%;
+  z-index: 100;
+}
+div.jtable-main-container {
+  font-family: 'Segoe UI Semilight', 'Open Sans', Verdana, Arial, Helvetica, sans-serif;
+  font-weight: 300;
+  font-size: 14px;
+  background: #fff;
+  line-height: 1.3;
+}
+div.jtable-main-container > div.jtable-title {
+  background-color: #c30000;
+  padding-left: 10px;
+}
+div.jtable-main-container > div.jtable-title div.jtable-title-text {
+  font-family: 'Segoe UI Semilight', 'Open Sans', Verdana, Arial, Helvetica, sans-serif;
+  font-weight: 300;
+  font-size: 19px;
+  line-height: 34px;
+  color: #fff;
+}
+div.jtable-main-container > div.jtable-title .jtable-close-button {
+  right: 8px;
+  top: 8px;
+  bottom: 8px;
+  position: absolute;
+  opacity: 0.5;
+  filter: alpha(opacity=50);
+  background: url('../close.png') no-repeat;
+  width: 16px;
+  height: 16px;
+}
+div.jtable-main-container > div.jtable-title .jtable-close-button:hover {
+  opacity: 1;
+  filter: alpha(opacity=50);
+}
+div.jtable-main-container > div.jtable-title div.jtable-toolbar {
+  bottom: 0px;
+  right: 0px;
+  position: absolute;
+}
+div.jtable-main-container > div.jtable-title div.jtable-toolbar span.jtable-toolbar-item {
+  background-color: #cd0000;
+  color: white;
+}
+div.jtable-main-container > div.jtable-title div.jtable-toolbar span.jtable-toolbar-item.jtable-toolbar-item-add-record span.jtable-toolbar-item-icon {
+  background-image: url('../add.png');
+}
+div.jtable-main-container > div.jtable-title div.jtable-toolbar span.jtable-toolbar-item.jtable-toolbar-item-hover {
+  background-color: #d40300;
+  padding-bottom: 6px;
+}
+div.jtable-main-container > table.jtable {
+  border: 1px solid #e51400;
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+div.jtable-main-container > table.jtable > thead {
+  background-color: #e51400;
+}
+div.jtable-main-container > table.jtable > thead th {
+  font-family: 'Segoe UI Semilight', 'Open Sans', Verdana, Arial, Helvetica, sans-serif;
+  font-weight: 300;
+  font-size: 15px;
+  color: #fff;
+}
+div.jtable-main-container > table.jtable > thead th.jtable-column-header div.jtable-column-header-container {
+  height: 24px;
+  margin-left: 4px;
+}
+div.jtable-main-container > table.jtable > thead th.jtable-column-header div.jtable-column-header-container div.jtable-column-resize-handler {
+  height: 28px;
+}
+div.jtable-main-container > table.jtable > thead th.jtable-column-header div.jtable-column-header-container span.jtable-column-header-text {
+  margin-top: 2px;
+}
+div.jtable-main-container > table.jtable > thead th.jtable-column-header-sortable div.jtable-column-header-container {
+  background: url('../column-sortable.png') no-repeat right;
+}
+div.jtable-main-container > table.jtable > thead th.jtable-column-header-sorted-asc div.jtable-column-header-container {
+  background: url('../column-asc.png') no-repeat right;
+}
+div.jtable-main-container > table.jtable > thead th.jtable-column-header-sorted-desc div.jtable-column-header-container {
+  background: url('../column-desc.png') no-repeat right;
+}
+div.jtable-main-container > table.jtable > tbody > tr {
+  background-color: #fff;
+}
+div.jtable-main-container > table.jtable > tbody > tr > td {
+  border: 1px solid #ddd;
+}
+div.jtable-main-container > table.jtable > tbody > tr.jtable-data-row > td {
+  padding: 4px;
+}
+div.jtable-main-container > table.jtable > tbody > tr.jtable-data-row > td > .jtable-edit-command-button {
+  background: url('../edit.png') no-repeat;
+  width: 16px;
+  height: 16px;
+  opacity: 0.4;
+}
+div.jtable-main-container > table.jtable > tbody > tr.jtable-data-row > td > .jtable-edit-command-button:hover {
+  opacity: 0.8;
+}
+div.jtable-main-container > table.jtable > tbody > tr.jtable-data-row > td > .jtable-delete-command-button {
+  background: url('../delete.png') no-repeat;
+  width: 16px;
+  height: 16px;
+  opacity: 0.4;
+}
+div.jtable-main-container > table.jtable > tbody > tr.jtable-data-row > td > .jtable-delete-command-button:hover {
+  opacity: 0.8;
+}
+div.jtable-main-container > table.jtable > tbody > tr.jtable-row-even {
+  background-color: #f9f9f9;
+}
+div.jtable-main-container > table.jtable > tbody > tr:hover {
+  background: #e8eaef;
+}
+div.jtable-main-container > table.jtable > tbody > tr.jtable-row-selected {
+  color: #fff;
+  background-color: #ff3622;
+}
+div.jtable-main-container > table.jtable > tbody > tr.jtable-row-created {
+  background-color: #ff4733;
+}
+div.jtable-main-container > table.jtable > tbody > tr.jtable-row-updated {
+  background-color: #ff4733;
+}
+div.jtable-main-container > table.jtable > tbody > tr.jtable-row-deleting {
+  background-color: #e51400;
+  color: #fff;
+}
+div.jtable-main-container > table.jtable > tbody > tr.jtable-child-row > td {
+  padding: 2px;
+  background-color: #fff;
+}
+div.jtable-main-container > div.jtable-bottom-panel {
+  background-color: #d40300;
+  color: #fff;
+  min-height: 22.900000000000002px;
+  font-size: 13px;
+  border: 1px solid #e51400;
+  border-top: none;
+}
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list {
+  margin: 1px 0px 0px 0px;
+}
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-space,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-first,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-last,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-previous,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-next,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-active {
+  background-color: #e51400;
+  margin: 1px;
+  padding: 2px 5px;
+  color: #fff;
+}
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number:hover,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-first:hover,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-last:hover,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-previous:hover,
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-next:hover {
+  background-color: #ff3622;
+}
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-disabled {
+  opacity: 0.75;
+  filter: alpha(opacity=50);
+  color: #ccc;
+  cursor: default;
+}
+div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-disabled:hover {
+  background-color: #e51400;
+}
+div.jtable-main-container > div.jtable-bottom-panel span.jtable-page-info {
+  display: inline-block;
+  padding: 4px;
+}
+div.jtable-main-container > div.jtable-bottom-panel span.jtable-page-size-change {
+  display: inline-block;
+  padding: 2px 0px 2px 0px;
+}
+div.jtable-main-container > div.jtable-bottom-panel span.jtable-goto-page {
+  display: inline-block;
+  padding: 2px 0px 2px 0px;
+}
+form.jtable-dialog-form {
+  font-family: 'Segoe UI Semilight', 'Open Sans', Verdana, Arial, Helvetica, sans-serif;
+  font-weight: 400;
+  font-size: 14px;
+}
+div.jtable-busy-message {
+  font-family: 'Segoe UI Semilight', 'Open Sans', Verdana, Arial, Helvetica, sans-serif;
+  font-weight: 300;
+  font-size: 16px;
+  border: 1px solid #fff;
+  padding: 5px 5px 5px 58px;
+  color: #fff;
+  background: url('loading.gif') no-repeat;
+  background-color: #c30000;
+  background-position: 8px;
+}

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/jtable.2.4.0/themes/metro/red/jtable.less
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/jtable.2.4.0/themes/metro/red/jtable.less b/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/jtable.2.4.0/themes/metro/red/jtable.less
new file mode 100644
index 0000000..8d8d81a
--- /dev/null
+++ b/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/jtable.2.4.0/themes/metro/red/jtable.less
@@ -0,0 +1,11 @@
+/* jTable metro style theme - Red
+ * Created by Halil İbrahim Kalkan
+ * http://www.jtable.org
+ */
+
+@import "../jtable_metro_base.less";
+
+@theme-folder:'red';
+@main-theme-color: #e51400;
+
+.jtable_metro_base(@theme-folder, @main-theme-color);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/jtable.2.4.0/themes/metro/red/jtable.min.css
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/jtable.2.4.0/themes/metro/red/jtable.min.css b/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/jtable.2.4.0/themes/metro/red/jtable.min.css
new file mode 100644
index 0000000..52af0a2
--- /dev/null
+++ b/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/jtable.2.4.0/themes/metro/red/jtable.min.css
@@ -0,0 +1 @@
+@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://themes.googleusercontent.com/static/fonts/opensans/v6/DXI1ORHCpsQm3Vp6mXoaTRa1RVmPjeKy21_GQJaLlJI.woff) format('woff')}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300;src:local('Open Sans Light Italic'),local('OpenSansLight-Italic'),url(http://themes.googleusercontent.com/static/fonts/opensans/v6/PRmiXeptR36kaC0GEAetxrsuoFAk0leveMLeqYtnfAY.woff) format('woff')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://themes.googleusercontent.com/static/fonts/opensans/v6/u-WUoqrET9fUeobQW7jkRT8E0i7KZn-EPnyo3HZu7kw.woff) format('woff')}@font-face{font-family:'Open Sans';font-style:italic;font-weight:400;src:local('Open Sans Italic'),local('OpenSans-Italic'),url(http://themes.googleusercontent.com/static/fonts/opensans/v6/xjAJXh38I15wypJXxuGMBtIh4imgI8P11RFo6YPCPC0.woff
 ) format('woff')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://themes.googleusercontent.com/static/fonts/opensans/v6/MTP_ySUJH_bn48VBG8sNSha1RVmPjeKy21_GQJaLlJI.woff) format('woff')}@font-face{font-family:'Open Sans';font-style:italic;font-weight:600;src:local('Open Sans Semibold Italic'),local('OpenSans-SemiboldItalic'),url(http://themes.googleusercontent.com/static/fonts/opensans/v6/PRmiXeptR36kaC0GEAetxmWeb5PoA5ztb49yLyUzH1A.woff) format('woff')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://themes.googleusercontent.com/static/fonts/opensans/v6/k3k702ZOKiLJc3WVjuplzBa1RVmPjeKy21_GQJaLlJI.woff) format('woff')}@font-face{font-family:'Open Sans';font-style:italic;font-weight:700;src:local('Open Sans Bold Italic'),local('OpenSans-BoldItalic'),url(http://themes.googleusercontent.com/static/fonts/opensans/v6/PRm
 iXeptR36kaC0GEAetxoUt79146ZFaIJxILcpzmhI.woff) format('woff')}div.jtable-main-container{position:relative}div.jtable-main-container div.jtable-title{position:relative;text-align:left}div.jtable-main-container div.jtable-title .jtable-close-button{right:0;top:0;bottom:0;position:absolute}div.jtable-main-container div.jtable-title div.jtable-toolbar{bottom:0;right:0;position:absolute;display:inline-block;margin-right:5px}div.jtable-main-container div.jtable-title div.jtable-toolbar span.jtable-toolbar-item{position:relative;display:inline-block;margin:0 0 0 5px;cursor:pointer;font-size:.9em;padding:2px;vertical-align:bottom}div.jtable-main-container div.jtable-title div.jtable-toolbar span.jtable-toolbar-item span.jtable-toolbar-item-icon{display:inline-block;margin:2px;vertical-align:middle;width:16px;height:16px}div.jtable-main-container div.jtable-title div.jtable-toolbar span.jtable-toolbar-item span.jtable-toolbar-item-text{display:inline-block;margin:2px;vertical-align:middle}di
 v.jtable-main-container div.jtable-title .jtable-close-button+div.jtable-toolbar{margin-right:30px}div.jtable-main-container table.jtable{width:100%}div.jtable-main-container table.jtable thead th{vertical-align:middle;text-align:left}div.jtable-main-container table.jtable thead th.jtable-column-header div.jtable-column-header-container{position:relative}div.jtable-main-container table.jtable thead th.jtable-column-header div.jtable-column-header-container span.jtable-column-header-text{display:inline-block}div.jtable-main-container table.jtable thead th.jtable-column-header div.jtable-column-header-container div.jtable-column-resize-handler{position:absolute;height:24px;width:8px;right:-8px;top:-2px;z-index:2;cursor:col-resize}div.jtable-main-container table.jtable thead th.jtable-command-column-header{text-align:center}div.jtable-main-container table.jtable thead th.jtable-column-header-selecting{text-align:center;width:1%}div.jtable-main-container table.jtable thead th.jtable-col
 umn-header-selecting input{cursor:pointer}div.jtable-main-container table.jtable thead th.jtable-column-header-sortable{cursor:pointer}div.jtable-main-container table.jtable tbody tr>td .jtable-command-button{margin:0;padding:0;cursor:pointer;border:none;display:inline}div.jtable-main-container table.jtable tbody tr>td .jtable-command-button span{display:none}div.jtable-main-container table.jtable tbody tr>td.jtable-command-column{text-align:center;vertical-align:middle}div.jtable-main-container table.jtable tbody tr>td.jtable-selecting-column{text-align:center;vertical-align:middle}div.jtable-main-container table.jtable tbody tr>td.jtable-selecting-column input{cursor:pointer}div.jtable-main-container table.jtable tbody tr.jtable-no-data-row{text-align:center}div.jtable-main-container>div.jtable-bottom-panel{position:relative;min-height:24px;text-align:left}div.jtable-main-container>div.jtable-bottom-panel div.jtable-right-area{right:0;top:0;bottom:0;position:absolute}div.jtable-ma
 in-container>div.jtable-bottom-panel .jtable-page-list{display:inline-block}div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number,div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-space,div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-first,div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-last,div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-previous,div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-next,div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-active{padding:2px 5px;display:inline-block;cursor:pointer}div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-space,div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-active,div.jtable-main-container>
 div.jtable-bottom-panel .jtable-page-list .jtable-page-number-disabled{cursor:default}div.jtable-main-container>div.jtable-bottom-panel span.jtable-page-size-change{margin-left:5px}div.jtable-main-container>div.jtable-bottom-panel span.jtable-goto-page{margin-left:5px}div.jtable-main-container>div.jtable-bottom-panel span.jtable-goto-page input[type=text]{width:22px}div.jtable-main-container>div.jtable-bottom-panel span.jtable-page-info{vertical-align:middle}div.jtable-main-container div.jtable-column-resize-bar{opacity:.5;filter:alpha(opacity=50);position:absolute;display:none;width:1px;background-color:#000}div.jtable-main-container div.jtable-column-selection-container{position:absolute;display:none;border:1px solid #c8c8c8;background:#fff;color:#000;z-index:101;padding:5px}div.jtable-main-container div.jtable-column-selection-container ul.jtable-column-select-list{margin:0;padding:0;list-style:none}div.jtable-main-container div.jtable-column-selection-container ul.jtable-column-
 select-list li{margin:0;padding:2px 0}div.jtable-main-container div.jtable-column-selection-container ul.jtable-column-select-list li label span{position:relative;top:-1px;margin-left:4px}div.jtable-main-container div.jtable-column-selection-container ul.jtable-column-select-list li input[type="checkbox"]{cursor:pointer}form.jtable-dialog-form div.jtable-input-field-container{padding:2px 0 3px 0;border-bottom:1px solid #ddd}form.jtable-dialog-form div.jtable-input-field-container:last-child{border:none}form.jtable-dialog-form div.jtable-input-label{padding:2px 3px;font-size:1.1em;color:#666}form.jtable-dialog-form div.jtable-input{padding:2px}form.jtable-dialog-form div.jtable-date-input{}form.jtable-dialog-form div.jtable-text-input{}form.jtable-dialog-form span.jtable-option-text-clickable{position:relative;top:-2px}form.jtable-dialog-form div.jtable-textarea-input textarea{width:300px;min-height:60px}form.jtable-dialog-form div.jtable-checkbox-input span,form.jtable-dialog-form d
 iv.jtable-radio-input span{padding-left:4px}form.jtable-dialog-form div.jtable-radio-input input,form.jtable-dialog-form div.jtable-checkbox-input input,form.jtable-dialog-form span.jtable-option-text-clickable{cursor:pointer}div.jtable-busy-panel-background{opacity:.1;filter:alpha(opacity=50);z-index:998;position:absolute;background-color:#000}div.jtable-busy-panel-background.jtable-busy-panel-background-invisible{background-color:transparent}div.jtable-busy-message{cursor:wait;z-index:999;position:absolute;margin:5px}div.jtable-contextmenu-overlay{position:fixed;left:0;top:0;width:100%;height:100%;z-index:100}div.jtable-main-container{font-family:'Segoe UI Semilight','Open Sans',Verdana,Arial,Helvetica,sans-serif;font-weight:300;font-size:14px;background:#fff;line-height:1.3}div.jtable-main-container>div.jtable-title{background-color:#c30000;padding-left:10px}div.jtable-main-container>div.jtable-title div.jtable-title-text{font-family:'Segoe UI Semilight','Open Sans',Verdana,Arial
 ,Helvetica,sans-serif;font-weight:300;font-size:19px;line-height:34px;color:#fff}div.jtable-main-container>div.jtable-title .jtable-close-button{right:8px;top:8px;bottom:8px;position:absolute;opacity:.5;filter:alpha(opacity=50);background:url('../close.png') no-repeat;width:16px;height:16px}  div.jtable-main-container>div.jtable-title .jtable-close-button:hover{opacity:1;filter:alpha(opacity=50)}  div.jtable-main-container>div.jtable-title div.jtable-toolbar{bottom:0;right:0;position:absolute}  div.jtable-main-container>div.jtable-title div.jtable-toolbar span.jtable-toolbar-item{background-color:#cd0000;color:#fff}  div.jtable-main-container>div.jtable-title div.jtable-toolbar span.jtable-toolbar-item.jtable-toolbar-item-add-record span.jtable-toolbar-item-icon{background-image:url('../add.png')}  div.jtable-main-container>div.jtable-title div.jtable-toolbar span.jtable-toolbar-item.jtable-toolbar-item-hover{background-color:#d40300;padding-bottom:6px}  div.jtable-main-container>ta
 ble.jtable{border:1px solid #e51400;border-collapse:collapse;border-spacing:0}  div.jtable-main-container>table.jtable>thead{background-color:#e51400}  div.jtable-main-container>table.jtable>thead th{font-family:'Segoe UI Semilight','Open Sans',Verdana,Arial,Helvetica,sans-serif;font-weight:300;font-size:15px;color:#fff}  div.jtable-main-container>table.jtable>thead th.jtable-column-header div.jtable-column-header-container{height:24px;margin-left:4px}  div.jtable-main-container>table.jtable>thead th.jtable-column-header div.jtable-column-header-container div.jtable-column-resize-handler{height:28px}  div.jtable-main-container>table.jtable>thead th.jtable-column-header div.jtable-column-header-container span.jtable-column-header-text{margin-top:2px}  div.jtable-main-container>table.jtable>thead th.jtable-column-header-sortable div.jtable-column-header-container{background:url('../column-sortable.png') no-repeat right}  div.jtable-main-container>table.jtable>thead th.jtable-column-he
 ader-sorted-asc div.jtable-column-header-container{background:url('../column-asc.png') no-repeat right}  div.jtable-main-container>table.jtable>thead th.jtable-column-header-sorted-desc div.jtable-column-header-container{background:url('../column-desc.png') no-repeat right}  div.jtable-main-container>table.jtable>tbody>tr{background-color:#fff}  div.jtable-main-container>table.jtable>tbody>tr>td{border:1px solid #ddd}  div.jtable-main-container>table.jtable>tbody>tr.jtable-data-row>td{padding:4px}  div.jtable-main-container>table.jtable>tbody>tr.jtable-data-row>td>.jtable-edit-command-button{background:url('../edit.png') no-repeat;width:16px;height:16px;opacity:.4}  div.jtable-main-container>table.jtable>tbody>tr.jtable-data-row>td>.jtable-edit-command-button:hover{opacity:.8}  div.jtable-main-container>table.jtable>tbody>tr.jtable-data-row>td>.jtable-delete-command-button{background:url('../delete.png') no-repeat;width:16px;height:16px;opacity:.4}  div.jtable-main-container>table.j
 table>tbody>tr.jtable-data-row>td>.jtable-delete-command-button:hover{opacity:.8}  div.jtable-main-container>table.jtable>tbody>tr.jtable-row-even{background-color:#f9f9f9}  div.jtable-main-container>table.jtable>tbody>tr:hover{background:#e8eaef}  div.jtable-main-container>table.jtable>tbody>tr.jtable-row-selected{color:#fff;background-color:#ff3622}  div.jtable-main-container>table.jtable>tbody>tr.jtable-row-created{background-color:#ff4733}  div.jtable-main-container>table.jtable>tbody>tr.jtable-row-updated{background-color:#ff4733}  div.jtable-main-container>table.jtable>tbody>tr.jtable-row-deleting{background-color:#e51400;color:#fff}  div.jtable-main-container>table.jtable>tbody>tr.jtable-child-row>td{padding:2px;background-color:#fff}  div.jtable-main-container>div.jtable-bottom-panel{background-color:#d40300;color:#fff;min-height:22.900000000000002px;font-size:13px;border:1px solid #e51400;border-top:none}  div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list{
 margin:1px 0 0 0}  div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number,div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-space,div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-first,div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-last,div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-previous,div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-next,div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-active{background-color:#e51400;margin:1px;padding:2px 5px;color:#fff}  div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number:hover,div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-first:hover,div.jtable-main-container>div.jtable-bottom-panel .jtable-page-li
 st .jtable-page-number-last:hover,div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-previous:hover,div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-next:hover{background-color:#ff3622}  div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-disabled{opacity:.75;filter:alpha(opacity=50);color:#ccc;cursor:default}  div.jtable-main-container>div.jtable-bottom-panel .jtable-page-list .jtable-page-number-disabled:hover{background-color:#e51400}  div.jtable-main-container>div.jtable-bottom-panel span.jtable-page-info{display:inline-block;padding:4px}  div.jtable-main-container>div.jtable-bottom-panel span.jtable-page-size-change{display:inline-block;padding:2px 0 2px 0}  div.jtable-main-container>div.jtable-bottom-panel span.jtable-goto-page{display:inline-block;padding:2px 0 2px 0}  form.jtable-dialog-form{font-family:'Segoe UI Semilight','Open Sans',Verdana,Arial,Helvetica,sans-
 serif;font-weight:400;font-size:14px}  div.jtable-busy-message{font-family:'Segoe UI Semilight','Open Sans',Verdana,Arial,Helvetica,sans-serif;font-weight:300;font-size:16px;border:1px solid #fff;padding:5px 5px 5px 58px;color:#fff;background:url('loading.gif') no-repeat;background-color:#c30000;background-position:8px}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/jtable.2.4.0/themes/metro/red/loading.gif
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/jtable.2.4.0/themes/metro/red/loading.gif b/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/jtable.2.4.0/themes/metro/red/loading.gif
new file mode 100644
index 0000000..11fd90b
Binary files /dev/null and b/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/jtable.2.4.0/themes/metro/red/loading.gif differ

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/products.js
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/products.js b/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/products.js
new file mode 100644
index 0000000..0f14509
--- /dev/null
+++ b/log4j-catalog/log4j-catalog-editor/src/main/resources/static/js/products.js
@@ -0,0 +1,257 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
+$(document).ready(function () {
+    $('#ProductsTableContainer').jtable({
+        title: 'Table of Products',
+        paging: true, //Enable paging
+        pageSize: 25, //Set page size (default: 25)
+        sorting: true, //Enable sorting
+        defaultSorting: 'Name ASC', //Set default sorting
+        actions: {
+            listAction: 'api/products/list',
+        },
+        toolbar: {
+            items: [{
+                icon: 'js/jtable.2.4.0/themes/metro/add.png',
+                text: 'Add new record',
+                click: () => { addEditProductItem() }
+            }]
+        },
+        fields: {
+            id: {
+                key: true,
+                list: false
+            },
+            name: {
+                title: 'Name',
+                width: '25%'
+            },
+            displayName: {
+                title: 'Display Name',
+                width: '25%'
+            },
+            description: {
+                title: 'Description',
+                width: '50%'
+            },
+            edit: {
+                title: '',
+                width: '25',
+                display: function (productData) {
+                    // Store event item data in localStorage
+                    var productDataItem = JSON.stringify(productData.record);
+                    localStorage.setItem('productItem' + productData.record.id, productDataItem);
+                    return '<img class="log4J-action-icon" src="js/jtable.2.4.0/themes/metro/edit.png" onClick="addEditProductItem(' + productData.record.id + ')" />';
+                }
+            },
+            delete: {
+                title: '',
+                width: '25',
+                display: function (productData) {
+                    return '<img class="log4J-action-icon" src="js/jtable.2.4.0/themes/metro/delete.png" onClick="deleteProductItem(' + productData.record.id + ')" />';
+                }
+            }
+        }
+    });
+    $.ajax({
+        type: 'POST',
+        url: 'api/events/list',
+        success:function(response){
+            if (response.Result === 'OK') {
+                var allEvents = response.Records.map((item) => {
+                    return item.name;
+                });
+                localStorage.setItem('allEvents', allEvents);
+            }
+        },
+        error:function(jqXhr, textStatus, errorThrown){
+            console.error(textStatus + ' - ' + errorThrown);
+        }
+    });
+    //Load products list from server
+    $('#ProductsTableContainer').jtable('load');
+});
+
+function deleteProductItem(productId) {
+    var response = confirm('Are you sure you want to delete this product?');
+    if (response) {
+      var postData = {};
+      postData['id'] = productId;
+      $.ajax({
+          type: 'POST',
+          contentType: 'application/json',
+          url: 'api/products/delete',
+          data: JSON.stringify(postData),
+          success:function(response) {
+              if (response.Result === 'OK') {
+                  $('#ProductsTableContainer').jtable('load');
+              }
+          },
+          error:function(jqXhr, textStatus, errorThrown) {
+              console.error(textStatus + ' - ' + errorThrown);
+          }
+      });
+    }
+}
+
+function addEditProductItemHandler() {
+    var validForm = validateFormContent();
+    if (validForm) {
+        showLoadingAnimation();
+        var postUrl = 'api/products/create';
+        var postData = {};
+        var productEvents = [];
+        postData['name'] = $('#productName').val();
+        postData['displayName'] = $('#productDisplayName').val();
+        postData['description'] = $('#productDescription').val();
+        $('#productEvents .product-event-row').each(function() {
+            productEvents.push($(this).find('input')[0].value);
+        });
+        postData['events'] = productEvents;
+        if ($('#productId').val()) {
+            postUrl = 'api/products/update';
+            postData['id'] = $('#productId').val();
+        }
+        $.ajax({
+            type: 'POST',
+            contentType: 'application/json',
+            url: postUrl,
+            data: JSON.stringify(postData),
+            success:function(response) {
+                if (response.Result === 'OK') {
+                    $('#ProductsTableContainer').jtable('load');
+                    closeLog4jModal();
+                }
+            },
+            error:function(jqXhr, textStatus, errorThrown) {
+                console.error(textStatus + ' - ' + errorThrown);
+            }
+        });
+    }
+}
+
+function addEditProductItem(productId) {
+    var hiddenIdField = '';
+    var productData = {};
+    if (productId) {
+        hiddenIdField = '<input type="hidden" id="productId" name="id" value="' + productId + '" />';
+    } else {
+        productId = 'tempProductData';
+        var tempProductData = {
+            id: productId,
+            events: [],
+        }
+        localStorage.setItem('productItem' + productId, JSON.stringify(tempProductData));
+    }
+    productFormContent = ' \
+        <form id="add-edit-product-form" class="log4j-catalog-form" method="post"> \
+          ' + hiddenIdField + ' \
+          <p> \
+              <label>Name</label> \
+              <input type="text" id="productName" name="name" class="required" /> \
+          </p> \
+          <p> \
+              <label>Display Name</label> \
+              <input type="text" id="productDisplayName" name="displayName" class="required" /> \
+          </p> \
+          <p> \
+              <label>Description</label> \
+              <input type="text" id="productDescription" name="description" class="required" /> \
+          </p> \
+          <p> \
+              <label>Assigned Events</label> \
+              <span id="productEvents"></span> \
+          </p> \
+          <p> \
+              <label>Add Event</label> \
+              <span> \
+                  <select name="addProductEvent" id="addProductEvent"> \
+                      <option value="">loading...</option> \
+                  </select> \
+                  <button id="addProductEventButton">+</button> \
+              </span> \
+          </p> \
+        </form> \
+        <div class="log4j-catalog-button-row"> \
+            <button class="log4j-catalog-button" onclick="closeLog4jModal()">Cancel</button>\
+            <button class="log4j-catalog-button" onclick="addEditProductItemHandler()">Save</button> \
+        </div> \
+    ';
+    showLog4JModal('Add / Edit Product Item', productFormContent);
+    if (localStorage.getItem('productItem' + productId)) {
+        productData = JSON.parse(localStorage.getItem('productItem' + productId));
+        $('#productName').val(productData.name);
+        $('#productDisplayName').val(productData.displayName);
+        $('#productDescription').val(productData.description);
+    }
+    populateProductEvents(productData.events, productId);
+}
+
+function populateProductEvents(assignedEvents, productId) {
+    var selectedEvents = [];
+    $('#productEvents').children().remove();
+    if (productId) {
+        assignedEvents.map((item) => {
+            selectedEvents.push(item);
+            $('#productEvents').append(' \
+                <span class="product-event-row"> \
+                    <input type="text" name="events[]" value="' + item + '" disabled /> \
+                    <button class="remove-product-event-button" alt="' + productId + '" rel="' + item + '">-</button> \
+                </span> \
+            ');
+        });
+    }
+    function checkPendingRequest() {
+        if ($.active > 0) {
+            window.setTimeout(checkPendingRequest, 1000);
+        } else {
+            var allEvents = localStorage.getItem('allEvents').split(',');
+            allEvents.sort();
+            $('#addProductEvent option').remove();
+            allEvents.map((item) => {
+                if (!selectedEvents.includes(item)) {
+                    $('#addProductEvent').append(' \
+                        <option value="' + item + '">' + item + '</option> \
+                    ');
+                }
+            });
+        }
+    };
+    checkPendingRequest();
+    assignProductEventListeners(productId);
+}
+
+function assignProductEventListeners(productId) {
+    $('#addProductEventButton, .remove-product-event-button').unbind();
+    $('#addProductEventButton').click(function(e) {
+        e.preventDefault();
+        var allEvents = localStorage.getItem('allEvents').split(',');
+        var productData = JSON.parse(localStorage.getItem('productItem' + productId));
+        productData.events.push($('#addProductEvent').val());
+        localStorage.setItem('productItem' + productId, JSON.stringify(productData));
+        populateProductEvents(productData.events, productId);
+    });
+
+    $('.remove-product-event-button').click(function(e) {
+        e.preventDefault();
+        var allEvents = localStorage.getItem('allEvents').split(',');
+        var productData = JSON.parse(localStorage.getItem('productItem' + productId));
+        productData.events.pop($(this).attr('rel'));
+        localStorage.setItem('productItem' + productId, JSON.stringify(productData));
+        populateProductEvents(productData.events, productId);
+    });
+}

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/attributes.html
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/attributes.html b/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/attributes.html
new file mode 100644
index 0000000..af6f007
--- /dev/null
+++ b/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/attributes.html
@@ -0,0 +1,44 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements. See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache license, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License. You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the license for the specific language governing permissions and
+  ~ limitations under the license.
+  -->
+<html>
+<head>
+    <title>Audit Catalog - Attributes</title>
+
+    <!-- Include one of jTable styles. -->
+    <link href="js/jtable.2.4.0/themes/metro/blue/jtable.min.css" rel="stylesheet" type="text/css" />
+    <!-- Include app styles. -->
+    <link href="css/app.css" rel="stylesheet" type="text/css" />
+
+    <!-- Include jTable script file. -->
+    <script src="js/jquery-3.2.1.min.js" type="text/javascript"></script>
+    <script src="js/jquery-ui-1.12.1/jquery-ui.min.js" type="text/javascript"></script>
+    <script src="js/jtable.2.4.0/jquery.jtable.js" type="text/javascript"></script>
+    <!-- Include app script files. -->
+    <script src="js/app.js" type="text/javascript"></script>
+    <script src="js/attributes.js" type="text/javascript"></script>
+
+</head>
+<body>
+
+    <div th:insert="~{template :: hdr}"></div>
+
+    <div id="AttributesTableContainer" class="log4j-table-container"></div>
+
+    <div th:insert="~{template :: ftr}"></div>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/categories.html
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/categories.html b/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/categories.html
new file mode 100644
index 0000000..7a6baff
--- /dev/null
+++ b/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/categories.html
@@ -0,0 +1,43 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements. See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache license, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License. You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the license for the specific language governing permissions and
+  ~ limitations under the license.
+  -->
+<html>
+<head>
+    <title>Audit Catalog - categories</title>
+
+    <!-- Include one of jTable styles. -->
+    <link href="js/jtable.2.4.0/themes/metro/blue/jtable.min.css" rel="stylesheet" type="text/css" />
+    <!-- Include app styles. -->
+    <link href="css/app.css" rel="stylesheet" type="text/css" />
+
+    <!-- Include jTable script file. -->
+    <script src="js/jquery-3.2.1.min.js" type="text/javascript"></script>
+    <script src="js/jquery-ui-1.12.1/jquery-ui.min.js" type="text/javascript"></script>
+    <script src="js/jtable.2.4.0/jquery.jtable.js" type="text/javascript"></script>
+    <!-- Include app script files. -->
+    <script src="js/app.js" type="text/javascript"></script>
+    <script src="js/categories.js" type="text/javascript"></script>
+
+</head>
+<body>
+
+    <div th:insert="~{template :: hdr}"></div>
+
+    <div id="CategoriesTableContainer" class="log4j-table-container"></div>
+
+    <div th:insert="~{template :: ftr}"></div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/events.html
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/events.html b/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/events.html
new file mode 100644
index 0000000..c83bf71
--- /dev/null
+++ b/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/events.html
@@ -0,0 +1,44 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements. See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache license, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License. You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the license for the specific language governing permissions and
+  ~ limitations under the license.
+  -->
+<html>
+<head>
+    <title>Audit Catalog - Events</title>
+
+    <!-- Include one of jTable styles. -->
+    <link href="js/jtable.2.4.0/themes/metro/blue/jtable.min.css" rel="stylesheet" type="text/css" />
+    <!-- Include app styles. -->
+    <link href="css/app.css" rel="stylesheet" type="text/css" />
+
+    <!-- Include jTable script file. -->
+    <script src="js/jquery-3.2.1.min.js" type="text/javascript"></script>
+    <script src="js/jquery-ui-1.12.1/jquery-ui.min.js" type="text/javascript"></script>
+    <script src="js/jtable.2.4.0/jquery.jtable.js" type="text/javascript"></script>
+    <!-- Include app script files. -->
+    <script src="js/app.js" type="text/javascript"></script>
+    <script src="js/events.js" type="text/javascript"></script>
+
+</head>
+<body>
+
+    <div th:insert="~{template :: hdr}"></div>
+
+    <div id="EventsTableContainer" class="log4j-table-container"></div>
+
+    <div th:insert="~{template :: ftr}"></div>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/products.html
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/products.html b/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/products.html
new file mode 100644
index 0000000..e20cf2d
--- /dev/null
+++ b/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/products.html
@@ -0,0 +1,43 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements. See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache license, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License. You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the license for the specific language governing permissions and
+  ~ limitations under the license.
+  -->
+<html>
+<head>
+    <title>Audit Catalog - Products</title>
+
+    <!-- Include one of jTable styles. -->
+    <link href="js/jtable.2.4.0/themes/metro/blue/jtable.min.css" rel="stylesheet" type="text/css" />
+    <!-- Include app styles. -->
+    <link href="css/app.css" rel="stylesheet" type="text/css" />
+
+    <!-- Include jTable script file. -->
+    <script src="js/jquery-3.2.1.min.js" type="text/javascript"></script>
+    <script src="js/jquery-ui-1.12.1/jquery-ui.min.js" type="text/javascript"></script>
+    <script src="js/jtable.2.4.0/jquery.jtable.js" type="text/javascript"></script>
+    <!-- Include app script files. -->
+    <script src="js/app.js" type="text/javascript"></script>
+    <script src="js/products.js" type="text/javascript"></script>
+
+</head>
+<body>
+
+    <div th:insert="~{template :: hdr}"></div>
+
+    <div id="ProductsTableContainer" class="log4j-table-container"></div>
+
+    <div th:insert="~{template :: ftr}"></div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/template.html
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/template.html b/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/template.html
new file mode 100644
index 0000000..66e61df
--- /dev/null
+++ b/log4j-catalog/log4j-catalog-editor/src/main/resources/templates/template.html
@@ -0,0 +1,42 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements. See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache license, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License. You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the license for the specific language governing permissions and
+  ~ limitations under the license.
+  -->
+<!DOCTYPE html>
+
+<html xmlns:th="http://www.thymeleaf.org">
+
+<body>
+
+    <div th:fragment="hdr">
+          <div id="nav">
+            <a href="products">Products</a>
+            <a href="categories">Categories</a>
+            <a href="events">Events</a>
+            <a href="attributes">Attributes</a>
+            <a id="save-all" href="#">Save All Changes</a>
+          </div>
+    </div>
+
+    <div th:fragment="ftr">
+        <div id="ftr">
+            Copyright © 2017 <a href="https://www.apache.org">The Apache Software Foundation</a>. All Rights Reserved.
+        </div>
+        <div id="log4jtooltip"></div>
+    </div>
+
+</body>
+
+</html>

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/attributes.html
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/attributes.html b/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/attributes.html
deleted file mode 100644
index af6f007..0000000
--- a/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/attributes.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements. See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to You under the Apache license, Version 2.0
-  ~ (the "License"); you may not use this file except in compliance with
-  ~ the License. You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the license for the specific language governing permissions and
-  ~ limitations under the license.
-  -->
-<html>
-<head>
-    <title>Audit Catalog - Attributes</title>
-
-    <!-- Include one of jTable styles. -->
-    <link href="js/jtable.2.4.0/themes/metro/blue/jtable.min.css" rel="stylesheet" type="text/css" />
-    <!-- Include app styles. -->
-    <link href="css/app.css" rel="stylesheet" type="text/css" />
-
-    <!-- Include jTable script file. -->
-    <script src="js/jquery-3.2.1.min.js" type="text/javascript"></script>
-    <script src="js/jquery-ui-1.12.1/jquery-ui.min.js" type="text/javascript"></script>
-    <script src="js/jtable.2.4.0/jquery.jtable.js" type="text/javascript"></script>
-    <!-- Include app script files. -->
-    <script src="js/app.js" type="text/javascript"></script>
-    <script src="js/attributes.js" type="text/javascript"></script>
-
-</head>
-<body>
-
-    <div th:insert="~{template :: hdr}"></div>
-
-    <div id="AttributesTableContainer" class="log4j-table-container"></div>
-
-    <div th:insert="~{template :: ftr}"></div>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/categories.html
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/categories.html b/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/categories.html
deleted file mode 100644
index 7a6baff..0000000
--- a/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/categories.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements. See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to You under the Apache license, Version 2.0
-  ~ (the "License"); you may not use this file except in compliance with
-  ~ the License. You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the license for the specific language governing permissions and
-  ~ limitations under the license.
-  -->
-<html>
-<head>
-    <title>Audit Catalog - categories</title>
-
-    <!-- Include one of jTable styles. -->
-    <link href="js/jtable.2.4.0/themes/metro/blue/jtable.min.css" rel="stylesheet" type="text/css" />
-    <!-- Include app styles. -->
-    <link href="css/app.css" rel="stylesheet" type="text/css" />
-
-    <!-- Include jTable script file. -->
-    <script src="js/jquery-3.2.1.min.js" type="text/javascript"></script>
-    <script src="js/jquery-ui-1.12.1/jquery-ui.min.js" type="text/javascript"></script>
-    <script src="js/jtable.2.4.0/jquery.jtable.js" type="text/javascript"></script>
-    <!-- Include app script files. -->
-    <script src="js/app.js" type="text/javascript"></script>
-    <script src="js/categories.js" type="text/javascript"></script>
-
-</head>
-<body>
-
-    <div th:insert="~{template :: hdr}"></div>
-
-    <div id="CategoriesTableContainer" class="log4j-table-container"></div>
-
-    <div th:insert="~{template :: ftr}"></div>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/events.html
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/events.html b/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/events.html
deleted file mode 100644
index c83bf71..0000000
--- a/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/events.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements. See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to You under the Apache license, Version 2.0
-  ~ (the "License"); you may not use this file except in compliance with
-  ~ the License. You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the license for the specific language governing permissions and
-  ~ limitations under the license.
-  -->
-<html>
-<head>
-    <title>Audit Catalog - Events</title>
-
-    <!-- Include one of jTable styles. -->
-    <link href="js/jtable.2.4.0/themes/metro/blue/jtable.min.css" rel="stylesheet" type="text/css" />
-    <!-- Include app styles. -->
-    <link href="css/app.css" rel="stylesheet" type="text/css" />
-
-    <!-- Include jTable script file. -->
-    <script src="js/jquery-3.2.1.min.js" type="text/javascript"></script>
-    <script src="js/jquery-ui-1.12.1/jquery-ui.min.js" type="text/javascript"></script>
-    <script src="js/jtable.2.4.0/jquery.jtable.js" type="text/javascript"></script>
-    <!-- Include app script files. -->
-    <script src="js/app.js" type="text/javascript"></script>
-    <script src="js/events.js" type="text/javascript"></script>
-
-</head>
-<body>
-
-    <div th:insert="~{template :: hdr}"></div>
-
-    <div id="EventsTableContainer" class="log4j-table-container"></div>
-
-    <div th:insert="~{template :: ftr}"></div>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/products.html
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/products.html b/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/products.html
deleted file mode 100644
index e20cf2d..0000000
--- a/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/products.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements. See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to You under the Apache license, Version 2.0
-  ~ (the "License"); you may not use this file except in compliance with
-  ~ the License. You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the license for the specific language governing permissions and
-  ~ limitations under the license.
-  -->
-<html>
-<head>
-    <title>Audit Catalog - Products</title>
-
-    <!-- Include one of jTable styles. -->
-    <link href="js/jtable.2.4.0/themes/metro/blue/jtable.min.css" rel="stylesheet" type="text/css" />
-    <!-- Include app styles. -->
-    <link href="css/app.css" rel="stylesheet" type="text/css" />
-
-    <!-- Include jTable script file. -->
-    <script src="js/jquery-3.2.1.min.js" type="text/javascript"></script>
-    <script src="js/jquery-ui-1.12.1/jquery-ui.min.js" type="text/javascript"></script>
-    <script src="js/jtable.2.4.0/jquery.jtable.js" type="text/javascript"></script>
-    <!-- Include app script files. -->
-    <script src="js/app.js" type="text/javascript"></script>
-    <script src="js/products.js" type="text/javascript"></script>
-
-</head>
-<body>
-
-    <div th:insert="~{template :: hdr}"></div>
-
-    <div id="ProductsTableContainer" class="log4j-table-container"></div>
-
-    <div th:insert="~{template :: ftr}"></div>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/template.html
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/template.html b/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/template.html
deleted file mode 100644
index 66e61df..0000000
--- a/log4j-catalog/log4j-catalog-editor/src/main/webapp/WEB-INF/templates/template.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements. See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to You under the Apache license, Version 2.0
-  ~ (the "License"); you may not use this file except in compliance with
-  ~ the License. You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the license for the specific language governing permissions and
-  ~ limitations under the license.
-  -->
-<!DOCTYPE html>
-
-<html xmlns:th="http://www.thymeleaf.org">
-
-<body>
-
-    <div th:fragment="hdr">
-          <div id="nav">
-            <a href="products">Products</a>
-            <a href="categories">Categories</a>
-            <a href="events">Events</a>
-            <a href="attributes">Attributes</a>
-            <a id="save-all" href="#">Save All Changes</a>
-          </div>
-    </div>
-
-    <div th:fragment="ftr">
-        <div id="ftr">
-            Copyright © 2017 <a href="https://www.apache.org">The Apache Software Foundation</a>. All Rights Reserved.
-        </div>
-        <div id="log4jtooltip"></div>
-    </div>
-
-</body>
-
-</html>

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/webapp/css/app.css
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/webapp/css/app.css b/log4j-catalog/log4j-catalog-editor/src/main/webapp/css/app.css
deleted file mode 100644
index d1ffda7..0000000
--- a/log4j-catalog/log4j-catalog-editor/src/main/webapp/css/app.css
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache license, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the license for the specific language governing permissions and
- * limitations under the license.
- */
-@import url('https://fonts.googleapis.com/css?family=Lato');
-
-body {
-  font-family: 'Lato', sans-serif;
-  margin: 0;
-  padding: 0;
-}
-
-#nav {
-  background-color: #f3f3f3;
-  border-bottom: 1px solid #e7e7e7;
-  display: flex;
-  height: 48px;
-  justify-content: space-between;
-  margin-bottom: 24px;
-  width: 100%;
-}
-
-#nav a {
-  border-right: 1px solid #e7e7e7;
-  color: #666;
-  font-size: 16px;
-  line-height: 48px;
-  padding: 0 14px;
-  text-decoration: none;
-}
-
-#nav #save-all {
-  border-right: none;
-  border-left: 1px solid #e7e7e7;
-  margin-left: auto;
-}
-
-#nav a:hover,
-#nav #save-all:hover {
-  background-color: #0b67cd;
-  border-right: 1px solid #0b67cd;
-  color: #fff;
-}
-
-#ftr {
-  margin: 24px;
-  text-align: center;
-}
-
-.log4j-table-container {
-  padding: 0 24px;
-}
-
-.form-processing {
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  background-color: #fff;
-  z-index: 100;
-  opacity: .75;
-}
-
-.form-processing .gif {
-  position: absolute;
-  top: calc(50% - 16px);
-  left: calc(50% - 16px);
-  width: 32px;
-  height: 32px;
-  background-image: url(../images/ajax-loader.gif);
-  background-repeat: no-repeat;
-}
-
-.log4J-action-icon {
-  opacity: .4;
-}
-
-.log4j-catalog-form {
-  position: relative;
-}
-
-.log4j-catalog-form p {
-  position: relative;
-}
-
-.log4j-catalog-form input[type="text"],
-.log4j-catalog-form select,
-.log4j-catalog-form textarea {
-  width: 80%;
-  border: 1px solid #ddd;
-  padding: 2px 7px;
-  background-color: #fff;
-}
-
-.log4j-catalog-form select[multiple] {
-  height: 200px;
-}
-
-.log4j-catalog-form label {
-  display: block;
-  margin-bottom: 7px;
-  color: #aaa;
-}
-
-.log4j-catalog-form .form-error {
-  position: absolute;
-  top: 52px;
-  left: 354px;
-  color: #ff0000;
-  font-size: 12px;
-}
-
-.log4j-catalog-modal {
-  background-color: #fff;
-  border: 1px solid #ddd;
-  box-shadow: 0 0 20px #ccc;
-  left: 0;
-  margin: auto;
-  padding: 24px;
-  position: absolute;
-  right: 0;
-  top: 25%;
-  width: 500px;
-}
-
-.log4j-catalog-title {
-  border-bottom: 1px solid #ddd;
-  margin-bottom: 24px;
-  padding-bottom: 14px;
-}
-
-.log4j-catalog-button + .log4j-catalog-button {
-  margin-left: 24px;
-}
-
-/* Events */
-.event-attributes,
-.event-attribute-row {
-  font-size: 12px;
-}
-
-.event-attribute-row,
-.attribute-constraint-row,
-.product-event-row {
-  display: block;
-  clear: both;
-  line-height: 12px;
-  margin: 2px 0;
-  vertical-align: middle;
-}
-
-.event-attribute-row input[type="text"] {
-  width: 270px;
-  margin-right: 24px;
-}
-
-.event-attribute-item-required {
-  font-size: 10px;
-  color: #aaa;
-}
-
-.event-attribute-row button {
-  margin-left: 24px;
-}
-
-.attribute-constraint-row .form-error {
-  position: static;
-  padding: 0 4px;
-}
-
-.attribute-constraint-name {
-  font-size: 12px;
-  display: inline-block;
-  text-transform: uppercase;
-  width: 145px;
-}
-
-.attribute-constraint-data,
-#addAttributeConstraintValue {
-  width: 251px !important;
-}
-
-#addAttributeConstraintName {
-  width: 145px;
-}
-
-#addEventAttribute {
-  width: 375px !important;
-}
-
-#addEventAttributeButton,
-.remove-event-attribute-button {
-  cursor: pointer;
-}

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/webapp/images/ajax-loader.gif
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/webapp/images/ajax-loader.gif b/log4j-catalog/log4j-catalog-editor/src/main/webapp/images/ajax-loader.gif
deleted file mode 100644
index bd6dd97..0000000
Binary files a/log4j-catalog/log4j-catalog-editor/src/main/webapp/images/ajax-loader.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/webapp/images/attributes.png
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/webapp/images/attributes.png b/log4j-catalog/log4j-catalog-editor/src/main/webapp/images/attributes.png
deleted file mode 100644
index 7957193..0000000
Binary files a/log4j-catalog/log4j-catalog-editor/src/main/webapp/images/attributes.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/webapp/images/constraint.png
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/webapp/images/constraint.png b/log4j-catalog/log4j-catalog-editor/src/main/webapp/images/constraint.png
deleted file mode 100644
index 7604751..0000000
Binary files a/log4j-catalog/log4j-catalog-editor/src/main/webapp/images/constraint.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7ccfa3aa/log4j-catalog/log4j-catalog-editor/src/main/webapp/js/app.js
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-editor/src/main/webapp/js/app.js b/log4j-catalog/log4j-catalog-editor/src/main/webapp/js/app.js
deleted file mode 100644
index 1e906d3..0000000
--- a/log4j-catalog/log4j-catalog-editor/src/main/webapp/js/app.js
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache license, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the license for the specific language governing permissions and
- * limitations under the license.
- */
-$(document).ready(function () {
-    // Clear localStorage
-    localStorage.clear();
-
-    $('#save-all').click(function(e) {
-      e.preventDefault();
-      saveAllChanges();
-    });
-});
-
-// Modal action handlers
-function closeLog4jModal() {
-    $('.log4j-catalog-modal').remove();
-}
-
-function log4jSubmitHandler(submitHandler) {
-    submitHandler();
-    closeLog4jModal();
-}
-
-function showLog4JModal(title, content) {
-    closeLog4jModal();
-    var modalContent = ' \
-        <div class="log4j-catalog-modal"> \
-            <div class="log4j-catalog-title">' + title + '</div> \
-            <div class="log4j-catalog-content">' + content + '</div> \
-        </div>';
-
-    $('body').append(modalContent);
-    window.scrollTo(0, 0);
-}
-
-function showLoadingAnimation() {
-  $('.log4j-catalog-form').prepend('<div class="form-processing"><div class="gif"></div></div>');
-}
-
-function validateFormContent() {
-    var errors = 0;
-    $('.form-error').remove();
-    $('.required').each(function() {
-        if (!$(this).val()) {
-          errors++;
-          $('<span class="form-error">Required.</span>').insertAfter($(this));
-        }
-    });
-    if (errors) return false;
-    return true;
-}
-
-function saveAllChanges() {
-  $.ajax({
-      type: 'POST',
-      contentType: 'application/json',
-      url: 'catalog',
-      data: null,
-      success:function(response) {
-          if (response.Result === 'OK') {
-              $('.log4j-table-container"').jtable('load');
-          }
-      },
-      error:function(jqXhr, textStatus, errorThrown) {
-          console.error(textStatus + ' - ' + errorThrown);
-      }
-  });
-}