diff --git a/configurationapp/.classpath b/configurationapp/.classpath new file mode 100644 index 0000000..6d7587a --- /dev/null +++ b/configurationapp/.classpath @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/configurationapp/.project b/configurationapp/.project new file mode 100644 index 0000000..a04eb8b --- /dev/null +++ b/configurationapp/.project @@ -0,0 +1,23 @@ + + + configurationapp + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/configurationapp/.settings/org.eclipse.core.resources.prefs b/configurationapp/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..abdea9a --- /dev/null +++ b/configurationapp/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding/=UTF-8 diff --git a/configurationapp/.settings/org.eclipse.jdt.core.prefs b/configurationapp/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..714351a --- /dev/null +++ b/configurationapp/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/configurationapp/.settings/org.eclipse.m2e.core.prefs b/configurationapp/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/configurationapp/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/configurationapp/pom.xml b/configurationapp/pom.xml index 78931d3..cbb7255 100644 --- a/configurationapp/pom.xml +++ b/configurationapp/pom.xml @@ -39,6 +39,13 @@ spring-boot-starter-test test + + + org.json + json + 20180813 + + diff --git a/configurationapp/src/main/java/com/att/ConfigurationApp.java b/configurationapp/src/main/java/com/att/ConfigurationApp.java index 1ea7d60..29fff36 100644 --- a/configurationapp/src/main/java/com/att/ConfigurationApp.java +++ b/configurationapp/src/main/java/com/att/ConfigurationApp.java @@ -2,8 +2,10 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; @SpringBootApplication +@ComponentScan("com.att") public class ConfigurationApp { public static void main(String[] args) { diff --git a/configurationapp/src/main/java/com/att/dao/configurations/ConfigurationDao.java b/configurationapp/src/main/java/com/att/dao/configurations/ConfigurationDao.java index f889558..077ae4e 100644 --- a/configurationapp/src/main/java/com/att/dao/configurations/ConfigurationDao.java +++ b/configurationapp/src/main/java/com/att/dao/configurations/ConfigurationDao.java @@ -1,6 +1,9 @@ package com.att.dao.configurations; import com.att.data.configurations.ConfigValue; +import com.att.model.configurations.Cache; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -10,7 +13,10 @@ @Service public class ConfigurationDao { + private class IdProvider { + //@Autowired private Cache cache; + private int currentId; public IdProvider() { @@ -33,16 +39,34 @@ public ConfigurationDao() { currentConfigurations = new HashMap<>(); } - public List getConfigurationsForYearMonth(String yearMonth) { - return new ArrayList<>(); + public List getConfigurations(Cache cache, String yearMonth) { + List configList = cache.getConfiguration(yearMonth); + return configList; } - public void addConfiguration(String yearMonth, ConfigValue value) { - int newId = idProvider.getNextId(); - + public Cache addConfiguration(Cache cache, ConfigValue config) { + cache.addConfiguration(config); + + return cache; + } + + public Cache deleteConfiguration(Cache cache, ConfigValue config) { + List configList = cache.getConfiguration(config.getYearMonth()); + List deleteList = new ArrayList(); + + for (int i=0; i getConfiguration(String yearMonth); + public void removeConfiguration(String yearMonth); +} diff --git a/configurationapp/src/main/java/com/att/model/configurations/CacheImpl.java b/configurationapp/src/main/java/com/att/model/configurations/CacheImpl.java new file mode 100644 index 0000000..e4e8b45 --- /dev/null +++ b/configurationapp/src/main/java/com/att/model/configurations/CacheImpl.java @@ -0,0 +1,40 @@ +package com.att.model.configurations; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + +import com.att.data.configurations.ConfigValue; + +@Component +@Scope("session") +public class CacheImpl implements Cache { + private Map> cache = new HashMap>(); + + public void addConfiguration( ConfigValue config) { + List configList = cache.get(config.getYearMonth()); + + if (configList == null) { + configList = new ArrayList(); + } + + config.setConfigId(configList.size() + 1); + configList.add(config); + + cache.put(config.getYearMonth(), configList); + + } + + public List getConfiguration(String yearMonth) { + return cache.get(yearMonth); + } + + public void removeConfiguration(String yearMonth) { + cache.remove(yearMonth); + } + +} diff --git a/configurationapp/src/main/java/com/att/model/configurations/SearchCriteria.java b/configurationapp/src/main/java/com/att/model/configurations/SearchCriteria.java new file mode 100644 index 0000000..74cc64e --- /dev/null +++ b/configurationapp/src/main/java/com/att/model/configurations/SearchCriteria.java @@ -0,0 +1,17 @@ +package com.att.model.configurations; + +import org.hibernate.validator.constraints.NotBlank; + +public class SearchCriteria { + + @NotBlank(message = "username can't empty!") + String username; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } +} \ No newline at end of file diff --git a/configurationapp/src/main/java/com/att/web/configuarations/ConfigurationController.java b/configurationapp/src/main/java/com/att/web/configuarations/ConfigurationController.java index 995402a..bb6f857 100644 --- a/configurationapp/src/main/java/com/att/web/configuarations/ConfigurationController.java +++ b/configurationapp/src/main/java/com/att/web/configuarations/ConfigurationController.java @@ -1,45 +1,178 @@ package com.att.web.configuarations; -import com.att.dao.configurations.ConfigurationDao; -import com.att.data.configurations.ConfigValue; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - +import java.io.IOException; import java.util.ArrayList; import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.json.JSONString; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.Errors; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.SessionAttributes; + +import com.att.dao.configurations.ConfigurationDao; +import com.att.data.configurations.ConfigValue; +import com.att.model.configurations.AjaxResponseBody; +import com.att.model.configurations.Cache; +import com.att.model.configurations.CacheImpl; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; + @RestController -@RequestMapping(value="/configuration") +@SessionAttributes("Cache") public class ConfigurationController { - + @Autowired + private HttpServletRequest request; + @Autowired private ConfigurationDao dao; + + private Cache cache; + + public ConfigurationController() { + + } - @Autowired - public ConfigurationController(ConfigurationDao dao) { - this.dao = dao; +// public ConfigurationController(ConfigurationDao dao) { +// this.dao = dao; +// } + + @GetMapping("/getConfigurations") + public ResponseEntity getConfigurationForYearMonth( HttpServletRequest request) { + ObjectMapper mapper = new ObjectMapper(); + + String monthYear = request.getParameter("monthYear"); + cache = getCache(); + + List configList = dao.getConfigurations(cache, monthYear); + + String json = ""; + if (configList != null) { + json = jsonArray2String(configList); + } + + AjaxResponseBody result = new AjaxResponseBody(); + result.setData(json); + + return ResponseEntity.ok(result); } - @RequestMapping(value="/{yearMonthNumber}", method=RequestMethod.GET) - @ResponseBody - public List getConfigurationsForYearMonth( - @PathVariable("yearMonthNumber") String yearMonth) { - - return new ArrayList<>(); + + @PostMapping("/addConfigurations") + public ResponseEntity addConfigurationForYearMonth(@Validated @RequestBody String json, Errors errors) { + cache = getCache(); + + List configList = convertJsonString(json); + + for (ConfigValue config: configList) { + cache = dao.addConfiguration(cache, config); + setCache(cache); + } + + return ResponseEntity.ok("200"); } - - @RequestMapping(value="/{yearMonthNumber}", method=RequestMethod.DELETE) - public void deleteConfigurationsForYearMonth(@PathVariable("yearMonthNumber") String yearMonth) { - try { - - } catch (Exception ex) { - - } + + + @PostMapping("/deleteConfigurations") + public ResponseEntity deleteConfigurationForYearMonth(@Validated @RequestBody String json, Errors errors) { + cache = getCache(); + + List configList = convertJsonString(json); + + for (ConfigValue config: configList) { + cache = dao.deleteConfiguration(cache, config); + setCache(cache); + } + + return ResponseEntity.ok("200"); } - @RequestMapping(value="/{yearMonthNumber}", method={ RequestMethod.POST, RequestMethod.PUT }) - public void addConfigurationForYearMonth( - @PathVariable("yearMonthNumber") String yearMonth, - @RequestBody ConfigValue value) { - + + private Cache getCache() { + Cache cache = null; + + if (request != null) { + HttpSession session = request.getSession(); + cache = (Cache) session.getAttribute("cache"); + if (cache == null) { + cache = new CacheImpl(); + session.setAttribute("cache", cache); + } + } + return cache; + } + + + private void setCache(Cache cache) { + HttpSession session = request.getSession(); + session.setAttribute("cache", cache); + } + + + private String jsonArray2String(List configList) { + ObjectMapper mapper = new ObjectMapper(); + StringBuilder json = new StringBuilder(); + + for (ConfigValue config : configList) { + try { + if (json.length() == 0 ) { + json.append(mapper.writeValueAsString(config)); + } + else { + json.append(",").append(mapper.writeValueAsString(config)); + } + + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + } + + return "[" + json.toString() + "]"; + } + + + private List convertJsonString(String json) { + List cvList = new ArrayList(); + + String[] tokens = json.split(",\""); + for (String token: tokens) { + int i = token.indexOf("{")-1; + token = token.substring(token.indexOf(":\"") + 2); + ObjectMapper mapper = new ObjectMapper(); + try { + + ConfigValue value = mapper.readValue(token.replace("\\\"", "\""), ConfigValue.class); + cvList.add(value); + + } catch (JsonParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (JsonMappingException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + + + return cvList; } + } diff --git a/configurationapp/src/main/resources/static/index.html b/configurationapp/src/main/resources/static/index.html index 7cd14ba..784d87d 100644 --- a/configurationapp/src/main/resources/static/index.html +++ b/configurationapp/src/main/resources/static/index.html @@ -1,47 +1,61 @@ - - - Configuration App - - - - - - -

Welcome To The Configuration App

-
-
- -
-
- - - - - - - - - -
Configuration IdConfiguration Name
-
-
- -
-
- - + + + Configuration App + + + + + + + +

Welcome To The Configuration App

+ +
+
+
+ + +
+ + + +
+
+ + + + + + + + + + + + +
Configuration IdConfiguration Name
+
+
+     + +
+
+ +
+ \ No newline at end of file diff --git a/configurationapp/src/main/resources/static/js/app.js b/configurationapp/src/main/resources/static/js/app.js index 2d4b945..a6fb429 100644 --- a/configurationapp/src/main/resources/static/js/app.js +++ b/configurationapp/src/main/resources/static/js/app.js @@ -22,4 +22,154 @@ }; window.app = new App; -})($); \ No newline at end of file +})($); + +$(document).ready(function () { + app.init(); + + $("#save-configurations").click(function (event) { + var period = $( "#timePeriod-button option:selected" ).text(); + //stop submit the form, we will post it manually. + + event.preventDefault(); + + var config; + var arr = configArry = new Object(); + var i = 0; + + // create array of configurations + $("tr.new").each(function() { + config = {} + config["yearMonth"] = $('#timePeriod-button :selected').text(); + config["configId"] = 0; + config["configName"] = this.cells[1].innerHTML; + + configArry[i++] = JSON.stringify(config); + }); + + ajaxAddSubmit(configArry); + }); + + $("#add-button").click(function (event) { + var configName = $("#config-name").val(); + if (configName.trim() != "") { + var markup = "0" + configName + ""; + $("table tbody").append(markup); + document.getElementById("config-name").value = ""; + document.getElementById("config-name").focus(); + } + else { + alert("Please provide a new configuration!"); + } + }); + + $("#delete-configuration").click(function(event) { + var period = $( "#timePeriod-button option:selected" ).text(); + + var config; + var arr = configArry = new Object(); + var i = 0; + + $('input[type=checkbox]').each(function() { + config = {} + config["yearMonth"] = $('#timePeriod-button :selected').text(); + config["configId"] = this.id; + config["configName"] = ""; + if (this.checked) { + configArry[i++] = JSON.stringify(config); + } + }); + + ajaxDeleteSubmit(configArry); + }); + + $("#timePeriod-button").change(function(event) { + var period = $('#timePeriod-button :selected').text() + clearTable(); + popTable( period ); + }); + + +}); + + +function ajaxAddSubmit(configArry) { + $.ajax({ + type: "POST", + contentType: "application/json", + url: "/addConfigurations", + data: JSON.stringify(configArry), + dataType: 'json', + cache: false, + timeout: 600000, + success: function (data) { + clearTable(); + popTable( $( "#timePeriod-button option:selected" ).text() ); + }, + error: function (e) { + + } + }); +} + +function ajaxDeleteSubmit(configArry) { + $.ajax({ + type: "POST", + contentType: "application/json", + url: "/deleteConfigurations", + data: JSON.stringify(configArry), + dataType: 'json', + cache: false, + timeout: 600000, + success: function (data) { + clearTable(); + popTable( $( "#timePeriod-button option:selected" ).text() ); + }, + error: function (e) { + + } + }); +} + + +function clearTable() { + $("#configTable tr").remove(); +} + + +function popTable(monthYear) { + + $.ajax({ + type: "GET", + contentType: "application/json; charset=utf-8", + url: "/getConfigurations", + data: {"monthYear":monthYear}, + dataType: 'json', + cache: false, + timeout: 600000, + success: function (obj) { + var json = obj.data; + + if (json != "") { + json = JSON.parse(json); + + for(var i = 0; i < json.length; i++) { + var obj = json[i]; + + console.log(obj.configName); + + var markup = "" + obj.configId + "" + obj.configName + ""; + $("table tbody").append(markup); + + } + } + }, + error: function (e) { + var error = "error"; + + } + }); +} + + + diff --git a/configurationapp/target/classes/META-INF/MANIFEST.MF b/configurationapp/target/classes/META-INF/MANIFEST.MF new file mode 100644 index 0000000..a158238 --- /dev/null +++ b/configurationapp/target/classes/META-INF/MANIFEST.MF @@ -0,0 +1,10 @@ +Manifest-Version: 1.0 +Implementation-Title: configurationapp +Implementation-Version: 0.0.1-SNAPSHOT +Built-By: Bill +Implementation-Vendor-Id: com.att +Build-Jdk: 1.8.0_131 +Implementation-URL: https://projects.spring.io/spring-boot/#/spring-bo + ot-starter-parent/configurationapp +Created-By: Maven Integration for Eclipse + diff --git a/configurationapp/target/classes/META-INF/maven/com.att/configurationapp/pom.properties b/configurationapp/target/classes/META-INF/maven/com.att/configurationapp/pom.properties new file mode 100644 index 0000000..fe13c7e --- /dev/null +++ b/configurationapp/target/classes/META-INF/maven/com.att/configurationapp/pom.properties @@ -0,0 +1,7 @@ +#Generated by Maven Integration for Eclipse +#Wed May 08 22:11:10 EDT 2019 +version=0.0.1-SNAPSHOT +groupId=com.att +m2e.projectName=configurationapp +m2e.projectLocation=C\:\\Dev\\xSandbox\\springboot-master\\configurationapp +artifactId=configurationapp diff --git a/configurationapp/target/classes/META-INF/maven/com.att/configurationapp/pom.xml b/configurationapp/target/classes/META-INF/maven/com.att/configurationapp/pom.xml new file mode 100644 index 0000000..cbb7255 --- /dev/null +++ b/configurationapp/target/classes/META-INF/maven/com.att/configurationapp/pom.xml @@ -0,0 +1,62 @@ + + + 4.0.0 + + com.att + configurationapp + 0.0.1-SNAPSHOT + jar + + configurationapp + + + + org.springframework.boot + spring-boot-starter-parent + 2.0.4.RELEASE + + + + UTF-8 + UTF-8 + 1.8 + + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-devtools + runtime + + + org.springframework.boot + spring-boot-starter-test + test + + + + org.json + json + 20180813 + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + configurationapp + + + + diff --git a/configurationapp/target/classes/application.properties b/configurationapp/target/classes/application.properties new file mode 100644 index 0000000..6c77a8e --- /dev/null +++ b/configurationapp/target/classes/application.properties @@ -0,0 +1,6 @@ +server.port=9000 +spring.mvc.favicon.enabled=false + +logging.level.root=WARN +logging.level.org.springframework.web=DEBUG +logging.level.org.hibernate=ERROR \ No newline at end of file diff --git a/configurationapp/target/classes/com/att/ConfigurationApp.class b/configurationapp/target/classes/com/att/ConfigurationApp.class new file mode 100644 index 0000000..e62dfe6 Binary files /dev/null and b/configurationapp/target/classes/com/att/ConfigurationApp.class differ diff --git a/configurationapp/target/classes/com/att/dao/configurations/ConfigurationDao$IdProvider.class b/configurationapp/target/classes/com/att/dao/configurations/ConfigurationDao$IdProvider.class new file mode 100644 index 0000000..ee6e0a2 Binary files /dev/null and b/configurationapp/target/classes/com/att/dao/configurations/ConfigurationDao$IdProvider.class differ diff --git a/configurationapp/target/classes/com/att/dao/configurations/ConfigurationDao.class b/configurationapp/target/classes/com/att/dao/configurations/ConfigurationDao.class new file mode 100644 index 0000000..5edb8d1 Binary files /dev/null and b/configurationapp/target/classes/com/att/dao/configurations/ConfigurationDao.class differ diff --git a/configurationapp/target/classes/com/att/data/configurations/ConfigValue.class b/configurationapp/target/classes/com/att/data/configurations/ConfigValue.class new file mode 100644 index 0000000..219f501 Binary files /dev/null and b/configurationapp/target/classes/com/att/data/configurations/ConfigValue.class differ diff --git a/configurationapp/target/classes/com/att/model/configurations/AjaxResponseBody.class b/configurationapp/target/classes/com/att/model/configurations/AjaxResponseBody.class new file mode 100644 index 0000000..a0b6d54 Binary files /dev/null and b/configurationapp/target/classes/com/att/model/configurations/AjaxResponseBody.class differ diff --git a/configurationapp/target/classes/com/att/model/configurations/Cache.class b/configurationapp/target/classes/com/att/model/configurations/Cache.class new file mode 100644 index 0000000..db1f4f2 Binary files /dev/null and b/configurationapp/target/classes/com/att/model/configurations/Cache.class differ diff --git a/configurationapp/target/classes/com/att/model/configurations/CacheImpl.class b/configurationapp/target/classes/com/att/model/configurations/CacheImpl.class new file mode 100644 index 0000000..ddda134 Binary files /dev/null and b/configurationapp/target/classes/com/att/model/configurations/CacheImpl.class differ diff --git a/configurationapp/target/classes/com/att/model/configurations/SearchCriteria.class b/configurationapp/target/classes/com/att/model/configurations/SearchCriteria.class new file mode 100644 index 0000000..4f9a5b5 Binary files /dev/null and b/configurationapp/target/classes/com/att/model/configurations/SearchCriteria.class differ diff --git a/configurationapp/target/classes/com/att/web/configuarations/ConfigurationController.class b/configurationapp/target/classes/com/att/web/configuarations/ConfigurationController.class new file mode 100644 index 0000000..3a5eb43 Binary files /dev/null and b/configurationapp/target/classes/com/att/web/configuarations/ConfigurationController.class differ diff --git a/configurationapp/target/classes/static/css/main.css b/configurationapp/target/classes/static/css/main.css new file mode 100644 index 0000000..d03098f --- /dev/null +++ b/configurationapp/target/classes/static/css/main.css @@ -0,0 +1,11 @@ +.controls { + +} + +.config-table-wrapper { + +} + +.content { + +} \ No newline at end of file diff --git a/configurationapp/target/classes/static/index.html b/configurationapp/target/classes/static/index.html new file mode 100644 index 0000000..784d87d --- /dev/null +++ b/configurationapp/target/classes/static/index.html @@ -0,0 +1,61 @@ + + + + + Configuration App + + + + + + + +

Welcome To The Configuration App

+ +
+
+
+ + +
+ + + +
+
+ + + + + + + + + + + + +
Configuration IdConfiguration Name
+
+
+     + +
+
+ +
+ + \ No newline at end of file diff --git a/configurationapp/target/classes/static/js/app.js b/configurationapp/target/classes/static/js/app.js new file mode 100644 index 0000000..a6fb429 --- /dev/null +++ b/configurationapp/target/classes/static/js/app.js @@ -0,0 +1,175 @@ +(function() { + function App() { + + } + + App.prototype.getData = function() { + $.ajax('',{ + + }).then(function(data) { + + }) + }; + + App.prototype.init = function() { + $('#configTable').DataTable({ + scrollY: 300, + paging: false, + sorting: false, + searching: false, + info: false + }); + }; + + window.app = new App; +})($); + +$(document).ready(function () { + app.init(); + + $("#save-configurations").click(function (event) { + var period = $( "#timePeriod-button option:selected" ).text(); + //stop submit the form, we will post it manually. + + event.preventDefault(); + + var config; + var arr = configArry = new Object(); + var i = 0; + + // create array of configurations + $("tr.new").each(function() { + config = {} + config["yearMonth"] = $('#timePeriod-button :selected').text(); + config["configId"] = 0; + config["configName"] = this.cells[1].innerHTML; + + configArry[i++] = JSON.stringify(config); + }); + + ajaxAddSubmit(configArry); + }); + + $("#add-button").click(function (event) { + var configName = $("#config-name").val(); + if (configName.trim() != "") { + var markup = "0" + configName + ""; + $("table tbody").append(markup); + document.getElementById("config-name").value = ""; + document.getElementById("config-name").focus(); + } + else { + alert("Please provide a new configuration!"); + } + }); + + $("#delete-configuration").click(function(event) { + var period = $( "#timePeriod-button option:selected" ).text(); + + var config; + var arr = configArry = new Object(); + var i = 0; + + $('input[type=checkbox]').each(function() { + config = {} + config["yearMonth"] = $('#timePeriod-button :selected').text(); + config["configId"] = this.id; + config["configName"] = ""; + if (this.checked) { + configArry[i++] = JSON.stringify(config); + } + }); + + ajaxDeleteSubmit(configArry); + }); + + $("#timePeriod-button").change(function(event) { + var period = $('#timePeriod-button :selected').text() + clearTable(); + popTable( period ); + }); + + +}); + + +function ajaxAddSubmit(configArry) { + $.ajax({ + type: "POST", + contentType: "application/json", + url: "/addConfigurations", + data: JSON.stringify(configArry), + dataType: 'json', + cache: false, + timeout: 600000, + success: function (data) { + clearTable(); + popTable( $( "#timePeriod-button option:selected" ).text() ); + }, + error: function (e) { + + } + }); +} + +function ajaxDeleteSubmit(configArry) { + $.ajax({ + type: "POST", + contentType: "application/json", + url: "/deleteConfigurations", + data: JSON.stringify(configArry), + dataType: 'json', + cache: false, + timeout: 600000, + success: function (data) { + clearTable(); + popTable( $( "#timePeriod-button option:selected" ).text() ); + }, + error: function (e) { + + } + }); +} + + +function clearTable() { + $("#configTable tr").remove(); +} + + +function popTable(monthYear) { + + $.ajax({ + type: "GET", + contentType: "application/json; charset=utf-8", + url: "/getConfigurations", + data: {"monthYear":monthYear}, + dataType: 'json', + cache: false, + timeout: 600000, + success: function (obj) { + var json = obj.data; + + if (json != "") { + json = JSON.parse(json); + + for(var i = 0; i < json.length; i++) { + var obj = json[i]; + + console.log(obj.configName); + + var markup = "" + obj.configId + "" + obj.configName + ""; + $("table tbody").append(markup); + + } + } + }, + error: function (e) { + var error = "error"; + + } + }); +} + + + diff --git a/configurationapp/target/configurationapp.jar b/configurationapp/target/configurationapp.jar new file mode 100644 index 0000000..aa2ffed Binary files /dev/null and b/configurationapp/target/configurationapp.jar differ diff --git a/configurationapp/target/configurationapp.jar.original b/configurationapp/target/configurationapp.jar.original new file mode 100644 index 0000000..87f8e84 Binary files /dev/null and b/configurationapp/target/configurationapp.jar.original differ diff --git a/configurationapp/target/maven-archiver/pom.properties b/configurationapp/target/maven-archiver/pom.properties new file mode 100644 index 0000000..d829bd3 --- /dev/null +++ b/configurationapp/target/maven-archiver/pom.properties @@ -0,0 +1,4 @@ +#Created by Apache Maven 3.5.0 +version=0.0.1-SNAPSHOT +groupId=com.att +artifactId=configurationapp diff --git a/configurationapp/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/configurationapp/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..3fb26a9 --- /dev/null +++ b/configurationapp/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,8 @@ +com\att\dao\configurations\ConfigurationDao$IdProvider.class +com\att\model\configurations\Configuration.class +com\att\web\configuarations\ConfigurationController.class +com\att\ConfigurationApp.class +com\att\model\configurations\AjaxResponseBody.class +com\att\dao\configurations\ConfigurationDao.class +com\att\data\configurations\ConfigValue.class +com\att\model\configurations\SearchCriteria.class diff --git a/configurationapp/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/configurationapp/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..31d8b2a --- /dev/null +++ b/configurationapp/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,7 @@ +C:\Dev\xSandbox\springboot-master\configurationapp2\src\main\java\com\att\data\configurations\ConfigValue.java +C:\Dev\xSandbox\springboot-master\configurationapp2\src\main\java\com\att\model\configurations\SearchCriteria.java +C:\Dev\xSandbox\springboot-master\configurationapp2\src\main\java\com\att\ConfigurationApp.java +C:\Dev\xSandbox\springboot-master\configurationapp2\src\main\java\com\att\dao\configurations\ConfigurationDao.java +C:\Dev\xSandbox\springboot-master\configurationapp2\src\main\java\com\att\web\configuarations\ConfigurationController.java +C:\Dev\xSandbox\springboot-master\configurationapp2\src\main\java\com\att\model\configurations\AjaxResponseBody.java +C:\Dev\xSandbox\springboot-master\configurationapp2\src\main\java\com\att\model\configurations\Configuration.java