//parent::__construct(false, false);
}
+ private function getAreas(){
+ $sql = "SELECT * FROM " . GLM_MEMBERS_COUNTY_MAP_PLUGIN_DB_PREFIX . 'areas';
+ return $this->wpdb->get_results($sql);
+ }
function write_log ( $log ) {
if ( true === WP_DEBUG ) {
if ( is_array( $log ) || is_object( $log ) ) {
public function modelAction ($actionData = false)
{
global $wpdb;
- $option = filter_var($_REQUEST['option'], FILTER_SANITIZE_STRING);
- $numbObits = 0;
- $namesList = false;
- $areas = false;
- $test = "start";
+ $option = filter_var($_REQUEST['option'], FILTER_SANITIZE_STRING);
+ $numbObits = 0;
+ $namesList = false;
+ $areas = false;
+ $test = "start";
+ $area_name = false;
+ $page_id = false;
+
// Check if an ID is supplied
$id = 0;
if ( isset( $_REQUEST['id'] ) ) {
switch( $option ) {
case 'add':
- $return = $this->insertEntry();
- $id = $return['fieldData']['id'];
+
+ $area_name = filter_var($_REQUEST['area_name'], FILTER_SANITIZE_STRING);
+ $page_id = (isset($_REQUEST['page_id'])) ? filter_var($_REQUEST['page_id'], FILTER_SANITIZE_STRING) : 0;
+ $hover_color = filter_var($_REQUEST['hover_color'], FILTER_SANITIZE_URL);
+ $this->wpdb->insert(
+ GLM_MEMBERS_COUNTY_MAP_PLUGIN_DB_PREFIX . 'areas',
+ array(
+ 'area_name' => $area_name,
+ 'page_id' => $page_id,
+ 'hover_color' => $hover_color,
+ ),
+ array(
+ '%s',
+ '%d',
+ '%s'
+ )
+ );
+ $areas = $this->getAreas();
break;
case 'update':
case 'delete':
if ( $id > 0 ) {
- $this->deleteEntry( $id, true );
+ $test = $id;
+ $wpdb->delete(
+ GLM_MEMBERS_COUNTY_MAP_PLUGIN_DB_PREFIX . 'areas', // table to delete from
+ array(
+ 'id' => $id // value in column to target for deletion
+ ),
+ array(
+ '%d' // format of value being targeted for deletion
+ )
+ );
+ $areas = $this->getAreas();
}
break;
case 'list':
- $areas = $this->getList();
+ $areas = $this->getAreas();
+
break;
default:
}
}
$data['list'] = $areas;
- $data['test'] = $this->wpdb->insert_id;
// Get number of obits
$return = array(
- 'searchData' => $data // Where our events list will go
+ 'areas' => $data,
+ 'test' => $test // Where our events list will go
);
header('Content-type:application/json;charset=utf-8', true);
GLM_MEMBERS_PLUGIN_VERSION
);
$args = array(
- 'sort_order' => 'asc',
- 'sort_column' => 'post_title',
- 'hierarchical' => 0,
- 'post_type' => 'page',
- 'post_status' => 'publish'
+ 'sort_order' => 'asc',
+ 'sort_column' => 'post_title',
+ 'hierarchical' => 0,
+ 'post_type' => 'page',
+ 'post_status' => 'publish'
);
- $pages = get_pages($args);
+ $results = get_pages($args);
+ foreach($results as $page){
+ $pages[$page->ID] = $page->post_title;
+ }
wp_enqueue_script('materialize', false, array('jquery'), false, true);
wp_enqueue_style('materialize-css', GLM_MEMBERS_PLUGIN_URL . 'css/materialize.min.css');
wp_enqueue_style('admin-css', GLM_MEMBERS_COUNTY_MAP_PLUGIN_URL . 'css/admin.min.css');
<button class="btn" data-action="add">Add Area</button>
<div id="new-area-section">
- <div class="row input-container">
- <input class="s12 m6 l3 col area-name" type="text" value="" placeholder="Area Name">
- </div>
- <div class="row input-container">
- <div class="input-field col s12 m6 l3 map-page-selection">
- <select>
- <option class="select-placeholder" value="">Select a page</option>
- {foreach $pages as $page}
- <option class="map-page-option" value="{$page->ID}">{$page->post_title}</option>
- {/foreach}
- </select>
+ <div class="row">
+ <div class="s12 l4 col">
+ <div class="row input-container">
+ <div class="input-field col s12 l8">
+ <input id="area-name" class="area-name validate" type="text" value="" required="" aria-required="">
+ <span data-error="required">Required</span>
+ <label for="area-name">Area Name</label>
+ </div>
+ </div>
+
+ <div class="row input-container">
+ <div class="input-field col s12 l6 map-page-selection">
+ <select>
+ <option class="select-placeholder" value="">Select a page</option>
+ {foreach $pages as $id=>$name}
+ <option class="map-page-option" value="{$id}">{$name}</option>
+ {/foreach}
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="s12 l8 col">
+ <div class="row input-container">
+ <div class="col s12 m6 l5 map-color-selection">
+ <input type="color" name="hover_color" id="map-color" value="#003366">
+ <label for="map-color">Map Hover Color</label>
+ </div>
+ </div>
</div>
</div>
</div>
+<div id="list-header" style="display: flex;">
+ <div class="aread-header" id="area-name-header" style="flex: 1; font-weight: bold;">Area Name</div>
+ <div class="aread-header" id="area-page-header" style="flex: 1; font-weight: bold;">Attached Page</div>
+ <div class="aread-header" id="area-color-header" style="flex: 1; font-weight: bold;">Hover Color</div>
+ <div class="aread-header" id="area-delete-header" style="flex: 0; font-weight: bold;"></div>
+ </div>
<div id="area-list"></div>
-<script>
+<script type="text/javascript">
jQuery(function($){
- let firstRecord = true;
- let data = {
+ var pages = {$pages|json_encode};
+ var firstRecord = true;
+ var data = {
action : 'glm_members_admin_ajax',
glm_action : 'mapSettingsAjax',
+ hover_color : '#003366'
}
// Helper Functions
+ function capitalize(string) {
+ return string.charAt(0).toUpperCase() + string.slice(1);
+ }
function serverCall(data){
$.ajax({
dataType: "json",
url: '{$ajaxUrl}',
data: data,
success: function(data) {
- console.log(data);
- if(!data.list) firstRecord = false;
+ if(data.areas.list){
+ $('#area-list').not( $("#list-header") ).empty();
+ data.areas.list.forEach( function(area) {
+
+ $("<div class='row record-container'><div style='display: flex;' class='s12 col area-record' data-id='" + area.id + "'><span class='area-record-name' style='flex: 1;'>" + area.area_name + "</span> <span class='area-record-page' style='flex: 1;'>" + pages[area.page_id] + "</span><span class='area-record-page' style='flex: 1;'>" + area.hover_color + "</span><span class='area-record-delete' style='flex: 0;'> <i class='material-icons area-record-delete'>delete_forever</i></span></div></div>").appendTo( $("#area-list") );
+ })
+ }
}
});
};
- function createAreaRecord(){
-
- }
-
-
+
// Form interaction events
$('button').on("click", function(){
- createAreaRecord();
- // data.option = $(this).data("action");
- // serverCall(data);
+ if($("#area-name").val() ){
+ data.option = 'add';
+ data.area_name = capitalize($("#area-name").val());
+ data.page_id = $("select").val();
+ serverCall(data);
+ console.log(data);
+ $("#area-name").val("").siblings("label").removeClass("active");
+ $("#map-color").val("#003366");
+
+ $('select').prop('selectedIndex', 0);
+ $("select").formSelect();
+ }else{
+ $("#area-name").css({literal}{'background-color':"rgba(244, 67, 54, 0.3)"}{/literal})
+ }
+ });
+
+ $("#area-name").on("click", function(){
+ console.log( $(this).css({literal}{"background-color": "transparent"}{/literal}) );
});
+
$('select').formSelect();
+
+ $('select').on('change', function(e) {
+ data.page_id = $(this).val();
+ });
+
+ $(document).on("change", "#map-color",function(){
+ data.hover_color = $(this).val();
+ });
+ $(document).on("click", ".material-icons",function(){
+ console.log("delete");
+ data.option = 'delete';
+ data.id = $(this).parent().parent().data("id");
+ serverCall(data);
+ });
+
// Initial page load list population
(function(){
data.option = 'list';