}
private function getAreas(){
- $sql = "SELECT * FROM " . GLM_MEMBERS_COUNTY_MAP_PLUGIN_DB_PREFIX . 'areas';
+ $sql = "SELECT * FROM " . GLM_MEMBERS_COUNTY_MAP_PLUGIN_DB_PREFIX . 'areas ORDER BY area_name';
return $this->wpdb->get_results($sql);
}
function write_log ( $log ) {
{
global $wpdb;
$option = filter_var($_REQUEST['option'], FILTER_SANITIZE_STRING);
- $numbObits = 0;
- $namesList = false;
- $areas = false;
- $test = "start";
- $area_name = false;
- $page_id = false;
+ $area_name = (isset($_REQUEST['area_name'] ) )? filter_var($_REQUEST['area_name'], FILTER_SANITIZE_STRING) : false;
+ $page_id = (isset($_REQUEST['page_id'])) ? filter_var($_REQUEST['page_id'], FILTER_SANITIZE_STRING) : 0;
+ $category_id = (isset($_REQUEST['category_id'])) ? filter_var($_REQUEST['category_id'], FILTER_SANITIZE_STRING) : 0;
+ $hover_color = (isset($_REQUEST['hover_color'])) ? filter_var($_REQUEST['hover_color'], FILTER_SANITIZE_URL) : "#003366";
// Check if an ID is supplied
$id = 0;
}
// If there's an action option
if ( $option ) {
-
+
switch( $option ) {
case 'add':
- $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,
+ 'category_id' => $category_id,
),
array(
'%s',
'%d',
- '%s'
+ '%s',
+ '%d'
)
);
$areas = $this->getAreas();
case 'update':
if ( $id > 0 ) {
- $test = $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->update(
GLM_MEMBERS_COUNTY_MAP_PLUGIN_DB_PREFIX . 'areas',
array(
'area_name' => $area_name,
+ 'page_id' => $page_id,
'hover_color' => $hover_color,
- 'page_id' => $page_id
+ 'category_id' => $category_id
),
array( 'id' => $id ),
array(
'%s',
+ '%d',
'%s',
'%d'
),
// Load Map Settings data abstract
require_once GLM_MEMBERS_COUNTY_MAP_PLUGIN_CLASS_PATH.'/data/dataMapSettings.php';
+require_once GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataCategories.php';
/*
* This class performs the work for the default action of the "Members" menu
* option, which is to display the members dashboard.
),
GLM_MEMBERS_PLUGIN_VERSION
);
+
+ 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');
+ wp_enqueue_style('css-icons', "https://fonts.googleapis.com/icon?family=Material+Icons");
+
$args = array(
'sort_order' => 'asc',
'sort_column' => 'post_title',
'post_type' => 'page',
'post_status' => 'publish'
);
+
$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');
- wp_enqueue_style('css-icons', "https://fonts.googleapis.com/icon?family=Material+Icons");
-
+
+ $categories = new GlmDataCategories($this->wpdb, $this->config);
+ $categories = $categories->getListSortedParentChild();
+ foreach($categories as $category){
+ $cats[$category['id']] = $category['name'];
+ }
+
// Compile template data
$templateData = array(
- 'pages' => $pages
+ 'pages' => $pages,
+ 'categories' => $cats
);
// Return status, suggested view, and data to controller
<h5>Map Areas</h5>
<div id="new-area-section">
<div class="row">
- <div class="s12 l7 col">
+ <div class="input-container area-buttons">
+ <button id="area-update" class="btn" data-option="add">Add Area</button>
+ <button id="area-reset" class="btn" data-option="add">Nevermind</button>
+ </div>
+ <div class="s12 l6 col">
<div class="row input-container">
- <div class="input-field col s12 l8">
+ <div class="input-field col s12 ">
<input id="area-name" class="area-name validate" type="text" value="" required="" aria-required="">
<label for="area-name">Area Name</label>
<span data-error="required">Required</span>
</div>
</div>
-
+
<div class="row input-container">
- <div class="input-field col s12 l6 map-page-selection">
- <select>
+ <div class="input-field col s12 map-page-selection">
+ <select id="map-page-dropdown">
<option class="select-placeholder" value="">Select a page</option>
{foreach $pages as $id=>$name}
<option class="map-page-option" value="{$id}">{$name}</option>
</div>
+
+ </div>
+ <div class="s12 l6 col">
<div class="row input-container">
- <div class="input-field col s12 l6 map-color-selection">
+ <div class="input-field col s12 map-color-selection">
<div id="map-hover-color">
<input type="color" name="hover_color" id="map-color" value="#003366">
<label for="map-color">Map Hover Color</label>
</div>
</div>
</div>
- </div>
- <div class="s12 l5 col" style="max-width: 300px;">
- <div class="row input-container area-buttons">
- <button id="area-update" class="btn" data-option="add">Add Area</button>
- <button id="area-reset" class="btn" data-option="add">Nevermind</button>
+ <div class="row input-container">
+ <div class="input-field col s12 map-interest-selection">
+ <div id="map-interest">
+ <select id="map-interest-dropdown">
+ <option class="select-placeholder" value="">Select Point of Interest</option>
+ {foreach $categories as $id=>$name}
+ <option class="map-interest-option" value="{$id}">{$name}</option>
+ {/foreach}
+ </select>
+ </div>
+ </div>
</div>
</div>
+
</div>
</div>
<div id="list-header" style="display: flex;">
- <div class="area-header" id="area-name-header" style="flex: 1; font-weight: bold;">Area Name</div>
- <div class="area-header" id="area-page-header" style="flex: 1; font-weight: bold;">Attached Page</div>
- <div class="area-header" id="area-color-header" style="flex: 1; font-weight: bold;">Hover Color</div>
- <div class="area-header" id="area-delete-header" style="flex: 0; font-weight: bold;"></div>
+ <div class="area-header" id="area-name-header" style="flex: 1; font-weight: bold;">Area Name</div>
+ <div class="area-header" id="area-page-header" style="flex: 1; font-weight: bold;">Attached Page</div>
+ <div class="area-header" id="area-page-header" style="flex: 1; font-weight: bold;">Points of Interest</div>
+ <div class="area-header" id="area-color-header" style="flex: 1; font-weight: bold;">Hover Color</div>
+ <div class="area-header" id="area-delete-header" style="flex: 0; font-weight: bold;"></div>
</div>
<div id="area-list"></div>
</div>
<script type="text/javascript">
jQuery(function($){
var pages = {$pages|json_encode};
+ var categories = {$categories|json_encode};
+ console.log(categories)
var firstRecord = true;
var data = {
action : 'glm_members_admin_ajax',
$('#area-list').empty();
data.areas.list.forEach( function(area) {
var page = (parseInt(area.page_id)) ? pages[area.page_id] : "None";
- $("<div class='row record-container'><div data-position='bottom' data-tooltip='Click to edit area' style='display: flex;' class='s12 col area-record tooltipped' data-id='" + area.id + "'><span class='area-record-name' style='flex: 1;'>" + area.area_name + "</span> <span class='area-record-page' style='flex: 1;'>" + page + "</span><span class='area-record-color' 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") );
+ var category = (parseInt(area.category_id)) ? categories[area.category_id] : "None";
+ $("<div class='row record-container'><div data-position='bottom' data-tooltip='Click to edit area' style='display: flex;' class='s12 col area-record tooltipped' data-id='" + area.id + "'><span class='area-record-name' style='flex: 1;'>" + area.area_name + "</span> <span class='area-record-page' style='flex: 1;'>" + page + "</span><span class='area-record-poi' style='flex: 1;'>" + category + "</span><span class='area-record-color' style='flex: 1;'><span style='padding: 2px;color: white;background-color:" + area.hover_color + "'>" + area.hover_color + "</span></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") );
})
}
- // $('.tooltipped').tooltip({literal}{delay: 50, tooltip:"new",position:"left"}{/literal});
}
});
};
$("#area-name").parent().removeClass("edit-field");
$("#map-color").removeClass('edit-field');
$(".map-page-selection").removeClass("edit-field");
+ $(".map-interest-selection").removeClass("edit-field");
}
// Form interaction events
$(document).on("click", '#area-update',function(){
if($("#area-name").val() ){
$("#area-name").parent().removeClass("error-field");
- data.area_name = capitalize($("#area-name").val());
- data.hover_color = $("#map-color").val();
+ data.area_name = capitalize($("#area-name").val());
+ data.hover_color = $("#map-color").val();
+ data.page_id = ($("#map-page-dropdown").val()) ? $("#map-page-dropdown").val() : null;
+ data.category_id = ($("#map-interest-dropdown").val()) ? $("#map-interest-dropdown").val() : null;
$("#map-color").val();
- data.page_id = ($("select").val()) ? $("select").val() : "None";
- resetForm();
serverCall(data);
+
+ // reset default values
+ resetForm();
data.hover_color = "#003366";
data.option = "add";
$(this).text("Add Area");
$('select').formSelect();
- $('select').on('change', function(e) {
+ $('#map-page-dropdown').on('change', function(e) {
data.page_id = $(this).val();
});
-
+ $('#map-interest-dropdown').on('change', function(e) {
+ data.category_id = $(this).val();
+ });
$(document).on("change", "#map-color",function(){
data.hover_color = $(this).val();
});
});
$(document).on("click", ".area-record",function(e){
- var id = $(this).data('id');
- var area_name = $(this).find($('.area-record-name')).text();
- var area_page = $(this).find($('.area-record-page')).text();
- var page_id = getKeyByValue(pages, area_page);
- var hover_color = $(this).find($('.area-record-color')).text();
+ var id = $(this).data('id');
+ var area_name = $(this).find($('.area-record-name')).text();
+ var area_page = $(this).find($('.area-record-page')).text();
+ var area_poi = $(this).find($('.area-record-poi')).text();
+ var page_id = getKeyByValue(pages, area_page);
+ var category_id = getKeyByValue(categories, area_poi);
+ var hover_color = $(this).find($('.area-record-color')).text();
$("#area-name").val(area_name).siblings("label").addClass("active");
$("#area-name").parent().addClass("edit-field");
$("#map-color").val(hover_color).addClass('edit-field');
$(".map-page-selection").addClass("edit-field");
- $('select').val(page_id);
- $("select").formSelect();
+ $(".map-interest-selection").addClass("edit-field");
+ $('#map-page-dropdown').val(page_id);
+ $("#map-page-dropdown").formSelect();
+ $('#map-interest-dropdown').val(category_id);
+ $("#map-interest-dropdown").formSelect();
$("#area-update").text("Update Area").attr("data-id", id);
+
data.id = id;
data.hover_color = hover_color;
data.option = "update";
e.preventDefault();
$("body, html").animate({
scrollTop: $("#new-area-section")
- } /* speed */ );
+ },1000);
});
$(document).on("click", "#area-reset",function(){
resetForm();
$(this).fadeOut("fast");
$('#area-update').text("Add Area");
+ data.option = "add";
});
$("#area-name").val("").siblings("label").removeClass("active");
$("#map-color").val("#003366");
- $('select').prop('selectedIndex', 0);
- $("select").formSelect();
+ resetForm();
});
</script>
\ No newline at end of file