Fixes dismiss dialog, now uses localstorage and db
This commit is contained in:
1 parent
3b65584f35
commit
b899cda7ea
5 files changed
+49
-47
No files matched your search
@@ -138,39 +138,55 @@ function load_initial_values() {
|
||||
}
|
||||
}
|
||||
function save_user_meta(key, value) {
|
||||
console.log(key, value);
|
||||
/* set localstorage first, then update database with usermeta key and value */
|
||||
try {
|
||||
localStorage.setItem(key, value);
|
||||
} catch(err) { /* do nothing */ }
|
||||
|
||||
var url = $('meta[name=x-siteurl]').attr('content') + '/wp-admin/admin-ajax.php';
|
||||
var params = {
|
||||
action: 'neuf_save_user_meta',
|
||||
meta_key: key,
|
||||
meta_value: value,
|
||||
unique: true,
|
||||
user_id: $('meta[name=x-user-id]').attr('content'),
|
||||
user_id: parseInt($('meta[name=x-user-id]').attr('content'), 10),
|
||||
_wpnonce: $('meta[name=x-user-meta-nonce]').attr('content')
|
||||
};
|
||||
$.post(url, params, function() {
|
||||
localStorage.setItem(key, value);
|
||||
|
||||
$.post(url, params, function(data) {
|
||||
console.log(data);
|
||||
});
|
||||
}
|
||||
function get_user_meta(key, callback) {
|
||||
// TODO you are here
|
||||
}
|
||||
|
||||
function get_user_meta(key, callback) {
|
||||
/* Check localstorage first, then database for usermeta key */
|
||||
try {
|
||||
var value = localStorage.getItem(key);
|
||||
callback({result:value});
|
||||
return;
|
||||
} catch(err) {
|
||||
console.log('no '+ key);
|
||||
}
|
||||
if(value !== null) {
|
||||
callback({result:value});
|
||||
return;
|
||||
}
|
||||
} catch(err) { /* Do nothing */ }
|
||||
|
||||
var url = $('meta[name=x-siteurl]').attr('content') + '/wp-admin/admin-ajax.php';
|
||||
var params = {
|
||||
action: 'neuf_get_user_meta',
|
||||
meta_key: key,
|
||||
single: true,
|
||||
user_id: $('meta[name=x-user-id]').attr('content'),
|
||||
user_id: parseInt($('meta[name=x-user-id]').attr('content'), 10),
|
||||
_wpnonce: $('meta[name=x-user-meta-nonce]').attr('content')
|
||||
};
|
||||
$.get(url, params, callback);
|
||||
}
|
||||
$.getJSON(url, params, function(data) {
|
||||
// Update localstorage if it's set
|
||||
if(data.hasOwnProperty('result') && data.result !== '') {
|
||||
try {
|
||||
localStorage.setItem(key, data.result);
|
||||
} catch(err) { /* do nothing */ }
|
||||
}
|
||||
// continue
|
||||
callback(data);
|
||||
});
|
||||
}
|
||||
|
||||
jQuery(document).ready(function() {
|
||||
moment.lang('nb');
|
||||
@@ -192,24 +208,25 @@ jQuery(document).ready(function() {
|
||||
var menu = $('#menu .user-menu');
|
||||
menu.toggleClass('visible');
|
||||
});
|
||||
|
||||
/* User intro dismiss and save */
|
||||
$('[data-toggle-introduction]').on('click', function() {
|
||||
//$(this).parent().fadeOut(600);
|
||||
$(this).parent().fadeOut(600);
|
||||
save_user_meta('introduction_dismissed', true);
|
||||
});
|
||||
if( $('.introduction').length ) {
|
||||
if( $('.front-page .introduction').length ) {
|
||||
get_user_meta('introduction_dismissed', function(data) {
|
||||
if(data.hasOwnProperty('result') && data.result !== 'true') {
|
||||
$('.introduction').show();
|
||||
$('.introduction').addClass('fadein');
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/* Program */
|
||||
/* Program page */
|
||||
var program_entrypoint = '.program-list';
|
||||
if( $(program_entrypoint).length ) {
|
||||
/* */
|
||||
/* Load program */
|
||||
$.getJSON(
|
||||
program_endpoint+'?callback=?',
|
||||
query_params,
|
||||
@@ -223,7 +240,6 @@ jQuery(document).ready(function() {
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/* Search page */
|
||||
if( $('.search-form').length ) {
|
||||
$.getJSON(inside_groups_url, function(data) {
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="12" viewBox="0 0 18 12"><g fill="#fff"><path d="M0 0h18v2h-18zM0 5h18v2h-18zM0 10h18v2h-18z"/></g></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="12" viewBox="0 0 18 12"><g fill="#fff"><path d="M0 0h18v2H0zM0 5h18v2H0zM0 10h18v2H0z"/></g></svg>
|
||||
|
Before Width: | Height: | Size: 163 B After Width: | Height: | Size: 157 B |
+1
-1
@@ -1 +1 @@
|
||||
"use strict";function getParameterByName(e){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var t=new RegExp("[\\?&]"+e+"=([^&#]*)"),a=t.exec(location.search);return null===a?"":decodeURIComponent(a[1].replace(/\+/g," "))}function format_posts(e){var t="",a=0;if(0===e.length)return"Idag er det stille på huset :-/";for(a=0;a<e.length;a++){var r=e[a];t+='<li class="fadein">',t+='<span class="entry-starttime">'+moment.unix(r.custom_fields._neuf_events_starttime).utc().format("HH.mm")+"</span>: ",t+='<a href="'+r.url+'">'+r.title+"</a>",t+=' <span class="entry-venue">'+r.custom_fields._neuf_events_venue+"</span>",t+="</li>"}return t}function format_results(e){var t="<table><thead><tr><th>Navn</th><th>Brukernavn</th><th>Epost</th><th>Telefon</th><th>Har medlemskap</th><th>Grupper</th></tr></thead>";if(e.error)return console.log(e.error),$(".search-result-list").html(""),void $(".search-results .meta").html("");if(0===e.meta.num_results)return $(".search-result-list").html("Uffda, ingen treff."),void $(".search-results .meta").html("");var a='<tbody><% _.each(results, function(u) { %><tr><td><a href="'+inside_url+'/?page=display-user&userid=<%= u.id %>"><%= u.firstname %> <%= u.lastname %></a></td><td><%= u.username %></td><td><a href="mailto:<%= u.email %>"><%= u.email %></a></td><td><a href="tlf:<%= u.number %>"><%= u.number %></a></td><td><% if(u.is_member != 0) { %>Ja<% } else { %>Nei<% } %></td><td class="groups"><% _.each(u.groups, function(g, i) { %><%= g.name %><% if(u.groups.length !== i +1){ %>, <% } %><% }); %></td></tr> <% }); %></tbody></table>',r=t+_.template(a,e);$(".search-result-list").html(r);var n="Antall treff: <%= meta.num_results %>";$(".search-results .meta").html(_.template(n,e))}function do_search(){var e=$('.filters [data-search-filter="has_valid_membership"]'),t="",a=$(".groups-select").val();null!==a&&(t=a.join());var r={q:$(".search-field").val(),filter_groups:t};e.hasClass("active")&&(r.has_valid_membership=!0);var n=$.param(r);window.History.pushState(null,null,"?"+n),r._wpnonce=$("meta[name=x-inside-api-nonce]").attr("content"),$.getJSON(user_search_endpoint,r,format_results)}function load_initial_values(){var e=!1,t=getParameterByName("q");t&&t.length>0&&($(".search-field").val(t),e=!0);var a=getParameterByName("has_valid_membership");a&&"true"===a&&($('.filters [data-search-filter="has_valid_membership"]').addClass("active"),e=!0);var r=getParameterByName("filter_groups"),n=[];if(r&&r.length>0){n=-1!==r.indexOf(",")?r.split(","):[r];var s=!1,i=0;for(i=0;i<n.length;i++){var l=n[i];$.isNumeric(l)||(s=!0)}s||(e=!0,$(".groups-select").val(n),$(".groups-select").trigger("chosen:updated"))}e&&do_search()}function save_user_meta(e,t){console.log(e,t);var a=$("meta[name=x-siteurl]").attr("content")+"/wp-admin/admin-ajax.php",r={action:"neuf_save_user_meta",meta_key:e,meta_value:t,unique:!0,user_id:$("meta[name=x-user-id]").attr("content"),_wpnonce:$("meta[name=x-user-meta-nonce]").attr("content")};$.post(a,r,function(){localStorage.setItem(e,t)})}function get_user_meta(e,t){try{var a=localStorage.getItem(e);return void t({result:a})}catch(r){console.log("no "+e)}var n=$("meta[name=x-siteurl]").attr("content")+"/wp-admin/admin-ajax.php",s={action:"neuf_get_user_meta",meta_key:e,single:!0,user_id:$("meta[name=x-user-id]").attr("content"),_wpnonce:$("meta[name=x-user-meta-nonce]").attr("content")};$.get(n,s,t)}var program_endpoint="https://studentersamfundet.no/api/events/get_today/",inside_url="https://inside.studentersamfundet.no",inside_groups_url=inside_url+"/api/groups.php",user_search_endpoint="/inside-api/",email_search_endpoint="/email-api/",query_params={};jQuery(document).ready(function(){moment.lang("nb");var e=jQuery;e("#menu .menu-toggle").on("click",function(t){t.preventDefault();var a=e("#menu .main-menu, #menu .user-menu-wrap");a.toggleClass("visible")}),e("#menu a.profile-badge").on("click",function(t){t.preventDefault();var a=e("#menu .user-menu");a.toggleClass("visible")}),e("[data-toggle-introduction]").on("click",function(){save_user_meta("introduction_dismissed",!0)}),e(".introduction").length&&get_user_meta("introduction_dismissed",function(t){t.hasOwnProperty("result")&&"true"!==t.result&&(e(".introduction").show(),e(".introduction").addClass("fadein"))});var t=".program-list";if(e(t).length&&e.getJSON(program_endpoint+"?callback=?",query_params,function(a){if(a&&a.events){var r=format_posts(a.events);e(t).html(r)}}),e(".search-form").length&&(e.getJSON(inside_groups_url,function(t){var a='<select multiple class="groups-select" data-placeholder="Velg en gruppe..."><option value=""></option><% _.each(results, function(g) { %><option value="<%=g.group_id %>"><%= g.group_name %></option><% }); %></select>',r=_.template(a,t);e(".groups-select-wrap").html(r),e(".groups-select").chosen({no_results_text:"Uffda, ingen treff!",allow_single_deselect:!0}).change(function(){do_search()}),load_initial_values()}),e(".search-field").on("keyup keypress",function(e){(10===e.keyCodeLine truncated
|
||||
"use strict";function getParameterByName(e){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var t=new RegExp("[\\?&]"+e+"=([^&#]*)"),a=t.exec(location.search);return null===a?"":decodeURIComponent(a[1].replace(/\+/g," "))}function format_posts(e){var t="",a=0;if(0===e.length)return"Idag er det stille på huset :-/";for(a=0;a<e.length;a++){var r=e[a];t+='<li class="fadein">',t+='<span class="entry-starttime">'+moment.unix(r.custom_fields._neuf_events_starttime).utc().format("HH.mm")+"</span>: ",t+='<a href="'+r.url+'">'+r.title+"</a>",t+=' <span class="entry-venue">'+r.custom_fields._neuf_events_venue+"</span>",t+="</li>"}return t}function format_results(e){var t="<table><thead><tr><th>Navn</th><th>Brukernavn</th><th>Epost</th><th>Telefon</th><th>Har medlemskap</th><th>Grupper</th></tr></thead>";if(e.error)return console.log(e.error),$(".search-result-list").html(""),void $(".search-results .meta").html("");if(0===e.meta.num_results)return $(".search-result-list").html("Uffda, ingen treff."),void $(".search-results .meta").html("");var a='<tbody><% _.each(results, function(u) { %><tr><td><a href="'+inside_url+'/?page=display-user&userid=<%= u.id %>"><%= u.firstname %> <%= u.lastname %></a></td><td><%= u.username %></td><td><a href="mailto:<%= u.email %>"><%= u.email %></a></td><td><a href="tlf:<%= u.number %>"><%= u.number %></a></td><td><% if(u.is_member != 0) { %>Ja<% } else { %>Nei<% } %></td><td class="groups"><% _.each(u.groups, function(g, i) { %><%= g.name %><% if(u.groups.length !== i +1){ %>, <% } %><% }); %></td></tr> <% }); %></tbody></table>',r=t+_.template(a,e);$(".search-result-list").html(r);var n="Antall treff: <%= meta.num_results %>";$(".search-results .meta").html(_.template(n,e))}function do_search(){var e=$('.filters [data-search-filter="has_valid_membership"]'),t="",a=$(".groups-select").val();null!==a&&(t=a.join());var r={q:$(".search-field").val(),filter_groups:t};e.hasClass("active")&&(r.has_valid_membership=!0);var n=$.param(r);window.History.pushState(null,null,"?"+n),r._wpnonce=$("meta[name=x-inside-api-nonce]").attr("content"),$.getJSON(user_search_endpoint,r,format_results)}function load_initial_values(){var e=!1,t=getParameterByName("q");t&&t.length>0&&($(".search-field").val(t),e=!0);var a=getParameterByName("has_valid_membership");a&&"true"===a&&($('.filters [data-search-filter="has_valid_membership"]').addClass("active"),e=!0);var r=getParameterByName("filter_groups"),n=[];if(r&&r.length>0){n=-1!==r.indexOf(",")?r.split(","):[r];var s=!1,i=0;for(i=0;i<n.length;i++){var l=n[i];$.isNumeric(l)||(s=!0)}s||(e=!0,$(".groups-select").val(n),$(".groups-select").trigger("chosen:updated"))}e&&do_search()}function save_user_meta(e,t){try{localStorage.setItem(e,t)}catch(a){}var r=$("meta[name=x-siteurl]").attr("content")+"/wp-admin/admin-ajax.php",n={action:"neuf_save_user_meta",meta_key:e,meta_value:t,unique:!0,user_id:parseInt($("meta[name=x-user-id]").attr("content"),10),_wpnonce:$("meta[name=x-user-meta-nonce]").attr("content")};$.post(r,n,function(e){console.log(e)})}function get_user_meta(e,t){try{var a=localStorage.getItem(e);if(null!==a)return void t({result:a})}catch(r){}var n=$("meta[name=x-siteurl]").attr("content")+"/wp-admin/admin-ajax.php",s={action:"neuf_get_user_meta",meta_key:e,single:!0,user_id:parseInt($("meta[name=x-user-id]").attr("content"),10),_wpnonce:$("meta[name=x-user-meta-nonce]").attr("content")};$.getJSON(n,s,function(a){if(a.hasOwnProperty("result")&&""!==a.result)try{localStorage.setItem(e,a.result)}catch(r){}t(a)})}var program_endpoint="https://studentersamfundet.no/api/events/get_today/",inside_url="https://inside.studentersamfundet.no",inside_groups_url=inside_url+"/api/groups.php",user_search_endpoint="/inside-api/",email_search_endpoint="/email-api/",query_params={};jQuery(document).ready(function(){moment.lang("nb");var e=jQuery;e("#menu .menu-toggle").on("click",function(t){t.preventDefault();var a=e("#menu .main-menu, #menu .user-menu-wrap");a.toggleClass("visible")}),e("#menu a.profile-badge").on("click",function(t){t.preventDefault();var a=e("#menu .user-menu");a.toggleClass("visible")}),e("[data-toggle-introduction]").on("click",function(){e(this).parent().fadeOut(600),save_user_meta("introduction_dismissed",!0)}),e(".front-page .introduction").length&&get_user_meta("introduction_dismissed",function(t){t.hasOwnProperty("result")&&"true"!==t.result&&(e(".introduction").show(),e(".introduction").addClass("fadein"))});var t=".program-list";if(e(t).length&&e.getJSON(program_endpoint+"?callback=?",query_params,function(a){if(a&&a.events){var r=format_posts(a.events);e(t).html(r)}}),e(".search-form").length&&(e.getJSON(inside_groups_url,function(t){var a='<select multiple class="groups-select" data-placeholder="Velg en gruppe..."><option value=""></option><% _.each(results, function(g) { %><option value="<%=g.group_id %>"><%= g.group_name %></option><% }); %></select>',r=_.template(a,t);e(".groups-select-wrap").html(r),e(".groups-select").chosen({noLine truncated
|
||||
@@ -414,13 +414,13 @@ add_filter( 'excerpt_more', 'neuf_excerpt_more' );
|
||||
function neuf_save_user_meta() {
|
||||
global $wpdb;
|
||||
|
||||
$user_id = (int) $_POST['user_id']; // TODO: sanitize
|
||||
$user_id = (int) $_POST['user_id'];
|
||||
$meta_key = $_POST['meta_key']; // TODO: sanitize
|
||||
$meta_value = $_POST['meta_value']; // TODO: sanitize
|
||||
$unique = (bool) $_POST['unique'];
|
||||
|
||||
if( !get_userdata($user_id) ) {
|
||||
die(json_encode(array('error' => 'Invalid user_id'.$_POST['user_id'])));
|
||||
die(json_encode(array('error' => 'Invalid user_id: \''. $_POST['user_id'] .'\'')));
|
||||
}
|
||||
if( !is_user_logged_in() ) {
|
||||
die(json_encode(array('error' => 'Log in first')));
|
||||
@@ -443,18 +443,18 @@ function neuf_save_user_meta() {
|
||||
function neuf_get_user_meta() {
|
||||
global $wpdb;
|
||||
|
||||
$user_id = (int) $_POST['user_id']; // TODO: sanitize
|
||||
$meta_key = $_POST['meta_key']; // TODO: sanitize
|
||||
$single = (bool) $_POST['single']; // TODO: sanitize
|
||||
$user_id = (int) $_GET['user_id'];
|
||||
$meta_key = $_GET['meta_key']; // TODO: sanitize
|
||||
$single = (bool) $_GET['single'];
|
||||
|
||||
if( !get_userdata($user_id) ) {
|
||||
die(json_encode(array('error' => 'Invalid user_id'.$_POST['user_id'])));
|
||||
die(json_encode(array('error' => 'Invalid user_id: \''. $_GET['user_id'] .'\'')));
|
||||
}
|
||||
if( !is_user_logged_in() ) {
|
||||
die(json_encode(array('error' => 'Log in first')));
|
||||
}
|
||||
|
||||
if( !wp_verify_nonce( $_POST['_wpnonce'], 'user-meta' ) ) {
|
||||
if( !wp_verify_nonce( $_GET['_wpnonce'], 'user-meta' ) ) {
|
||||
die(json_encode(array('error' => 'Invalid nonce')));
|
||||
}
|
||||
|
||||
|
||||
@@ -6,30 +6,16 @@ var gulp = require('gulp');
|
||||
|
||||
// load plugins
|
||||
var $ = require('gulp-load-plugins')();
|
||||
var gutil = require('gulp-util');
|
||||
var bowerFiles = require('main-bower-files');
|
||||
|
||||
var onError = function (err) {
|
||||
gutil.beep();
|
||||
gutil.log( gutil.colors.red(err));
|
||||
};
|
||||
|
||||
//gulp.task('components', function() {
|
||||
// return gulp.src(['app/bower_components/chosen-bower/chosen.css'])
|
||||
// .pipe($.rename('_chosen.scss'))
|
||||
// .pipe(gulp.dest('app/styles'));
|
||||
//});
|
||||
|
||||
gulp.task('styles', function () {
|
||||
return gulp.src('app/styles/main.scss')
|
||||
//.pipe($.plumber(onError))
|
||||
.pipe($.sass({
|
||||
includePaths: ['app/bower_components/foundation/scss'],
|
||||
errLogToConsole: true,
|
||||
sourceComments: 'map'
|
||||
errLogToConsole: true
|
||||
// sourceComments: 'map' // TODO does not work yet
|
||||
}))
|
||||
//.pipe($.autoprefixer('last 1 version'))
|
||||
.pipe($.plumber.stop())
|
||||
.pipe($.autoprefixer('last 1 version'))
|
||||
.pipe(gulp.dest('dist/styles'))
|
||||
.pipe($.size());
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user