summaryrefslogtreecommitdiff
path: root/inc/lib/notices/notices.js
diff options
context:
space:
mode:
Diffstat (limited to 'inc/lib/notices/notices.js')
-rw-r--r--inc/lib/notices/notices.js95
1 files changed, 95 insertions, 0 deletions
diff --git a/inc/lib/notices/notices.js b/inc/lib/notices/notices.js
new file mode 100644
index 0000000..3903b30
--- /dev/null
+++ b/inc/lib/notices/notices.js
@@ -0,0 +1,95 @@
+/**
+ * Customizer controls toggles
+ *
+ * @package Astra
+ */
+
+ ( function( $ ) {
+
+ /**
+ * Helper class for the main Customizer interface.
+ *
+ * @since 1.0.0
+ * @class ASTCustomizer
+ */
+ AstraNotices = {
+
+ /**
+ * Initializes our custom logic for the Customizer.
+ *
+ * @since 1.0.0
+ * @method init
+ */
+ init: function()
+ {
+ this._bind();
+ },
+
+ /**
+ * Binds events for the Astra Portfolio.
+ *
+ * @since 1.0.0
+ * @access private
+ * @method _bind
+ */
+ _bind: function()
+ {
+ $( document ).on('click', '.astra-notice-close', AstraNotices._dismissNoticeNew );
+ $( document ).on('click', '.astra-notice .notice-dismiss', AstraNotices._dismissNotice );
+ },
+
+ _dismissNotice: function( event ) {
+ event.preventDefault();
+
+ var repeat_notice_after = $( this ).parents('.astra-notice').data( 'repeat-notice-after' ) || '';
+ var notice_id = $( this ).parents('.astra-notice').attr( 'id' ) || '';
+
+ AstraNotices._ajax( notice_id, repeat_notice_after );
+ },
+
+ _dismissNoticeNew: function( event ) {
+ event.preventDefault();
+
+ var repeat_notice_after = $( this ).attr( 'data-repeat-notice-after' ) || '';
+ var notice_id = $( this ).parents('.astra-notice').attr( 'id' ) || '';
+
+ var $el = $( this ).parents('.astra-notice');
+ $el.fadeTo( 100, 0, function() {
+ $el.slideUp( 100, function() {
+ $el.remove();
+ });
+ });
+
+ AstraNotices._ajax( notice_id, repeat_notice_after );
+
+ var link = $( this ).attr( 'href' ) || '';
+ var target = $( this ).attr( 'target' ) || '';
+ if( '' !== link && '_blank' === target ) {
+ window.open(link , '_blank');
+ }
+ },
+
+ _ajax: function( notice_id, repeat_notice_after ) {
+
+ if( '' === notice_id ) {
+ return;
+ }
+
+ $.ajax({
+ url: ajaxurl,
+ type: 'POST',
+ data: {
+ action : 'astra-notice-dismiss',
+ nonce : astraNotices._notice_nonce,
+ notice_id : notice_id,
+ repeat_notice_after : parseInt( repeat_notice_after ),
+ },
+ });
+
+ }
+ };
+
+ $( function() {
+ AstraNotices.init();
+ } );
+} )( jQuery );