Skip to content
Snippets Groups Projects
Commit 266d0462 authored by Mateus Rambo Strey's avatar Mateus Rambo Strey
Browse files

fix search history back

parent a7b3de1c
No related branches found
No related tags found
No related merge requests found
......@@ -12,7 +12,8 @@ var search = function() {
}
// change url with new parameters
searchState(params);
if (!fetch_init) { fetch_init = true}
else if (!append) { searchState(params); }
$.ajax({
url:"/search/fetch",
......@@ -23,6 +24,7 @@ var search = function() {
$('.search-more').remove();
}
else {
$('.result-info').hide();
$("#search-fetch").empty();
}
$('#search-fetch').append('<div class="search-loading" style="text-align:center;"><br><div class="pong-loader">Carregando...</div></div>');
......@@ -34,6 +36,8 @@ var search = function() {
}
else {
$("#search-fetch").empty();
$('.result-info-count').html($(data).filter('input:hidden[name="learning-objects-count"]').val());
$('.result-info').show();
}
$("#search-fetch").append(data);
......@@ -49,15 +53,12 @@ var search = function() {
var has_init = false;
function init() {
// init when document is ready
$(document).ready(function () {
// check url and set inputs with params
checkUrl();
watchSearchInput();
watchOrder();
watchFilters();
});
// check url and set inputs with params
checkUrl();
watchSearchInput();
watchOrder();
watchFilters();
}
// get parameters from url when page is loaded
......@@ -107,6 +108,7 @@ var search = function() {
watchCheckbox('school_year', 'filter-school-year');
}
// control ajax requisitions (fetch) of filters
function filtersFetchInterval() {
// cancel previous function call
clearInterval(intervalId);
......@@ -114,7 +116,7 @@ var search = function() {
searchFetch();
// cancel to not loop (interval)
clearInterval(intervalId);
}, 800 );
}, 800);
}
function watchFilterSubject() {
......@@ -174,7 +176,7 @@ var search = function() {
$('.search-more').on('click', function (event) {
event.preventDefault();
params.add('page', params.get('page') + 1);
searchFetch(true);
searchFetch();
});
}
}
......@@ -183,38 +185,24 @@ var search = function() {
//// INIT
// initiate params
var params = searchParameters();
var fetch_init = false;
// init when document is ready
$(document).ready(function () {
// return previous state when back
$(window).on("popstate", function(e) {
var original = e.originalEvent.state;
history.replaceState(original, original.url, original.url);
searchFetch();
});
// run watchers
searchWatchers().init();
// run watchers
searchWatchers().init();
});
// TODO: find a way to manage all requisitions without page reload
};
//// SEARCH STATE
// take care of History API
var searchState = function(params, replace) {
if (replace === undefined) {
replace = false;
}
var newState = history.state;
if ((replace === undefined) || (replace !== true)) { replace = false; }
var newState = JSON.parse(JSON.stringify(history.state));
newState.url = params.url();
newState.search_params = params.get();
if (replace) {
history.replaceState(newState, newState.url, newState.url);
}
else {
history.pushState(newState, newState.url, newState.url);
}
if (replace) { history.replaceState(newState, location.href, location.href); }
else { history.pushState(newState, newState.url, newState.url); }
}
//// SEARCH PARAMETERS
......@@ -318,12 +306,14 @@ var searchParameters = function() {
//// DROPDOWN
var runDropdown = function(element) {
if ($(element).next().is(':hidden')) {
if (($(element).next().data('dropdown') === 'closed')) {
$('> .caret', element).addClass('caret-up');
$(element).next().slideDown();
$(element).next().data('dropdown', 'open');
}
else {
$('> .caret', element).removeClass('caret-up');
$(element).next().slideUp();
$(element).next().data('dropdown', 'closed');
}
};
.search-sidebar {
margin-top: 40px;
display: none;
.dropdown-element {
width: 95%;
margin-left: 3%;
}
}
.nestedAccordion {
......@@ -31,98 +31,3 @@
color: #59585A;
padding-right: 20px;
}
// #nestedAccordion{
// width:100%;
// }
// #nestedAccordion h2, #nestedAccordion h3,
// #nestedAccordion div, #nestedAccordion ol,
// #nestedAccordion li{
// /* reset styles for accordion */
// margin:0;
// padding:0;
// font-size:1em;
// font-weight:normal;
// list-style:none;
// }
// #nestedAccordion div{
// color:#555;/*#555 #003300*/
// overflow:hidden;
// display:none;
// }
//
// #nestedAccordion h2{
// cursor:pointer;
// color:#fff;
// font-size:1.1em;
// moz-border-radius: 5px 5px 0 0;
// -webkit-border-radius: 5px 5px 0 0;
// border-radius: 5px 5px 0 0;
// padding:3px;
// margin-top:5px;
// background-color: #3F434F;
// background-image: -webkit-gradient(linear, left top, left bottom, from(#4B8CFF), to(#447FE8));
// background-image: -webkit-linear-gradient(top, #4B8CFF, #447FE8);/*#4B8CFF, #447FE8*/
// background-image: -moz-linear-gradient(top, #4B8CFF, #447FE8);
// background-image: -ms-linear-gradient(top, #4B8CFF, #447FE8);
// background-image: -o-linear-gradient(top, #4B8CFF, #447FE8);
// background-image: linear-gradient(to bottom, #4B8CFF, #447FE8);
// background-image: url("arrow.ico");
// background-repeat: no-repeat;
// background-position: right bottom;
// }
// #nestedAccordion h3{
// cursor:pointer;
// padding:4px;
// color: #666;
// text-shadow: 0 1px 0 rgba(255, 255, 255, .5);
// background-color: #f5f5f5;
// background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#ededed));
// background-image: -webkit-linear-gradient(top, #f5f5f5, #ededed);
// background-image: -moz-linear-gradient(top, #f5f5f5, #ededed);
// background-image: -ms-linear-gradient(top, #f5f5f5, #ededed);
// background-image: -o-linear-gradient(top, #f5f5f5, #ededed);
// background-image: linear-gradient(to bottom, #f5f5f5, #ededed);
//
// }
// #nestedAccordion h3:hover{
// color:#000;
// }
// #nestedAccordion h3 + div{
// display:none;
// background-color:#F5F5F5;
// padding:5px 5px 5px 30px;
// }
// #nestedAccordion li:hover{
// color:#000;
// cursor:pointer;
// }
// #nestedAccordion h2 +div.aberto{
// display:inherit;
// }
// ///Contrast
// .contraste{
// .thumbnail{
// background-color: black !important;
// }
// .navbar{
// select{
// color: black;
// }
// }
// #nestedAccordion{
// div{
// background-color: black !important;
// color: white !important;
// }
// h3{
// color: white;
// background-color: black !important;
// background-image: none !important;
// border-bottom: 1px solid white;
// }
// h3:hover{
// color: white;
// }
// }
// }
......@@ -8,7 +8,7 @@
<%= csrf_meta_tags %>
<meta property="creator.productor" content="http://estruturaorganizacional.dados.gov.br/id/unidade-organizacional/1">
</head>
<body>
<body <%= yield(:body_attributes) %>>
<%= render 'shared/application/header' %>
<% if user_signed_in? %>
......
<input type="hidden" name="learning-objects-count" value="<%= @result.total_count %>"/>
<%= render @objects, orientation: "horizontal" %>
<a href="javascript:void(0);" class="btn btn-primary search-more">Ver mais</a>
<%= link_to "ver mais", "javascript:void(0);", class: "btn btn-primary search-more" unless @objects.blank? %>
<%= content_for(:body_attributes) do %> data-no-turbolink <% end %>
<div class="row">
<div class="col-sm-4 search-sidebar" id="menu-left">
<!-- <h2>Busca Avançada</h2> -->
......@@ -265,7 +266,7 @@
<form method="get">
<input type="hidden" name="qry" value="<%= params["qry"] %>">
<select class="order" class="sort-dropdown" name="order">
<select class="order sort-dropdown" name="order">
<option value="">ordenar resultados</option>
<option value="author">autores</option>
<option value="publicationasc">mais novos</option>
......@@ -283,17 +284,13 @@
</div>
</div>
<script type="text/javascript">
$(document).ready(function () {
runDropdown($('.nestedAccordion .dropdown'));
$(".select-tag-container").select2();
search();
$('.nestedAccordion .dropdown').click(function () {
runDropdown(this);
});
$(".select-tag-container").select2();
runDropdown($('.nestedAccordion .dropdown'));
$('.nestedAccordion .dropdown').click(function () {
runDropdown(this);
});
$('.search-sidebar').show();
search();
</script>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment