Added work from my other class repositories before deletion

This commit is contained in:
2017-11-29 10:28:24 -08:00
parent cb0b5f4d25
commit 5ea24c81b5
198 changed files with 739603 additions and 0 deletions

View 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);