Skip to content

Commit

Permalink
isolar js
Browse files Browse the repository at this point in the history
  • Loading branch information
José Carlos Marquetti Jr committed Jul 30, 2018
1 parent 4e1e1f2 commit 7d1f0cf
Show file tree
Hide file tree
Showing 2 changed files with 144 additions and 130 deletions.
193 changes: 103 additions & 90 deletions js/app.js
Original file line number Diff line number Diff line change
@@ -1,127 +1,140 @@
(function ($) {
jQuery( document ).ready(function() {
getEvents();
jQuery(".list_entities_wrapper").each(function(index){
wrapper = jQuery(this).children("#list_entities");
getPagination(wrapper);
getEvents(wrapper);
})
jQuery( "#filters_input" ).submit(function(e) {
e.preventDefault();
jQuery('#list_entities').data('page',1);
getEvents();
wrapper = jQuery(this).parent().parent();
wrapper.data('page',1);
getEvents(wrapper);
});
jQuery( "#filters_input select" ).change(function() {
jQuery('#list_entities').data('page',1);
getEvents();
wrapper = jQuery(this).parent().parent().parent();
wrapper.data('page',1);
getEvents(wrapper);
});
jQuery("#list_entities #filters_input .toggle_filters").click(function(e) {
jQuery("#list_entities #filters_input").toggleClass("open");
});
var pagination = jQuery('#list_entities').data('pagination');

});

function getPagination(wrapper)
{
var pagination = wrapper.data('pagination');
if (typeof pagination !== 'undefined')
{
jQuery( "#page-before" ).click(function() {
var page = jQuery('#list_entities').data('page');
wrapper.find( ".page-before" ).click(function() {
wrapper = jQuery(this).parent().parent();
var page = wrapper.data('page');
if (typeof page !== 'undefined')
{
if (page > 1)
{
jQuery('#list_entities').data('page',page-1);
getEvents();
wrapper.data('page',page-1);
getEvents(wrapper);
}

}
});

jQuery( "#page-after" ).click(function() {
var page = jQuery('#list_entities').data('page');
var numPages = jQuery('#list_entities').data('numPages');
wrapper.find( ".page-after" ).click(function() {
wrapper = jQuery(this).parent().parent();
var page = wrapper.data('page');
var numPages = wrapper.data('numPages');
if (typeof page !== 'undefined')
{
if (page < numPages)
{
jQuery('#list_entities').data('page',page+1);
getEvents();
wrapper.data('page',page+1);
getEvents(wrapper);
}
}
else
{
if (numPages > 1) {
jQuery('#list_entities').data('page',2);
getEvents();
wrapper.data('page',2);
getEvents(wrapper);
}
}

});
}
}
);

function getEvents(){
jQuery('.list_entities').html('');
jQuery('#loading').show('fast');
jQuery('.pagination').addClass('hidden');
jQuery('#filters_input').addClass('hidden');

var page = jQuery('#list_entities').data('page');
if (typeof page !== 'undefined')
{
var pagestr = "&@page="+page;
}
else
{
var pagestr = "";
}
var limit = jQuery('#list_entities').data('limit');
if (typeof limit !== 'undefined')
function getEvents(wrapper)
{
var limitstr = "&@limit="+limit;
}
wrapper.children(".list_entities").html('');
wrapper.children('#loading').show('fast');
wrapper.children('.pagination').addClass('hidden');
wrapper.children('#filters_input').addClass('hidden');

var filters = jQuery('#list_entities').data('filters');
if (typeof filters !== 'undefined')
{
var filters_values={};
jQuery("#filters_input").children().each(function(index) { filters_values[jQuery(this).attr("id")] = jQuery(this).val(); })

var filtersstr = Mustache.render(filters,filters_values);
if ((filtersstr != "") && (filtersstr.charAt(0) != "&"))
var page = wrapper.data('page');
if (typeof page !== 'undefined')
{
var pagestr = "&@page="+page;
}
else
{
var pagestr = "";
}
var limit = wrapper.data('limit');
if (typeof limit !== 'undefined')
{
filtersstr = "&"+filtersstr;
var limitstr = "&@limit="+limit;
}

}
else
{
var filtersstr = "";
}
var url = jQuery('#list_entities').data('url') + limitstr + pagestr + filtersstr;


jQuery.ajax({
url: mapas_builder_proxy_ajax_obj.ajaxurl,
type: 'GET',
data: {
'action': 'mapas_builder_proxy_request',
'url' : url
},
success: function(response, status, xhr) {
var meta = JSON.parse(xhr.getResponseHeader("api-metadata"));
if (meta != null) {
jQuery('.pagination .numEntities .outOf').text(meta.count);
jQuery('.pagination .numEntities .from').text(Math.min((((meta.page-1)*meta.limit)+1),meta.count));
if (meta.page == meta.numPages)
{
jQuery('.pagination .numEntities .to').text(((meta.page-1)*meta.limit)+(meta.count%meta.limit));
}
else
{
jQuery('.pagination .numEntities .to').text(meta.page*meta.limit);
}
jQuery('#list_entities').data('numPages',meta.numPages);
var filters = wrapper.data('filters');
if (typeof filters !== 'undefined')
{
var filters_values={};
wrapper.find("#filters_input").children().each(function(index) { filters_values[jQuery(this).attr("id")] = jQuery(this).val(); })
var filtersstr = Mustache.render(filters,filters_values);
if ((filtersstr != "") && (filtersstr.charAt(0) != "&"))
{
filtersstr = "&"+filtersstr;
}
showEvents(response);
},
error: function(xhr,status,response) {
throwError(status,response);

}
});
else
{
var filtersstr = "";
}
var url = wrapper.data('url') + limitstr + pagestr + filtersstr;


jQuery.ajax({
url: mapas_builder_proxy_ajax_obj.ajaxurl,
type: 'GET',
data: {
'action': 'mapas_builder_proxy_request',
'url' : url
},
success: function(response, status, xhr) {
var meta = JSON.parse(xhr.getResponseHeader("api-metadata"));
if (meta != null) {
wrapper.find('.pagination .numEntities .outOf').text(meta.count);
wrapper.find('.pagination .numEntities .from').text(Math.min((((meta.page-1)*meta.limit)+1),meta.count));
if (meta.page == meta.numPages)
{
wrapper.find('.pagination .numEntities .to').text(((meta.page-1)*meta.limit)+(meta.count%meta.limit));
}
else
{
wrapper.find('.pagination .numEntities .to').text(meta.page*meta.limit);
}
wrapper.data('numPages',meta.numPages);
}

showEvents(wrapper,response);
},
error: function(xhr,status,response) {
throwError(status,response);
}
});
}

function throwError(status,response)
Expand Down Expand Up @@ -159,15 +172,16 @@ function loadTemplate()
`;
}

function showEvents(entities){
jQuery('#loading').hide('fast');
jQuery('#filters_input').removeClass('hidden');
jQuery('.pagination').removeClass('hidden');
baseurl = jQuery('#list_entities').data('baseurl');
entity = jQuery('#list_entities').data('entity');
if (jQuery("#mustache-template").length > 0)
function showEvents(wrapper,entities)
{
wrapper.children('#loading').hide('fast');
wrapper.children('#filters_input').removeClass('hidden');
wrapper.children('.pagination').removeClass('hidden');
baseurl = wrapper.data('baseurl');
entity = wrapper.data('entity');
if (wrapper.parent().children("#mustache-template").length > 0)
{
mustache_template = jQuery("#mustache-template").html();
mustache_template = wrapper.parent().children("#mustache-template").html();
}
else
{
Expand All @@ -186,7 +200,6 @@ function showEvents(entities){

html += Mustache.render(mustache_template,entities[i]);
}

jQuery('.list_entities').append(html);
wrapper.children('.list_entities').append(html);
}
})(jQuery);
81 changes: 41 additions & 40 deletions template.php
Original file line number Diff line number Diff line change
@@ -1,48 +1,49 @@
<div class="list_entities_wrapper">
<?php if (!empty($mtemplate)) { ?>
<script id="mustache-template" type="x-tmpl-mustache"><?= $mtemplate; ?></script>
<?php } ?>
<div id="list_entities" class="content" data-baseurl="<?= $atts['url']; ?>" data-url="<?= $url; ?>" data-entity="<?= $entity; ?>" data-filters="<?= $filters; ?>" <?= $pagination; ?> data-page="1" <?= $limit; ?>>
<div class="row top">
<?php if (!is_null($filters_input)) { ?>
<form id="filters_input"><span class='toggle_filters'></span>
<?php
$filters_input_col = explode(";",$filters_input);
foreach ($filters_input_col as $filters_input_el) {
$aux_el = explode(",",$filters_input_el);
switch($aux_el[1])
{
case 'text':
echo "<input id='".$aux_el[0]."' type='text' placeholder='".$aux_el[2]."'>";
break;
<?php if (!empty($mtemplate)) { ?>
<script id="mustache-template" type="x-tmpl-mustache"><?= $mtemplate; ?></script>
<?php } ?>
<div id="list_entities" class="content" data-baseurl="<?= $atts['url']; ?>" data-url="<?= $url; ?>" data-entity="<?= $entity; ?>" data-filters="<?= $filters; ?>" <?= $pagination; ?> data-page="1" <?= $limit; ?>>
<div class="row top">
<?php if (!is_null($filters_input)) { ?>
<form id="filters_input"><span class='toggle_filters'></span>
<?php
$filters_input_col = explode(";",$filters_input);
foreach ($filters_input_col as $filters_input_el) {
$aux_el = explode(",",$filters_input_el);
switch($aux_el[1])
{
case 'text':
echo "<input id='".$aux_el[0]."' type='text' placeholder='".$aux_el[2]."'>";
break;

case 'select':
echo "<select id='".$aux_el[0]."'>";
$aux_opts = explode("+",$aux_el[2]);
foreach ($aux_opts as $aux_opt) {
$aux_aux_opt = explode(":",$aux_opt);
echo "<option value='".$aux_aux_opt[0]."'>".$aux_aux_opt[1]."</input>";
}
case 'select':
echo "<select id='".$aux_el[0]."'>";
$aux_opts = explode("+",$aux_el[2]);
foreach ($aux_opts as $aux_opt) {
$aux_aux_opt = explode(":",$aux_opt);
echo "<option value='".$aux_aux_opt[0]."'>".$aux_aux_opt[1]."</input>";
}

echo "</select>";
break;
case 'submit':
echo "<button id=".$aux_el[0]." type='submit'>".$aux_el[2]."</button>";
break;
echo "</select>";
break;
case 'submit':
echo "<button id=".$aux_el[0]." type='submit'>".$aux_el[2]."</button>";
break;
}
}
}
?>
</form>
?>
</form>
<?php } ?>
</div>
<?php if (!is_null($pagination)) { ?>
<div class="pagination top"><button type="button" class="page-before"><</button><span class="numEntities"><span class="from"></span><span class="to"></span><span class="outOf"></span></span><button type="button" class="page-after">></button></div>
<?php } ?>
</div>
<?php if (!is_null($pagination)) { ?>
<div class="pagination top"><button type="button" id="page-before"><</button><span class="numEntities"><span class="from"></span><span class="to"></span><span class="outOf"></span></span><button type="button" id="page-after">></button></div>
<?php } ?>
<div id="loading" class="spinner" style="display:none;"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>
<div id="loading" class="spinner" style="display:none;"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>

<div class="list_entities"></div>
<div class="list_entities"></div>

<?php if (!is_null($pagination)) { ?>
<div class="pagination bottom"><button type="button" id="page-before"><</button><span class="numEntities"><span class="from"></span><span class="to"></span><span class="outOf"></span></span><button type="button" id="page-after">></button></div>
<?php } ?>
<?php if (!is_null($pagination)) { ?>
<div class="pagination bottom"><button type="button" class="page-before"><</button><span class="numEntities"><span class="from"></span><span class="to"></span><span class="outOf"></span></span><button type="button" class="page-after">></button></div>
<?php } ?>
</div>
</div>

0 comments on commit 7d1f0cf

Please sign in to comment.