diff options
| author | jmreddy2106 <[email protected]> | 2022-05-03 20:14:35 -0400 |
|---|---|---|
| committer | jmreddy2106 <[email protected]> | 2022-05-03 20:14:35 -0400 |
| commit | 038298fc140f8f1e0bcba02bb422ab0309a73911 (patch) | |
| tree | 7d580e45895562f89f75f58103bdfeefd323907d /interface | |
| parent | b861c79f03429313d05ff0a8105b7715aec0ef4d (diff) | |
| download | Welfare-Schemes-DMQL-038298fc140f8f1e0bcba02bb422ab0309a73911.tar.xz Welfare-Schemes-DMQL-038298fc140f8f1e0bcba02bb422ab0309a73911.zip | |
added add user form
Diffstat (limited to 'interface')
| -rw-r--r-- | interface/controllers/citizens.controller.js | 8 | ||||
| -rw-r--r-- | interface/public/citizens.js | 4 | ||||
| -rw-r--r-- | interface/routes/api/citizens.js | 25 | ||||
| -rw-r--r-- | interface/views/adduser.ejs | 220 |
4 files changed, 238 insertions, 19 deletions
diff --git a/interface/controllers/citizens.controller.js b/interface/controllers/citizens.controller.js index 0ee1d42..0e45a13 100644 --- a/interface/controllers/citizens.controller.js +++ b/interface/controllers/citizens.controller.js @@ -66,3 +66,11 @@ exports.findGenderDistribution = () => { raw: true }); }; + + +// add new citizen +exports.addNewCitizen = (citizen_id, first_name, last_name, address, mobile_num, dob, gender, marital_status, disabled, disbaled_percentage, caste, village_id) => { + return citizens.create({ + citizen_id, first_name, last_name, address, mobile_num, dob, gender, marital_status, disabled, disbaled_percentage, caste, village_id + }); +};
\ No newline at end of file diff --git a/interface/public/citizens.js b/interface/public/citizens.js index 27130ec..540bf72 100644 --- a/interface/public/citizens.js +++ b/interface/public/citizens.js @@ -55,4 +55,6 @@ function deleteCitizenRecord(citizen) { }); -}
\ No newline at end of file +} + + diff --git a/interface/routes/api/citizens.js b/interface/routes/api/citizens.js index 6dad084..40e0c16 100644 --- a/interface/routes/api/citizens.js +++ b/interface/routes/api/citizens.js @@ -52,4 +52,29 @@ router.post('/validate', (req, res) => { }); +router.post('/addnewcitizen', (req, res) => { + const { citizen_id, first_name, last_name, address, mobile_num, dob, gender, marital_status, disabled, disbaled_percentage, caste, village_id} = req.body; + + if(!citizen_id && !first_name && !last_name && !address && !mobile_num && !dob && !gender && !marital_status && !disabled && !caste && !village_id){ + + res.status(400).json({ message: "Please fill in all fields" }); + + }else{ + citizensController.addNewCitizen(citizen_id, first_name, last_name, address, mobile_num, dob, gender, marital_status, disabled, disbaled_percentage, caste, village_id).then(() => { + res.status(200).json({ message: "Citizen added successfully" }); + }).catch((err) => { + res.status(400).json({ message: err }); + }); + } + +}); + + + + + + + + + module.exports = router;
\ No newline at end of file diff --git a/interface/views/adduser.ejs b/interface/views/adduser.ejs index 1a96601..5b21d72 100644 --- a/interface/views/adduser.ejs +++ b/interface/views/adduser.ejs @@ -7,9 +7,13 @@ <body> <%- include('partials/navbar') %> + + <div class="ui container segment" > - <form class="ui form" method="post" onsubmit="editCitizen(event)" > + <h1 style="text-align: center;">Add New Citizen</h1> + + <form class="ui form" method="post" onsubmit="addCitizen(event)" > <div class="field"> <label>Citizen ID</label> <input @@ -41,7 +45,7 @@ <div class="field"> <label>Address</label> <input - placeholder="Address" + placeholder="House number" name="address" type="text" autocomplete="off" @@ -69,7 +73,7 @@ </select> </div> <div class = "field"> - <label>disabled</label> + <label>Disabled</label> <select class="ui dropdown" id="disabled"> <option value="Yes">Yes</option> <option value="No">No</option> @@ -79,19 +83,19 @@ <label>Disabled Percentage</label> <input type="text" - name="disabled_percentage" + name="disbaled_percentage" placeholder="Disabled Percentage" - id="disabled_percentage" + id="disbaled_percentage" /> </div> <div class="field"> <label>Caste</label> - <input - type="text" - name="caste" - placeholder="Caste" - id="caste" - /> + <select class="ui dropdown" id="caste"> + <option value="OC" >OC</option> + <option value="SC">SC</option> + <option value="ST">ST</option> + <option value="BC">BC</option> + </select> </div> <div class="field"> @@ -115,13 +119,7 @@ </select> </div> - - - - - - - <div class="ui primary button" id="editCitizen">Submit</div> + <div class="ui primary button" id="add_citizen" >Submit</div> <div class="ui error message"></div> </form> @@ -159,6 +157,192 @@ generateCitizenId(); + //get all states + fetch("/api/geography/states", { + method: "GET", + headers: {'Content-Type': 'application/json'} + }).then(res => res.json()).then(data => { + var state = document.getElementById("state"); + // set the first option to be the default disabled option + var disabledOption = document.createElement("option"); + disabledOption.text = "Select State"; + disabledOption.value = "undefined"; + disabledOption.disabled = true; + disabledOption.selected = true; + $(state).dropdown('set selected', disabledOption.value); + + state.add(disabledOption); + + for(var i = 0; i < data.length; i++){ + var option = document.createElement("option"); + option.value = data[i].state_id; + option.text = data[i].state_name; + state.add(option); + } + }); + + //get all districts + document.getElementById("state").addEventListener("change", function(){ + var state_id = document.getElementById("state").value; + fetch("/api/geography/districts/" + state_id, { + method: "GET", + headers: {'Content-Type': 'application/json'} + }).then(res => res.json()).then(data => { + var district = document.getElementById("district"); + district.innerHTML = ""; + var disabledOption = document.createElement("option"); + disabledOption.text = "Select District"; + disabledOption.value = "undefined"; + disabledOption.disabled = true; + disabledOption.selected = true; + $(district).dropdown('set selected', disabledOption.value); + + district.add(disabledOption); + + for(var i = 0; i < data.length; i++){ + var option = document.createElement("option"); + option.value = data[i].district_id; + option.text = data[i].district_name; + district.add(option); + } + }); + }); + + //get all mandals + document.getElementById("district").addEventListener("change", function(){ + var district_id = document.getElementById("district").value; + fetch("/api/geography/mandals/" + district_id, { + method: "GET", + headers: {'Content-Type': 'application/json'} + }).then(res => res.json()).then(data => { + var mandal = document.getElementById("mandal"); + mandal.innerHTML = ""; + var disabledOption = document.createElement("option"); + disabledOption.text = "Select Mandal"; + disabledOption.value = "undefined"; + disabledOption.disabled = true; + disabledOption.selected = true; + $(mandal).dropdown('set selected', disabledOption.value); + mandal.add(disabledOption); + + + for(var i = 0; i < data.length; i++){ + var option = document.createElement("option"); + option.value = data[i].mandal_id; + option.text = data[i].mandal_name; + mandal.add(option); + } + }); + }); + + //get all villages + document.getElementById("mandal").addEventListener("change", function(){ + var mandal_id = document.getElementById("mandal").value; + fetch("/api/geography/villages/" + mandal_id, { + method: "GET", + headers: {'Content-Type': 'application/json'} + }).then(res => res.json()).then(data => { + var village = document.getElementById("village"); + village.innerHTML = ""; + var disabledOption = document.createElement("option"); + disabledOption.text = "Select Village"; + disabledOption.value = "undefined"; + disabledOption.disabled = true; + disabledOption.selected = true; + $(village).dropdown('set selected', disabledOption.value); + village.add(disabledOption); + + for(var i = 0; i < data.length; i++){ + var option = document.createElement("option"); + option.value = data[i].village_id; + option.text = data[i].village_name; + village.add(option); + } + }); + }); + + + $(".ui.form").form({ + fields: { + first_name: "empty", + last_name: "empty", + address: "empty", + mobile_number: { + identifier: "mobile_number", + rules: [ + { + type: "length[10]", + prompt: "Please enter a valid mobile number" + } + ] + }, + dob: "empty", + marital_status: "empty", + disabled: "empty", + caste: "empty", + state: "empty", + district: "empty", + mandal: "empty", + village: "empty" + }, + }); + + function checkMobileNumber(mobile_number){ + var mobile_number = document.getElementById("mobile_number").value; + if(mobile_number.length != 10){ + return false; + } + return true; + } + + function addCitizen(event){ + event.preventDefault(); + + if($(".ui.form").form("is valid")){ + var formData = { + first_name: document.getElementById("first_name").value, + last_name: document.getElementById("last_name").value, + address: document.getElementById("address").value, + mobile_number: document.getElementById("mobile_number").value, + + dob: document.getElementById("dob").value, + marital_status: document.getElementById("marital_status").value, + disabled: document.getElementById("disabled").value, + disbaled_percentage: document.getElementById("disbaled_percentage").value, + caste: document.getElementById("caste").value, + village_id: document.getElementById("village").value, + citizen_id: document.getElementById("citizen_id").value + }; + + fetch("/api/citizens/addnewcitizen", { + method: "POST", + body: formData + }).then(res => res.json()).then(data => { + if(data.status == "success"){ + window.location.href = "/citizens"; + } + else{ + $(".ui.error.message").html(data.message); + } + }); + } + + } + + + + + document.getElementById("add_citizen").addEventListener("click", addCitizen); + + document.getElementById("disabled").addEventListener("change", function(){ + if(document.getElementById("disabled").value == "yes"){ + document.getElementById("disbaled_percentage").disabled = false; + } + else{ + document.getElementById("disbaled_percentage").disabled = true; + } + }); + </script> |
