Improves notification system
* ICalendarManager.cs: WIP booking TODO a calendar provider
* NpgsqlProfileProvider.cs: Fixes the defaultValue specification from
config file
* BlogsController.cs:
* AccountController.cs:
* CalendarController.cs: refactoring : the Yavsc controller name
* instdbws.sql: a new profile value : a boolean, `AllowCookies` :'{
* style.css: a class to display notification
* HomeController.cs: Notifies users this site uses cookies (what for
an information!)
If authenticated, at dimissing this notification, the user's profile
is updated,
and he'll not mess up anymore with the info.
* App.master:
* YavscHelpers.cs: adds usage of click_action value at
displaying a notification.
* yavsc.js: Implements the notification `click_action`
* Web.config: * enables anonymous profiles
* adds a new `allowcookies` profile property
* Web.csproj: Yavsc controller refactoring
* YaEvent.cs:
* IFreeDateSet.cs: WIP booking
* LocalizedText.resx:
* LocalizedText.fr.resx:
* LocalizedText.Designer.cs:
* LocalizedText.fr.Designer.cs: implements the message "uses cookies"
* YavscModel.csproj: refactoring
* Notification.cs: The Yavsc otification will start as a Google one
...
many properties are not yet used, but all seems usefull.
* Web.config: code prettying
* YavscController.cs: Gives Yavsc a concrete base controller
This commit is contained in:
parent
0e6da27309
commit
b8446c2d3e
26 changed files with 256 additions and 116 deletions
|
|
@ -1,8 +1,8 @@
|
|||
var Yavsc = (function(apiBaseUrl){
|
||||
var self = {};
|
||||
|
||||
var $notifications = $('#notifications');
|
||||
function dumpprops(obj) {
|
||||
|
||||
self.dumpprops = function (obj) {
|
||||
var str = "";
|
||||
for(var k in obj)
|
||||
if (obj.hasOwnProperty(k))
|
||||
|
|
@ -30,32 +30,42 @@ self.dimiss = function () {
|
|||
$(this).parent().remove();
|
||||
};
|
||||
|
||||
self.ajax = function (method,data,callback) {
|
||||
$.ajax({
|
||||
url: self.apiBaseUrl+method,
|
||||
type: "POST",
|
||||
data: data,
|
||||
success: function (response) {
|
||||
if (callback) callback(response);
|
||||
},
|
||||
statusCode: {
|
||||
400: Yavsc.onAjaxBadInput
|
||||
},
|
||||
error: Yavsc.onAjaxError});
|
||||
};
|
||||
|
||||
self.onScroll = function() {
|
||||
var $notifications = $('#notifications');
|
||||
if ($notifications.has('*').length>0) {
|
||||
if ($(window).scrollTop()>375) {
|
||||
console.log('fixit');
|
||||
$notifications.css('position','fixed');
|
||||
$notifications.css('z-index',2);
|
||||
$notifications.css('top',0);
|
||||
if ($(window).scrollTop()>100) {
|
||||
$notifications.addClass("dispmodal");
|
||||
}
|
||||
else {
|
||||
$notifications.css('position','static');
|
||||
$notifications.css('z-index',1);
|
||||
$notifications.removeClass("dispmodal");
|
||||
}}
|
||||
};
|
||||
|
||||
self.notice = function (msg, msgok) {
|
||||
self.notice = function (msg, callback, msgok) {
|
||||
if (!msgok) msgok='Ok';
|
||||
if (msg) {
|
||||
var note = $('<div class="notification">'+msg+'<br></div>');
|
||||
$('<a class="actionlink"><i class="fa fa-check">'+msgok+'</i></a>').click(self.dimiss).appendTo(note);
|
||||
var btn = $('<a class="actionlink"><i class="fa fa-check">'+msgok+'</i></a>');
|
||||
if (callback) btn.click(callback);
|
||||
btn.click(self.dimiss).appendTo(note);
|
||||
note.appendTo("#notifications");
|
||||
self.onScroll();
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
self.onAjaxBadInput = function (data)
|
||||
self.onAjaxBadInput = function (data)
|
||||
{
|
||||
if (!data) { Yavsc.notice('no data'); return; }
|
||||
if (!data.responseJSON) { Yavsc.notice('no json data:'+data); return; }
|
||||
|
|
@ -68,7 +78,6 @@ self.notice = function (msg, msgok) {
|
|||
else
|
||||
errspan.innerHTML=value.errors.join("<br/>");
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
self.onAjaxError = function (xhr, ajaxOptions, thrownError) {
|
||||
|
|
@ -95,24 +104,16 @@ $btnshow.addClass('hidden');
|
|||
$btnhide.removeClass('hidden');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
$body = $("body");
|
||||
$(document).on({
|
||||
ajaxStart: function() { $body.addClass("loading"); },
|
||||
ajaxStop: function() { $body.removeClass("loading"); }
|
||||
});
|
||||
$body = $("body");
|
||||
$(document).on({
|
||||
ajaxStart: function() { $body.addClass("loading"); },
|
||||
ajaxStop: function() { $body.removeClass("loading"); }
|
||||
});
|
||||
$(window).scroll(self.onScroll);
|
||||
});
|
||||
|
||||
|
||||
|
||||
return self;
|
||||
})();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue