waybackmachine
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,467 @@
|
||||
|
||||
/*
|
||||
* CSS for the Frontend of Gwolle Guestbook plugin.
|
||||
*/
|
||||
|
||||
|
||||
.gwolle-gb {
|
||||
clear: left;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.gwolle-gb .gwolle-gb-hide {
|
||||
display: none;
|
||||
}
|
||||
.gwolle-gb .gwolle-gb-invisible {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
/* Write button */
|
||||
|
||||
.gwolle-gb-write-button {
|
||||
margin: 20px 0 10px;
|
||||
}
|
||||
.gwolle-gb-write-button input.button {
|
||||
float: none; /* To avoid problems with too invasive themes. */
|
||||
}
|
||||
|
||||
/* Write section */
|
||||
|
||||
.gwolle-gb form.gwolle-gb-write {
|
||||
position: relative;
|
||||
margin-top: 20px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
html body div.gwolle-gb form.gwolle-gb-write button.gb-notice-dismiss {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
border: none;
|
||||
border-radius: 2px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
cursor: pointer;
|
||||
color: #fff;
|
||||
background-color: #888;
|
||||
display: inline-block;
|
||||
speak: none;
|
||||
line-height: 16px;
|
||||
height: 16px;
|
||||
width: 14px;
|
||||
font-size: 11px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.gwolle-gb-float .label,
|
||||
.gwolle-gb-float .input {
|
||||
float: left;
|
||||
}
|
||||
|
||||
/* Text meant only for screen readers in broken themes. */
|
||||
.gwolle-gb .screen-reader-text {
|
||||
border: 0;
|
||||
clip: rect(1px, 1px, 1px, 1px);
|
||||
clip-path: inset(50%);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute !important;
|
||||
width: 1px;
|
||||
word-wrap: normal !important;
|
||||
}
|
||||
|
||||
/* Overwrite shizzle from fancy themes */
|
||||
body .gwolle_gb_content a,
|
||||
body .gwolle-gb-content a {
|
||||
box-shadow: none !important; /* Fuck Twenty Fifteen, Twenty Sixteen and Twenty Seventeen */
|
||||
border: 0;
|
||||
}
|
||||
|
||||
/* Submit AJAX icon */
|
||||
.gwolle-gb .gwolle_gb_submit_ajax_icon,
|
||||
.gwolle-gb .gwolle-gb-submit-ajax-icon,
|
||||
.gwolle-gb .gwolle_gb_addon_preview_ajax_icon,
|
||||
.gwolle-gb .gwolle-gb-addon-preview-ajax-icon {
|
||||
display: none;
|
||||
background-image: url("../images/loading.gif");
|
||||
background-position: 4px 4px;
|
||||
background-repeat: no-repeat;
|
||||
margin-left: 10px;
|
||||
padding: 13px 20px 13px 20px;
|
||||
}
|
||||
|
||||
/* Messages / Notices */
|
||||
|
||||
.gwolle-gb .gwolle_gb_messages,
|
||||
.gwolle-gb .gwolle-gb-messages {
|
||||
border-left: 4px solid #7ad03a;
|
||||
box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.1);
|
||||
padding: 1px 12px;
|
||||
margin: 5px 0 15px;
|
||||
}
|
||||
.gwolle-gb .gwolle_gb_messages.error,
|
||||
.gwolle-gb .gwolle-gb-messages.error {
|
||||
border-left: 4px solid #dd3d36;
|
||||
}
|
||||
|
||||
.gwolle-gb .error p, div.updated p {
|
||||
margin: 0.5em 0;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.gwolle-gb form.gwolle-gb-write div.input.error,
|
||||
.gwolle-gb form.gwolle-gb-write input.error,
|
||||
.gwolle-gb form.gwolle-gb-write textarea.error {
|
||||
border: 1px solid #dd3d36;
|
||||
}
|
||||
.gwolle-gb form.gwolle-gb-write input[type="checkbox"].error {
|
||||
box-shadow: 1px 1px 0px 0px rgba(221,61,54,1);
|
||||
}
|
||||
|
||||
.gwolle-gb div.label,
|
||||
.gwolle-gb div.input {
|
||||
vertical-align: top;
|
||||
width: 80%;
|
||||
}
|
||||
.gwolle-gb .gwolle-gb-float div.label {
|
||||
width: 35%;
|
||||
}
|
||||
.gwolle-gb .gwolle-gb-float div.input {
|
||||
width: 50%;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.gwolle-gb div.input input[type="text"],
|
||||
.gwolle-gb div.input input[type="email"],
|
||||
.gwolle-gb div.input input[type="url"],
|
||||
.gwolle-gb div.input textarea,
|
||||
.gwolle-gb div.input select {
|
||||
width: 99%;
|
||||
}
|
||||
.gwolle-gb div.input textarea {
|
||||
height: 150px;
|
||||
}
|
||||
.gwolle-gb .clearBoth {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
|
||||
/* Page Navigation */
|
||||
|
||||
.gwolle-gb .page-navigation {
|
||||
width: 100%;
|
||||
text-align: right;
|
||||
padding: 8px 0;
|
||||
}
|
||||
|
||||
.gwolle-gb .page-navigation a,
|
||||
.gwolle-gb .page-navigation span {
|
||||
display: inline-block;
|
||||
padding: 0px 6px;
|
||||
margin-left: 0;
|
||||
color: #555;
|
||||
background-color: #fff;
|
||||
border: 1px solid #efefef;
|
||||
text-decoration: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Current page */
|
||||
.gwolle-gb .page-navigation a:hover,
|
||||
.gwolle-gb .page-navigation span.current {
|
||||
background: #eee;
|
||||
color: #000;
|
||||
opacity: 0.8;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
.gwolle-gb .page-navigation span.dots {
|
||||
padding: 0px 3px;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
/* Border-radius for whole pagination thing. */
|
||||
.gwolle-gb .page-navigation a:nth-child(2),
|
||||
.gwolle-gb .page-navigation span:nth-child(2) {
|
||||
border-radius: 3px 0 0 3px;
|
||||
}
|
||||
.gwolle-gb .page-navigation a:last-child,
|
||||
.gwolle-gb .page-navigation span:last-child {
|
||||
border-radius: 0 3px 3px 0;
|
||||
}
|
||||
|
||||
|
||||
/* Read section */
|
||||
|
||||
.gwolle-gb .gwolle-gb-read {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.gwolle-gb .admin-entry {
|
||||
color: #333;
|
||||
background-color: #e6e6e6;
|
||||
background-repeat: repeat-x;
|
||||
background-image: -moz-linear-gradient(top, #f4f4f4, #e6e6e6);
|
||||
background-image: -ms-linear-gradient(top, #f4f4f4, #e6e6e6);
|
||||
background-image: -webkit-linear-gradient(top, #f4f4f4, #e6e6e6);
|
||||
background-image: -o-linear-gradient(top, #f4f4f4, #e6e6e6);
|
||||
background-image: linear-gradient(top, #f4f4f4, #e6e6e6);
|
||||
padding-left: 5px;
|
||||
}
|
||||
.gwolle-gb .admin-entry a {
|
||||
color: #666;
|
||||
}
|
||||
.gwolle-gb .gb-entry {
|
||||
position: relative;
|
||||
border-top: 1px #ddd solid;
|
||||
padding: 10px 0;
|
||||
margin: 0;
|
||||
clear: left;
|
||||
}
|
||||
.gwolle-gb .gwolle-gb-first {
|
||||
border-width: 0px;
|
||||
}
|
||||
.gwolle-gb .gb-entry-count_0 {
|
||||
border-bottom: 1px #ddd solid; /* Ajax added entry */
|
||||
}
|
||||
|
||||
.gwolle-gb .gb-entry .gb-author-info,
|
||||
.gwolle-gb .gb-entry .gb-entry-content {
|
||||
display: block;
|
||||
}
|
||||
.gwolle-gb .gb-entry .gb-author-info .gb-author-avatar {
|
||||
margin: 0 0 8px 0;
|
||||
}
|
||||
.gwolle-gb .gb-entry .gb-author-info .gb-author-name {
|
||||
padding-left: 10px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.gwolle-gb .gb-entry .gb-entry-content {
|
||||
padding-left: 10px;
|
||||
}
|
||||
.gwolle-gb .gb-entry .gb-entry-content img {
|
||||
max-width: 100%;
|
||||
}
|
||||
.gwolle-gb .gb-entry .gb-highlight {
|
||||
background-color: #ddff00;
|
||||
}
|
||||
|
||||
|
||||
/* Metabox */
|
||||
|
||||
div.gb-metabox-handle {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
padding: 10px;
|
||||
cursor: pointer;
|
||||
font-weight: bold;
|
||||
}
|
||||
div.gb-metabox-handle:focus {
|
||||
outline-color: currentColor;
|
||||
outline-style: solid;
|
||||
outline-width: thin;
|
||||
}
|
||||
|
||||
div.gb-metabox {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 30px;
|
||||
width: 200px;
|
||||
box-sizing: border-box;
|
||||
z-index: 10;
|
||||
}
|
||||
.gwolle-gb .gb-entry-count_1 div.gb-metabox {
|
||||
border-top: 1px #ddd solid;
|
||||
}
|
||||
div.gb-metabox-line {
|
||||
width: 100%;
|
||||
padding: 2px 5px;
|
||||
border-right: 1px #ddd solid;
|
||||
border-bottom: 1px #ddd solid;
|
||||
border-left: 1px #ddd solid;
|
||||
background-color: #fff;
|
||||
color: #333;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
div.gb-metabox-line a {
|
||||
text-decoration: none;
|
||||
box-shadow: none;
|
||||
color: #222;
|
||||
}
|
||||
div.gb-metabox-line.gb-metabox-line-ajax {
|
||||
display: none;
|
||||
background-image: url("../images/loading.gif");
|
||||
background-position: 155px 2px;
|
||||
background-repeat: no-repeat;
|
||||
min-height: 34px;
|
||||
}
|
||||
div.gb-metabox-line.gb-social-media-share {
|
||||
padding: 0;
|
||||
}
|
||||
div.gb-metabox-line.gb-social-media-share a {
|
||||
float: left;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Admin Reply */
|
||||
|
||||
.gwolle-gb .gb-entry-admin_reply,
|
||||
.gwolle-gb .gb-entry-admin-reply {
|
||||
margin: 10px 0 0 40px;
|
||||
padding: 4px 10px 4px 10px;
|
||||
border-left: 1px solid #ddd;
|
||||
}
|
||||
|
||||
|
||||
/* Infinite Scroll */
|
||||
|
||||
.gwolle-gb .gwolle_gb_load_message,
|
||||
.gwolle-gb .gwolle-gb-load-message {
|
||||
display: none;
|
||||
background-color: #eee;
|
||||
background-image: url("../images/loading.gif");
|
||||
background-position: 10px 13px;
|
||||
background-repeat: no-repeat;
|
||||
border: 1px solid #333;
|
||||
border-radius: 5px;
|
||||
bottom: -72px;
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
margin-left: 10px;
|
||||
padding: 15px 20px 15px 52px;
|
||||
position: absolute;
|
||||
z-index: 5;
|
||||
}
|
||||
.gwolle-gb .gwolle_gb_end_message,
|
||||
.gwolle-gb .gwolle-gb-end-message {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
|
||||
/* Widget */
|
||||
|
||||
li.gwolle_gb_widget,
|
||||
li.gwolle-gb-widget {
|
||||
border-bottom: 1px #ddd solid;
|
||||
padding: 3px 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
p.gwolle_gb_link,
|
||||
p.gwolle-gb-link {
|
||||
padding: 3px 0;
|
||||
}
|
||||
|
||||
|
||||
/* Widget Slider */
|
||||
|
||||
ul.gwolle_gb_widget_slider,
|
||||
ul.gwolle-gb-widget-slider {
|
||||
margin-left: 0;
|
||||
}
|
||||
ul.gwolle_gb_widget_slider .sss,
|
||||
ul.gwolle-gb-widget-slider .sss {
|
||||
height: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
ul.gwolle_gb_widget_slider li:first-child,
|
||||
ul.gwolle-gb-widget-slider li:first-child,
|
||||
li.gwolle_gb_widget.ssslide:first-child,
|
||||
li.gwolle-gb-widget.ssslide:first-child {
|
||||
display: inline-block;
|
||||
}
|
||||
ul.gwolle_gb_widget_slider li,
|
||||
ul.gwolle-gb-widget-slider li {
|
||||
display: none;
|
||||
border-bottom: 0px solid #ddd;
|
||||
}
|
||||
|
||||
li.gwolle_gb_widget.ssslide,
|
||||
li.gwolle-gb-widget.ssslide {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: none;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* Admin Bar */
|
||||
|
||||
#wpadminbar #wp-admin-bar-gwolle-gb .ab-icon::before {
|
||||
content: "";
|
||||
top: 3px;
|
||||
}
|
||||
|
||||
|
||||
/* Form inside a widget */
|
||||
.widget .gwolle-gb-float div.label,
|
||||
.widget .gwolle-gb-float div.input,
|
||||
.widget-area .gwolle-gb-float div.label,
|
||||
.widget-area .gwolle-gb-float div.input {
|
||||
float: none;
|
||||
}
|
||||
.widget .gwolle-gb div.label,
|
||||
.widget-area .gwolle-gb div.label {
|
||||
width: 100%;
|
||||
}
|
||||
.widget .gwolle-gb div.input,
|
||||
.widget-area .gwolle-gb div.input {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
/* Responsive Design */
|
||||
|
||||
@media only screen and (max-width: 820px) {
|
||||
.gwolle-gb-float div.label,
|
||||
.gwolle-gb-float div.input {
|
||||
float: none;
|
||||
}
|
||||
.gwolle-gb .gwolle-gb-float div.label,
|
||||
.gwolle-gb .gwolle-gb-float div.input,
|
||||
.gwolle-gb div.label,
|
||||
.gwolle-gb div.input {
|
||||
width: 80%;
|
||||
}
|
||||
}
|
||||
@media only screen and (max-width: 620px) {
|
||||
.gwolle-gb-float div.label,
|
||||
.gwolle-gb-float div.input {
|
||||
float: none;
|
||||
}
|
||||
.gwolle-gb .gwolle-gb-float div.label,
|
||||
.gwolle-gb .gwolle-gb-float div.input,
|
||||
.gwolle-gb div.label,
|
||||
.gwolle-gb div.input {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Add-On */
|
||||
|
||||
div.gwolle-gb-starrating-result {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 30px;
|
||||
width: 200px;
|
||||
padding: 3px 6px;
|
||||
box-sizing: border-box;
|
||||
z-index: 5;
|
||||
}
|
||||
div.gb-social-media-share img {
|
||||
float: left;
|
||||
cursor: pointer;
|
||||
}
|
||||
@@ -0,0 +1,381 @@
|
||||
|
||||
/*
|
||||
Copyright 2014 - 2021 Marcel Pol (email: marcel@timelord.nl)
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* JavaScript for Gwolle Guestbook Frontend.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* Event for clicking the button, and getting the form visible.
|
||||
*/
|
||||
jQuery(document).ready(function($) {
|
||||
jQuery( "div.gwolle-gb-write-button input" ).on( 'click', function() {
|
||||
var main_div = jQuery( this ).closest( 'div.gwolle-gb' );
|
||||
jQuery("div.gwolle-gb-write-button", main_div).slideUp(1000);
|
||||
jQuery("form.gwolle-gb-write", main_div).slideDown(1000);
|
||||
return false;
|
||||
});
|
||||
|
||||
// And close it again.
|
||||
jQuery( "button.gb-notice-dismiss" ).on( 'click', function() {
|
||||
var main_div = jQuery( this ).closest( 'div.gwolle-gb' );
|
||||
jQuery("div.gwolle-gb-write-button", main_div).slideDown(1000);
|
||||
jQuery("form.gwolle-gb-write", main_div).slideUp(1000);
|
||||
return false;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
* Event for clicking the readmore, and getting the full content of that entry visible.
|
||||
*/
|
||||
jQuery(document).ready(function($) {
|
||||
gwolle_gb_readmore();
|
||||
gwolle_gb_scroll_callback.add( gwolle_gb_readmore );
|
||||
gwolle_gb_ajax_callback.add( gwolle_gb_readmore );
|
||||
});
|
||||
function gwolle_gb_readmore() {
|
||||
jQuery(".gb-entry-content .gwolle-gb-readmore").off('click');
|
||||
jQuery(".gb-entry-content .gwolle-gb-readmore").on('click', function() {
|
||||
var content_div = jQuery(this).closest( '.gb-entry-content' );
|
||||
jQuery('.gb-entry-excerpt', content_div).css( 'display', 'none' );
|
||||
jQuery('.gb-entry-full-content', content_div).slideDown(500);
|
||||
return false;
|
||||
});
|
||||
|
||||
jQuery(".gb-entry-admin_reply .gwolle-gb-readmore").off('click');
|
||||
jQuery(".gb-entry-admin_reply .gwolle-gb-readmore").on('click', function() {
|
||||
var content_div = jQuery(this).closest( '.gb-entry-admin_reply' );
|
||||
jQuery('.gb-admin_reply-excerpt', content_div).css( 'display', 'none' );
|
||||
jQuery('.gb-admin_reply-full-content', content_div).slideDown(500);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Event for the metabox, toggle on and off.
|
||||
*/
|
||||
jQuery(document).ready(function($) {
|
||||
gwolle_gb_metabox_handle();
|
||||
gwolle_gb_scroll_callback.add( gwolle_gb_metabox_handle );
|
||||
gwolle_gb_ajax_callback.add( gwolle_gb_metabox_handle );
|
||||
});
|
||||
function gwolle_gb_metabox_handle() {
|
||||
jQuery('div.gb-metabox-handle').off('click');
|
||||
jQuery('div.gb-metabox-handle').on('click', function() {
|
||||
var entry_div = jQuery(this).closest('div.gb-entry');
|
||||
jQuery('div.gb-metabox', entry_div).fadeToggle( 'fast', 'linear' );
|
||||
return false;
|
||||
});
|
||||
jQuery("div.gb-metabox-handle").on( 'keypress', function(e) {
|
||||
if (e.keyCode == 13) { // Enter key.
|
||||
var entry_div = jQuery(this).closest('div.gb-entry');
|
||||
jQuery('div.gb-metabox', entry_div).fadeToggle( 'fast', 'linear' );
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return false;
|
||||
}
|
||||
jQuery(document).ready(function($) {
|
||||
jQuery('body').on('click', function( el ) {
|
||||
jQuery('div.gb-metabox').fadeOut( 'fast', 'linear' );
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
* Event for Infinite Scroll. Get more pages when you are at the bottom.
|
||||
* This function does not support multiple lists on one page.
|
||||
*/
|
||||
var gwolle_gb_scroll_on = true; // The end has not been reached yet. We still get entries back.
|
||||
var gwolle_gb_scroll_busy = false; // Handle async well. Only one request at a time.
|
||||
var gwolle_gb_scroll_callback = jQuery.Callbacks(); // Callback function to be fired after AJAX request.
|
||||
|
||||
jQuery(document).ready(function($) {
|
||||
if ( jQuery( ".gwolle-gb-read" ).hasClass( 'gwolle-gb-infinite' ) ) {
|
||||
var gwolle_gb_scroll_count = 2; // We already have page 1 listed.
|
||||
|
||||
var gwolle_gb_load_message = '<div class="gb-entry gwolle_gb_load_message">' + gwolle_gb_frontend_script.load_message + '</div>' ;
|
||||
jQuery( ".gwolle-gb-read" ).append( gwolle_gb_load_message );
|
||||
|
||||
jQuery(window).on('scroll', function() {
|
||||
// have 10px diff for sensitivity.
|
||||
if ( ( jQuery(window).scrollTop() > jQuery(document).height() - jQuery(window).height() - 10 ) && gwolle_gb_scroll_on == true && gwolle_gb_scroll_busy == false) {
|
||||
gwolle_gb_scroll_busy = true;
|
||||
gwolle_gb_load_page(gwolle_gb_scroll_count);
|
||||
gwolle_gb_scroll_count++;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function gwolle_gb_load_page( page ) {
|
||||
|
||||
jQuery('.gwolle_gb_load_message').toggle();
|
||||
|
||||
var gwolle_gb_end_message = '<div class="gb-entry gwolle_gb_end_message">' + gwolle_gb_frontend_script.end_message + '</div>' ;
|
||||
|
||||
var data = {
|
||||
action: 'gwolle_gb_infinite_scroll',
|
||||
pageNum: page,
|
||||
permalink: window.location.href,
|
||||
book_id: jQuery( ".gwolle-gb-read" ).attr( "data-book_id" )
|
||||
};
|
||||
|
||||
jQuery.post( gwolle_gb_frontend_script.ajax_url, data, function(response) {
|
||||
|
||||
jQuery('.gwolle_gb_load_message').toggle();
|
||||
if ( response == 'false' ) {
|
||||
jQuery( ".gwolle-gb-read" ).append( gwolle_gb_end_message );
|
||||
gwolle_gb_scroll_on = false;
|
||||
} else {
|
||||
jQuery( ".gwolle-gb-read" ).append( response );
|
||||
}
|
||||
|
||||
/*
|
||||
* Add callback for after infinite scroll event. Used for metabox-handle for new entries.
|
||||
*
|
||||
* @since 2.3.0
|
||||
*
|
||||
* Example code for using the callback:
|
||||
*
|
||||
* jQuery(document).ready(function($) {
|
||||
* gwolle_gb_scroll_callback.add( my_callback_function );
|
||||
* });
|
||||
*
|
||||
* function my_callback_function() {
|
||||
* console.log('This is the callback');
|
||||
* return false;
|
||||
* }
|
||||
*
|
||||
*/
|
||||
gwolle_gb_scroll_callback.fire();
|
||||
|
||||
gwolle_gb_scroll_busy = false;
|
||||
|
||||
});
|
||||
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
* Mangle data for the honeypot.
|
||||
*/
|
||||
jQuery(document).ready(function($) {
|
||||
jQuery( 'form.gwolle-gb-write' ).each( function( index, form ) {
|
||||
var honeypot = gwolle_gb_frontend_script.honeypot;
|
||||
var honeypot2 = gwolle_gb_frontend_script.honeypot2;
|
||||
var val = jQuery( 'input.' + honeypot, form ).val();
|
||||
if ( val > 0 ) {
|
||||
jQuery( 'input.' + honeypot2, form ).val( val );
|
||||
jQuery( 'input.' + honeypot, form ).val( '' );
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
* Mangle data for the form timeout.
|
||||
*/
|
||||
jQuery(document).ready(function($) {
|
||||
jQuery( 'form.gwolle-gb-write' ).each( function( index, form ) {
|
||||
var timeout = gwolle_gb_frontend_script.timeout;
|
||||
var timeout2 = gwolle_gb_frontend_script.timeout2;
|
||||
|
||||
var timer = new Number( jQuery( 'input.' + timeout, form ).val() );
|
||||
var timer2 = new Number( jQuery( 'input.' + timeout2, form ).val() );
|
||||
|
||||
var timer = timer - 1;
|
||||
var timer2 = timer2 + 1;
|
||||
|
||||
jQuery( 'input.' + timeout, form ).val( timer );
|
||||
jQuery( 'input.' + timeout2, form ).val( timer2 );
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
* AJAX Submit for Gwolle Guestbook Frontend.
|
||||
*/
|
||||
var gwolle_gb_ajax_callback = jQuery.Callbacks(); // Callback function to be fired after AJAX request.
|
||||
// Use an object, arrays are only indexed by integers. This var is kept for compatibility with add-on 1.0.0 till 1.1.1.
|
||||
var gwolle_gb_ajax_data = {
|
||||
permalink: window.location.href,
|
||||
action: 'gwolle_gb_form_ajax'
|
||||
};
|
||||
|
||||
jQuery(document).ready(function($) {
|
||||
jQuery( '.gwolle_gb_form_ajax input.gwolle_gb_submit' ).on( 'click', function( submit_button ) {
|
||||
var main_div = jQuery( this ).closest( 'div.gwolle-gb' );
|
||||
jQuery( '.gwolle_gb_submit_ajax_icon', main_div ).css( 'display', 'inline' );
|
||||
|
||||
// Use an object, arrays are only indexed by integers.
|
||||
var gwolle_gb_ajax_data = {
|
||||
permalink: window.location.href,
|
||||
action: 'gwolle_gb_form_ajax'
|
||||
};
|
||||
|
||||
jQuery('form.gwolle-gb-write input', main_div).each(function( index, value ) {
|
||||
var val = jQuery( this ).prop('value');
|
||||
var name = jQuery( this ).attr('name');
|
||||
var type = jQuery( this ).attr('type');
|
||||
if ( type == 'checkbox' ) {
|
||||
var checked = jQuery( this, main_div ).prop('checked');
|
||||
if ( checked == true ) {
|
||||
gwolle_gb_ajax_data[name] = 'on'; // Mimick standard $_POST value.
|
||||
}
|
||||
} else if ( type == 'radio' ) {
|
||||
var checked = jQuery( this, main_div ).prop('checked');
|
||||
if ( checked == true ) {
|
||||
gwolle_gb_ajax_data[name] = val;
|
||||
}
|
||||
} else {
|
||||
gwolle_gb_ajax_data[name] = val;
|
||||
}
|
||||
});
|
||||
jQuery('form.gwolle-gb-write textarea', main_div).each(function( index, value ) {
|
||||
var val = jQuery( this ).val();
|
||||
var name = jQuery( this ).attr('name');
|
||||
gwolle_gb_ajax_data[name] = val;
|
||||
});
|
||||
jQuery( 'form.gwolle-gb-write select', main_div ).each(function( index, value ) {
|
||||
var val = jQuery( value ).val();
|
||||
var name = jQuery( value ).attr('name');
|
||||
gwolle_gb_ajax_data[name] = val;
|
||||
});
|
||||
|
||||
jQuery.post( gwolle_gb_frontend_script.ajax_url, gwolle_gb_ajax_data, function( response ) {
|
||||
|
||||
if ( gwolle_gb_is_json( response ) ) {
|
||||
data = JSON.parse( response );
|
||||
|
||||
if ( ( typeof data['saved'] == 'boolean' || typeof data['saved'] == 'number' )
|
||||
&& typeof data['gwolle_gb_messages'] == 'string'
|
||||
&& typeof data['gwolle_gb_errors'] == 'boolean'
|
||||
&& typeof data['gwolle_gb_error_fields'] == 'object' ) { // Too strict in testing?
|
||||
|
||||
var saved = data['saved'];
|
||||
var gwolle_gb_messages = data['gwolle_gb_messages'];
|
||||
var gwolle_gb_errors = data['gwolle_gb_errors'];
|
||||
var gwolle_gb_error_fields = data['gwolle_gb_error_fields'];
|
||||
|
||||
jQuery( '.gwolle_gb_form_ajax input' ).removeClass( 'error' );
|
||||
jQuery( '.gwolle_gb_form_ajax select' ).removeClass( 'error' );
|
||||
jQuery( '.gwolle_gb_form_ajax textarea' ).removeClass( 'error' );
|
||||
jQuery( '.gwolle_gb_form_ajax div.input').removeClass( 'error' );
|
||||
|
||||
// we have all the data we expect.
|
||||
if ( typeof data['saved'] == 'number' ) {
|
||||
|
||||
// Show returned messages.
|
||||
jQuery( '.gwolle_gb_messages_bottom_container', main_div ).html('');
|
||||
jQuery( '.gwolle_gb_messages_top_container', main_div ).html('<div class="gwolle_gb_messages">' + data['gwolle_gb_messages'] + '</div>');
|
||||
jQuery( '.gwolle_gb_messages', main_div ).removeClass( 'error' );
|
||||
|
||||
// Remove form from view.
|
||||
jQuery( '.gwolle-gb-write', main_div ).css( 'display', 'none' );
|
||||
jQuery( '.gwolle-gb-write-button', main_div ).css( 'display', 'block' );
|
||||
|
||||
// Prepend entry to the entry list if desired.
|
||||
if ( typeof data['entry'] == 'string' ) {
|
||||
jQuery( '.gwolle-gb-read', main_div ).prepend( data['entry'] );
|
||||
}
|
||||
|
||||
// Scroll to messages div. Add 80px to offset for themes with fixed headers.
|
||||
var offset = jQuery( '.gwolle_gb_messages_top_container' ).offset().top - 80;
|
||||
jQuery('html, body').animate({
|
||||
scrollTop: offset
|
||||
}, 200, function() {
|
||||
// Animation complete.
|
||||
});
|
||||
|
||||
// Reset content textarea.
|
||||
jQuery( 'textarea', main_div ).val('');
|
||||
|
||||
jQuery( '.gwolle_gb_submit_ajax_icon', main_div ).css( 'display', 'none' );
|
||||
|
||||
/*
|
||||
* Add callback for after AJAX request. Used for metabox-handle for new entries.
|
||||
*
|
||||
* @since 2.3.0
|
||||
*
|
||||
* Example code for using the callback:
|
||||
*
|
||||
* jQuery(document).ready(function($) {
|
||||
* gwolle_gb_ajax_callback.add( my_callback_function );
|
||||
* });
|
||||
*
|
||||
* function my_callback_function() {
|
||||
* console.log('This is the callback');
|
||||
* return false;
|
||||
* }
|
||||
*
|
||||
*/
|
||||
gwolle_gb_ajax_callback.fire();
|
||||
|
||||
} else {
|
||||
// Not saved...
|
||||
|
||||
// Show returned messages.
|
||||
jQuery( '.gwolle_gb_messages_top_container', main_div ).html('');
|
||||
jQuery( '.gwolle_gb_messages_bottom_container', main_div ).html('<div class="gwolle_gb_messages error">' + data['gwolle_gb_messages'] + '</div>');
|
||||
|
||||
// Add error class to failed input fields.
|
||||
jQuery.each( gwolle_gb_error_fields, function( index, value ) {
|
||||
jQuery( 'textarea.' + value, main_div ).addClass( 'error' );
|
||||
jQuery( 'input.' + value, main_div ).addClass( 'error' );
|
||||
var type = jQuery( 'input.' + value, main_div ).attr('type');
|
||||
if ( typeof type != 'undefined' && type == 'radio' ) {
|
||||
jQuery( 'input.' + value, main_div ).closest('div.input').addClass( 'error' );
|
||||
}
|
||||
var select = jQuery( 'select.' + value, main_div ).length;
|
||||
if ( typeof select != 'undefined' && select == 1 ) { // number of elements, which should be 1.
|
||||
jQuery( 'select.' + value, main_div ).closest('div.input').addClass( 'error' );
|
||||
}
|
||||
});
|
||||
|
||||
jQuery( '.gwolle_gb_submit_ajax_icon', main_div ).css( 'display', 'none' );
|
||||
|
||||
}
|
||||
} else if (typeof console != "undefined") {
|
||||
console.log( 'Gwolle Error: Something unexpected happened. (not the data that is expected)' );
|
||||
}
|
||||
} else {
|
||||
if (typeof console != "undefined") {
|
||||
console.log( 'Gwolle Error: Something unexpected happened. (not json data)' );
|
||||
}
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function gwolle_gb_is_json( string ) {
|
||||
try {
|
||||
JSON.parse( string );
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user