diff --git a/application/controllers/admin/Clubs.php b/application/controllers/admin/Clubs.php new file mode 100644 index 0000000000000000000000000000000000000000..b17e651be7d58a6b707d9aa986757dc58fe6fa4e --- /dev/null +++ b/application/controllers/admin/Clubs.php @@ -0,0 +1,72 @@ +<?php +defined('BASEPATH') OR exit('No direct script access allowed'); + +class Clubs extends MY_Controller { + + public function __construct() { + parent::__construct(); + $this->load->model('admin/clubs_model', 'clubs_model'); + $this->load->model('admin/logging_model', 'logging_model'); + } + public function index() { + $data['clubs'] = $this->clubs_model->get_clubs(); + $data['title'] = 'Vereins Liste'; + $data['view'] = 'admin/clubs/clubs_list'; + $this->load->view('admin/layout', $data); + } + public function edit($id = 0) { + if($this->input->post('submit')) { + $data = array( + 'name' => $this->input->post('name'), + 'street' => $this->input->post('street'), + 'zip' => $this->input->post('zip'), + 'town' => $this->input->post('town'), + 'phone' => $this->input->post('phone'), + 'email' => $this->input->post('email'), + 'executive_firstname' => $this->input->post('executive_firstname'), + 'executive_lastname' => $this->input->post('executive_lastname'), + ); + $data = $this->security->xss_clean($data); + $result = $this->clubs_model->edit($data, $id); + if($result) { + $this->logging_model->history_write($this->session->userdata('admin_id'), 'edited', 'clubs', $id); + $this->session->set_flashdata('msg', 'Verein erfolgreich bearbeitet!'); + redirect(base_url('admin/clubs/')); + } + } + else { + $data['club_data'] = $this->clubs_model->get_club($id); + $data['title'] = 'Edit Club'; + $data['view'] = 'admin/clubs/clubs_edit'; + $this->load->view('admin/layout', $data); + } + } + public function add() { + if($this->input->post('submit')) { + $data = array( + 'name' => $this->input->post('name'), + 'street' => $this->input->post('street'), + 'zip' => $this->input->post('zip'), + 'town' => $this->input->post('town'), + 'phone' => $this->input->post('phone'), + 'email' => $this->input->post('email'), + 'executive_firstname' => $this->input->post('executive_firstname'), + 'executive_lastname' => $this->input->post('executive_lastname'), + ); + $data = $this->security->xss_clean($data); + $result = $this->clubs_model->add($data); + if($result) { + $this->logging_model->history_write($this->session->userdata('admin_id'), 'added', 'clubs', $result); + $this->session->set_flashdata('msg', 'Verein erfolgreich hinzugefügt!'); + redirect(base_url('admin/clubs')); + } + } + else { + $data['clubs'] = $this->clubs_model->get_clubs(); + $data['title'] = 'Add Club'; + $data['view'] = 'admin/clubs/clubs_add'; + $this->load->view('admin/layout', $data); + } + } +} +?> \ No newline at end of file diff --git a/application/controllers/admin/Dashboard.php b/application/controllers/admin/Dashboard.php index 45da0fee9644e2f16d0e73b3273e0979368a5025..5b8428beed5cf8872c175a31cf77eb76ea5b4013 100644 --- a/application/controllers/admin/Dashboard.php +++ b/application/controllers/admin/Dashboard.php @@ -5,6 +5,7 @@ public function __construct(){ parent::__construct(); $this->load->model('admin/dashboard_model', 'dashboard_model'); + $this->load->model('admin/logging_model', 'logging_model'); } public function index(){ $data['title'] = 'Dashboard'; @@ -13,6 +14,12 @@ $data['keys_count'] = $this->dashboard_model->get_keys_count(); $data['member_types'] = $this->dashboard_model->get_member_types(); $data['clubs_count'] = $this->dashboard_model->get_clubs_count(); + $data['visits_count'] = $this->dashboard_model->get_visits_count(); + $guests_per_year = $this->dashboard_model->get_guests_per_year("Flugfest"); + $data['guests_per_year_years'] = json_encode($guests_per_year['years']); + $data['guests_per_year_guests'] = json_encode($guests_per_year['guests']); + $data['changelog'] = $this->dashboard_model->get_changelog(); + $data['history'] = $this->logging_model->history_get(10); $data['view'] = 'admin/dashboard/index'; $this->load->view('admin/layout', $data); } diff --git a/application/controllers/admin/Guests.php b/application/controllers/admin/Guests.php index f39f7c59dd0e0c3d6a171b04ba0cb48cd035a8ed..ccec5888dd7c85719f144ea7afd55e4ee70dbb56 100644 --- a/application/controllers/admin/Guests.php +++ b/application/controllers/admin/Guests.php @@ -8,14 +8,12 @@ $this->load->model('admin/guests_model', 'guests_model'); $this->load->model('admin/logging_model', 'logging_model'); } - public function index() { $data['all_users'] = $this->guests_model->get_all_guests(); $data['title'] = 'Gäste Liste'; $data['view'] = 'admin/guests/guests_list'; $this->load->view('admin/layout', $data); } - public function add() { if($this->input->post('submit')) { if($this->input->post('birthday')) { $birthday = date_to_default($this->input->post('birthday')); } else { $birthday = null; } @@ -39,12 +37,47 @@ redirect(base_url('admin/guests')); } } - else{ + else { + $data['clubs'] = $this->guests_model->get_clubs(); $data['title'] = 'Add Guest'; $data['view'] = 'admin/guests/guests_add'; $this->load->view('admin/layout', $data); } } + public function edit($id) { + if($this->input->post('submit')) { + if($this->input->post('invitation') == 'on') { $invitation = 1; } else { $invitation = 0; } + if($this->input->post('birthday')) { $birthday = date_to_default($this->input->post('birthday')); } else { $birthday = null; } + $data = array( + 'firstname' => $this->input->post('firstname'), + 'lastname' => $this->input->post('lastname'), + 'street' => $this->input->post('street'), + 'zip' => $this->input->post('zip'), + 'town' => $this->input->post('town'), + 'phone' => $this->input->post('phone'), + 'email' => $this->input->post('email'), + 'birthday' => $birthday, + 'club' => $this->input->post('club'), + 'insurance_number' => $this->input->post('insurance_number'), + 'invitation' => $invitation, + ); + $data = $this->security->xss_clean($data); + $result = $this->guests_model->guest_edit($data, $id); + if($result) { + $this->logging_model->history_write($this->session->userdata('admin_id'), 'edited', 'guests', $id); + $this->session->set_flashdata('msg', 'Gast erfolgreich bearbeitet!'); + redirect(base_url('admin/guests/')); + } + } + else { + $data['guest'] = $this->guests_model->guest_get($id); + $data['visits'] = $this->guests_model->guest_get_visits($id); + $data['clubs'] = $this->guests_model->get_clubs(); + $data['title'] = 'Edit User'; + $data['view'] = 'admin/guests/guests_edit'; + $this->load->view('admin/layout', $data); + } + } public function clubs_list() { $data['clubs'] = $this->guests_model->get_clubs(); $data['title'] = 'Vereins Liste'; @@ -52,31 +85,51 @@ $this->load->view('admin/layout', $data); } public function clubs_edit($id = 0) { - if($this->input->post('submit')) { - $data = array( - 'name' => $this->input->post('name'), - 'street' => $this->input->post('street'), - 'zip' => $this->input->post('zip'), - 'town' => $this->input->post('town'), - 'phone' => $this->input->post('phone'), - 'email' => $this->input->post('email'), - 'executive_firstname' => $this->input->post('executive_firstname'), - 'executive_lastname' => $this->input->post('executive_lastname'), - ); - $data = $this->security->xss_clean($data); - $result = $this->guests_model->edit_club($data, $id); - if($result) { - $this->logging_model->history_write($this->session->userdata('admin_id'), 'edited', 'guests_club', $id); - $this->session->set_flashdata('msg', 'Verein erfolgreich bearbeitet!'); - redirect(base_url('admin/guests/clubs_list/')); + if($this->input->post('submit')) { + $data = array( + 'name' => $this->input->post('name'), + 'street' => $this->input->post('street'), + 'zip' => $this->input->post('zip'), + 'town' => $this->input->post('town'), + 'phone' => $this->input->post('phone'), + 'email' => $this->input->post('email'), + 'executive_firstname' => $this->input->post('executive_firstname'), + 'executive_lastname' => $this->input->post('executive_lastname'), + ); + $data = $this->security->xss_clean($data); + $result = $this->guests_model->edit_club($data, $id); + if($result) { + $this->logging_model->history_write($this->session->userdata('admin_id'), 'edited', 'guests_club', $id); + $this->session->set_flashdata('msg', 'Verein erfolgreich bearbeitet!'); + redirect(base_url('admin/guests/clubs_list/')); + } + } + else { + $data['club_data'] = $this->guests_model->get_club($id); + $data['title'] = 'Edit User'; + $data['view'] = 'admin/guests/guests_clubs_edit'; + $this->load->view('admin/layout', $data); } } - else { - $data['club_data'] = $this->guests_model->get_club($id); - $data['title'] = 'Edit User'; - $data['view'] = 'admin/guests/guests_clubs_edit'; - $this->load->view('admin/layout', $data); + public function visit_add($event=null) { + if (!$event) { + if($this->input->post('event')) { + redirect(base_url('admin/guests/visit_add/'.$this->input->post('event'))); + } + $data['title'] = 'Event angeben'; + $data['view'] = 'admin/guests/guests_visit_add_event'; + $this->load->view('admin/layout', $data); + } else { + $data['event'] = $event; + $data['guests'] = $this->guests_model->get_event_guests(); + $data['title'] = 'Besuche eintragen'; + $data['view'] = 'admin/guests/guests_visit_add'; + $this->load->view('admin/layout', $data); + } + } + public function visit_add_do($event) { + $this->guests_model->visit_add($event, $this->input->post('guests_id')); + redirect(base_url('admin/guests/visit_add/'.$event)); } - } } ?> \ No newline at end of file diff --git a/application/controllers/admin/Keys.php b/application/controllers/admin/Keys.php index 9a90433eaabc11eab9817a15d89dd66ff488d621..431c75fe80211ba3d1fbd604c8f918e499d52255 100644 --- a/application/controllers/admin/Keys.php +++ b/application/controllers/admin/Keys.php @@ -20,7 +20,8 @@ class Keys extends MY_Controller { $data = array( 'key_number' => $this->input->post('keyid'), 'member_id' => $this->input->post('member_id'), - 'key_distribution' => date_to_default($this->input->post('key_distribution')) + 'key_distribution' => date_to_default($this->input->post('key_distribution')), + 'key_note' => $this->input->post('key_note'), ); $data = $this->security->xss_clean($data); $result = $this->keys_model->edit_key($data); @@ -36,5 +37,25 @@ class Keys extends MY_Controller { $this->session->set_flashdata('msg', 'Record is Deleted Successfully!'); redirect(base_url('admin/group')); } + public function add() { + if($this->input->post('submit')) { + $data = array( + 'key_number' => $this->input->post('key_number'), + 'member_id' => $this->keys_model->key_master_get() + ); + $data = $this->security->xss_clean($data); + $result = $this->keys_model->add($data); + if($result) { + $this->logging_model->history_write($this->session->userdata('admin_id'), 'added', 'keys', $result); + $this->session->set_flashdata('msg', 'Schlüssel erfolgreich hinzugefügt!'); + redirect(base_url('admin/keys')); + } + } + else { + $data['title'] = 'Add Club'; + $data['view'] = 'admin/keys/keys_add'; + $this->load->view('admin/layout', $data); + } + } } ?> \ No newline at end of file diff --git a/application/controllers/admin/Members.php b/application/controllers/admin/Members.php index 1b543d3cbc3a38a4bfeb58c05e9e0b091b494b36..c22d3e4e75c5ffbf251bdeabf68b45ad51ca69b5 100644 --- a/application/controllers/admin/Members.php +++ b/application/controllers/admin/Members.php @@ -66,6 +66,7 @@ class Members extends MY_Controller { 'club_function_id' => $this->input->post('club_function_id'), 'knowledge_proof' => $knowledge_proof, 'flight_manager' => $flight_manager, + 'members_note' => $this->input->post('members_note'), ); $data = $this->security->xss_clean($data); $result = $this->members_model->add_member($data); @@ -89,10 +90,10 @@ class Members extends MY_Controller { // Edit User public function edit($id = 0) { if($this->input->post('submit')) { - if($this->input->post('birthday')) { $birthday = date_to_default($this->input->post('birthday')); } else { $birthday = null; } - if($this->input->post('joined')) { $joined = date_to_default($this->input->post('joined')); } else { $joined = null; } - if($this->input->post('withdrawal')) { $withdrawal = date_to_default($this->input->post('withdrawal')); } else { $withdrawal = null; } - if($this->input->post('knowledge_proof')) { $knowledge_proof = date_to_default($this->input->post('knowledge_proof')); } else { $knowledge_proof = null; } + if($this->input->post('birthday') != '') { $birthday = date_to_default($this->input->post('birthday')); } else { $birthday = null; } + if($this->input->post('joined') != '') { $joined = date_to_default($this->input->post('joined')); } else { $joined = null; } + if($this->input->post('withdrawal') != '') { $withdrawal = date_to_default($this->input->post('withdrawal')); } else { $withdrawal = null; } + if($this->input->post('knowledge_proof') != '') { $knowledge_proof = date_to_default($this->input->post('knowledge_proof')); } else { $knowledge_proof = null; } if($this->input->post('flight_manager') == 'on') { $flight_manager = 1; } else { $flight_manager = 0; } $data = array( 'firstname' => $this->input->post('firstname'), @@ -109,6 +110,7 @@ class Members extends MY_Controller { 'club_function_id' => $this->input->post('club_function_id'), 'knowledge_proof' => $knowledge_proof, 'flight_manager' => $flight_manager, + 'members_note' => $this->input->post('members_note'), ); $data = $this->security->xss_clean($data); $result = $this->members_model->edit_user($data, $id); @@ -123,10 +125,13 @@ class Members extends MY_Controller { $data['member_types'] = $this->members_model->get_member_types(); $data['insurance_types'] = $this->members_model->get_insurance_types(); $data['member_data'] = $this->members_model->get_user_by_id($id); - $data['member_data']['birthday'] = date_to_german($data['member_data']['birthday']); - $data['member_data']['joined'] = date_to_german($data['member_data']['joined']); - if($data['member_data']['withdrawal'] != '0000-00-00') { $data['member_data']['withdrawal'] = date_to_german($data['member_data']['withdrawal']); } - if($data['member_data']['knowledge_proof'] != '0000-00-00') { $data['member_data']['knowledge_proof'] = date_to_german($data['member_data']['knowledge_proof']); } + if($data['member_data']['birthday'] != '' && $data['member_data']['birthday'] != '0000-00-00') { $data['member_data']['birthday'] = date_to_german($data['member_data']['birthday']); } + else { $data['member_data']['birthday'] = null; } + if($data['member_data']['joined'] != '' && $data['member_data']['joined'] != '0000-00-00') { $data['member_data']['joined'] = date_to_german($data['member_data']['joined']); } + else { $data['member_data']['joined'] = null; } + if($data['member_data']['knowledge_proof'] != '' && $data['member_data']['knowledge_proof'] != '0000-00-00') { $data['member_data']['knowledge_proof'] = date_to_german($data['member_data']['knowledge_proof']); } + else { $data['member_data']['knowledge_proof'] = null; } + if($data['member_data']['withdrawal'] != '' && $data['member_data']['withdrawal'] != '0000-00-00') { $data['member_data']['withdrawal'] = date_to_german($data['member_data']['withdrawal']); } else { $data['member_data']['withdrawal'] = null; } $data['title'] = 'Edit User'; $data['view'] = 'admin/members/member_edit'; diff --git a/application/controllers/admin/Reports.php b/application/controllers/admin/Reports.php index 1158ae0ceda95c5e8221a55790095908a74edd2c..6c1dfe1df404216ec254d0c6663fae0ea455d794 100644 --- a/application/controllers/admin/Reports.php +++ b/application/controllers/admin/Reports.php @@ -19,5 +19,17 @@ class Reports extends MY_Controller { $data['view'] = 'admin/reports/birthdays'; $this->load->view('admin/layout', $data); } + public function joined_anniversary() { + $data['anniversary'] = $this->reports_model->get_joined_anniversary(); + $data['title'] = 'Vereins Zugehörigkeit'; + $data['view'] = 'admin/reports/joined_anniversary'; + $this->load->view('admin/layout', $data); + } + public function history() { + $data['history'] = $this->reports_model->get_history(); + $data['title'] = 'Datensatz Änderungen'; + $data['view'] = 'admin/reports/history'; + $this->load->view('admin/layout', $data); + } } ?> \ No newline at end of file diff --git a/application/helpers/data_helper.php b/application/helpers/data_helper.php index e31073723c2009d2f0f2a180e4d69a83766f7879..501d0f5671a2de9cb3568e8815533a03082e54e3 100644 --- a/application/helpers/data_helper.php +++ b/application/helpers/data_helper.php @@ -9,6 +9,10 @@ if($date != '0000-00-00' && $date != null) { return date_format(date_create($date), 'd.m.Y'); } else { return null; } } + function datetime_to_german($date) { + if($date != '0000-00-00' && $date != null) { return date_format(date_create($date), 'd.m.Y H:i'); } + else { return null; } + } function date_to_default($date) { $temp_date = date_parse_from_format("d.m.Y", $date); return date_format(date_create($temp_date['year'].'-'.$temp_date['month'].'-'.$temp_date['day']), 'Y-m-d'); diff --git a/application/models/admin/Clubs_model.php b/application/models/admin/Clubs_model.php new file mode 100644 index 0000000000000000000000000000000000000000..9a954c66a5b5b5b92a657ef48b31ca8db736826b --- /dev/null +++ b/application/models/admin/Clubs_model.php @@ -0,0 +1,28 @@ +<?php +class Clubs_model extends CI_Model { + public function get_clubs() { + $query = $this->db->query('SELECT `clubs`.*, pilots.visits as guests + FROM `clubs` + LEFT JOIN (SELECT guests.club, COUNT(*) as visits + FROM guests + GROUP by guests.club + ) as pilots ON (pilots.club=clubs.id)'); + return $result = $query->result_array(); + } + public function get_club($id) { + $this->db->from('clubs'); + $this->db->where('id', $id); + $query = $this->db->get(); + return $result = $query->row_array(); + } + public function edit($data, $id) { + $this->db->where('id', $id); + $this->db->update('clubs', $data); + return $id; + } + public function add($data){ + $this->db->insert('clubs', $data); + return true; + } +} +?> \ No newline at end of file diff --git a/application/models/admin/Dashboard_model.php b/application/models/admin/Dashboard_model.php index a1dc37ad106b1b89389b7430556e6f75f3e76596..6c790ac016136afeae74be862a29903ead771e4e 100644 --- a/application/models/admin/Dashboard_model.php +++ b/application/models/admin/Dashboard_model.php @@ -34,5 +34,29 @@ public function get_clubs_count() { return $this->db->count_all('clubs'); } + public function get_visits_count() { + return $this->db->count_all('guests_visits'); + } + public function get_guests_per_year($event) { + $this->db->select('COUNT(guests_visits.date) AS guests, guests_visits.date'); + $this->db->from('guests_visits'); + $this->db->where('guests_visits.event', $event); + $this->db->group_by('guests_visits.date'); + $query = $this->db->get(); + $result = $query->result_array(); + foreach($result as $data) { + $return['years'][] = $data['date']; + $return['guests'][] = $data['guests']; + } + return $return; + } + public function get_changelog() { + $this->db->select('log_text, log_date'); + $this->db->from('changelog'); + $this->db->order_by('log_date', 'DESC'); + $this->db->limit(10); + $query = $this->db->get(); + return $query->result_array(); + } } ?> \ No newline at end of file diff --git a/application/models/admin/Guests_model.php b/application/models/admin/Guests_model.php index 13dc1950aa85a9fd39e59a22e89cfc7991b842c3..e18f3e6926f77ad52656ab7e223fa293f714ecff 100644 --- a/application/models/admin/Guests_model.php +++ b/application/models/admin/Guests_model.php @@ -1,17 +1,33 @@ <?php class Guests_model extends CI_Model { - public function get_all_guests() { - $this->db->select('guests.*, clubs.name AS club'); - $this->db->from('guests'); - $this->db->join('clubs', 'guests.club=clubs.id'); - $query = $this->db->get(); - return $result = $query->result_array(); - } - public function guest_add($data){ + public function get_all_guests() { + $query = $this->db->query('SELECT `guests`.*, `clubs`.`name` AS `club`, visitors.visits as visits + FROM `guests` + LEFT JOIN `clubs` ON `guests`.`club`=`clubs`.`id` + LEFT JOIN (SELECT guests_visits.guest_id, COUNT(*) as visits + FROM guests_visits + GROUP by guests_visits.guest_id + ) as visitors ON (visitors.guest_id=guests.guests_id)'); + return $result = $query->result_array(); + } + public function get_event_guests() { + $this->db->select("CONCAT(guests.firstname, ' ', guests.lastname) AS value, CONCAT(guests.firstname, ' ', guests.lastname) AS label, guests.guests_id AS id"); + $this->db->from('guests'); + $query = $this->db->get(); + $result = $query->result_array(); + return json_encode($result); + } + public function guest_add($data){ $this->db->insert('guests', $data); return true; } + public function guest_get($id) { + $this->db->from('guests'); + $this->db->where('guests_id', $id); + $query = $this->db->get(); + return $result = $query->row_array(); + } public function get_clubs() { $query = $this->db->get('clubs'); return $result = $query->result_array(); @@ -27,5 +43,23 @@ $this->db->update('clubs', $data); return $id; } + public function visit_add($event, $guest_id) { + $data['guest_id'] = $guest_id; + $data['event'] = $event; + $data['date'] = date("Y"); + $this->db->insert('guests_visits', $data); + } + public function guest_edit($data, $id) { + $this->db->where('guests_id', $id); + $this->db->update('guests', $data); + return $id; + } + public function guest_get_visits($guest_id) { + $this->db->from('guests_visits'); + $this->db->where('guests_visits.guest_id', $guest_id); + $this->db->order_by('guests_visits.date', 'ASC'); + $query = $this->db->get(); + return $result = $query->result_array(); + } } ?> \ No newline at end of file diff --git a/application/models/admin/Keys_model.php b/application/models/admin/Keys_model.php index 4d875b8e8d54319ba61163b92ec92317df17f636..cc0842a6fd3fe29cea81a1345cb13ab192e997f2 100644 --- a/application/models/admin/Keys_model.php +++ b/application/models/admin/Keys_model.php @@ -21,11 +21,24 @@ } public function get_keys_by_userid($id) { - $this->db->select('key_number'); + $this->db->select('key_number, key_note'); $this->db->from('club_keys'); $this->db->where('member_id', $id); $query = $this->db->get(); return $result = $query->result_array(); } + public function add($data){ + $this->db->insert('club_keys', $data); + return true; + } + public function key_master_get() { + $this->db->select('members.id'); + $this->db->from('members'); + $this->db->where('members.club_function_id', '4'); + $this->db->limit(1); + $query = $this->db->get(); + $result = $query->row_array(); + return $result['id']; + } } ?> \ No newline at end of file diff --git a/application/models/admin/Logging_model.php b/application/models/admin/Logging_model.php index 907cb014e42f424ae7fdcb28789573a164ac7472..eb3d18e4f08bcbc404bba0fe2b7787d9514e235d 100644 --- a/application/models/admin/Logging_model.php +++ b/application/models/admin/Logging_model.php @@ -10,5 +10,17 @@ $this->db->insert('history', $data); return true; } + public function history_get($limit) { + $this->db->select('ci_users.firstname, ci_users.lastname, history.*'); + $this->db->from('history'); + $this->db->join('ci_users', 'ci_users.id=history.user_id'); + $this->db->order_by('timestamp', 'DESC'); + if($limit) { + $this->db->limit($limit); + } + $query = $this->db->get(); + $result = $query->result_array(); + return $result; + } } ?> \ No newline at end of file diff --git a/application/models/admin/Reports_model.php b/application/models/admin/Reports_model.php index eb9a610ba109c8cb39fac6b6005f18141afff7b8..954b39a383f9a154f3d58ea58d7ad682425fa4de 100644 --- a/application/models/admin/Reports_model.php +++ b/application/models/admin/Reports_model.php @@ -1,11 +1,6 @@ <?php class Reports_model extends CI_Model { public function get_birthdays() { - $sql = "SELECT members.id, members.firstname, members.lastname, DAY(members.birthday) AS day, MONTH(members.birthday) AS month, (YEAR(CURRENT_DATE) - YEAR(members.birthday)) - (RIGHT(CURRENT_DATE,5) < RIGHT(members.birthday, 5)) AS age - FROM members - JOIN member_types ON (member_types.id=members.member_type_id) - WHERE member_types.is_member = 1 - ORDER BY age DESC, month ASC, day ASC"; $this->db->select('members.id, members.firstname, members.lastname, members.birthday, DAY(members.birthday) AS day, MONTH(members.birthday) AS month, (YEAR(CURRENT_DATE) - YEAR(members.birthday)) - (RIGHT(CURRENT_DATE,5) < RIGHT(members.birthday, 5)) AS age'); $this->db->from('members'); $this->db->join('member_types', 'member_types.id=members.member_type_id'); @@ -14,5 +9,23 @@ class Reports_model extends CI_Model { $query = $this->db->get(); return $result = $query->result_array(); } + public function get_joined_anniversary() { + $this->db->select('members.id, members.firstname, members.lastname, members.joined, DAY(members.joined) AS day, MONTH(members.joined) AS month, (YEAR(CURRENT_DATE) - YEAR(members.joined)) - (RIGHT(CURRENT_DATE,5) < RIGHT(members.joined, 5)) AS age'); + $this->db->from('members'); + $this->db->join('member_types', 'member_types.id=members.member_type_id'); + $this->db->where('member_types.is_member', '1'); + $this->db->order_by('age DESC'); + $query = $this->db->get(); + return $result = $query->result_array(); + } + public function get_history() { + $this->db->select('ci_users.firstname, ci_users.lastname, history.*'); + $this->db->from('history'); + $this->db->join('ci_users', 'ci_users.id=history.user_id'); + $this->db->order_by('timestamp', 'DESC'); + $query = $this->db->get(); + $result = $query->result_array(); + return $result; + } } ?> \ No newline at end of file diff --git a/application/views/admin/clubs/clubs_add.php b/application/views/admin/clubs/clubs_add.php new file mode 100644 index 0000000000000000000000000000000000000000..23033287d2fb3564de1eb2fd8360b6210095cf45 --- /dev/null +++ b/application/views/admin/clubs/clubs_add.php @@ -0,0 +1,81 @@ +<link rel="stylesheet" href="<?= base_url() ?>public/plugins/bootstrap-datepicker/css/datepicker.css"> +<link rel="stylesheet" href="<?= base_url() ?>public/plugins/iCheck/square/_all.css"> + +<section class="content"> + <div class="row"> + <div class="col-md-12"> + <div class="box box-body with-border"> + <div class="col-md-6"> + <h4><i class="fa fa-plus"></i> Verein anlegen</h4> + </div> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <div class="box border-top-solid"> + <div class="box-body my-form-body"> + <?php echo form_open(base_url('admin/clubs/add/'), 'class="form-horizontal"' )?> + <div class="form-group"> + <label for="lastname" class="col-sm-2 control-label">Name</label> + <div class="col-sm-9"> + <input type="text" name="name" class="form-control" id="name" placeholder="" value="" maxlength="50"> + </div> + </div> + <div class="form-group"> + <label for="street" class="col-sm-2 control-label">Straße</label> + <div class="col-sm-9"> + <input type="text" name="street" class="form-control" id="street" placeholder="" value="" maxlength="50"> + </div> + </div> + <div class="form-group"> + <label for="zip" class="col-sm-2 control-label">Postleitzahl</label> + <div class="col-sm-9"> + <input type="text" name="zip" class="form-control" id="zip" placeholder="" value="" maxlength="10"> + </div> + </div> + <div class="form-group"> + <label for="town" class="col-sm-2 control-label">Ort</label> + <div class="col-sm-9"> + <input type="text" name="town" class="form-control" id="town" placeholder="" value="" maxlength="50"> + </div> + </div> + <div class="form-group"> + <label for="town" class="col-sm-2 control-label">Telefon</label> + <div class="col-sm-9"> + <input type="text" name="phone" class="form-control" id="phone" placeholder="" value="" maxlength="16"> + </div> + </div> + <div class="form-group"> + <label for="town" class="col-sm-2 control-label">eMail</label> + <div class="col-sm-9"> + <input type="text" name="email" class="form-control" id="email" placeholder="" value="" maxlength="50"> + </div> + </div> + <div class="form-group"> + <label for="town" class="col-sm-2 control-label">Anprechpartner Vorname</label> + <div class="col-sm-9"> + <input type="text" name="executive_firstname" class="form-control" id="executive_firstname" placeholder="" value="" maxlength="25"> + </div> + </div> + <div class="form-group"> + <label for="town" class="col-sm-2 control-label">Anprechpartner Nachname</label> + <div class="col-sm-9"> + <input type="text" name="executive_lastname" class="form-control" id="executive_lastname" placeholder="" value="" maxlength="25"> + </div> + </div> + <div class="form-group"> + <div class="col-md-11"> + <input type="submit" name="submit" value="Anlegen" class="btn btn-info pull-right"> + </div> + </div> + <?php echo form_close( ); ?> + </div> + </div> + </div> + </div> +</section> + +<script> + $("#clubs_add").addClass('active'); +</script> \ No newline at end of file diff --git a/application/views/admin/guests/guests_clubs_edit.php b/application/views/admin/clubs/clubs_edit.php similarity index 91% rename from application/views/admin/guests/guests_clubs_edit.php rename to application/views/admin/clubs/clubs_edit.php index 76e2b915acc9f066fe68b209d99d0ecc70baba41..2c8584547336491f8c2007fcc8ba3b00e36e370e 100644 --- a/application/views/admin/guests/guests_clubs_edit.php +++ b/application/views/admin/clubs/clubs_edit.php @@ -15,7 +15,7 @@ <div class="col-md-12"> <div class="box border-top-solid"> <div class="box-body my-form-body"> - <?php echo form_open(base_url('admin/guests/clubs_edit/'.$club_data['id']), 'class="form-horizontal"' )?> + <?php echo form_open(base_url('admin/clubs/edit/'.$club_data['id']), 'class="form-horizontal"' )?> <div class="form-group"> <label for="lastname" class="col-sm-2 control-label">Name</label> <div class="col-sm-9"> @@ -43,7 +43,7 @@ <div class="form-group"> <label for="town" class="col-sm-2 control-label">Telefon</label> <div class="col-sm-9"> - <input type="text" name="phone" class="form-control" id="phone" placeholder="" value="<?= $club_data['phone'];?>" maxlength="50"> + <input type="text" name="phone" class="form-control" id="phone" placeholder="" value="<?= $club_data['phone'];?>" maxlength="16"> </div> </div> <div class="form-group"> @@ -53,15 +53,15 @@ </div> </div> <div class="form-group"> - <label for="town" class="col-sm-2 control-label">Vorstand Vorname</label> + <label for="town" class="col-sm-2 control-label">Anprechpartner Vorname</label> <div class="col-sm-9"> - <input type="text" name="executive_firstname" class="form-control" id="executive_firstname" placeholder="" value="<?= $club_data['executive_firstname'];?>" maxlength="50"> + <input type="text" name="executive_firstname" class="form-control" id="executive_firstname" placeholder="" value="<?= $club_data['executive_firstname'];?>" maxlength="25"> </div> </div> <div class="form-group"> - <label for="town" class="col-sm-2 control-label">Vorstand Nachname</label> + <label for="town" class="col-sm-2 control-label">Anprechpartner Nachname</label> <div class="col-sm-9"> - <input type="text" name="executive_lastname" class="form-control" id="executive_lastname" placeholder="" value="<?= $club_data['executive_lastname'];?>" maxlength="50"> + <input type="text" name="executive_lastname" class="form-control" id="executive_lastname" placeholder="" value="<?= $club_data['executive_lastname'];?>" maxlength="25"> </div> </div> <div class="form-group"> @@ -76,8 +76,8 @@ </div> </section> -<script src="<?= base_url() ?>public/plugins/datepicker/bootstrap-datepicker.js"></script> <script src="<?= base_url() ?>public/plugins/iCheck/icheck.js"></script> + <script> - $('#datepicker').datepicker({}) -</script> + $("#clubs_list").addClass('active'); +</script> \ No newline at end of file diff --git a/application/views/admin/guests/guests_clubs_list.php b/application/views/admin/clubs/clubs_list.php similarity index 87% rename from application/views/admin/guests/guests_clubs_list.php rename to application/views/admin/clubs/clubs_list.php index 4bce5e2fb63da9fdc45eeb5e08f05e6169815df0..1c4f8462a1c2481896b50ee7b5f3649cdb357448 100644 --- a/application/views/admin/guests/guests_clubs_list.php +++ b/application/views/admin/clubs/clubs_list.php @@ -21,7 +21,8 @@ <th>Ort</th> <th>Telefon</th> <th>Email</th> - <th>Vorstand</th> + <th>Anprechpartner</th> + <th>Gastpiloten</th> <th>Optionen</th> </tr> </thead> @@ -35,8 +36,9 @@ <td><?= $row['phone']; ?></td> <td><?= $row['email']; ?></td> <td><?= $row['executive_firstname'].' '.$row['executive_lastname']; ?></td> + <td><?= $row['guests']; ?></td> <td class="text-right"> - <a href="<?= base_url('admin/guests/clubs_edit/'.$row['id']); ?>" class="btn btn-danger btn-flat btn-xs"><i class="fa fa-edit"></i></a> + <a href="<?= base_url('admin/clubs/edit/'.$row['id']); ?>" class="btn btn-danger btn-flat btn-xs"><i class="fa fa-edit"></i></a> </td> </tr> <?php endforeach; ?> @@ -63,5 +65,5 @@ </script> <script> - $("#guests_clubs_list").addClass('active'); + $("#clubs_list").addClass('active'); </script> \ No newline at end of file diff --git a/application/views/admin/dashboard/index.php b/application/views/admin/dashboard/index.php index 4af983c31dcb874c27e2aa725bca8d978e6f7a62..ecc24a3b00d7d354f752e1ef0ea9f7ff5e60deb4 100644 --- a/application/views/admin/dashboard/index.php +++ b/application/views/admin/dashboard/index.php @@ -1,6 +1,6 @@ <section class="content"> <div class="row"> - <div class="col-md-3 col-sm-6 col-xs-12"> + <div class="col-md-2 col-sm-6 col-xs-12"> <div class="info-box"> <span class="info-box-icon bg-red"><i class="fa fa-wheelchair"></i></span> <div class="info-box-content"> @@ -9,7 +9,7 @@ </div> </div> </div> - <div class="col-md-3 col-sm-6 col-xs-12"> + <div class="col-md-2 col-sm-6 col-xs-12"> <div class="info-box"> <span class="info-box-icon bg-light-blue"><i class="fa fa-address-book"></i></span> <div class="info-box-content"> @@ -18,7 +18,7 @@ </div> </div> </div> - <div class="col-md-3 col-sm-6 col-xs-12"> + <div class="col-md-2 col-sm-6 col-xs-12"> <div class="info-box"> <span class="info-box-icon bg-gray"><i class="fa fa-key"></i></span> <div class="info-box-content"> @@ -27,7 +27,7 @@ </div> </div> </div> - <div class="col-md-3 col-sm-6 col-xs-12"> + <div class="col-md-2 col-sm-6 col-xs-12"> <div class="info-box"> <span class="info-box-icon bg-green"><i class="fa fa-map-marker"></i></span> <div class="info-box-content"> @@ -36,6 +36,15 @@ </div> </div> </div> + <div class="col-md-2 col-sm-6 col-xs-12"> + <div class="info-box"> + <span class="info-box-icon bg-yellow"><i class="fa fa-map-pin"></i></span> + <div class="info-box-content"> + <span class="info-box-text">Besucher</span> + <span class="info-box-number"><?= $visits_count; ?></span> + </div> + </div> + </div> </div> <div class="row"> <div class="col-md-4 col-sm-4 col-xs-10"> @@ -53,12 +62,84 @@ </div> </div> </div> + <div class="col-md-6 col-sm-4 col-xs-10"> + <div class="box box-info"> + <div class="box-header with-border"> + <h3 class="box-title">Gastpiloten (Flugfest)</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <div class="chart"> + <canvas id="lineChart" style="height:300px;"></canvas> + </div> + </div> + </div> + </div> + <div class="col-md-4"> + <div class="box box-info"> + <div class="box-header with-border bg-yellow"> + <h3 class="box-title">Changelog</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body no-padding"> + <table class="table"> + <tr> + <th>Datum</th> + <th>Änderung</th> + </tr> + <?php foreach($changelog as $change) { ?> + <tr> + <td><?=date_to_german($change['log_date'])?></td> + <td><?=$change['log_text']?></td> + </tr> + <?php } ?> + </table> + </div> + </div> + </div> + <div class="col-md-4"> + <div class="box box-info"> + <div class="box-header with-border bg-yellow"> + <h3 class="box-title"><i class="fa fa-link"></i> <a href="/admin/reports/history">Änderungs Historie</a></h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body no-padding"> + <table class="table"> + <tr> + <th>Datum</th> + <th>Benutzer</th> + <th colspan="3">Änderung</th> + </tr> + <?php foreach($history as $hist_item) { ?> + <tr> + <td><?=datetime_to_german($hist_item['timestamp'])?></td> + <td><?=$hist_item['firstname'].' '.$hist_item['lastname']?></td> + <td><?=$hist_item['action']?></td> + <td><?=$hist_item['table_name']?></td> + <td><?='('.$hist_item['table_id'].')'?></td> + </tr> + <?php } ?> + </table> + </div> + </div> + </div> </div> </section> <script src="<?= base_url() ?>public/plugins/flot/jquery.flot.js"></script> <script src="<?= base_url() ?>public/plugins/flot/jquery.flot.pie.js"></script> <script src="<?= base_url() ?>public/plugins/flot/jquery.flot.categories.js"></script> +<script src="<?= base_url() ?>public/plugins/chartjs/Chart.js"></script> + <script> var donutData = [ @@ -89,4 +170,68 @@ function labelFormatter(label, series) { return "<div style='font-size:8pt; text-align:center; padding:2px; color:white; font-weight:bold;'>" + label + "</div>"; }; + + var areaChartData = { + labels : <?=$guests_per_year_years?>, + datasets: [ + { + label : 'Flugfest', + fillColor : 'rgba(210, 214, 222, 1)', + strokeColor : 'rgba(210, 214, 222, 1)', + pointColor : 'rgba(210, 214, 222, 1)', + pointStrokeColor : '#c1c7d1', + pointHighlightFill : '#fff', + pointHighlightStroke: 'rgba(220,220,220,1)', + data : <?=$guests_per_year_guests?> + } + ] + } + + var areaChartOptions = { + //Boolean - If we should show the scale at all + showScale : true, + //Boolean - Whether grid lines are shown across the chart + scaleShowGridLines : false, + //String - Colour of the grid lines + scaleGridLineColor : 'rgba(0,0,0,.05)', + //Number - Width of the grid lines + scaleGridLineWidth : 1, + //Boolean - Whether to show horizontal lines (except X axis) + scaleShowHorizontalLines: true, + //Boolean - Whether to show vertical lines (except Y axis) + scaleShowVerticalLines : true, + //Boolean - Whether the line is curved between points + bezierCurve : true, + //Number - Tension of the bezier curve between points + bezierCurveTension : 0.3, + //Boolean - Whether to show a dot for each point + pointDot : true, + //Number - Radius of each point dot in pixels + pointDotRadius : 4, + //Number - Pixel width of point dot stroke + pointDotStrokeWidth : 1, + //Number - amount extra to add to the radius to cater for hit detection outside the drawn point + pointHitDetectionRadius : 20, + //Boolean - Whether to show a stroke for datasets + datasetStroke : true, + //Number - Pixel width of dataset stroke + datasetStrokeWidth : 2, + //Boolean - Whether to fill the dataset with a color + datasetFill : true, + //String - A legend template + legendTemplate : '<ul class="<%=name.toLowerCase()%>-legend"><% for (var i=0; i<datasets.length; i++){%><li><span style="background-color:<%=datasets[i].lineColor%>"></span><%if(datasets[i].label){%><%=datasets[i].label%><%}%></li><%}%></ul>', + //Boolean - whether to maintain the starting aspect ratio or not when responsive, if set to false, will take up entire container + maintainAspectRatio : true, + //Boolean - whether to make the chart responsive to window resizing + responsive : true + } + + //------------- + //- LINE CHART - + //-------------- + var lineChartCanvas = $('#lineChart').get(0).getContext('2d') + var lineChart = new Chart(lineChartCanvas) + var lineChartOptions = areaChartOptions + lineChartOptions.datasetFill = false + lineChart.Line(areaChartData, lineChartOptions) </script> \ No newline at end of file diff --git a/application/views/admin/guests/guests_add.php b/application/views/admin/guests/guests_add.php index 789c836f1e641da5cdebee4e1bb15d60de57a713..dd83313b91b111253392076877f3d7f6bd4525da 100644 --- a/application/views/admin/guests/guests_add.php +++ b/application/views/admin/guests/guests_add.php @@ -70,7 +70,11 @@ <div class="form-group"> <label for="club" class="col-sm-2 control-label">Verein</label> <div class="col-sm-9"> - <input type="text" name="club" class="form-control" id="club" placeholder="" maxlength="50"> + <select name="club" class="form-control"> + <?php foreach($clubs as $club): ?> + <option value="<?= $club['id']; ?>"><?= $club['name']; ?></option> + <?php endforeach; ?> + </select> </div> </div> <div class="form-group"> diff --git a/application/views/admin/guests/guests_edit.php b/application/views/admin/guests/guests_edit.php new file mode 100644 index 0000000000000000000000000000000000000000..db67150dcf906c19574bfc5ea197d2c2d8b793d1 --- /dev/null +++ b/application/views/admin/guests/guests_edit.php @@ -0,0 +1,125 @@ +<link rel="stylesheet" href="<?= base_url() ?>public/plugins/bootstrap-datepicker/css/datepicker.css"> +<link rel="stylesheet" href="<?= base_url() ?>public/plugins/iCheck/square/_all.css"> + +<section class="content"> + <div class="row"> + <div class="col-md-12"> + <div class="box box-body with-border"> + <div class="col-md-6"> + <h4><i class="fa fa-plus"></i> Gast bearbeiten</h4> + </div> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <div class="box border-top-solid"> + <div class="box-body my-form-body"> + <?php echo form_open(base_url('admin/guests/edit/'.$guest['guests_id']), 'class="form-horizontal"' )?> + <div class="form-group"> + <label for="town" class="col-sm-2 control-label">Vorname</label> + <div class="col-sm-9"> + <input type="text" name="firstname" class="form-control" id="firstname" placeholder="" value="<?= $guest['firstname'];?>" maxlength="50"> + </div> + </div> + <div class="form-group"> + <label for="town" class="col-sm-2 control-label">Nachname</label> + <div class="col-sm-9"> + <input type="text" name="lastname" class="form-control" id="lastname" placeholder="" value="<?= $guest['lastname'];?>" maxlength="50"> + </div> + </div> + <div class="form-group"> + <label for="street" class="col-sm-2 control-label">Straße</label> + <div class="col-sm-9"> + <input type="text" name="street" class="form-control" id="street" placeholder="" value="<?= $guest['street'];?>" maxlength="50"> + </div> + </div> + <div class="form-group"> + <label for="zip" class="col-sm-2 control-label">Postleitzahl</label> + <div class="col-sm-9"> + <input type="text" name="zip" class="form-control" id="zip" placeholder="" value="<?= $guest['zip'];?>" maxlength="10"> + </div> + </div> + <div class="form-group"> + <label for="town" class="col-sm-2 control-label">Ort</label> + <div class="col-sm-9"> + <input type="text" name="town" class="form-control" id="town" placeholder="" value="<?= $guest['town'];?>" maxlength="50"> + </div> + </div> + <div class="form-group"> + <label for="birthday" class="col-sm-2 control-label">Geburtstag</label> + <div class="col-sm-9"> + <div class="input-group date"> + <div class="input-group-addon"><i class="fa fa-calendar"></i></div> + <input type="text" class="form-control pull-right datepicker" id="datepicker" name="birthday" data-provide="datepicker" data-date-format="dd.mm.yyyy" value="<?= date_to_german($guest['birthday']);?>"> + </div> + </div> + </div> + <div class="form-group"> + <label for="town" class="col-sm-2 control-label">Telefon</label> + <div class="col-sm-9"> + <input type="text" name="phone" class="form-control" id="phone" placeholder="" value="<?= $guest['phone'];?>" maxlength="50"> + </div> + </div> + <div class="form-group"> + <label for="town" class="col-sm-2 control-label">eMail</label> + <div class="col-sm-9"> + <input type="text" name="email" class="form-control" id="email" placeholder="" value="<?= $guest['email'];?>" maxlength="50"> + </div> + </div> + <div class="form-group"> + <label for="club" class="col-sm-2 control-label">Verein</label> + <div class="col-sm-9"> + <select name="club" class="form-control"> + <option value="" <?php if($guest['club'] == null) { echo " selected"; } ?>>- Kein Verein -</option> + <?php foreach($clubs as $club): ?> + <option value="<?= $club['id']; ?>"<?php if($club['id'] == $guest['club']) { echo " selected"; } ?>><?= $club['name']; ?></option> + <?php endforeach; ?> + </select> + </div> + </div> + <div class="form-group"> + <label for="insurance_number" class="col-sm-2 control-label">Versicherungs Nummer</label> + <div class="col-sm-9"> + <input type="text" name="insurance_number" class="form-control" id="insurance_number" placeholder="" value="<?= $guest['insurance_number'];?>" maxlength="50"> + </div> + </div> + <div class="form-group"> + <label for="invitation" class="col-sm-2 control-label">Einladen?</label> + <div class="col-sm-9"> + <input type="checkbox" class="icheckbox_square-green" id="invitation" name="invitation" <?php if($guest['invitation']) { echo " checked"; } ?>> + </div> + </div> + <div class="form-group"> + <div class="col-md-11"> + <input type="submit" name="submit" value="Speichern" class="btn btn-info pull-right"> + </div> + </div> + <?php echo form_close( ); ?> + + <div class="form-group"> + + <div class="box-body no-padding"> + <table class="table"> + <tr> + <th colspan="2">Veranstaltungen besucht</th> + </tr> + <?php foreach($visits as $visit) { ?> + <tr> + <td><?=$visit['event'].' '.$visit['date']?></td> + </tr> + <?php } ?> + </table> + </div> + </div> + </div> + </div> + </div> + </div> +</section> + +<script src="<?= base_url() ?>public/plugins/datepicker/bootstrap-datepicker.js"></script> +<script src="<?= base_url() ?>public/plugins/iCheck/icheck.js"></script> +<script> + $('#datepicker').datepicker({}) +</script> \ No newline at end of file diff --git a/application/views/admin/guests/guests_list.php b/application/views/admin/guests/guests_list.php index 68c4895835ee7d25d4a058b573a1850ab2b481f0..e6c62d3365f8fc585c31b65937ab64c7a3eddfc7 100644 --- a/application/views/admin/guests/guests_list.php +++ b/application/views/admin/guests/guests_list.php @@ -23,6 +23,8 @@ <th>Geburtstag</th> <th>Email</th> <th>Verein</th> + <th>Besuche</th> + <th>Optionen</th> </tr> </thead> <tbody> @@ -36,6 +38,10 @@ <td><?= date_to_german($row['birthday']); ?></td> <td><?= $row['email']; ?></td> <td><?= $row['club']; ?></td> + <td><?= $row['visits']; ?></td> + <td class="text-right"> + <a href="<?= base_url('admin/guests/edit/'.$row['guests_id']); ?>" class="btn btn-danger btn-flat btn-xs"><i class="fa fa-edit"></i></a> + </td> </tr> <?php endforeach; ?> </tbody> @@ -44,22 +50,38 @@ </div> </section> -<script src="<?= base_url() ?>public/plugins/datatables/jquery.dataTables.min.js"></script> -<script src="<?= base_url() ?>public/plugins/datatables/dataTables.bootstrap.min.js"></script> -<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script> -<script src="//cdn.datatables.net/plug-ins/1.10.16/sorting/datetime-moment.js"></script> - +<script type="text/javascript" src="https://cdn.datatables.net/r/bs/jszip-2.5.0,pdfmake-0.1.18,dt-1.10.9,b-1.0.3,b-html5-1.0.3,b-print-1.0.3/datatables.min.js"></script> <script> $(function () { - $.fn.dataTable.moment( 'DD.MM.YYYY' ); - $("#example1").DataTable({ - "language": { - "url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json" + var example1 = $("#example1").DataTable({ + responsive: true, + lengthMenu: [[10, 25, 50, 100, -1], [10, 25, 50, 100, "Alle"]], + buttons: ['excelHtml5', 'pdfHtml5'], + language: { + "sEmptyTable": "Keine Daten in der Tabelle vorhanden", + "sInfo": "_START_ bis _END_ von _TOTAL_ Einträgen", + "sInfoEmpty": "0 bis 0 von 0 Einträgen", + "sInfoFiltered": "(gefiltert von _MAX_ Einträgen)", + "sInfoPostFix": "", + "sInfoThousands": ".", + "sLengthMenu": "_MENU_ Einträge anzeigen", + "sLoadingRecords": "Wird geladen...", + "sProcessing": "Bitte warten...", + "sSearch": "Suchen", + "sZeroRecords": "Keine Einträge vorhanden.", + "oPaginate": { + "sFirst": "Erste", + "sPrevious": "Zurück", + "sNext": "Nächste", + "sLast": "Letzte" + }, + "oAria": { + "sSortAscending": ": aktivieren, um Spalte aufsteigend zu sortieren", + "sSortDescending": ": aktivieren, um Spalte absteigend zu sortieren" + } } }); + example1.buttons().container().appendTo($('.col-sm-6:eq(0)', example1.table().container())); }); -</script> - -<script> $("#guests_list").addClass('active'); </script> \ No newline at end of file diff --git a/application/views/admin/guests/guests_visit_add.php b/application/views/admin/guests/guests_visit_add.php new file mode 100644 index 0000000000000000000000000000000000000000..366a04e920e1ecd783cb5ede90752183475c7133 --- /dev/null +++ b/application/views/admin/guests/guests_visit_add.php @@ -0,0 +1,57 @@ +<link rel="stylesheet" href="<?= base_url() ?>public/plugins/bootstrap-datepicker/css/datepicker.css"> +<link rel="stylesheet" href="<?= base_url() ?>public/plugins/iCheck/square/_all.css"> +<link href="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.2/jquery-ui.css" rel="stylesheet"/> + +<section class="content"> + <div class="row"> + <div class="col-md-12"> + <div class="box box-body with-border"> + <div class="col-md-6"> + <h4><i class="fa fa-plus"></i> Gastpilot hinzufügen zu <?=$event?></h4> + </div> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <div class="box border-top-solid"> + <div class="box-body my-form-body"> + <?php echo form_open(base_url('admin/guests/visit_add_do/'.$event), 'class="form-horizontal"'); ?> + <div class="form-group"> + <div class="col-md-6"> + <label for="guests">Gast: </label> + <input class="form-control autocomplete" id="guests_label" name="guests_label"> + <input type="hidden" name="guests_id" id="guests_id"> + </div> + </div> + <div class="form-group"> + <div class="col-md-6"> + <input type="submit" name="submit" value="Besuch hinzufügen" class="btn btn-info pull-right" maxlength="25"> + </div> + </div> + <?php echo form_close( ); ?> + </div> + </div> + </div> + </div> +</section> + +<script src="<?= base_url() ?>public/plugins/datepicker/bootstrap-datepicker.js"></script> +<script src="<?= base_url() ?>public/plugins/iCheck/icheck.js"></script> +<script> + $('#datepicker').datepicker({}); + $( function() { + var availableGuests = <?=$guests?>; + $( ".autocomplete" ).autocomplete({ + source: availableGuests, + select: function (event, ui) { + $("#guests_label").val(ui.item.label); // display the selected text + $("#guests_id").val(ui.item.id); // save selected id to hidden input + } + }); + } ); +</script> + +<script> + $("#guests_visit_add").addClass('active'); +</script> \ No newline at end of file diff --git a/application/views/admin/guests/guests_visit_add_event.php b/application/views/admin/guests/guests_visit_add_event.php new file mode 100644 index 0000000000000000000000000000000000000000..6447f95e8248d8283599492cbdf278a9fa42ff30 --- /dev/null +++ b/application/views/admin/guests/guests_visit_add_event.php @@ -0,0 +1,39 @@ +<link rel="stylesheet" href="<?= base_url() ?>public/plugins/bootstrap-datepicker/css/datepicker.css"> +<link rel="stylesheet" href="<?= base_url() ?>public/plugins/iCheck/square/_all.css"> + +<section class="content"> + <div class="row"> + <div class="col-md-12"> + <div class="box box-body with-border"> + <div class="col-md-6"> + <h4><i class="fa fa-plus"></i> Gastpilot hinzufügen</h4> + </div> + </div> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <div class="box border-top-solid"> + <div class="box-body my-form-body"> + <?php echo form_open(base_url('admin/guests/visit_add/'), 'class="form-horizontal"'); ?> + <div class="form-group"> + <label for="event">Veranstaltung: </label> + <input class="form-control" id="event" name="event"> + </div> + <div class="form-group"> + <div class="col-md-11"> + <input type="submit" name="submit" value="Weiter zu den Gästen" class="btn btn-info pull-right"> + </div> + </div> + <?php echo form_close( ); ?> + </div> + </div> + </div> + </div> +</section> + +<script src="<?= base_url() ?>public/plugins/datepicker/bootstrap-datepicker.js"></script> +<script src="<?= base_url() ?>public/plugins/iCheck/icheck.js"></script> +<script> + $("#guests_visit_add").addClass('active'); +</script> \ No newline at end of file diff --git a/application/views/admin/include/sidebar.php b/application/views/admin/include/sidebar.php index 7b10f38c3f659b1ef3148791f39fc313bfd33d4e..cc180262d5626d063c075ebf0c56e1a8def3a360 100644 --- a/application/views/admin/include/sidebar.php +++ b/application/views/admin/include/sidebar.php @@ -26,22 +26,22 @@ $cur_tab = $this->uri->segment(2)==''?'dashboard': $this->uri->segment(2); </span> </a> <ul class="treeview-menu"> - <li id="members_add"><a href="<?= base_url('admin/members/add'); ?>"><i class="fa fa-circle-o"></i> Mitglied hinzufügen</a></li> - <li id="view_members_member" class=""><a href="<?= base_url('admin/members/list_member/1'); ?>"><i class="fa fa-circle-o"></i> Mitglieder anzeigen</a></li> - <li id="view_members_withdrawl" class=""><a href="<?= base_url('admin/members/list_member/4'); ?>"><i class="fa fa-circle-o"></i> Ausgetretene Mitglieder</a></li> - <li id="view_members_died" class=""><a href="<?= base_url('admin/members/list_member/5'); ?>"><i class="fa fa-circle-o"></i> Verstorbene Mitglieder</a></li> + <li id="members_add"><a href="<?= base_url('admin/members/add'); ?>"><i class="fa fa-plus"></i> Mitglied hinzufügen</a></li> + <li id="view_members_member" class=""><a href="<?= base_url('admin/members/list_member/1'); ?>"><i class="fa fa-wheelchair"></i> Mitglieder anzeigen</a></li> + <li id="view_members_withdrawl" class=""><a href="<?= base_url('admin/members/list_member/4'); ?>"><i class="fab fa-accessible-icon"></i> Ausgetretene Mitglieder</a></li> + <li id="view_members_died" class=""><a href="<?= base_url('admin/members/list_member/5'); ?>"><i class="fa fa-user-md"></i> Verstorbene Mitglieder</a></li> </ul> </li> <li id="keys" class="treeview"> <a href="#"> <i class="fa fa-key"></i> <span>Schlüssel</span> <span class="pull-right-container"> - <i class="fa fa-angle-left pull-right"></i> - </span> + <i class="fa fa-angle-left pull-right"></i> + </span> </a> <ul class="treeview-menu"> - <!--<li id="keys_add"><a href="<?= base_url('admin/keys/add'); ?>"><i class="fa fa-circle-o"></i> Schlüssel hinzufügen</a></li>--> - <li id="keys_list" class=""><a href="<?= base_url('admin/keys'); ?>"><i class="fa fa-circle-o"></i> Schlüssel anzeigen</a></li> + <li id="keys_add"><a href="<?= base_url('admin/keys/add'); ?>"><i class="fa fa-plus"></i> Schlüssel hinzufügen</a></li> + <li id="keys_list" class=""><a href="<?= base_url('admin/keys'); ?>"><i class="fa fa-key"></i> Schlüssel anzeigen</a></li> </ul> </li> <li id="guests" class="treeview"> @@ -52,9 +52,21 @@ $cur_tab = $this->uri->segment(2)==''?'dashboard': $this->uri->segment(2); </span> </a> <ul class="treeview-menu"> - <li id="guests_add" class=""><a href="<?= base_url('admin/guests/add'); ?>"><i class="fa fa-circle-o"></i> Gast hinzufügen</a></li> + <li id="guests_add" class=""><a href="<?= base_url('admin/guests/add'); ?>"><i class="fa fa-plus"></i> Gast hinzufügen</a></li> <li id="guests_list" class=""><a href="<?= base_url('admin/guests'); ?>"><i class="fa fa-address-book"></i> Gäste anzeigen</a></li> - <li id="guests_clubs_list" class=""><a href="<?= base_url('admin/guests/clubs_list'); ?>"><i class="fa fa-map-marker"></i> Vereine anzeigen</a></li> + <li id="guests_visit_add" class=""><a href="<?= base_url('admin/guests/visit_add'); ?>"><i class="fa fa-user-plus"></i> Besuch erfassen</a></li> + </ul> + </li> + <li id="clubs" class="treeview"> + <a href="#"> + <i class="fa fa-map-marker"></i> <span>Vereine</span> + <span class="pull-right-container"> + <i class="fa fa-angle-left pull-right"></i> + </span> + </a> + <ul class="treeview-menu"> + <li id="clubs_add" class=""><a href="<?= base_url('admin/clubs/add'); ?>"><i class="fa fa-plus"></i> Verein hinzufügen</a></li> + <li id="clubs_list" class=""><a href="<?= base_url('admin/clubs'); ?>"><i class="fa fa-map-marker"></i> Vereine anzeigen</a></li> </ul> </li> <li id="reports" class="treeview"> @@ -66,6 +78,8 @@ $cur_tab = $this->uri->segment(2)==''?'dashboard': $this->uri->segment(2); </a> <ul class="treeview-menu"> <li id="reports_birthdays" class=""><a href="<?= base_url('admin/reports/birthdays'); ?>"><i class="fa fa-birthday-cake"></i> Geburtstage</a></li> + <li id="reports_joined_anniversary" class=""><a href="<?= base_url('admin/reports/joined_anniversary'); ?>"><i class="fa fa-birthday-cake"></i> Vereinszugehörigkeit</a></li> + <li id="reports_history" class=""><a href="<?= base_url('admin/reports/history'); ?>"><i class="fa fa-eye"></i> Änderungs Historie</a></li> </ul> </li> </section> diff --git a/application/views/admin/keys/keys_add.php b/application/views/admin/keys/keys_add.php index 63c8d3e9c7a1a2fc0ebf7be62358c60bb42addaa..85b17ecaa0942e8888b34decddbef58ae88db87d 100644 --- a/application/views/admin/keys/keys_add.php +++ b/application/views/admin/keys/keys_add.php @@ -1,15 +1,9 @@ -<script src="<?= base_url() ?>public/plugins/datepicker/bootstrap-datepicker.js"></script> -<link rel="stylesheet" href="<?= base_url() ?>public/plugins/bootstrap-datepicker/css/datepicker.css"> -<script> - $('#datepicker').datepicker({}) -</script> - <section class="content"> <div class="row"> <div class="col-md-12"> <div class="box box-body with-border"> <div class="col-md-6"> - <h4><i class="fa fa-plus"></i> Mitglied hinzufügen</h4> + <h4><i class="fa fa-plus"></i> Schlüssel hinzufügen</h4> </div> </div> </div> @@ -17,125 +11,21 @@ <div class="row"> <div class="col-md-12"> <div class="box border-top-solid"> - <!-- /.box-header --> - <!-- form start --> <div class="box-body my-form-body"> - <?php echo form_open(base_url('admin/members/add'), 'class="form-horizontal"'); ?> + <?php echo form_open(base_url('admin/keys/add'), 'class="form-horizontal"'); ?> <div class="form-group"> - <label for="firstname" class="col-sm-2 control-label">Vorname</label> - + <label for="key_number" class="col-sm-2 control-label">Schlüssel Nummer</label> <div class="col-sm-9"> - <input type="text" name="firstname" class="form-control" id="firstname" placeholder=""> + <input type="text" name="key_number" class="form-control" id="key_number" placeholder=""> </div> </div> - - <div class="form-group"> - <label for="lastname" class="col-sm-2 control-label">Nachname</label> - - <div class="col-sm-9"> - <input type="text" name="lastname" class="form-control" id="lastname" placeholder=""> - </div> - </div> - - <div class="form-group"> - <label for="street" class="col-sm-2 control-label">Straße</label> - - <div class="col-sm-9"> - <input type="text" name="street" class="form-control" id="street" placeholder=""> - </div> - </div> - <div class="form-group"> - <label for="zip" class="col-sm-2 control-label">Postleitzahl</label> - - <div class="col-sm-9"> - <input type="text" name="zip" class="form-control" id="zip" placeholder=""> - </div> - </div> - <div class="form-group"> - <label for="town" class="col-sm-2 control-label">Ort</label> - - <div class="col-sm-9"> - <input type="text" name="town" class="form-control" id="town" placeholder=""> - </div> - </div> - <div class="form-group"> - <label for="birthday" class="col-sm-2 control-label">Geburtstag</label> - - <div class="col-sm-9"> - <div class="input-group date"> - <div class="input-group-addon"><i class="fa fa-calendar"></i></div> - <input type="text" class="form-control pull-right datepicker" id="datepicker" name="birthday" data-provide="datepicker" data-date-format="dd.mm.yyyy"> - </div> - </div> - </div> - <div class="form-group"> - <label for="joined" class="col-sm-2 control-label">Eintritt</label> - - <div class="col-sm-9"> - <div class="input-group date"> - <div class="input-group-addon"><i class="fa fa-calendar"></i></div> - <input type="text" class="form-control pull-right datepicker" id="datepicker" name="joined" data-provide="datepicker" data-date-format="dd.mm.yyyy"> - </div> - </div> - </div> - <div class="form-group"> - <label for="withdrawal" class="col-sm-2 control-label">Austritt</label> - - <div class="col-sm-9"> - <div class="input-group date"> - <div class="input-group-addon"><i class="fa fa-calendar"></i></div> - <input type="text" class="form-control pull-right datepicker" id="datepicker" name="withdrawal" data-provide="datepicker" data-date-format="dd.mm.yyyy"> - </div> - </div> - </div> - <div class="form-group"> - <label for="insurance_type" class="col-sm-2 control-label">Versicherungs Typ</label> - - <div class="col-sm-9"> - <select name="insurance_type_id" class="form-control"> - <?php foreach($insurance_types as $insurance_type): ?> - <option value="<?= $insurance_type['id']; ?>"><?= $insurance_type['insurance_type_name']; ?></option> - <?php endforeach; ?> - </select> - </div> - </div> - <div class="form-group"> - <label for="insurance_number" class="col-sm-2 control-label">Versicherungs Nummer</label> - - <div class="col-sm-9"> - <input type="text" name="insurance_number" class="form-control" id="insurance_number" placeholder=""> - </div> - </div> - <div class="form-group"> - <label for="role" class="col-sm-2 control-label">Amt im Verein</label> - - <div class="col-sm-9"> - <select name="club_function_id" class="form-control"> - <?php foreach($club_functions as $function): ?> - <option value="<?= $function['id']; ?>"><?= $function['club_function_name']; ?></option> - <?php endforeach; ?> - </select> - </div> - </div> - <div class="form-group"> - <label for="role" class="col-sm-2 control-label">Mitgliedschaft</label> - - <div class="col-sm-9"> - <select name="member_type_id" class="form-control"> - <?php foreach($member_types as $member_type): ?> - <option value="<?= $member_type['id']; ?>"><?= $member_type['member_type_name']; ?></option> - <?php endforeach; ?> - </select> - </div> - </div> <div class="form-group"> <div class="col-md-11"> - <input type="submit" name="submit" value="Mitglied hinzufügen" class="btn btn-info pull-right"> + <input type="submit" name="submit" value="Schlüssel hinzufügen" class="btn btn-info pull-right"> </div> </div> <?php echo form_close( ); ?> </div> - <!-- /.box-body --> </div> </div> </div> diff --git a/application/views/admin/keys/keys_list.php b/application/views/admin/keys/keys_list.php index 0f3539c23ca09b4e932117de2d5f68874d1d78c3..19e5284adbb8ebc7981d35ab9a9804282c52c549 100644 --- a/application/views/admin/keys/keys_list.php +++ b/application/views/admin/keys/keys_list.php @@ -18,6 +18,7 @@ <th>Nummer</th> <th>Besitzer</th> <th>Ausgabe Datum</th> + <th>Notizen</th> <th style="width: 100px;" class="text-right">Optionen</th> </tr> </thead> @@ -27,8 +28,9 @@ <td><?= $row['key_number']; ?></td> <td><?= $row['firstname'].' '.$row['lastname'];; ?></td> <td><?= date_to_german($row['key_distribution']); ?></td> + <td><?= $row['key_note']; ?></td> <td class="text-right"> - <button type="button" class="btn btn-danger btn-sm key_edit" data-toggle="modal" data-target="#key_edit" data-memberid="<?= $row['member_id']?>" data-keyid="<?= $row['key_number']?>"><i class="fa fa-edit"></i></button> + <button type="button" class="btn btn-danger btn-sm key_edit" data-toggle="modal" data-target="#key_edit" data-key_note="<?= $row['key_note']?>" data-memberid="<?= $row['member_id']?>" data-keyid="<?= $row['key_number']?>"><i class="fa fa-edit"></i></button> </td> </tr> <?php endforeach; ?> @@ -64,6 +66,9 @@ <input type="text" class="form-control pull-right" id="key_distribution" name="key_distribution" data-date-format="dd.mm.yyyy"> </div> </div> + <div class="form-group"> + <input type="text" class="form-control" name="key_note" id="key_note" data-cip-id="key_note" /> + </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Abbruch</button> <button type="submit" class="btn btn-success">Speichern</button> @@ -94,11 +99,13 @@ var button = $(event.relatedTarget); var keyid = button.data('keyid'); var memberid = button.data('memberid'); + var key_note = button.data('key_note'); var modal = $(this); //modal.find('.key_distribution').datepicker(); modal.find('.modal-body select').val(memberid); modal.find('.modal-body #keyid').val(keyid); + modal.find('.modal-body #key_note').val(key_note); }); </script> diff --git a/application/views/admin/members/member_add.php b/application/views/admin/members/member_add.php index 6208b517c1c252d48b11f8855aaec5923066e89f..e41e04577a3f336373ce6d92896b05b4b71748a0 100644 --- a/application/views/admin/members/member_add.php +++ b/application/views/admin/members/member_add.php @@ -124,6 +124,12 @@ <input type="checkbox" class="icheckbox_square-green" id="flight_manager" name="flight_manager"> </div> </div> + <div class="form-group"> + <label for="members_note" class="col-sm-2 control-label">Notizen</label> + <div class="col-sm-9"> + <textarea class="form-control" rows="5" name="members_note" class="form-control" id="members_note" placeholder="" value=""></textarea> + </div> + </div> <div class="form-group"> <div class="col-md-11"> <input type="submit" name="submit" value="Mitglied hinzufügen" class="btn btn-info pull-right"> diff --git a/application/views/admin/members/member_edit.php b/application/views/admin/members/member_edit.php index b28c5a42f0150b2262d0311e12e80d6df0364c41..ee37365b81b8fd724b6c5b0afcec59504e6c651a 100644 --- a/application/views/admin/members/member_edit.php +++ b/application/views/admin/members/member_edit.php @@ -126,6 +126,12 @@ <input type="checkbox" class="icheckbox_square-green" id="flight_manager" name="flight_manager" <?php if($member_data['flight_manager']) { echo " checked"; } ?>> </div> </div> + <div class="form-group"> + <label for="members_note" class="col-sm-2 control-label">Notizen</label> + <div class="col-sm-9"> + <textarea class="form-control" rows="5" name="members_note" class="form-control" id="members_note" placeholder="" value="<?= $member_data['members_note'];?>"></textarea> + </div> + </div> <div class="form-group"> <div class="col-md-11"> <input type="submit" name="submit" value="Speichern" class="btn btn-info pull-right"> @@ -143,4 +149,4 @@ <script src="<?= base_url() ?>public/plugins/iCheck/icheck.js"></script> <script> $('#datepicker').datepicker({}) -</script> +</script> \ No newline at end of file diff --git a/application/views/admin/members/member_list.php b/application/views/admin/members/member_list.php index 1d61f8ee7ef602efaa2e42a3d2d3da3957ba6637..d8b78f736b83b974c1c2fe8032cef1bd16758874 100644 --- a/application/views/admin/members/member_list.php +++ b/application/views/admin/members/member_list.php @@ -7,19 +7,10 @@ <div class="col-md-6"> <h4><i class="fa fa-wheelchair"></i> Mitglieder</h4> </div> - <!-- - <div class="col-md-6 text-right"> - <div class="btn-group margin-bottom-20"> - <a href="<?= base_url('admin/member/create_users_pdf'); ?>" class="btn btn-success">Export as PDF</a> - <a href="<?= base_url('admin/member/export_csv'); ?>" class="btn btn-success">Export as CSV</a> - </div> - </div> - --> </div> </div> </div> <div class="box border-top-solid"> - <!-- /.box-header --> <div class="box-body table-responsive"> <table id="example1" class="table table-bordered table-striped "> <thead> @@ -58,15 +49,11 @@ </table> </div> - <!-- /.box-body --> </div> - <!-- /.box --> -</section> +</section> -<!-- Modal --> <div id="confirm-delete" class="modal fade" role="dialog"> <div class="modal-dialog"> - <!-- Modal content--> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">×</button> @@ -83,27 +70,45 @@ </div> </div> -<script src="<?= base_url() ?>public/plugins/datatables/jquery.dataTables.min.js"></script> -<script src="<?= base_url() ?>public/plugins/datatables/dataTables.bootstrap.min.js"></script> -<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script> -<script src="//cdn.datatables.net/plug-ins/1.10.16/sorting/datetime-moment.js"></script> +<script type="text/javascript" src="https://cdn.datatables.net/r/bs/jszip-2.5.0,pdfmake-0.1.18,dt-1.10.9,b-1.0.3,b-html5-1.0.3,b-print-1.0.3/datatables.min.js"></script> -<script> - $(function () { - $.fn.dataTable.moment( 'DD.MM.YYYY' ); - $("#example1").DataTable({ - "language": { - "url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json" - } - }); - }); -</script> <script type="text/javascript"> $('#confirm-delete').on('show.bs.modal', function(e) { $(this).find('.btn-ok').attr('href', $(e.relatedTarget).data('href')); }); </script> - + <script> + $(function () { + var example1 = $("#example1").DataTable({ + responsive: true, + lengthMenu: [[10, 25, 50, 100, -1], [10, 25, 50, 100, "Alle"]], + buttons: ['excelHtml5', 'pdfHtml5'], + language: { + "sEmptyTable": "Keine Daten in der Tabelle vorhanden", + "sInfo": "_START_ bis _END_ von _TOTAL_ Einträgen", + "sInfoEmpty": "0 bis 0 von 0 Einträgen", + "sInfoFiltered": "(gefiltert von _MAX_ Einträgen)", + "sInfoPostFix": "", + "sInfoThousands": ".", + "sLengthMenu": "_MENU_ Einträge anzeigen", + "sLoadingRecords": "Wird geladen...", + "sProcessing": "Bitte warten...", + "sSearch": "Suchen", + "sZeroRecords": "Keine Einträge vorhanden.", + "oPaginate": { + "sFirst": "Erste", + "sPrevious": "Zurück", + "sNext": "Nächste", + "sLast": "Letzte" + }, + "oAria": { + "sSortAscending": ": aktivieren, um Spalte aufsteigend zu sortieren", + "sSortDescending": ": aktivieren, um Spalte absteigend zu sortieren" + } + } + }); + example1.buttons().container().appendTo($('.col-sm-6:eq(0)', example1.table().container())); + }); $("#view_members_<?= $menu_class?>").addClass('active'); </script> \ No newline at end of file diff --git a/application/views/admin/members/member_view.php b/application/views/admin/members/member_view.php index ad6dd23aa448e643320d9de00a5187b827cd4dbe..77d0755266904497c9de8e1cbc420ec376096184 100644 --- a/application/views/admin/members/member_view.php +++ b/application/views/admin/members/member_view.php @@ -68,20 +68,28 @@ </div> <?php } ?> - <?php if($user['knowledge_proof']) { ?> - <div class="form-group"> - <div class="col-sm-4">Kenntnisnachweis</div> - <div class="col-sm-8"><?= date_to_german($user['knowledge_proof']); ?></div> - </div> + <?php if($user['knowledge_proof'] != '' && $user['knowledge_proof'] != '0000-00-00') { ?> + <div class="form-group"> + <div class="col-sm-4">Kenntnisnachweis</div> + <div class="col-sm-8"><?= date_to_german($user['knowledge_proof']); ?></div> + </div> <?php } ?> - <?php if($user['flight_manager']) { ?> - <div class="form-group"> - <div class="col-sm-4">Flugleiter Schulung</div> - <div class="col-sm-8">Ja</div> - </div> + <?php if($user['flight_manager'] != '') { ?> + <div class="form-group"> + <div class="col-sm-4">Flugleiter Schulung</div> + <div class="col-sm-8">Ja</div> + </div> <?php } ?> </div> + <?php if($user['members_note'] != '') { ?> + <div class="box-body my-form-body"> + <h3>Notizen</h3> + <div class="form-group"> + <div class="col-sm-8"><?= $user['members_note']; ?></div> + </div> + </div> + <?php } ?> <div class="box-body my-form-body"> <h3>Kontaktdaten <button style="display: <?= $button_visibility ?>;" type="button" class="btn btn-success btn-sm contact_add" data-toggle="modal" data-target="#contact_add">+</button></h3> <?php foreach ($contact AS $condata) { ?> @@ -90,7 +98,7 @@ <div class="col-sm-6"> <button style="display: <?= $button_visibility ?>;" type="button" class="btn btn-info btn-sm contact_edit" data-toggle="modal" data-target="#contact_edit" data-contactid="<?= $condata['id']?>" data-contactvalue="<?= $condata['value']?>" data-contact_type_id="<?= $condata['contact_type_id']?>"><i class="fa fa-edit"></i></button> <button style="display: <?= $button_visibility ?>;" type="button" class="btn btn-danger btn-sm contact_delete" data-toggle="modal" data-target="#contact_delete" data-contactid="<?= $condata['id']?>"><i class="fa fa-trash"></i></button> - <?= $condata['value']; ?></div> + <?= $condata['value']; ?></div> </div> <?php } ?> </div> diff --git a/application/views/admin/reports/history.php b/application/views/admin/reports/history.php new file mode 100644 index 0000000000000000000000000000000000000000..08ea9d3998aedb2d3945fe97acd6ebbe877e2e4a --- /dev/null +++ b/application/views/admin/reports/history.php @@ -0,0 +1,59 @@ +<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/r/bs/jszip-2.5.0,pdfmake-0.1.18,dt-1.10.9,b-1.0.3,b-html5-1.0.3,b-print-1.0.3/datatables.min.css" /> + +<section class="content"> + <div class="row"> + <div class="col-md-12"> + <div class="box box-body"> + <div class="col-md-6"> + <h4><i class="fa fa-eye"></i> Änderungs Historie</h4> + </div> + </div> + </div> + </div> + <div class="box border-top-solid"> + <div class="box-body table-responsive"> + <table id="example1" class="table table-bordered table-striped "> + <thead> + <tr> + <th>Datum</th> + <th>Benutzer</th> + <th>Änderung</th> + <th>Tabelle</th> + <th>Datensatz</th> + </tr> + </thead> + <tbody> + <?php foreach($history as $row): ?> + <tr> + <td><?=datetime_to_german($row['timestamp'])?></td> + <td><?=$row['firstname'].' '.$row['lastname']?></td> + <td><?=$row['action']?></td> + <td><?=$row['table_name']?></td> + <td><?='('.$row['table_id'].')'?></td> + </tr> + <?php endforeach; ?> + </tbody> + </table> + </div> + </div> +</section> + + +<script src="<?= base_url() ?>public/plugins/datatables/jquery.dataTables.min.js"></script> +<script src="<?= base_url() ?>public/plugins/datatables/dataTables.bootstrap.min.js"></script> +<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script> +<script src="//cdn.datatables.net/plug-ins/1.10.16/sorting/datetime-moment.js"></script> + +<script> + $(function () { + $.fn.dataTable.moment( 'DD.MM.YYYY HH:mm' ); + $("#example1").DataTable({ + "language": { + "url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json" + }, + "order": [[ 0, "desc" ]], + "lengthMenu": [[25, 50, -1], [25, 50, "All"]] + }); + }); + $("#reports_history").addClass('active'); +</script> \ No newline at end of file diff --git a/application/views/admin/reports/joined_anniversary.php b/application/views/admin/reports/joined_anniversary.php new file mode 100644 index 0000000000000000000000000000000000000000..fa531afa936a02e03f4572db55aae2b6effe6c0b --- /dev/null +++ b/application/views/admin/reports/joined_anniversary.php @@ -0,0 +1,31 @@ +<section class="content"> + <div class="row"> + <div class="col-md-12"> + <div class="box box-body"> + <div class="col-md-6"> + <h4><i class="fas fa-birthday-cake"></i> Vereinszugehörigkeit</h4> + </div> + </div> + </div> + </div> + <table id="example1" class="table table-bordered table-striped "> + <tr> + <th></th> + <th>Name</th> + <th>Eintritt</th> + <th>Zugehörigkeit</th> + </tr> + <?php foreach ($anniversary as $row) { ?> + <tr> + <td></td> + <td><?= $row['firstname'].' '.$row['lastname']; ?></td> + <td><?= date_to_german($row['joined']); ?></td> + <td><?= $row['age']; ?></td> + </tr> + <?php } ?> + </table> +</section> + +<script> + $("#reports_joined_anniversary").addClass('active'); +</script> \ No newline at end of file diff --git a/public/dist/css/style.css b/public/dist/css/style.css index 20512094c74f196cd91bd812f025df484cf69f6f..31cbb3a1982616f747bfa69b1a8b78e5fdfadd99 100644 --- a/public/dist/css/style.css +++ b/public/dist/css/style.css @@ -1,6 +1,6 @@ /* Import fonts */ -@import url(http://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic); +@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic); body { color: #3e3e3e;