add bootstrap

This commit is contained in:
2018-06-13 23:16:53 +02:00
parent 76faf824fc
commit 6ee27fda3d
151 changed files with 21257 additions and 1745 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+110 -32
View File
@@ -1,3 +1,82 @@
var Tools = {
serialize: function(sFormId)
{
var asForm = {};
$.each($('#'+sFormId).serializeArray(), function(key, item){
asForm[item.name] = item.value;
});
return asForm;
},
ajax: function(sAction, fOnSuccess, oData, fOnFail, $Loader, sType, sDataType)
{
sType = sType || 'GET';
sDataType = sDataType || 'json';
oData = oData || {};
var asData = {};
if($.type(oData)=='string') {
asData = this.serialize(oData);
}
else asData = oData;
if($Loader)
{
$Loader
.data('load_html', $Loader.html())
.data('load_class', $Loader.attr('class'))
.removeClassPrefix('fa-')
.addClass('loader')
.html($('<img>', {'class':'onlyimg', src: Config.paths.dir.theme_image+"ajax.svg"}));
}
asData['a'] = sAction;
$.ajax({
url: oMyThoughts.consts.context.process_page,
type: sType,
data: asData,
dataType: sDataType
})
.done(function(oData) {
if(oData.result==oMyThoughts.consts.error) {
if(!fOnFail) Tools.feedback('error', oData.desc);
else fOnFail(oData.desc);
}
else fOnSuccess(oData.data, oData.desc);
if($Loader) {
$Loader
.removeClass()
.addClass($Loader.data('load_class'))
.html($Loader.data('load_html'));
}
})
.fail(function(jqXHR, textStatus, errorThrown) {
if(!fOnFail) Tools.feedback('error', textStatus+' '+errorThrown);
else fOnFail(textStatus);
}
);
},
getIcon: function(sIcon, bFull){
bFull = bFull || false;
return $('<i>', {'class': bFull?sIcon:('fal fa-'+sIcon)});
},
feedback: function(sClass, sMsg, $Box)
{
$Box = $Box || $('#feedback');
sMsg = sMsg || '';
if(sClass=='error' && typeof sMsg == 'string' && sMsg=='') sMsg = 'Oops ! An unknown error occured';
$('<div>', {'class':'alert shadow rounded alert-'+(sClass=='error'?'danger':sClass), role:'alert'})
.append(sMsg)
.appendTo($Box)
.slideDown('fast')
.delay(5000)
.slideUp('fast', function(){$(this).remove();});
}
};
function emptyBox(element, text)
{
//var textarea = $('#thoughts_form textarea[name="thoughts"]');
@@ -19,11 +98,6 @@ function setHeight(element)
element.style.height = height+'px';
}
function goTo(url)
{
window.location.href = url;
}
function addInput(form, name, type, value)
{
var registerInput = document.createElement('input');
@@ -33,26 +107,6 @@ function addInput(form, name, type, value)
document.forms[form].appendChild(registerInput);
}
/*
texts = new Object();
texts['thoughts'] = 'Talk to me.';
texts['login'] = 'Nickname';
texts['pass'] = 'Password';
window.onload = function ()
{
for (i in texts)
{
var id = document.getElementById(i);
if(id)
{
id.addEventListener('focus', function() {emptyBox(this, texts[this.name]);}, false);
id.addEventListener('blur', function() {emptyBox(this, texts[this.name]);}, false);
}
}
};
*/
function getInfo(action, fOnSuccess, vars, fOnError, sType/*, bProcessIcon*/)
{
if(!vars) vars = {};
@@ -93,11 +147,8 @@ function feedback(sClass, sMsg, $Box)
{
$Box = $Box || $('#feedback');
sMsg = sMsg || '';
var sHeight = 20;
$('.feedback').each(function(){sHeight += $(this).outerHeight() + 10;});
if(sClass=='error' && sMsg=='') sMsg = 'Oops ! An unknown error occured';
$('<span>', {'class':'feedback round '+sClass})
.css('top', sHeight+'px')
$('<div>', {'class':'alert shadow rounded alert-'+(sClass=='error'?'danger':sClass), role:'alert'})
//.append($('<i>', {'class':'fa fa-standalone fa-'+sClass}))
.append(addPunctuation(sMsg))
.appendTo($Box)
@@ -169,12 +220,39 @@ $.prototype.checkForm = function(sSelector)
sSelector = sSelector || 'input[type="password"], input[type="text"], textarea';
var $This = $(this);
var bOk = true;
$This.find(sSelector).each(function()
var $Desc = $('<span>');
var $Fields = $This.find(sSelector);
$Fields.each(function()
{
$This = $(this);
bOk = bOk && $This.val()!='' && $This.val()!=$This.data('default_value');
var sFieldValue = $This.val();
var sFieldName = $This.attr('placeholder');
//Icon
var sFieldIcon = $This.prev().find('.input-group-text').find('.fal').attr('class');
var $FieldIcon = (sFieldIcon==undefined)?'':Tools.getIcon(sFieldIcon, true).addClass('fa-fw bold');
if(sFieldValue=='' || sFieldValue==$This.data('default_value')) {
bOk = false;
$Desc.append('Field ').append($FieldIcon).append($('<strong>').text(sFieldName)).append(' is empty');
}
switch($This.attr('type')) {
case 'password':
var $Conf = $Fields.filter('#'+$This.attr('id')+'_conf');
if($Conf.length!==0 && $Conf.val()!=sFieldValue){
bOk = false;
$Desc.append('Passwords do not match');
}
break;
}
//Break loop
if(!bOk) return false;
});
return bOk;
return {success: bOk, desc: $Desc};
};
$.fn.toEm = function(settings){
+39 -13
View File
@@ -5,6 +5,7 @@ function MyThoughts(asGlobals)
this.consts.hash_sep = '-';
this.consts.default_page = 'home';
this.consts.title = 'My Thoughts';
this.consts.root = location.protocol+'//'+location.host+location.pathname;
this.init = function()
{
@@ -16,14 +17,11 @@ function MyThoughts(asGlobals)
//page elem
self.elem = {};
self.elem.container = $('#container');
self.elem.$Container = $('#container');
//on window resize
$(window).resize(self.onResize).resize();
//Setup menu
//self.initMenu();
//Hash management
self.resetTmpFunctions();
$(window)
@@ -57,7 +55,7 @@ function MyThoughts(asGlobals)
this.initMenu = function()
{
self.elem.$Menu.show('fast');
};
/* Events */
@@ -76,10 +74,10 @@ function MyThoughts(asGlobals)
this.resetTmpFunctions = function()
{
self.pageInit = function(asHash){console.log('no init for the page: '+asHash.page)};
self.pageInit = function(asHash, bFirstPage){console.log('no init for the page: '+asHash.page)};
self.onSamePageMove = function(asHash){return false};
self.onQuitPage = function(){return true};
self.onFeedback = function(sType, sMsg){feedback(sType, sMsg, self.elem.container);};
self.onFeedback = function(sType, sMsg){Tools.feedback(sType, sMsg, self.elem.$Container);};
};
/* Hash Handling */
@@ -131,6 +129,22 @@ function MyThoughts(asGlobals)
/* Page Switching */
this.loadHome = function(asData) {
console.log(asData);
self.vars('log_in', asData.log_in);
self.vars('id', asData.id);
if(self.vars('log_in')) {
//Setup menu
self.initMenu();
//Swap to default page
self.setHash('write');
}
};
this.getActionLink = function(sAction, oVars)
{
if(!oVars) oVars = {};
@@ -149,7 +163,15 @@ function MyThoughts(asGlobals)
var bLoggedIn = self.vars('log_in');
var sDefaultPage = bLoggedIn?'write':'logon';
if(asHash.hash !='' && sNextPage != '' && (bLoggedIn || sNextPage==sDefaultPage))
if( asHash.hash == '' ||
sNextPage == '' ||
!bLoggedIn && sNextPage != sDefaultPage ||
bLoggedIn && sNextPage == 'logon'
)
{
self.setHash(sDefaultPage); //force first page
}
else
{
var bSamePage = (sCurrPage==sNextPage);
if(self.onQuitPage(bSamePage) && !bSamePage || self.onSamePageMove(asHash))
@@ -172,17 +194,20 @@ function MyThoughts(asGlobals)
var $Dom = $(self.consts.pages[sNextPage]);
if(bFirstPage)
{
self.elem.container.html($(self.consts.pages['template']));
self.elem.main = self.elem.container.find('#main');
self.splash(self.elem.main, $Dom, asHash, bFirstPage); //first page
self.elem.$Container.html($(self.consts.pages['template']));
self.elem.$Main = self.elem.$Container.find('#main');
self.elem.$Menu = self.elem.$Container.find('#menu');
if(self.vars.log_in) self.initMenu();
self.splash(self.elem.$Main, $Dom, asHash, bFirstPage); //first page
}
else
{
self.elem.main.stop().fadeTo('fast', 0, function(){self.splash(self.elem.main, $Dom, asHash, bFirstPage);}); //Switching page
self.elem.$Main.stop().fadeTo('fast', 0, function(){self.splash(self.elem.$Main, $Dom, asHash, bFirstPage);}); //Switching page
}
}
}
else self.setHash(sDefaultPage); //force first page
};
this.splash = function($FadeInElem, $Dom, asHash, bFirstPage)
@@ -192,6 +217,7 @@ function MyThoughts(asGlobals)
$FadeInElem.html($Dom);
//Page Bootstrap
self.elem.$Main.removeClass('no_frame');
self.pageInit(asHash, bFirstPage);
//Show main