mirror of
https://github.com/caperren/school_archives.git
synced 2025-11-09 13:41:13 +00:00
Added work from my other class repositories before deletion
This commit is contained in:
738
OSU Coursework/CS 340 - Intro to Databases/Final Project/app.js
Normal file
738
OSU Coursework/CS 340 - Intro to Databases/Final Project/app.js
Normal file
@@ -0,0 +1,738 @@
|
||||
var root_url = '/~perrenc/CS340_Final_Website/';
|
||||
|
||||
var get_members_url = 'db_interactions/get_members.php';
|
||||
var get_positions_url = root_url + 'db_interactions/get_positions.php';
|
||||
var get_teams_url = root_url + 'db_interactions/get_teams.php';
|
||||
var get_skills_url = root_url + 'db_interactions/get_skills.php';
|
||||
|
||||
var add_new_mem_url = root_url + 'db_interactions/add_member.php';
|
||||
var del_mem_url = root_url + 'db_interactions/del_member.php';
|
||||
var assign_skill_mem_url = root_url + 'db_interactions/assign_skill.php';
|
||||
var assign_team_mem_url = root_url + 'db_interactions/assign_team.php';
|
||||
|
||||
var add_new_skill_url = root_url + 'db_interactions/add_new_skill.php';
|
||||
var add_new_team_url = root_url + 'db_interactions/add_new_team.php';
|
||||
var add_new_position_url = root_url + 'db_interactions/add_new_position.php';
|
||||
|
||||
var find_with_skill_url = root_url + 'db_interactions/find_with_skill.php';
|
||||
var find_with_team_url = root_url + 'db_interactions/find_with_team.php';
|
||||
var find_with_position_url = root_url + 'db_interactions/find_with_position.php';
|
||||
|
||||
////////// Function to reset inputs //////////
|
||||
function reset_inputs() {
|
||||
document.getElementById('mem_add_first_name').value = "";
|
||||
document.getElementById('mem_add_last_name').value = "";
|
||||
document.getElementById('mem_add_position_drop').selectedIndex = 0;
|
||||
document.getElementById('mem_add_superior_drop').selectedIndex = 0;
|
||||
document.getElementById('mem_add_email').value = "";
|
||||
document.getElementById('mem_add_phone').value = "";
|
||||
document.getElementById('mem_add_osuid').value = "";
|
||||
document.getElementById('mem_add_rfid').value = "";
|
||||
|
||||
document.getElementById('mem_del_first_name').value = "";
|
||||
document.getElementById('mem_del_last_name').value = "";
|
||||
|
||||
document.getElementById('assign_skill_first_name').value = "";
|
||||
document.getElementById('assign_skill_last_name').value = "";
|
||||
document.getElementById('assign_skill_position_drop').selectedIndex = 0;
|
||||
|
||||
document.getElementById('add_team_first_name').value = "";
|
||||
document.getElementById('add_team_last_name').value = "";
|
||||
document.getElementById('add_team_position_drop').selectedIndex = 0;
|
||||
|
||||
document.getElementById('skill_add_name').value = "";
|
||||
document.getElementById('skill_add_description').value = "";
|
||||
|
||||
document.getElementById('team_add_name').value = "";
|
||||
document.getElementById('team_add_description').value = "";
|
||||
|
||||
document.getElementById('position_add_name').value = "";
|
||||
document.getElementById('position_add_description').value = "";
|
||||
|
||||
document.getElementById('show_with_skill_drop').selectedIndex = 0;
|
||||
document.getElementById('show_with_team_drop').selectedIndex = 0;
|
||||
document.getElementById('show_with_position_drop').selectedIndex = 0;
|
||||
|
||||
}
|
||||
|
||||
////////// Functions to show position search //////////
|
||||
function show_with_position() {
|
||||
var position_name = document.getElementById('show_with_position_drop').value;
|
||||
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('POST', find_with_position_url, true);
|
||||
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
req.addEventListener('load', on_show_with_position_response_received);
|
||||
req.send("name=" + position_name);
|
||||
}
|
||||
|
||||
function on_show_with_position_response_received(response) {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "";
|
||||
|
||||
var header_data = ["First Name", "Last Name", "Position"];
|
||||
|
||||
var req_status = response.srcElement.status;
|
||||
if(req_status >=200 && req_status < 400){
|
||||
|
||||
var response_json = JSON.parse(response.srcElement.responseText);
|
||||
if(!response_json.is_error){
|
||||
var members = response_json.members;
|
||||
generate_table_and_show("Members Position Search", header_data, members);
|
||||
status_box.textContent = "Members position list shown successfully!"
|
||||
}else{
|
||||
err_box.textContent = "MEMBERS POSITION SHOW: Unknown error with request. Please consult logs.";
|
||||
}
|
||||
}else{
|
||||
err_box.textContent = "MEMBERS POSITION SHOW: Failed to contact server for request. Please verify webserver is up and files exist.";
|
||||
}
|
||||
}
|
||||
|
||||
////////// Functions to show team search //////////
|
||||
function show_with_team() {
|
||||
var team_name = document.getElementById('show_with_team_drop').value;
|
||||
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('POST', find_with_team_url, true);
|
||||
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
req.addEventListener('load', on_show_with_team_response_received);
|
||||
req.send("name=" + team_name);
|
||||
}
|
||||
|
||||
function on_show_with_team_response_received(response) {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "";
|
||||
|
||||
var header_data = ["First Name", "Last Name", "Team"];
|
||||
|
||||
var req_status = response.srcElement.status;
|
||||
if(req_status >=200 && req_status < 400){
|
||||
|
||||
var response_json = JSON.parse(response.srcElement.responseText);
|
||||
if(!response_json.is_error){
|
||||
var members = response_json.members;
|
||||
generate_table_and_show("Members Team Search", header_data, members);
|
||||
status_box.textContent = "Members team list shown successfully!"
|
||||
}else{
|
||||
err_box.textContent = "MEMBERS TEAM SHOW: Unknown error with request. Please consult logs.";
|
||||
}
|
||||
}else{
|
||||
err_box.textContent = "MEMBERS TEAM SHOW: Failed to contact server for request. Please verify webserver is up and files exist.";
|
||||
}
|
||||
}
|
||||
|
||||
////////// Functions to show skill search //////////
|
||||
function show_with_skill() {
|
||||
var skill_name = document.getElementById('show_with_skill_drop').value;
|
||||
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('POST', find_with_skill_url, true);
|
||||
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
req.addEventListener('load', on_show_with_skill_response_received);
|
||||
req.send("name=" + skill_name);
|
||||
}
|
||||
|
||||
function on_show_with_skill_response_received(response) {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "";
|
||||
|
||||
var header_data = ["First Name", "Last Name", "Skill"];
|
||||
|
||||
var req_status = response.srcElement.status;
|
||||
if(req_status >=200 && req_status < 400){
|
||||
|
||||
var response_json = JSON.parse(response.srcElement.responseText);
|
||||
if(!response_json.is_error){
|
||||
var members = response_json.members;
|
||||
generate_table_and_show("Members Skill Search", header_data, members);
|
||||
status_box.textContent = "Members skill list shown successfully!"
|
||||
}else{
|
||||
err_box.textContent = "MEMBERS SKILLS SHOW: Unknown error with request. Please consult logs.";
|
||||
}
|
||||
}else{
|
||||
err_box.textContent = "MEMBERS SKILLS SHOW: Failed to contact server for request. Please verify webserver is up and files exist.";
|
||||
}
|
||||
}
|
||||
|
||||
////////// Functions to show positions //////////
|
||||
function show_positions() {
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('POST', get_positions_url, true);
|
||||
req.addEventListener('load', on_show_positions_response_received);
|
||||
req.send(null);
|
||||
}
|
||||
|
||||
function on_show_positions_response_received(response) {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "";
|
||||
|
||||
var header_data = ["Name", "Description"];
|
||||
|
||||
var req_status = response.srcElement.status;
|
||||
if(req_status >=200 && req_status < 400){
|
||||
|
||||
var response_json = JSON.parse(response.srcElement.responseText);
|
||||
|
||||
if(!response_json.is_error){
|
||||
var positions = response_json.positions;
|
||||
generate_table_and_show("Positions List", header_data, positions);
|
||||
status_box.textContent = "Positions list shown successfully!"
|
||||
}else{
|
||||
err_box.textContent = "POSITIONS SHOW: Unknown error with request. Please consult logs.";
|
||||
}
|
||||
}else{
|
||||
err_box.textContent = "POSITIONS SHOW: Failed to contact server for request. Please verify webserver is up and files exist.";
|
||||
}
|
||||
}
|
||||
|
||||
////////// Functions to show teams //////////
|
||||
function show_teams() {
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('POST', get_teams_url, true);
|
||||
req.addEventListener('load', on_show_teams_response_received);
|
||||
req.send(null);
|
||||
}
|
||||
|
||||
function on_show_teams_response_received(response) {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "";
|
||||
|
||||
var header_data = ["Name", "Description"];
|
||||
|
||||
var req_status = response.srcElement.status;
|
||||
if(req_status >=200 && req_status < 400){
|
||||
|
||||
var response_json = JSON.parse(response.srcElement.responseText);
|
||||
|
||||
if(!response_json.is_error){
|
||||
var teams = response_json.teams;
|
||||
generate_table_and_show("Teams List", header_data, teams);
|
||||
status_box.textContent = "Teams list shown successfully!"
|
||||
}else{
|
||||
err_box.textContent = "TEAMS SHOW: Unknown error with request. Please consult logs.";
|
||||
}
|
||||
}else{
|
||||
err_box.textContent = "TEAMS SHOW: Failed to contact server for request. Please verify webserver is up and files exist.";
|
||||
}
|
||||
}
|
||||
|
||||
////////// Functions to show skills //////////
|
||||
function show_skills() {
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('POST', get_skills_url, true);
|
||||
req.addEventListener('load', on_show_skills_response_received);
|
||||
req.send(null);
|
||||
}
|
||||
|
||||
function on_show_skills_response_received(response) {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "";
|
||||
|
||||
var header_data = ["Name", "Description"];
|
||||
|
||||
var req_status = response.srcElement.status;
|
||||
if(req_status >=200 && req_status < 400){
|
||||
|
||||
var response_json = JSON.parse(response.srcElement.responseText);
|
||||
|
||||
if(!response_json.is_error){
|
||||
var skills = response_json.skills;
|
||||
generate_table_and_show("Skills List", header_data, skills);
|
||||
status_box.textContent = "Skills list shown successfully!"
|
||||
}else{
|
||||
err_box.textContent = "SKILLS SHOW: Unknown error with request. Please consult logs.";
|
||||
}
|
||||
}else{
|
||||
err_box.textContent = "SKILLS SHOW: Failed to contact server for request. Please verify webserver is up and files exist.";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
////////// Functions to show members //////////
|
||||
function show_members() {
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('POST', get_members_url, true);
|
||||
req.addEventListener('load', on_show_members_response_received);
|
||||
req.send(null);
|
||||
}
|
||||
|
||||
function on_show_members_response_received(response) {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "";
|
||||
|
||||
var header_data = ["First Name", "Last Name", "Position", "Superior", "Email", "Phone", "OSU ID #", "RFID #"];
|
||||
|
||||
var req_status = response.srcElement.status;
|
||||
if(req_status >=200 && req_status < 400){
|
||||
|
||||
var response_json = JSON.parse(response.srcElement.responseText);
|
||||
|
||||
if(!response_json.is_error){
|
||||
var members = response_json.members;
|
||||
generate_table_and_show("Members List", header_data, members);
|
||||
status_box.textContent = "Members list shown successfully!"
|
||||
}else{
|
||||
err_box.textContent = "MEMBER SHOW: Unknown error with request. Please consult logs.";
|
||||
}
|
||||
}else{
|
||||
err_box.textContent = "MEMBER SHOW: Failed to contact server for request. Please verify webserver is up and files exist.";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
////////// Generate table and show //////////
|
||||
function generate_table_and_show(title, headers, array_data) {
|
||||
|
||||
var table_div = document.getElementById('main_output_content');
|
||||
table_div.innerHTML = "";
|
||||
|
||||
var new_h2 = document.createElement("h2");
|
||||
new_h2.textContent = title;
|
||||
table_div.appendChild(new_h2);
|
||||
|
||||
var table = document.createElement("table");
|
||||
var table_header = table.createTHead();
|
||||
|
||||
var row = table_header.insertRow(0);
|
||||
|
||||
|
||||
for(var head_iter in headers){
|
||||
var cell = row.insertCell(head_iter);
|
||||
cell.textContent = headers[head_iter];
|
||||
}
|
||||
row.style.fontWeight = "bold";
|
||||
|
||||
for(var row_iter in array_data){
|
||||
var cur_row = array_data[row_iter];
|
||||
|
||||
row = table.insertRow(parseInt(row_iter) + 1);
|
||||
|
||||
for(var col_iter in cur_row){
|
||||
cell = row.insertCell(col_iter);
|
||||
cell.textContent = array_data[row_iter][col_iter];
|
||||
}
|
||||
}
|
||||
|
||||
table_div.appendChild(table);
|
||||
}
|
||||
|
||||
|
||||
////////// Add new position on_click_handler //////////
|
||||
function on_add_new_position_clicked() {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "";
|
||||
|
||||
var name = document.getElementById('position_add_name').value;
|
||||
var description = document.getElementById('position_add_description').value;
|
||||
|
||||
if(!name){
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "Name must be present!";
|
||||
return;
|
||||
}
|
||||
|
||||
var param_string = "name=" + name;
|
||||
if (description) { param_string += "&description=" + description; }
|
||||
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('POST', add_new_position_url, true);
|
||||
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
req.addEventListener('load', on_add_change_delete_response_received);
|
||||
req.send(param_string);
|
||||
|
||||
}
|
||||
|
||||
////////// Add new team on_click_handler //////////
|
||||
function on_add_new_team_clicked() {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "";
|
||||
|
||||
var name = document.getElementById('team_add_name').value;
|
||||
var description = document.getElementById('team_add_description').value;
|
||||
|
||||
if(!name){
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "Name must be present!";
|
||||
return;
|
||||
}
|
||||
|
||||
var param_string = "name=" + name;
|
||||
if (description) { param_string += "&description=" + description; }
|
||||
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('POST', add_new_team_url, true);
|
||||
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
req.addEventListener('load', on_add_change_delete_response_received);
|
||||
req.send(param_string);
|
||||
|
||||
}
|
||||
|
||||
////////// Add new skill on_click_handler //////////
|
||||
function on_add_new_skill_clicked() {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "";
|
||||
|
||||
var name = document.getElementById('skill_add_name').value;
|
||||
var description = document.getElementById('skill_add_description').value;
|
||||
|
||||
if(!name){
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "Name must be present!";
|
||||
return;
|
||||
}
|
||||
|
||||
var param_string = "name=" + name;
|
||||
if (description) { param_string += "&description=" + description; }
|
||||
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('POST', add_new_skill_url, true);
|
||||
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
req.addEventListener('load', on_add_change_delete_response_received);
|
||||
req.send(param_string);
|
||||
|
||||
}
|
||||
|
||||
////////// Assign team to member on_click_handler //////////
|
||||
function on_assign_team_to_member_clicked() {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "";
|
||||
|
||||
var first = document.getElementById('add_team_first_name').value;
|
||||
var last = document.getElementById('add_team_last_name').value;
|
||||
var team = document.getElementById('add_team_position_drop').value;
|
||||
|
||||
if(!first || !last){
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "First and last must be present!";
|
||||
return;
|
||||
}
|
||||
|
||||
var param_string = "first_name=" + first + "&last_name=" + last + "&team=" + team;
|
||||
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('POST', assign_team_mem_url, true);
|
||||
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
req.addEventListener('load', on_add_change_delete_response_received);
|
||||
req.send(param_string);
|
||||
|
||||
}
|
||||
|
||||
////////// Assign skill to member on_click_handler //////////
|
||||
function on_assign_skill_to_member_clicked() {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "";
|
||||
|
||||
var first = document.getElementById('assign_skill_first_name').value;
|
||||
var last = document.getElementById('assign_skill_last_name').value;
|
||||
var skill = document.getElementById('assign_skill_position_drop').value;
|
||||
|
||||
if(!first || !last){
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "First and last must be present!";
|
||||
return;
|
||||
}
|
||||
|
||||
var param_string = "first_name=" + first + "&last_name=" + last + "&skill=" + skill;
|
||||
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('POST', assign_skill_mem_url, true);
|
||||
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
req.addEventListener('load', on_add_change_delete_response_received);
|
||||
req.send(param_string);
|
||||
|
||||
}
|
||||
|
||||
////////// Delete member on_click_handler //////////
|
||||
function on_delete_member_clicked() {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "";
|
||||
|
||||
var first = document.getElementById('mem_del_first_name').value;
|
||||
var last = document.getElementById('mem_del_last_name').value;
|
||||
|
||||
if(!first || !last){
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "First and last must be present!";
|
||||
return;
|
||||
}
|
||||
|
||||
var param_string = "first_name=" + first + "&last_name=" + last
|
||||
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('POST', del_mem_url, true);
|
||||
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
req.addEventListener('load', on_add_change_delete_response_received);
|
||||
req.send(param_string);
|
||||
|
||||
}
|
||||
|
||||
////////// Add member on_click_handler //////////
|
||||
function on_add_member_clicked() {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "";
|
||||
|
||||
var first = document.getElementById('mem_add_first_name').value;
|
||||
var last = document.getElementById('mem_add_last_name').value;
|
||||
var position = document.getElementById('mem_add_position_drop').value;
|
||||
var superior = document.getElementById('mem_add_superior_drop').value;
|
||||
var email = document.getElementById('mem_add_email').value;
|
||||
var phone = document.getElementById('mem_add_phone').value;
|
||||
var osuid = document.getElementById('mem_add_osuid').value;
|
||||
var rfid = document.getElementById('mem_add_rfid').value;
|
||||
|
||||
if(!first || !last || !position || !email || !osuid){
|
||||
status_box.textContent = "";
|
||||
err_box.textContent = "First, last, position, email, and OSU ID must be present!";
|
||||
return;
|
||||
}
|
||||
|
||||
var param_string = "first_name=" + first + "&last_name=" + last + "&position=" + position;
|
||||
|
||||
if (superior != "--") { param_string += "&superior=" + superior; }
|
||||
param_string += "&email=" + email;
|
||||
if (phone) { param_string += "&phone=" + phone; }
|
||||
param_string += "&osu_num=" + osuid;
|
||||
if (rfid) { param_string += "&rfid_num=" + rfid; }
|
||||
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('POST', add_new_mem_url, true);
|
||||
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
req.addEventListener('load', on_add_change_delete_response_received);
|
||||
req.send(param_string);
|
||||
|
||||
}
|
||||
|
||||
////////// Functions for updating club skill dropdowns //////////
|
||||
function update_skill_dropdowns() {
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('POST', get_skills_url, true);
|
||||
req.addEventListener('load', on_update_skills_response_received);
|
||||
req.send(null);
|
||||
}
|
||||
|
||||
function on_update_skills_response_received(response) {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
//status_box.textContent = "";
|
||||
//err_box.textContent = "";
|
||||
|
||||
var assign_skill = document.getElementById('assign_skill_position_drop');
|
||||
var skill_search = document.getElementById('show_with_skill_drop');
|
||||
|
||||
var req_status = response.srcElement.status;
|
||||
if(req_status >=200 && req_status < 400){
|
||||
|
||||
var response_json = JSON.parse(response.srcElement.responseText);
|
||||
|
||||
if(!response_json.is_error){
|
||||
var skills = response_json.skills;
|
||||
|
||||
assign_skill.innerHTML = "";
|
||||
populate_select_with_options(assign_skill, skills);
|
||||
|
||||
skill_search.innerHTML = "";
|
||||
populate_select_with_options(skill_search, skills);
|
||||
}else {
|
||||
//err_box.textContent = "SKILLS UPDATE: Unknown error with request. Please consult logs.";
|
||||
}
|
||||
}else{
|
||||
//err_box.textContent = "SKILLS UPDATE: Failed to contact server for request. Please verify webserver is up and files exist.";
|
||||
}
|
||||
}
|
||||
|
||||
////////// Functions for updating club team dropdowns //////////
|
||||
function update_team_dropdowns() {
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('POST', get_teams_url, true);
|
||||
req.addEventListener('load', on_update_teams_response_received);
|
||||
req.send(null);
|
||||
}
|
||||
|
||||
function on_update_teams_response_received(response) {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
//status_box.textContent = "";
|
||||
//err_box.textContent = "";
|
||||
|
||||
var add_to_team = document.getElementById('add_team_position_drop');
|
||||
var team_search = document.getElementById('show_with_team_drop');
|
||||
|
||||
var req_status = response.srcElement.status;
|
||||
if(req_status >=200 && req_status < 400){
|
||||
|
||||
var response_json = JSON.parse(response.srcElement.responseText);
|
||||
|
||||
if(!response_json.is_error){
|
||||
var teams = response_json.teams;
|
||||
|
||||
add_to_team.innerHTML = "";
|
||||
populate_select_with_options(add_to_team, teams);
|
||||
|
||||
team_search.innerHTML = "";
|
||||
populate_select_with_options(team_search, teams);
|
||||
}else {
|
||||
//err_box.textContent = "TEAMS UPDATE: Unknown error with request. Please consult logs.";
|
||||
}
|
||||
}else{
|
||||
//err_box.textContent = "TEAMS UPDATE: Failed to contact server for request. Please verify webserver is up and files exist.";
|
||||
}
|
||||
}
|
||||
|
||||
////////// Functions for updating club position dropdowns //////////
|
||||
function update_position_dropdowns() {
|
||||
var req = new XMLHttpRequest();
|
||||
req.open('POST', get_positions_url, true);
|
||||
req.addEventListener('load', on_update_positions_response_received);
|
||||
req.send(null);
|
||||
}
|
||||
|
||||
function on_update_positions_response_received(response) {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
//status_box.textContent = "";
|
||||
//err_box.textContent = "";
|
||||
|
||||
var pos_add = document.getElementById('mem_add_position_drop');
|
||||
var sup_add = document.getElementById('mem_add_superior_drop');
|
||||
var pos_search = document.getElementById('show_with_position_drop');
|
||||
|
||||
var req_status = response.srcElement.status;
|
||||
if(req_status >=200 && req_status < 400){
|
||||
|
||||
var response_json = JSON.parse(response.srcElement.responseText);
|
||||
|
||||
if(!response_json.is_error){
|
||||
var positions = response_json.positions;
|
||||
|
||||
clear_dropdown(pos_add);
|
||||
populate_select_with_options(pos_add, positions);
|
||||
|
||||
clear_dropdown(sup_add);
|
||||
populate_select_with_options(sup_add, [["--"]]);
|
||||
populate_select_with_options(sup_add, positions);
|
||||
|
||||
clear_dropdown(pos_search);
|
||||
populate_select_with_options(pos_search, positions);
|
||||
}else {
|
||||
//err_box.textContent = "POSITIONS UPDATE: Unknown error with request. Please consult logs.";
|
||||
}
|
||||
}else{
|
||||
//err_box.textContent = "POSITIONS UPDATE: Failed to contact server for request. Please verify webserver is up and files exist.";
|
||||
}
|
||||
}
|
||||
|
||||
////////// Generic use functions //////////
|
||||
function populate_select_with_options(select_element, option_array){
|
||||
for(var option_iter in option_array){
|
||||
var option = document.createElement("option");
|
||||
option.textContent = option_array[option_iter][0];
|
||||
select_element.add(option);
|
||||
}
|
||||
}
|
||||
|
||||
function on_add_change_delete_response_received(response) {
|
||||
var status_box = document.getElementById('header_status_bar');
|
||||
var err_box = document.getElementById('header_error_bar');
|
||||
|
||||
var response_json = JSON.parse(response.srcElement.responseText);
|
||||
|
||||
if(response.is_error){
|
||||
err_box.textContent = "Full failure. Please verify that the entry does not already exist, or check the backend code!"
|
||||
}else{
|
||||
if(response_json.affected_rows > 0){
|
||||
status_box.textContent = "Request completed successfully!"
|
||||
}else if (response_json.affected_rows == -1){
|
||||
err_box.textContent = "This entry already exists. Please make a unique entry!"
|
||||
}else{
|
||||
err_box.textContent = "No records exist, or a large error has occurred!"
|
||||
}
|
||||
}
|
||||
populate_page_and_show_members();
|
||||
|
||||
}
|
||||
|
||||
function clear_dropdown(dropdown) {
|
||||
while(dropdown.options.length > 0){
|
||||
dropdown.remove(0);
|
||||
}
|
||||
}
|
||||
|
||||
////////// Load listener to populate page with data //////////
|
||||
function populate_page_and_show_members(){
|
||||
update_skill_dropdowns();
|
||||
update_team_dropdowns();
|
||||
update_position_dropdowns();
|
||||
reset_inputs();
|
||||
show_members();
|
||||
}
|
||||
|
||||
function assign_window_event_handlers() {
|
||||
document.getElementById('mem_add_submit').addEventListener('click', on_add_member_clicked);
|
||||
document.getElementById('mem_del_submit').addEventListener('click', on_delete_member_clicked);
|
||||
document.getElementById('assign_skill_submit').addEventListener('click', on_assign_skill_to_member_clicked);
|
||||
document.getElementById('add_team_submit').addEventListener('click', on_assign_team_to_member_clicked);
|
||||
document.getElementById('skill_add_submit').addEventListener('click', on_add_new_skill_clicked);
|
||||
document.getElementById('team_add_submit').addEventListener('click', on_add_new_team_clicked);
|
||||
document.getElementById('position_add_submit').addEventListener('click', on_add_new_position_clicked);
|
||||
|
||||
document.getElementById('show_members_submit').addEventListener('click', show_members);
|
||||
document.getElementById('show_skills_submit').addEventListener('click', show_skills);
|
||||
document.getElementById('show_teams_submit').addEventListener('click', show_teams);
|
||||
document.getElementById('show_positions_submit').addEventListener('click', show_positions);
|
||||
|
||||
document.getElementById('skill_search_submit').addEventListener('click', show_with_skill);
|
||||
document.getElementById('team_search_submit').addEventListener('click', show_with_team);
|
||||
document.getElementById('position_search_submit').addEventListener('click', show_with_position);
|
||||
}
|
||||
|
||||
function setup_page_on_load() {
|
||||
populate_page_and_show_members();
|
||||
assign_window_event_handlers();
|
||||
}
|
||||
|
||||
window.addEventListener("load", setup_page_on_load);
|
||||
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
$db_host = 'oniddb.cws.oregonstate.edu';
|
||||
$db_name = 'perrenc-db';
|
||||
$db_user = 'perrenc-db';
|
||||
$db_pass = 'rjqm1mGiAFpoEI8R';
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
include '../db_creds.php';
|
||||
ini_set('display_errors', 'On');
|
||||
|
||||
$robo_db = new mysqli($db_host, $db_user, $db_pass, $db_name);
|
||||
$resp_arr = array();
|
||||
|
||||
if($robo_db->connect_errno){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Failed to connect to database!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$db_query = $robo_db->prepare(<<<QUERY_STRING
|
||||
|
||||
INSERT INTO members(first_name, last_name, position, superior, email, phone, osu_num, rfid_num)
|
||||
VALUES (
|
||||
?,
|
||||
?,
|
||||
(SELECT id FROM club_positions cp WHERE cp.name = ?),
|
||||
(SELECT id FROM club_positions cp WHERE cp.name = ?),
|
||||
?,
|
||||
?,
|
||||
?,
|
||||
?
|
||||
)
|
||||
|
||||
QUERY_STRING
|
||||
);
|
||||
|
||||
$db_query->bind_param("ssssssii", $_POST['first_name'], $_POST['last_name'], $_POST['position'],
|
||||
$_POST['superior'], $_POST['email'], $_POST['phone'], $_POST['osu_num'], $_POST['rfid_num']);
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Parameter bind failed!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}
|
||||
|
||||
$db_query->execute();
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Database query failed!";
|
||||
$resp_arr['mysqli_errno'] = $db_query->errno;
|
||||
$resp_arr['mysqli_error'] = $db_query->error;
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$resp_arr['is_error'] = false;
|
||||
$resp_arr['affected_rows'] = $db_query->affected_rows;
|
||||
echo json_encode($resp_arr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
include '../db_creds.php';
|
||||
ini_set('display_errors', 'On');
|
||||
|
||||
$robo_db = new mysqli($db_host, $db_user, $db_pass, $db_name);
|
||||
$resp_arr = array();
|
||||
|
||||
if($robo_db->connect_errno){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Failed to connect to database!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$db_query = $robo_db->prepare(<<<QUERY_STRING
|
||||
|
||||
INSERT INTO club_positions(name, description) VALUES (?, ?)
|
||||
|
||||
QUERY_STRING
|
||||
);
|
||||
|
||||
$db_query->bind_param("ss", $_POST['name'], $_POST['description']);
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Parameter bind failed!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}
|
||||
|
||||
$db_query->execute();
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Database query failed!";
|
||||
$resp_arr['mysqli_errno'] = $db_query->errno;
|
||||
$resp_arr['mysqli_error'] = $db_query->error;
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$resp_arr['is_error'] = false;
|
||||
$resp_arr['affected_rows'] = $db_query->affected_rows;
|
||||
echo json_encode($resp_arr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
include '../db_creds.php';
|
||||
ini_set('display_errors', 'On');
|
||||
|
||||
$robo_db = new mysqli($db_host, $db_user, $db_pass, $db_name);
|
||||
$resp_arr = array();
|
||||
|
||||
if($robo_db->connect_errno){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Failed to connect to database!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$db_query = $robo_db->prepare(<<<QUERY_STRING
|
||||
|
||||
INSERT INTO club_skills(name, description) VALUES (?, ?)
|
||||
|
||||
QUERY_STRING
|
||||
);
|
||||
|
||||
$db_query->bind_param("ss", $_POST['name'], $_POST['description']);
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Parameter bind failed!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}
|
||||
|
||||
$db_query->execute();
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Database query failed!";
|
||||
$resp_arr['mysqli_errno'] = $db_query->errno;
|
||||
$resp_arr['mysqli_error'] = $db_query->error;
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$resp_arr['is_error'] = false;
|
||||
$resp_arr['affected_rows'] = $db_query->affected_rows;
|
||||
echo json_encode($resp_arr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
include '../db_creds.php';
|
||||
ini_set('display_errors', 'On');
|
||||
|
||||
$robo_db = new mysqli($db_host, $db_user, $db_pass, $db_name);
|
||||
$resp_arr = array();
|
||||
|
||||
if($robo_db->connect_errno){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Failed to connect to database!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$db_query = $robo_db->prepare(<<<QUERY_STRING
|
||||
|
||||
INSERT INTO club_teams(name, description) VALUES (?, ?)
|
||||
|
||||
QUERY_STRING
|
||||
);
|
||||
|
||||
$db_query->bind_param("ss", $_POST['name'], $_POST['description']);
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Parameter bind failed!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}
|
||||
|
||||
$db_query->execute();
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Database query failed!";
|
||||
$resp_arr['mysqli_errno'] = $db_query->errno;
|
||||
$resp_arr['mysqli_error'] = $db_query->error;
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$resp_arr['is_error'] = false;
|
||||
$resp_arr['affected_rows'] = $db_query->affected_rows;
|
||||
echo json_encode($resp_arr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
include '../db_creds.php';
|
||||
ini_set('display_errors', 'On');
|
||||
|
||||
$robo_db = new mysqli($db_host, $db_user, $db_pass, $db_name);
|
||||
$resp_arr = array();
|
||||
|
||||
if($robo_db->connect_errno){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Failed to connect to database!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$db_query = $robo_db->prepare(<<<QUERY_STRING
|
||||
|
||||
INSERT INTO member_skills_relations(member_id, skills_id)
|
||||
VALUES (
|
||||
(SELECT id FROM members m WHERE m.first_name = ? AND m.last_name = ?),
|
||||
(SELECT id from club_skills cs WHERE cs.name = ?)
|
||||
)
|
||||
|
||||
QUERY_STRING
|
||||
);
|
||||
|
||||
$db_query->bind_param("sss", $_POST['first_name'], $_POST['last_name'], $_POST['skill']);
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Parameter bind failed!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}
|
||||
|
||||
$db_query->execute();
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Database query failed!";
|
||||
$resp_arr['mysqli_errno'] = $db_query->errno;
|
||||
$resp_arr['mysqli_error'] = $db_query->error;
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$resp_arr['is_error'] = false;
|
||||
$resp_arr['affected_rows'] = $db_query->affected_rows;
|
||||
echo json_encode($resp_arr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
include '../db_creds.php';
|
||||
ini_set('display_errors', 'On');
|
||||
|
||||
$robo_db = new mysqli($db_host, $db_user, $db_pass, $db_name);
|
||||
$resp_arr = array();
|
||||
|
||||
if($robo_db->connect_errno){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Failed to connect to database!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$db_query = $robo_db->prepare(<<<QUERY_STRING
|
||||
|
||||
INSERT INTO member_teams_relations(member_id, team_id)
|
||||
VALUES (
|
||||
(SELECT id FROM members m WHERE m.first_name = ? AND m.last_name = ?),
|
||||
(SELECT id from club_teams ct WHERE ct.name = ?)
|
||||
)
|
||||
|
||||
QUERY_STRING
|
||||
);
|
||||
|
||||
$db_query->bind_param("sss", $_POST['first_name'], $_POST['last_name'], $_POST['team']);
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Parameter bind failed!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}
|
||||
|
||||
$db_query->execute();
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Database query failed!";
|
||||
$resp_arr['mysqli_errno'] = $db_query->errno;
|
||||
$resp_arr['mysqli_error'] = $db_query->error;
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$resp_arr['is_error'] = false;
|
||||
$resp_arr['affected_rows'] = $db_query->affected_rows;
|
||||
echo json_encode($resp_arr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
include '../db_creds.php';
|
||||
ini_set('display_errors', 'Off');
|
||||
|
||||
$robo_db = new mysqli($db_host, $db_user, $db_pass, $db_name);
|
||||
$resp_arr = array();
|
||||
$affected_rows_total = 0;
|
||||
|
||||
if($robo_db->connect_errno){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Failed to connect to database!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
########## DELETION FROM MEMBER SKILLS RELATIONS ##########
|
||||
$db_query = $robo_db->prepare(<<<QUERY_STRING
|
||||
|
||||
DELETE FROM member_skills_relations
|
||||
WHERE member_id IN (
|
||||
SELECT id FROM members m
|
||||
WHERE m.first_name = ? AND m.last_name = ?
|
||||
)
|
||||
|
||||
QUERY_STRING
|
||||
);
|
||||
|
||||
$db_query->bind_param("ss", $_POST['first_name'], $_POST['last_name']);
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Parameter bind failed!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}
|
||||
|
||||
$db_query->execute();
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Database query failed!";
|
||||
$resp_arr['mysqli_errno'] = $db_query->errno;
|
||||
$resp_arr['mysqli_error'] = $db_query->error;
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$affected_rows_total += $db_query->affected_rows;
|
||||
}
|
||||
|
||||
########## DELETION FROM MEMBER TEAMS RELATIONS ##########
|
||||
$db_query = $robo_db->prepare(<<<QUERY_STRING
|
||||
|
||||
DELETE FROM member_teams_relations
|
||||
WHERE member_id IN (
|
||||
SELECT id FROM members m
|
||||
WHERE m.first_name = ? AND m.last_name = ?
|
||||
)
|
||||
|
||||
QUERY_STRING
|
||||
);
|
||||
|
||||
$db_query->bind_param("ss", $_POST['first_name'], $_POST['last_name']);
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Parameter bind failed!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}
|
||||
|
||||
$db_query->execute();
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Database query failed!";
|
||||
$resp_arr['mysqli_errno'] = $db_query->errno;
|
||||
$resp_arr['mysqli_error'] = $db_query->error;
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$affected_rows_total += $db_query->affected_rows;
|
||||
}
|
||||
########## DELETION FROM MEMBERS ##########
|
||||
$db_query = $robo_db->prepare(<<<QUERY_STRING
|
||||
|
||||
DELETE FROM members
|
||||
WHERE first_name = ? AND last_name = ?
|
||||
|
||||
QUERY_STRING
|
||||
);
|
||||
|
||||
$db_query->bind_param("ss", $_POST['first_name'], $_POST['last_name']);
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Parameter bind failed!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}
|
||||
|
||||
$db_query->execute();
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Database query failed!";
|
||||
$resp_arr['mysqli_errno'] = $db_query->errno;
|
||||
$resp_arr['mysqli_error'] = $db_query->error;
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$resp_arr['is_error'] = false;
|
||||
$affected_rows_total += $db_query->affected_rows;
|
||||
$resp_arr['affected_rows'] = $affected_rows_total;
|
||||
echo json_encode($resp_arr);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
include '../db_creds.php';
|
||||
ini_set('display_errors', 'Off');
|
||||
|
||||
$robo_db = new mysqli($db_host, $db_user, $db_pass, $db_name);
|
||||
$resp_arr = array();
|
||||
|
||||
if($robo_db->connect_errno){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Failed to connect to database!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$db_query = $robo_db->prepare(<<<QUERY_STRING
|
||||
|
||||
SELECT m.first_name, m.last_name, cp.name
|
||||
FROM club_positions cp
|
||||
INNER JOIN members m ON m.position = cp.id
|
||||
WHERE cp.name = ?;
|
||||
|
||||
QUERY_STRING
|
||||
);
|
||||
|
||||
$db_query->bind_param("s", $_POST['name']);
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Parameter bind failed!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}
|
||||
|
||||
$db_query->execute();
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Database query failed!";
|
||||
$resp_arr['mysqli_errno'] = $db_query->errno;
|
||||
$resp_arr['mysqli_error'] = $db_query->error;
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$resp_arr['is_error'] = false;
|
||||
|
||||
$db_query->bind_result($first_name, $last_name, $position);
|
||||
|
||||
while($entry = $db_query->fetch()){
|
||||
$resp_arr['members'][] = array($first_name, $last_name, $position);
|
||||
}
|
||||
|
||||
echo json_encode($resp_arr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
include '../db_creds.php';
|
||||
ini_set('display_errors', 'Off');
|
||||
|
||||
$robo_db = new mysqli($db_host, $db_user, $db_pass, $db_name);
|
||||
$resp_arr = array();
|
||||
|
||||
if($robo_db->connect_errno){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Failed to connect to database!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$db_query = $robo_db->prepare(<<<QUERY_STRING
|
||||
|
||||
SELECT om.first_name, om.last_name, cs.name
|
||||
FROM members om
|
||||
INNER JOIN member_skills_relations msr ON om.id = msr.member_id
|
||||
INNER JOIN club_skills cs ON cs.id = msr.skills_id
|
||||
WHERE cs.name = ?
|
||||
|
||||
QUERY_STRING
|
||||
);
|
||||
|
||||
$db_query->bind_param("s", $_POST['name']);
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Parameter bind failed!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}
|
||||
|
||||
$db_query->execute();
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Database query failed!";
|
||||
$resp_arr['mysqli_errno'] = $db_query->errno;
|
||||
$resp_arr['mysqli_error'] = $db_query->error;
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$resp_arr['is_error'] = false;
|
||||
|
||||
$db_query->bind_result($first_name, $last_name, $skill);
|
||||
|
||||
while($entry = $db_query->fetch()){
|
||||
$resp_arr['members'][] = array($first_name, $last_name, $skill);
|
||||
}
|
||||
|
||||
echo json_encode($resp_arr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
include '../db_creds.php';
|
||||
ini_set('display_errors', 'Off');
|
||||
|
||||
$robo_db = new mysqli($db_host, $db_user, $db_pass, $db_name);
|
||||
$resp_arr = array();
|
||||
|
||||
if($robo_db->connect_errno){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Failed to connect to database!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$db_query = $robo_db->prepare(<<<QUERY_STRING
|
||||
|
||||
SELECT om.first_name, om.last_name, ct.name
|
||||
FROM members om
|
||||
INNER JOIN member_teams_relations mtr ON om.id = mtr.member_id
|
||||
INNER JOIN club_teams ct ON ct.id = mtr.team_id
|
||||
WHERE ct.name = ?
|
||||
|
||||
QUERY_STRING
|
||||
);
|
||||
|
||||
$db_query->bind_param("s", $_POST['name']);
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Parameter bind failed!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}
|
||||
|
||||
$db_query->execute();
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Database query failed!";
|
||||
$resp_arr['mysqli_errno'] = $db_query->errno;
|
||||
$resp_arr['mysqli_error'] = $db_query->error;
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$resp_arr['is_error'] = false;
|
||||
|
||||
$db_query->bind_result($first_name, $last_name, $team);
|
||||
|
||||
while($entry = $db_query->fetch()){
|
||||
$resp_arr['members'][] = array($first_name, $last_name, $team);
|
||||
}
|
||||
|
||||
echo json_encode($resp_arr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
include '../db_creds.php';
|
||||
ini_set('display_errors', 'Off');
|
||||
|
||||
$robo_db = new mysqli($db_host, $db_user, $db_pass, $db_name);
|
||||
$resp_arr = array();
|
||||
|
||||
if($robo_db->connect_errno){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Failed to connect to database!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$db_query = $robo_db->prepare(<<<QUERY_STRING
|
||||
|
||||
SELECT
|
||||
om.first_name,
|
||||
om.last_name,
|
||||
(SELECT name FROM club_positions cp
|
||||
INNER JOIN members m ON m.position = cp.id
|
||||
WHERE m.first_name = om.first_name AND m.last_name = om.last_name),
|
||||
(SELECT name FROM club_positions cp
|
||||
INNER JOIN members m ON m.superior = cp.id
|
||||
WHERE m.first_name = om.first_name AND m.last_name = om.last_name),
|
||||
om.email,
|
||||
om.phone,
|
||||
om.osu_num,
|
||||
om.rfid_num
|
||||
FROM members om;
|
||||
|
||||
QUERY_STRING
|
||||
);
|
||||
|
||||
$db_query->execute();
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Database query failed!";
|
||||
$resp_arr['mysqli_errno'] = $db_query->errno;
|
||||
$resp_arr['mysqli_error'] = $db_query->error;
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$resp_arr['is_error'] = false;
|
||||
|
||||
$db_query->bind_result($first_name, $last_name, $position, $superior, $email, $phone, $osu_num, $rfid_num);
|
||||
|
||||
while($entry = $db_query->fetch()){
|
||||
$resp_arr['members'][] = array($first_name, $last_name, $position, $superior, $email, $phone, $osu_num, $rfid_num);
|
||||
}
|
||||
|
||||
echo json_encode($resp_arr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
include '../db_creds.php';
|
||||
ini_set('display_errors', 'Off');
|
||||
|
||||
$robo_db = new mysqli($db_host, $db_user, $db_pass, $db_name);
|
||||
$resp_arr = array();
|
||||
|
||||
if($robo_db->connect_errno){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Failed to connect to database!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$db_query = $robo_db->prepare(<<<QUERY_STRING
|
||||
|
||||
SELECT name, description from club_positions GROUP BY id DESC
|
||||
|
||||
QUERY_STRING
|
||||
);
|
||||
|
||||
$db_query->execute();
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Database query failed!";
|
||||
$resp_arr['mysqli_errno'] = $db_query->errno;
|
||||
$resp_arr['mysqli_error'] = $db_query->error;
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$resp_arr['is_error'] = false;
|
||||
|
||||
$db_query->bind_result($position_name, $position_description);
|
||||
|
||||
while($entry = $db_query->fetch()){
|
||||
$resp_arr['positions'][] = array($position_name, $position_description);
|
||||
}
|
||||
|
||||
echo json_encode($resp_arr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
include '../db_creds.php';
|
||||
ini_set('display_errors', 'On');
|
||||
|
||||
$robo_db = new mysqli($db_host, $db_user, $db_pass, $db_name);
|
||||
$resp_arr = array();
|
||||
|
||||
if($robo_db->connect_errno){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Failed to connect to database!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$db_query = $robo_db->prepare(<<<QUERY_STRING
|
||||
|
||||
SELECT name, description from club_skills GROUP BY id ASC
|
||||
|
||||
QUERY_STRING
|
||||
);
|
||||
|
||||
$db_query->execute();
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Database query failed!";
|
||||
$resp_arr['mysqli_errno'] = $db_query->errno;
|
||||
$resp_arr['mysqli_error'] = $db_query->error;
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$resp_arr['is_error'] = false;
|
||||
|
||||
$db_query->bind_result($skill_name, $skill_description);
|
||||
|
||||
while($entry = $db_query->fetch()){
|
||||
$resp_arr['skills'][] = array($skill_name, $skill_description);
|
||||
}
|
||||
|
||||
echo json_encode($resp_arr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
include '../db_creds.php';
|
||||
ini_set('display_errors', 'On');
|
||||
|
||||
$robo_db = new mysqli($db_host, $db_user, $db_pass, $db_name);
|
||||
$resp_arr = array();
|
||||
|
||||
if($robo_db->connect_errno){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Failed to connect to database!";
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$db_query = $robo_db->prepare(<<<QUERY_STRING
|
||||
|
||||
SELECT name, description from club_teams GROUP BY id ASC
|
||||
|
||||
QUERY_STRING
|
||||
);
|
||||
|
||||
$db_query->execute();
|
||||
|
||||
if(!$db_query){
|
||||
$resp_arr['is_error'] = true;
|
||||
$resp_arr['error_reason'] = "Database query failed!";
|
||||
$resp_arr['mysqli_errno'] = $db_query->errno;
|
||||
$resp_arr['mysqli_error'] = $db_query->error;
|
||||
echo json_encode($resp_arr);
|
||||
return;
|
||||
}else{
|
||||
$resp_arr['is_error'] = false;
|
||||
|
||||
$db_query->bind_result($team_name, $team_description);
|
||||
|
||||
while($entry = $db_query->fetch()){
|
||||
$resp_arr['teams'][] = array($team_name, $team_description);
|
||||
}
|
||||
|
||||
echo json_encode($resp_arr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>CS340 Final Website - Corwin Perren</title>
|
||||
<link rel="stylesheet" type="text/css" href="style.css">
|
||||
<script src="app.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="page_header">
|
||||
<h1>CS 340 Robotics Club User Management System</h1>
|
||||
</div>
|
||||
<div>
|
||||
<span id="status_header">Status: </span><span id="header_status_bar"></span>
|
||||
</div>
|
||||
<div>
|
||||
<span id="error_header">Errors: </span><span id="header_error_bar"></span>
|
||||
</div>
|
||||
|
||||
<div id="mem_man_div">
|
||||
<h2>Member Management</h2>
|
||||
<span class="man_row_titles">MEMBER ADD: </span>
|
||||
<span>First: </span><input class="mem_man_text_input" type="text" id="mem_add_first_name">
|
||||
<span>Last: </span><input class="mem_man_text_input" type="text" id="mem_add_last_name">
|
||||
<span>Position: </span><select id="mem_add_position_drop"></select>
|
||||
<span>Superior: </span><select id="mem_add_superior_drop"></select>
|
||||
<span>Email: </span><input class="mem_man_text_input" type="text" id="mem_add_email">
|
||||
<span>Phone #: </span><input class="mem_man_text_input" type="text" id="mem_add_phone">
|
||||
<span>OSU ID: </span><input class="mem_man_text_input" type="number" id="mem_add_osuid">
|
||||
<span>RFID #: </span><input class="mem_man_text_input" type="number" id="mem_add_rfid">
|
||||
<button id="mem_add_submit" type="button">Add</button>
|
||||
<br><br>
|
||||
<span class="man_row_titles">MEMBER DEL: </span>
|
||||
<span>First: </span><input class="mem_man_text_input" type="text" id="mem_del_first_name">
|
||||
<span>Last: </span><input class="mem_man_text_input" type="text" id="mem_del_last_name">
|
||||
<button id="mem_del_submit" type="button">Delete</button>
|
||||
<br><br>
|
||||
<span class="man_row_titles">ASSIGN SKILL: </span>
|
||||
<span>First: </span><input class="mem_man_text_input" type="text" id="assign_skill_first_name">
|
||||
<span>Last: </span><input class="mem_man_text_input" type="text" id="assign_skill_last_name">
|
||||
<span>Skill: </span><select id="assign_skill_position_drop"></select>
|
||||
<button id="assign_skill_submit" type="button">Assign</button>
|
||||
<br><br>
|
||||
<span class="man_row_titles">ADD TO TEAM: </span>
|
||||
<span>First: </span><input class="mem_man_text_input" type="text" id="add_team_first_name">
|
||||
<span>Last: </span><input class="mem_man_text_input" type="text" id="add_team_last_name">
|
||||
<span>Team: </span><select id="add_team_position_drop"></select>
|
||||
<button id="add_team_submit" type="button">Add</button>
|
||||
</div>
|
||||
|
||||
<div id="infra_man_div">
|
||||
<h2>Infrastructure Management</h2>
|
||||
<span class="man_row_titles">SKILL ADD: </span>
|
||||
<span>Name: </span><input class="mem_man_text_input" type="text" id="skill_add_name">
|
||||
<span>Description: </span><input class="mem_man_text_input" type="text" id="skill_add_description">
|
||||
<button id="skill_add_submit" type="button">Add</button>
|
||||
<br><br>
|
||||
<span class="man_row_titles">TEAM ADD: </span>
|
||||
<span>Name: </span><input class="mem_man_text_input" type="text" id="team_add_name">
|
||||
<span>Description: </span><input class="mem_man_text_input" type="text" id="team_add_description">
|
||||
<button id="team_add_submit" type="button">Add</button>
|
||||
<br><br>
|
||||
<span class="man_row_titles">POSITION ADD: </span>
|
||||
<span>Name: </span><input class="mem_man_text_input" type="text" id="position_add_name">
|
||||
<span>Description: </span><input class="mem_man_text_input" type="text" id="position_add_description">
|
||||
<button id="position_add_submit" type="button">Add</button>
|
||||
</div>
|
||||
|
||||
<div id="queries_div">
|
||||
<h2>Display Controls</h2>
|
||||
<div id="queries_left">
|
||||
<span class="man_row_titles">SHOW MEMBERS: </span>
|
||||
<button id="show_members_submit" type="button">SHOW</button>
|
||||
<br><br>
|
||||
<span class="man_row_titles">SHOW SKILLS: </span>
|
||||
<button id="show_skills_submit" type="button">SHOW</button>
|
||||
<br><br>
|
||||
<span class="man_row_titles">SHOW TEAMS: </span>
|
||||
<button id="show_teams_submit" type="button">SHOW</button>
|
||||
<br><br>
|
||||
<span class="man_row_titles">SHOW POSITIONS: </span>
|
||||
<button id="show_positions_submit" type="button">SHOW</button>
|
||||
</div>
|
||||
<div id="queries_right">
|
||||
<br><br>
|
||||
<span class="man_row_titles">FIND MEMBERS WITH SKILL: </span>
|
||||
<span>Skill: </span><select id="show_with_skill_drop"></select>
|
||||
<button id="skill_search_submit" type="button">SEARCH</button>
|
||||
<br><br>
|
||||
<span class="man_row_titles">FIND MEMBERS WITH TEAM: </span>
|
||||
<span>Team: </span><select id="show_with_team_drop"></select>
|
||||
<button id="team_search_submit" type="button">SEARCH</button>
|
||||
<br><br>
|
||||
<span class="man_row_titles">FIND MEMBERS WITH POSITION: </span>
|
||||
<span>Position: </span><select id="show_with_position_drop"></select>
|
||||
<button id="position_search_submit" type="button">SEARCH</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="main_output_div">
|
||||
<div id="main_output_content">
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,52 @@
|
||||
body {
|
||||
background-color: #353535 ;
|
||||
color: #e6e6e6;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#error_header {
|
||||
color: #ff0001;
|
||||
}
|
||||
|
||||
#page_header {
|
||||
margin-top: 0;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
text-align: center;
|
||||
background-color: black;
|
||||
color: #10ac25;
|
||||
}
|
||||
|
||||
#page_header h1 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.man_row_titles {
|
||||
color: #10ac25;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
.mem_man_text_input {
|
||||
width: 75px;
|
||||
}
|
||||
|
||||
#queries_left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
#queries_right {
|
||||
margin-left: 300px;
|
||||
}
|
||||
|
||||
#main_output_div {
|
||||
border-top: 2px solid #10ac25;
|
||||
margin-top: 25px;
|
||||
}
|
||||
|
||||
.results_table table, th, td{
|
||||
border: 1px solid #e6e6e6;
|
||||
padding: 2px;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
Reference in New Issue
Block a user