Fixes dismiss dialog, now uses localstorage and db

This commit is contained in:
nikolark committed 2014-09-04 10:24:28 +02:00
1 parent 3b65584f35
commit b899cda7ea
5 files changed
+49 -47

No files matched your search

+37 -21
View File
@@ -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
View File
@@ -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
View File
@@ -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
+7 -7
View File
@@ -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')));
}
+3 -17
View File
@@ -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());
});