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/03/14 14:51:29 UTC
[23/49] logging-log4j-audit git commit: Rename war project to editor
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/b75cbcd1/log4j-catalog/log4j-catalog-war/src/main/webapp/WEB-INF/templates/template.html
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-war/src/main/webapp/WEB-INF/templates/template.html b/log4j-catalog/log4j-catalog-war/src/main/webapp/WEB-INF/templates/template.html
deleted file mode 100644
index 66e61df..0000000
--- a/log4j-catalog/log4j-catalog-war/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/b75cbcd1/log4j-catalog/log4j-catalog-war/src/main/webapp/css/app.css
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-war/src/main/webapp/css/app.css b/log4j-catalog/log4j-catalog-war/src/main/webapp/css/app.css
deleted file mode 100644
index d1ffda7..0000000
--- a/log4j-catalog/log4j-catalog-war/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/b75cbcd1/log4j-catalog/log4j-catalog-war/src/main/webapp/images/ajax-loader.gif
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-war/src/main/webapp/images/ajax-loader.gif b/log4j-catalog/log4j-catalog-war/src/main/webapp/images/ajax-loader.gif
deleted file mode 100644
index bd6dd97..0000000
Binary files a/log4j-catalog/log4j-catalog-war/src/main/webapp/images/ajax-loader.gif and /dev/null differ
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/b75cbcd1/log4j-catalog/log4j-catalog-war/src/main/webapp/images/attributes.png
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-war/src/main/webapp/images/attributes.png b/log4j-catalog/log4j-catalog-war/src/main/webapp/images/attributes.png
deleted file mode 100644
index 7957193..0000000
Binary files a/log4j-catalog/log4j-catalog-war/src/main/webapp/images/attributes.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/b75cbcd1/log4j-catalog/log4j-catalog-war/src/main/webapp/images/constraint.png
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-war/src/main/webapp/images/constraint.png b/log4j-catalog/log4j-catalog-war/src/main/webapp/images/constraint.png
deleted file mode 100644
index 7604751..0000000
Binary files a/log4j-catalog/log4j-catalog-war/src/main/webapp/images/constraint.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/b75cbcd1/log4j-catalog/log4j-catalog-war/src/main/webapp/js/app.js
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-war/src/main/webapp/js/app.js b/log4j-catalog/log4j-catalog-war/src/main/webapp/js/app.js
deleted file mode 100644
index 1e906d3..0000000
--- a/log4j-catalog/log4j-catalog-war/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);
- }
- });
-}
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/b75cbcd1/log4j-catalog/log4j-catalog-war/src/main/webapp/js/attributes.js
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-war/src/main/webapp/js/attributes.js b/log4j-catalog/log4j-catalog-war/src/main/webapp/js/attributes.js
deleted file mode 100644
index bb71036..0000000
--- a/log4j-catalog/log4j-catalog-war/src/main/webapp/js/attributes.js
+++ /dev/null
@@ -1,364 +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 () {
- $('#AttributesTableContainer').jtable({
- title: 'Table of Attributes',
- paging: true, //Enable paging
- pageSize: 25, //Set page size (default: 25)
- sorting: true, //Enable sorting
- defaultSorting: 'Name ASC', //Set default sorting
- actions: {
- listAction: 'api/attributes/list',
- },
- toolbar: {
- items: [{
- icon: 'js/jtable.2.4.0/themes/metro/add.png',
- text: 'Add new record',
- click: () => { addEditAttributeItem() }
- }]
- },
- fields: {
- id: {
- key: true,
- list: false
- },
- name: {
- title: 'Name',
- width: '15%'
- },
- displayName: {
- title: 'Display Name',
- width: '15%'
- },
- description: {
- title: 'Description',
- width: '25%'
- },
- dataType: {
- title: 'Data Type',
- width: '5%'
- },
- indexed: {
- title: 'Indexed',
- width: '5%',
- display: function (attributeData) {
- return attributeData.record.indexed ? 'true' : 'false';
- }
- },
- sortable: {
- title: 'Sortable',
- width: '5%',
- display: function (attributeData) {
- return attributeData.record.sortable ? 'true' : 'false';
- }
- },
- required: {
- title: 'Required',
- width: '5%',
- display: function (attributeData) {
- return attributeData.record.required ? 'true' : 'false';
- }
- },
- requestContext: {
- title: 'RequestContext',
- width: '3%',
- display: function (attributeData) {
- return attributeData.record.requestContext ? 'true' : 'false';
- }
- },
- constraints: {
- title: 'Constraints',
- width: '16%',
- sorting: false,
- edit: false,
- create: false,
- display: function (attributeData) {
- var constraintList = '';
- if (typeof(attributeData.record.constraints) != 'undefined' && attributeData.record.constraints != null) {
- constraintList = attributeData.record.constraints.map(function (elem) {
- return elem.constraintType.name + '("' + elem.value + '")'
- }).join(' | ');
- }
- //Create a div that will be used to view associated attributes
- var $divConstraints = $('<div class="constraints">' + constraintList + '</div>');
- return $divConstraints;
- }
- },
- edit: {
- title: '',
- width: '2%',
- display: function (attributeData) {
- // Store attribute item data in localStorage
- var attributeDataItem = JSON.stringify(attributeData.record);
- localStorage.setItem('attributeItem' + attributeData.record.id,attributeDataItem);
- return '<img class="log4J-action-icon" src="js/jtable.2.4.0/themes/metro/edit.png" onClick="addEditAttributeItem(' + attributeData.record.id + ')" />';
- }
- },
- delete: {
- title: '',
- width: '2%',
- display: function (attributeData) {
- return '<img class="log4J-action-icon" src="js/jtable.2.4.0/themes/metro/delete.png" onClick="deleteAttributeItem(' + attributeData.record.id + ')" />';
- }
- }
- }
- });
- $.ajax({
- type: 'GET',
- url: 'api/constraints/types',
- success:function(response){
- localStorage.setItem('allConstraints', response);
- },
- error:function(jqXhr, textStatus, errorThrown){
- console.error(textStatus + ' - ' + errorThrown);
- }
- });
- //Load attributes list from server
- $('#AttributesTableContainer').jtable('load');
-});
-
-function deleteAttributeItem(attributeId) {
- var response = confirm('Are you sure you want to delete this attribute?');
- if (response) {
- var postData = {};
- postData['id'] = attributeId
- $.ajax({
- type: 'POST',
- contentType: 'application/json',
- url: 'api/attributes/delete',
- data: JSON.stringify(postData),
- success:function(response) {
- if (response.Result === 'OK') {
- $('#AttributesTableContainer').jtable('load');
- }
- },
- error:function(jqXhr, textStatus, errorThrown) {
- console.error(textStatus + ' - ' + errorThrown);
- }
- });
- }
-}
-
-function addEditattributeItemHandler() {
- var validForm = validateFormContent();
- if (validForm) {
- showLoadingAnimation();
- var postUrl = 'api/attributes/create';
- var postData = {};
- var attributeConstraints = [];
- postData['name'] = $('#attributeName').val();
- postData['displayName'] = $('#attributeDisplayName').val();
- postData['description'] = $('#attributeDescription').val();
- postData['dataType'] = $('#attributeDataType').val();
- postData['indexed'] = $('#attributeIndexed').val();
- postData['sortable'] = $('#attributeSortable').val();
- postData['required'] = $('#attributeRequired').val();
- postData['requestContext'] = $('#attributeRequestContext').val();
- $('#attributeConstraints .attribute-constraint-row').each(function() {
- var attributeConstraintItem = {
- constraintType: { name: $(this).find('.attribute-constraint-name').text().toLowerCase() },
- value: $(this).find('input')[0].value,
- };
- attributeConstraints.push(attributeConstraintItem);
- });
- postData['constraints'] = attributeConstraints;
- if ($('#attributeId').val()) {
- postUrl = 'api/attributes/update';
- postData['id'] = $('#attributeId').val();
- }
- $.ajax({
- type: 'POST',
- contentType: 'application/json',
- url: postUrl,
- data: JSON.stringify(postData),
- success:function(response) {
- if (response.Result === 'OK') {
- $('#AttributesTableContainer').jtable('load');
- closeLog4jModal();
- }
- },
- error:function(jqXhr, textStatus, errorThrown) {
- console.error(textStatus + ' - ' + errorThrown);
- }
- });
- }
-}
-
-function addEditAttributeItem(attributeId) {
- var hiddenIdField = '';
- var attributeData = {};
- if (attributeId) {
- hiddenIdField = '<input type="hidden" id="attributeId" name="id" value="' + attributeId + '" />';
- } else {
- attributeId = 'tempEventData';
- var tempEventData = {
- id: attributeId,
- constraints: [],
- }
- localStorage.setItem('attributeItem' + attributeId, JSON.stringify(tempEventData));
- }
- attributeFormContent = ' \
- <form id="add-edit-attribute-form" class="log4j-catalog-form" method="post"> \
- ' + hiddenIdField + ' \
- <p> \
- <label>Name</label> \
- <input type="text" id="attributeName" name="name" class="required" /> \
- </p> \
- <p> \
- <label>Display Name</label> \
- <input type="text" id="attributeDisplayName" name="displayName" class="required" /> \
- </p> \
- <p> \
- <label>Description</label> \
- <input type="text" id="attributeDescription" name="description" class="required" /> \
- </p> \
- <p> \
- <label>Data Type</label> \
- <select id="attributeDataType" name="indexed" class="required"> \
- </select> \
- </p> \
- <p> \
- <label>Indexed</label> \
- <select id="attributeIndexed" name="indexed" class="required"> \
- <option value="false">false</option> \
- <option value="true">true</option> \
- </select> \
- </p> \
- <p> \
- <label>Sortable</label> \
- <select id="attributeSortable" name="sortable" class="required"> \
- <option value="false">false</option> \
- <option value="true">true</option> \
- </select> \
- </p> \
- <p> \
- <label>Required</label> \
- <select id="attributeRequired" name="required" class="required"> \
- <option value="false">false</option> \
- <option value="true">true</option> \
- </select> \
- </p> \
- <p> \
- <label>Request Context</label> \
- <select id="attributeRequestContext" name="requestContext" class="required"> \
- <option value="false">false</option> \
- <option value="true">true</option> \
- </select> \
- </p> \
- <p> \
- <label>Assigned Constraints</label> \
- <span id="attributeConstraints"></span> \
- </p> \
- <p> \
- <label>Add Constraint</label> \
- <span> \
- <select name="addAttributeConstraintName" id="addAttributeConstraintName"> \
- <option value="">loading...</option> \
- </select> \
- <input type="text" name="addAttributeConstraintValue" id="addAttributeConstraintValue" /> \
- <button id="addAttributeConstraintButton">+</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="addEditattributeItemHandler()">Save</button> \
- </div> \
- ';
- showLog4JModal('Add / Edit Attribute Item', attributeFormContent);
- var dataTypes = ['STRING', 'BIG_DECIMAL', 'DOUBLE', 'FLOAT', 'INT', 'LONG', 'BOOLEAN', 'LIST', 'MAP'];
- $.each(dataTypes.sort(), function(index, value) {
- $('#attributeDataType').append('<option value="' + value + '">' + value + '</option>');
- });
- if (localStorage.getItem('attributeItem' + attributeId)) {
- attributeData = JSON.parse(localStorage.getItem('attributeItem' + attributeId));
- $('#attributeName').val(attributeData.name);
- $('#attributeDisplayName').val(attributeData.displayName);
- $('#attributeDescription').val(attributeData.description);
- $('#attributeDataType option[value="' + attributeData.dataType + '"]').attr('selected', 'selected');
- $('#attributeIndexed option[value="' + attributeData.indexed + '"]').attr('selected', 'selected');
- $('#attributeSortable option[value="' + attributeData.sortable + '"]').attr('selected', 'selected');
- $('#attributeRequired option[value="' + attributeData.required + '"]').attr('selected', 'selected');
- $('#attributeRequestContext option[value="' + attributeData.requestContext + '"]').attr('selected', 'selected');
- }
- populateAttributeConstraints(attributeData.constraints, attributeId);
-}
-
-function populateAttributeConstraints(assignedConstraints, attributeId) {
- var selectedConstraints = [];
- $('#attributeConstraints').children().remove();
- if (attributeId && assignedConstraints) {
- assignedConstraints.map((item) => {
- selectedConstraints.push(item.constraintType.name);
- $('#attributeConstraints').append(' \
- <span class="attribute-constraint-row"> \
- <span class="attribute-constraint-name">' + item.constraintType.name + '</span> \
- <input type="text" name="constraints[]" class="attribute-constraint-data required" value="' + item.value + '" /> \
- <button class="remove-attribute-constraint-button" alt="' + attributeId + '" rel="' + item.constraintType.name + '">-</button> \
- </span> \
- ');
- });
- }
- function checkPendingRequest() {
- if ($.active > 0) {
- window.setTimeout(checkPendingRequest, 1000);
- } else {
- var allConstraints = localStorage.getItem('allConstraints').split(',');
- allConstraints.sort();
- $('#addAttributeConstraintName option').remove();
- allConstraints.map((item) => {
- if (!selectedConstraints.includes(item)) {
- $('#addAttributeConstraintName').append(' \
- <option value="' + item + '">' + item.toUpperCase() + '</option> \
- ');
- }
- });
- }
- }
- checkPendingRequest();
- assignAttributeConstraintListeners(attributeId);
-}
-
-function assignAttributeConstraintListeners(attributeId) {
- $('#addAttributeConstraintButton, .remove-attribute-constraint-button').unbind();
- $('#addAttributeConstraintButton').click(function(e) {
- e.preventDefault();
- var allConstraints = localStorage.getItem('allConstraints').split(',');
- attributeData = JSON.parse(localStorage.getItem('attributeItem' + attributeId));
- if (typeof(attributeData.constraints) == 'undefined' || attributeData.constraints == null) {
- attributeData.constraints = [];
- }
- attributeData.constraints.push({
- constraintType: { name: $('#addAttributeConstraintName').val() },
- value: $('#addAttributeConstraintValue').val()
- });
- localStorage.setItem('attributeItem' + attributeId, JSON.stringify(attributeData));
- $('#addAttributeConstraintValue').val('');
- populateAttributeConstraints(attributeData.constraints, attributeId);
- });
- $('.remove-attribute-constraint-button').click(function(e) {
- e.preventDefault();
- var allConstraints = localStorage.getItem('allConstraints').split(',');
- attributeData = JSON.parse(localStorage.getItem('attributeItem' + attributeId));
- var newConstraints = attributeData.constraints.filter((obj) => {
- return obj.constraintType.name !== $(this).attr('rel');
- });
- attributeData['constraints'] = newConstraints;
- localStorage.setItem('attributeItem' + attributeId, JSON.stringify(attributeData));
- populateAttributeConstraints(attributeData.constraints, attributeId);
- });
-}
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/b75cbcd1/log4j-catalog/log4j-catalog-war/src/main/webapp/js/categories.js
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-war/src/main/webapp/js/categories.js b/log4j-catalog/log4j-catalog-war/src/main/webapp/js/categories.js
deleted file mode 100644
index 2860099..0000000
--- a/log4j-catalog/log4j-catalog-war/src/main/webapp/js/categories.js
+++ /dev/null
@@ -1,257 +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 () {
- $('#CategoriesTableContainer').jtable({
- title: 'Table of categories',
- paging: true, //Enable paging
- pageSize: 25, //Set page size (default: 25)
- sorting: true, //Enable sorting
- defaultSorting: 'Name ASC', //Set default sorting
- actions: {
- listAction: 'api/categories/list',
- },
- toolbar: {
- items: [{
- icon: 'js/jtable.2.4.0/themes/metro/add.png',
- text: 'Add new record',
- click: () => { addEditCategoryItem() }
- }]
- },
- 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 (categoryData) {
- // Store event item data in localStorage
- var categoryDataItem = JSON.stringify(categoryData.record);
- localStorage.setItem('categoryItem' + categoryData.record.id, categoryDataItem);
- return '<img class="log4J-action-icon" src="js/jtable.2.4.0/themes/metro/edit.png" onClick="addEditCategoryItem(' + categoryData.record.id + ')" />';
- }
- },
- delete: {
- title: '',
- width: '25',
- display: function (categoryData) {
- return '<img class="log4J-action-icon" src="js/jtable.2.4.0/themes/metro/delete.png" onClick="deleteCategoryItem(' + categoryData.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 categories list from server
- $('#CategoriesTableContainer').jtable('load');
-});
-
-function deleteCategoryItem(categoryId) {
- var response = confirm('Are you sure you want to delete this category?');
- if (response) {
- var postData = {};
- postData['id'] = categoryId;
- $.ajax({
- type: 'POST',
- contentType: 'application/json',
- url: 'api/categories/delete',
- data: JSON.stringify(postData),
- success:function(response) {
- if (response.Result === 'OK') {
- $('#CategoriesTableContainer').jtable('load');
- }
- },
- error:function(jqXhr, textStatus, errorThrown) {
- console.error(textStatus + ' - ' + errorThrown);
- }
- });
- }
-}
-
-function addEditCategoryItemHandler() {
- var validForm = validateFormContent();
- if (validForm) {
- showLoadingAnimation();
- var postUrl = 'api/categories/create';
- var postData = {};
- var categoryEvents = [];
- postData['name'] = $('#categoryName').val();
- postData['displayName'] = $('#categoryDisplayName').val();
- postData['description'] = $('#categoryDescription').val();
- $('#categoryEvents .category-event-row').each(function() {
- categoryEvents.push($(this).find('input')[0].value);
- });
- postData['events'] = categoryEvents;
- if ($('#categoryId').val()) {
- postUrl = 'api/categories/update';
- postData['id'] = $('#categoryId').val();
- }
- $.ajax({
- type: 'POST',
- contentType: 'application/json',
- url: postUrl,
- data: JSON.stringify(postData),
- success:function(response) {
- if (response.Result === 'OK') {
- $('#CategoriesTableContainer').jtable('load');
- closeLog4jModal();
- }
- },
- error:function(jqXhr, textStatus, errorThrown) {
- console.error(textStatus + ' - ' + errorThrown);
- }
- });
- }
-}
-
-function addEditCategoryItem(categoryId) {
- var hiddenIdField = '';
- var categoryData = {};
- if (categoryId) {
- hiddenIdField = '<input type="hidden" id="categoryId" name="id" value="' + categoryId + '" />';
- } else {
- categoryId = 'tempCategoryData';
- var tempCategoryData = {
- id: categoryId,
- events: [],
- }
- localStorage.setItem('categoryItem' + categoryId, JSON.stringify(tempCategoryData));
- }
- categoryFormContent = ' \
- <form id="add-edit-category-form" class="log4j-catalog-form" method="post"> \
- ' + hiddenIdField + ' \
- <p> \
- <label>Name</label> \
- <input type="text" id="categoryName" name="name" class="required" /> \
- </p> \
- <p> \
- <label>Display Name</label> \
- <input type="text" id="categoryDisplayName" name="displayName" class="required" /> \
- </p> \
- <p> \
- <label>Description</label> \
- <input type="text" id="categoryDescription" name="description" class="required" /> \
- </p> \
- <p> \
- <label>Assigned Events</label> \
- <span id="categoryEvents"></span> \
- </p> \
- <p> \
- <label>Add Event</label> \
- <span> \
- <select name="addCategoryEvent" id="addCategoryEvent"> \
- <option value="">loading...</option> \
- </select> \
- <button id="addCategoryEventButton">+</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="addEditCategoryItemHandler()">Save</button> \
- </div> \
- ';
- showLog4JModal('Add / Edit Category Item', categoryFormContent);
- if (localStorage.getItem('categoryItem' + categoryId)) {
- categoryData = JSON.parse(localStorage.getItem('categoryItem' + categoryId));
- $('#categoryName').val(categoryData.name);
- $('#categoryDisplayName').val(categoryData.displayName);
- $('#categoryDescription').val(categoryData.description);
- }
- populateCategoryEvents(categoryData.events, categoryId);
-}
-
-function populateCategoryEvents(assignedEvents, categoryId) {
- var selectedEvents = [];
- $('#categoryEvents').children().remove();
- if (categoryId) {
- assignedEvents.map((item) => {
- selectedEvents.push(item);
- $('#categoryEvents').append(' \
- <span class="category-event-row"> \
- <input type="text" name="events[]" value="' + item + '" disabled /> \
- <button class="remove-category-event-button" alt="' + categoryId + '" rel="' + item + '">-</button> \
- </span> \
- ');
- });
- }
- function checkPendingRequest() {
- if ($.active > 0) {
- window.setTimeout(checkPendingRequest, 1000);
- } else {
- var allEvents = localStorage.getItem('allEvents').split(',');
- allEvents.sort();
- $('#addCategoryEvent option').remove();
- allEvents.map((item) => {
- if (!selectedEvents.includes(item)) {
- $('#addCategoryEvent').append(' \
- <option value="' + item + '">' + item + '</option> \
- ');
- }
- });
- }
- };
- checkPendingRequest();
- assignCategoryEventListeners(categoryId);
-}
-
-function assignCategoryEventListeners(categoryId) {
- $('#addCategoryEventButton, .remove-category-event-button').unbind();
- $('#addCategoryEventButton').click(function(e) {
- e.preventDefault();
- var allEvents = localStorage.getItem('allEvents').split(',');
- var categoryData = JSON.parse(localStorage.getItem('categoryItem' + categoryId));
- categoryData.events.push($('#addCategoryEvent').val());
- localStorage.setItem('categoryItem' + categoryId, JSON.stringify(categoryData));
- populateCategoryEvents(categoryData.events, categoryId);
- });
-
- $('.remove-category-event-button').click(function(e) {
- e.preventDefault();
- var allEvents = localStorage.getItem('allEvents').split(',');
- var categoryData = JSON.parse(localStorage.getItem('categoryItem' + categoryId));
- categoryData.events.pop($(this).attr('rel'));
- localStorage.setItem('categoryItem' + categoryId, JSON.stringify(categoryData));
- populateCategoryEvents(categoryData.events, categoryId);
- });
-}
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/b75cbcd1/log4j-catalog/log4j-catalog-war/src/main/webapp/js/events.js
----------------------------------------------------------------------
diff --git a/log4j-catalog/log4j-catalog-war/src/main/webapp/js/events.js b/log4j-catalog/log4j-catalog-war/src/main/webapp/js/events.js
deleted file mode 100644
index 9f0ec01..0000000
--- a/log4j-catalog/log4j-catalog-war/src/main/webapp/js/events.js
+++ /dev/null
@@ -1,291 +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 () {
- $('#EventsTableContainer').jtable({
- title: 'Table of events',
- paging: true, //Enable paging
- pageSize: 25, //Set page size (default: 25)
- sorting: true, //Enable sorting
- defaultSorting: 'Name ASC', //Set default sorting
- actions: {
- listAction: 'api/events/list',
- },
- toolbar: {
- items: [{
- icon: 'js/jtable.2.4.0/themes/metro/add.png',
- text: 'Add new record',
- click: () => { addEditEventItem() }
- }]
- },
- fields: {
- id: {
- key: true,
- list: false
- },
- name: {
- title: 'Name',
- width: '15%'
- },
- displayName: {
- title: 'Display Name',
- width: '15%'
- },
- description: {
- title: 'Description',
- width: '30%'
- },
- attributes: {
- title: 'Assigned Attributes',
- width: 'auto',
- sorting: false,
- edit: false,
- create: false,
- display: function (eventData) {
- var attributeList = eventData.record.attributes.map(function(elem){return elem.name + (elem.required ? ' (required)' : '')}).join(' | ');
- //Create a div that will be used to view associated attributes
- var $divAttributes = $('<div class="event-attributes">' + attributeList + '</div>');
- return $divAttributes;
- }
- },
- edit: {
- title: '',
- width: '25',
- display: function (eventData) {
- // Store event item data in localStorage
- var eventDataItem = JSON.stringify(eventData.record);
- localStorage.setItem('eventItem' + eventData.record.id, eventDataItem);
- return '<img class="log4J-action-icon" src="js/jtable.2.4.0/themes/metro/edit.png" onClick="addEditEventItem(' + eventData.record.id + ')" />';
- }
- },
- delete: {
- title: '',
- width: '25',
- display: function (eventData) {
- return '<img class="log4J-action-icon" src="js/jtable.2.4.0/themes/metro/delete.png" onClick="deleteEventItem(' + eventData.record.id + ')" />';
- }
- }
- }
- });
- $.ajax({
- type: 'GET',
- url: 'api/attributes',
- success:function(response){
- if (response.result === 'OK') {
- localStorage.setItem('allAttributes', response.data);
- }
- },
- error:function(jqXhr, textStatus, errorThrown){
- console.error(textStatus + ' - ' + errorThrown);
- }
- });
- $('#EventsTableContainer').jtable('load');
-});
-
-function deleteEventItem(eventId) {
- var response = confirm('Are you sure you want to delete this event?');
- if (response) {
- var postData = {};
- postData['id'] = eventId;
- $.ajax({
- type: 'POST',
- contentType: 'application/json',
- url: 'api/events/delete',
- data: JSON.stringify(postData),
- success:function(response) {
- if (response.Result === 'OK') {
- $('#EventsTableContainer').jtable('load');
- }
- },
- error:function(jqXhr, textStatus, errorThrown) {
- console.error(textStatus + ' - ' + errorThrown);
- }
- });
- }
-}
-
-function addEditEventItemHandler() {
- var validForm = validateFormContent();
- if (validForm) {
- showLoadingAnimation();
- var postUrl = 'api/events/create';
- var postData = {};
- var eventAttributes = [];
- postData['name'] = $('#eventName').val();
- postData['displayName'] = $('#eventDisplayName').val();
- postData['description'] = $('#eventDescription').val();
- $('#eventAttributes .event-attribute-row').each(function() {
- var required = null;
- $(this).children('[type="checkbox"]').each(function(i, e) {
- if ($(e).prop('checked')) {
- required = ($(e).attr('rel') == 'true');
- }
- });
- var eventAttributeItem = {
- name: $(this).find('input')[0].value,
- required: required,
- };
- eventAttributes.push(eventAttributeItem);
- });
- postData['attributes'] = eventAttributes;
- if ($('#eventId').val()) {
- postUrl = 'api/events/update';
- postData['id'] = $('#eventId').val();
- }
- $.ajax({
- type: 'POST',
- contentType: 'application/json',
- url: postUrl,
- data: JSON.stringify(postData),
- success:function(response) {
- if (response.Result === 'OK') {
- $('#EventsTableContainer').jtable('load');
- closeLog4jModal();
- }
- },
- error:function(jqXhr, textStatus, errorThrown) {
- console.error(textStatus + ' - ' + errorThrown);
- }
- });
- }
-}
-
-function addEditEventItem(eventId) {
- var hiddenIdField = '';
- var eventData = {};
- if (eventId) {
- hiddenIdField = '<input type="hidden" id="eventId" name="id" value="' + eventId + '" />';
- } else {
- eventId = 'tempEventData';
- var tempEventData = {
- id: eventId,
- attributes: [],
- }
- localStorage.setItem('eventItem' + eventId, JSON.stringify(tempEventData));
- }
- eventFormContent = ' \
- <form id="add-edit-event-form" class="log4j-catalog-form" method="post"> \
- ' + hiddenIdField + ' \
- <p> \
- <label>Name</label> \
- <input type="text" id="eventName" name="name" class="required" /> \
- </p> \
- <p> \
- <label>Display Name</label> \
- <input type="text" id="eventDisplayName" name="displayName" class="required" /> \
- </p> \
- <p> \
- <label>Description</label> \
- <input type="text" id="eventDescription" name="description" class="required" /> \
- </p> \
- <p> \
- <label>Assigned Attributes</label> \
- <span id="eventAttributes"></span> \
- </p> \
- <p> \
- <label>Add Attribute</label> \
- <span> \
- <select name="addEventAttribute" id="addEventAttribute"> \
- <option value="">--</option> \
- </select> \
- <button id="addEventAttributeButton">+</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="addEditEventItemHandler()">Save</button> \
- </div> \
- ';
- showLog4JModal('Add / Edit Event Item', eventFormContent);
- if (localStorage.getItem('eventItem' + eventId)) {
- eventData = JSON.parse(localStorage.getItem('eventItem' + eventId));
- $('#eventName').val(eventData.name);
- $('#eventDisplayName').val(eventData.displayName);
- $('#eventDescription').val(eventData.description);
- }
- populateEventAttributes(eventData.attributes, eventId);
-}
-
-function populateEventAttributes(assignedAttributes, eventId) {
- var selectedAttributes = [];
- var allAttributes = localStorage.getItem('allAttributes').split(',');
- $('#eventAttributes').children().remove();
- if (eventId) {
- assignedAttributes.map((item) => {
- selectedAttributes.push(item.name);
- var attributeRequiredTrue = '';
- var attributeRequiredFalse = '';
- var attributeRequired = item.required;
- if (attributeRequired === true) {
- attributeRequiredTrue = 'checked';
- } else if (attributeRequired === false) {
- attributeRequiredFalse = 'checked';
- }
- $('#eventAttributes').append(' \
- <span class="event-attribute-row"> \
- <input type="text" name="attributes[]" value="' + item.name + '" disabled /> \
- <input type="checkbox" name="attribute-required_' + item.name + '" rel="true" ' + attributeRequiredTrue + ' /> \
- <span class="event-attribute-item-required">YES</span> \
- <input type="checkbox" name="attribute-required_' + item.name + '" rel="false" ' + attributeRequiredFalse + ' /> \
- <span class="event-attribute-item-required">NO</span> \
- <button class="remove-event-attribute-button" alt="' + eventId + '" rel="' + item.name + '">-</button> \
- </span> \
- ');
- });
- }
- allAttributes.sort();
- $('#addEventAttribute option').remove();
- allAttributes.map((item) => {
- if (!selectedAttributes.includes(item)) {
- $('#addEventAttribute').append(' \
- <option value="' + item + '">' + item + '</option> \
- ');
- }
- });
- assignEventAttributeListeners(eventId);
-}
-
-function assignEventAttributeListeners(eventId) {
- $('#addEventAttributeButton, .remove-event-attribute-button').unbind();
- $('#addEventAttributeButton').click(function(e) {
- e.preventDefault();
- var allAttributes = localStorage.getItem('allAttributes').split(',');
- var eventData = JSON.parse(localStorage.getItem('eventItem' + eventId));
- eventData.attributes.push({name: $('#addEventAttribute').val(), required: false});
- localStorage.setItem('eventItem' + eventId, JSON.stringify(eventData));
- populateEventAttributes(eventData.attributes, eventId);
- });
-
- $('.remove-event-attribute-button').click(function(e) {
- e.preventDefault();
- var allAttributes = localStorage.getItem('allAttributes').split(',');
- var eventData = JSON.parse(localStorage.getItem('eventItem' + eventId));
- var newAttributes = eventData.attributes.filter((obj) => {
- return obj.name !== $(this).attr('rel');
- });
- eventData['attributes'] = newAttributes;
- localStorage.setItem('eventItem' + eventId, JSON.stringify(eventData));
- populateEventAttributes(eventData.attributes, eventId);
- });
-
- $('input[name^="attribute-required_"]').change(function() {
- if ($(this).is(":checked")) {
- $(this).siblings('input').prop('checked', false);
- $(this).prop('checked', true);
- }
- });
-}