mirror of
https://github.com/ulfgebhardt/host_buergerkomitee.git
synced 2026-01-20 19:31:21 +00:00
#434 login, reset password, change password, account, updated system reference
This commit is contained in:
parent
31f48cd28d
commit
9f254231a2
22
buergerkandidaten/page/account_account/account_account.php
Normal file
22
buergerkandidaten/page/account_account/account_account.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
class account_account implements \SYSTEM\PAGE\Page {
|
||||
public static function title(){
|
||||
return \SYSTEM\PAGE\text::get('title_account');}
|
||||
public static function meta(){
|
||||
return \SYSTEM\PAGE\text::tag('meta_account');}
|
||||
public function html(){
|
||||
if(!\SYSTEM\SECURITY\security::isLoggedIn()){
|
||||
return '<script>system.load("login")</script>';}
|
||||
|
||||
$vars = array();
|
||||
$user = \SYSTEM\SECURITY\security::getUser();
|
||||
$vars['username'] = $user->username;
|
||||
$vars['email'] = $user->email;
|
||||
$vars['confirmed'] = $user->email_confirmed ? 'Ja' : 'Nein';
|
||||
return SYSTEM\PAGE\replace::replaceFile((new PPAGE('account_account/tpl/account_account.tpl'))->SERVERPATH(), $vars);
|
||||
}
|
||||
public static function js(){
|
||||
return array( new PPAGE('account_account/js/account_account.js'));
|
||||
}
|
||||
public static function css(){return array();}
|
||||
}
|
||||
72
buergerkandidaten/page/account_account/js/account_account.js
Normal file
72
buergerkandidaten/page/account_account/js/account_account.js
Normal file
@ -0,0 +1,72 @@
|
||||
function init_account(){
|
||||
$('#logout').click(function(){
|
||||
system.account_logout(function (data) {
|
||||
if(data.status){
|
||||
$('.help-block').html("Logout successfull.</br>");
|
||||
system.load('start');
|
||||
} else {
|
||||
$('.help-block').html("Logout not successfull.</br>")
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#confirm_email').click(function(){
|
||||
system.account_confirm_email(function(data){
|
||||
if(data.status){
|
||||
$('.help-block').html("EMail gesendet.");
|
||||
} else {
|
||||
$('.help-block').html("Ein Problem ist aufgetreten: "+data.result.message);
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
$('#save').click(function(){
|
||||
var data = JSON.stringify({
|
||||
name: $('#input_name').val(),
|
||||
lastname: $('#input_lastname').val()
|
||||
});
|
||||
$.ajax({type :'POST',
|
||||
url : './api.php?',
|
||||
data : { call: 'account',
|
||||
action: 'detail',
|
||||
data: data},
|
||||
success : function(data) {
|
||||
if(data.status){
|
||||
system.reload();
|
||||
} else {
|
||||
$('.help-block').html('Ein Problem ist aufgetreten: '+data.result.message);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#grade').css('background-color',getColorForPercentage($('#grade').attr('grade')));
|
||||
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
}
|
||||
|
||||
var percentColors = [
|
||||
{ pct: 0.0, color: { r: 0xff, g: 0x00, b: 0 } },
|
||||
{ pct: 0.5, color: { r: 0xff, g: 0xff, b: 0 } },
|
||||
{ pct: 1.0, color: { r: 0x00, g: 0xff, b: 0 } } ];
|
||||
|
||||
var getColorForPercentage = function(pct) {
|
||||
for (var i = 1; i < percentColors.length - 1; i++) {
|
||||
if (pct < percentColors[i].pct) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
var lower = percentColors[i - 1];
|
||||
var upper = percentColors[i];
|
||||
var range = upper.pct - lower.pct;
|
||||
var rangePct = (pct - lower.pct) / range;
|
||||
var pctLower = 1 - rangePct;
|
||||
var pctUpper = rangePct;
|
||||
var color = {
|
||||
r: Math.floor(lower.color.r * pctLower + upper.color.r * pctUpper),
|
||||
g: Math.floor(lower.color.g * pctLower + upper.color.g * pctUpper),
|
||||
b: Math.floor(lower.color.b * pctLower + upper.color.b * pctUpper)
|
||||
};
|
||||
return 'rgb(' + [color.r, color.g, color.b].join(',') + ')';
|
||||
// or output as hex if preferred
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
<div class="panel panel-default panel-default" style="margin-right: 5px; margin-left: 5px;">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<i class="glyphicon glyphicon-user"></i> Account
|
||||
</h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<span><b>Username: </b>${username}</span>
|
||||
<br>
|
||||
<span><b>EMail: </b>${email}</span>
|
||||
<br>
|
||||
<span><b>EMail bestätigt: </b>${confirmed}</span>
|
||||
<br>
|
||||
<br>
|
||||
<a href="#!changepassword">Passwort ändern</a>
|
||||
<br><br>
|
||||
<button class="btn-sm btn btn-primary" style="clear: left; height: 32px; font-size: 13px;" type="submit" id="logout"><span class="glyphicon glyphicon-log-in" aria-hidden="true"></span> Logout</button>
|
||||
<br>
|
||||
<br>
|
||||
<button class="btn-sm btn btn-success" style="clear: left; height: 32px; font-size: 13px;" type="submit" id="confirm_email"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> EMail-Bestätigung anfordern</button>
|
||||
<br>
|
||||
<div class="help-block" style="float: left; padding-left: 15px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
class account_changepassword implements SYSTEM\PAGE\Page {
|
||||
public static function title(){
|
||||
return \SYSTEM\PAGE\text::get('title_changepassword');}
|
||||
public static function meta(){
|
||||
return \SYSTEM\PAGE\text::tag('meta_changepassword');}
|
||||
public static function js(){
|
||||
return array( \LIB\lib_jqbootstrapvalidation::js(),
|
||||
new PPAGE('account_changepassword/js/account_changepassword.js'));}
|
||||
public static function css(){
|
||||
return array( new PPAGE('account_changepassword/css/account_changepassword.css'));}
|
||||
public function html(){
|
||||
$vars = \SYSTEM\PAGE\text::tag('changepassword');
|
||||
return SYSTEM\PAGE\replace::replaceFile((new PPAGE('account_changepassword/tpl/account_changepassword.tpl'))->SERVERPATH(), $vars);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
function init_changepassword(){
|
||||
$('#btn_changepassword').click(function(){
|
||||
//TODO: use jqbootstrap validation here
|
||||
if($('#input_new_password1').val() !== $('#input_new_password2').val()){
|
||||
$('.help-block').html('Passwort stimmt nicht überein.');
|
||||
} else {
|
||||
system.account_change_password($('#input_old_password').val(),$('#input_new_password1').val(),function(data){
|
||||
if(data.status){
|
||||
$('.help-block').html('Passwort wurde geändert.');
|
||||
} else {
|
||||
$('.help-block').html(data.result.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -0,0 +1,31 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-default panel-danger margin-bottom0" style="margin-right: 5px; margin-left: 5px;">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<i class="glyphicon glyphicon-user"></i> Passwort ändern
|
||||
</h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<input type="password"
|
||||
size="35"
|
||||
style="margin-bottom: 15px; width: 100%;"
|
||||
id="input_old_password"
|
||||
placeholder="Altes Passwort"/>
|
||||
<input type="password"
|
||||
size="35"
|
||||
style="margin-bottom: 15px; width: 100%;"
|
||||
id="input_new_password1"
|
||||
placeholder="Neues Passwort"/>
|
||||
<input type="password"
|
||||
size="35"
|
||||
style="margin-bottom: 15px; width: 100%;"
|
||||
id="input_new_password2"
|
||||
placeholder="Passwort wiederholen"/>
|
||||
<br>
|
||||
<button class="btn-sm btn btn-warning" style="float: left; height: 32px; font-size: 13px;" id="btn_changepassword"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> Passwort ändern</button>
|
||||
<p class="help-block" style="float: left; padding-left: 15px;"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -7,4 +7,8 @@ SYSTEM\autoload::registerFolder(dirname(__FILE__).'/default_faq');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/default_kandidat');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/default_kontakt');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/default_unterstuetzen');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/default_komitee');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/default_komitee');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/default_login');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/default_resetpassword');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/account_account');
|
||||
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/account_changepassword');
|
||||
16
buergerkandidaten/page/default_login/default_login.php
Normal file
16
buergerkandidaten/page/default_login/default_login.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
class default_login implements SYSTEM\PAGE\Page {
|
||||
public static function title(){
|
||||
return \SYSTEM\PAGE\text::get('title_login');}
|
||||
public static function meta(){
|
||||
return \SYSTEM\PAGE\text::tag('meta_login');}
|
||||
public static function js(){
|
||||
return array( \LIB\lib_jqbootstrapvalidation::js(),
|
||||
new PPAGE('default_login/js/default_login.js'));}
|
||||
public static function css(){
|
||||
return array( new PPAGE('default_login/css/default_login.css'));}
|
||||
public function html(){
|
||||
$vars = \SYSTEM\PAGE\text::tag('login');
|
||||
return SYSTEM\PAGE\replace::replaceFile((new PPAGE('default_login/tpl/default_login.tpl'))->SERVERPATH(), $vars);
|
||||
}
|
||||
}
|
||||
17
buergerkandidaten/page/default_login/js/default_login.js
Normal file
17
buergerkandidaten/page/default_login/js/default_login.js
Normal file
@ -0,0 +1,17 @@
|
||||
function init_login(){
|
||||
$("#login_form input").not("[type=submit]").jqBootstrapValidation({
|
||||
preventSubmit: true,
|
||||
submitError: function($form, event, errors) {},
|
||||
submitSuccess: function($form, event){
|
||||
system.account_login($('#bt_login_email').val(),$('#bt_login_password').val(),function(data){
|
||||
if(data.status){
|
||||
$('.help-block').html("Login successfull.</br>");
|
||||
system.load('account');
|
||||
} else {
|
||||
$('.help-block').html("Login not successfull.</br> User & Password combination wrong.");
|
||||
}
|
||||
});
|
||||
event.preventDefault();
|
||||
}
|
||||
});
|
||||
}
|
||||
34
buergerkandidaten/page/default_login/tpl/default_login.tpl
Normal file
34
buergerkandidaten/page/default_login/tpl/default_login.tpl
Normal file
@ -0,0 +1,34 @@
|
||||
<div class="panel panel-default panel-default" style="margin-right: 5px; margin-left: 5px;">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<i class="glyphicon glyphicon-user"></i> Login
|
||||
</h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<form class="textbox" id="login_form">
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<input type="text"
|
||||
size="30"
|
||||
style="margin-bottom: 15px; width: 100%;"
|
||||
id="bt_login_email"
|
||||
placeholder="peter@world.org"
|
||||
required data-validation-required-message="Nutzername fehlt"/>
|
||||
</div>
|
||||
<div class="controls">
|
||||
<input type="password"
|
||||
size="30"
|
||||
style="margin-bottom: 5px; width: 100%;"
|
||||
id="bt_login_password"
|
||||
placeholder="geheim23"
|
||||
minlength="5" data-validation-minlength-message="Passwort zu kurz"
|
||||
required data-validation-required-message="passwort fehlt"/>
|
||||
</div>
|
||||
<br>
|
||||
<button class="btn-sm btn btn-primary" style="float:left; height: 32px; font-size: 13px;" type="submit" id="login_submit"><span class="glyphicon glyphicon-log-in" aria-hidden="true"></span> Login</button>
|
||||
<a style="float: right;" href="#!resetpassword">Passwort vergessen?</a>
|
||||
<div class="help-block" style="float: left; padding-left: 15px;"></div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@ -23,7 +23,10 @@ class default_page implements \SYSTEM\PAGE\DefaultPage {
|
||||
if(!$_escaped_fragment_){
|
||||
$vars['js'] = self::js();}
|
||||
$vars['css'] = self::css();
|
||||
$vars['menu_account'] = \SYSTEM\SECURITY\security::isLoggedIn() ?
|
||||
\SYSTEM\PAGE\replace::replaceFile((new PPAGE('default_page/tpl/menu_account.tpl'))->SERVERPATH(), array('username' => \SYSTEM\SECURITY\security::getUser()->username)) :
|
||||
'';
|
||||
$vars = array_merge($vars, \SYSTEM\PAGE\text::tag('buergerkandidat'));
|
||||
return SYSTEM\PAGE\replace::replaceFile((new PPAGE('default_page/tpl/default_page.tpl'))->SERVERPATH(), $vars);
|
||||
return \SYSTEM\PAGE\replace::replaceFile((new PPAGE('default_page/tpl/default_page.tpl'))->SERVERPATH(), $vars);
|
||||
}
|
||||
}
|
||||
@ -69,6 +69,7 @@
|
||||
<li><a href="#!unterstuetzen" id="menu_unterstuetzen"><span class="glyphicon glyphicon-thumbs-up"></span> <b>Unterstützen</b></a></li>
|
||||
<li><a href="#!kontakt" id="menu_kontakt"><span class="glyphicon glyphicon-pencil"></span> <b>Kontakt</b></a></li>
|
||||
</ul>
|
||||
${menu_account}
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
3
buergerkandidaten/page/default_page/tpl/menu_account.tpl
Normal file
3
buergerkandidaten/page/default_page/tpl/menu_account.tpl
Normal file
@ -0,0 +1,3 @@
|
||||
<ul class="nav navbar-nav pull-right">
|
||||
<li><a href="#!account" id="menu_account"><span class="glyphicon glyphicon-user"></span> <b>${username}</b></a></li>
|
||||
</ul>
|
||||
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
class default_resetpassword implements SYSTEM\PAGE\Page {
|
||||
public static function title(){
|
||||
return \SYSTEM\PAGE\text::get('title_resetpassword');}
|
||||
public static function meta(){
|
||||
return \SYSTEM\PAGE\text::tag('meta_resetpassword');}
|
||||
public static function js(){
|
||||
return array( \LIB\lib_jqbootstrapvalidation::js(),
|
||||
new PPAGE('default_resetpassword/js/default_resetpassword.js'));}
|
||||
public static function css(){
|
||||
return array( new PPAGE('default_resetpassword/css/default_resetpassword.css'));}
|
||||
public function html(){
|
||||
$vars = \SYSTEM\PAGE\text::tag('resetpassword');
|
||||
return SYSTEM\PAGE\replace::replaceFile((new PPAGE('default_resetpassword/tpl/default_resetpassword.tpl'))->SERVERPATH(), $vars);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
function init_resetpassword(){
|
||||
$('#btn_resetpassword').click(function(){
|
||||
system.account_reset_password($('#input_resetpassword').val(),function(data){
|
||||
if(data.status){
|
||||
$('.help-block').html('EMail sent.');
|
||||
} else {
|
||||
$('.help-block').html(data.result.message);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-default panel-danger margin-bottom0" style="margin-right: 5px; margin-left: 5px;">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<i class="glyphicon glyphicon-user"></i> Passwort zurücksetzen
|
||||
</h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<input type="text"
|
||||
size="35"
|
||||
style="margin-bottom: 15px; width: 100%;"
|
||||
id="input_resetpassword"
|
||||
placeholder="peter@world.org"/>
|
||||
<br>
|
||||
<button class="btn-sm btn btn-primary" style="float: left; height: 32px; font-size: 13px;" id="btn_resetpassword"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span> EMail anfordern</button>
|
||||
<p class="help-block" style="float: left; padding-left: 15px;"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -30,4 +30,17 @@ class page_buergerkandidaten extends \SYSTEM\API\api_default {
|
||||
|
||||
public static function page_impressum(){
|
||||
return (new default_impressum())->html();}
|
||||
|
||||
public static function page_login(){
|
||||
return (new default_login())->html();}
|
||||
|
||||
public static function page_resetpassword(){
|
||||
return (new default_resetpassword())->html();}
|
||||
|
||||
public static function page_account(){
|
||||
return (new account_account())->html();
|
||||
}
|
||||
|
||||
public static function page_changepassword(){
|
||||
return (new account_changepassword())->html();}
|
||||
}
|
||||
@ -4,4 +4,8 @@ REPLACE INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`
|
||||
REPLACE INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (25, 1, 'kandidat', 'kandidat', -1, 0, 0, '#content', './?page=kandidat', 'init_kandidat', 'default_kandidat');
|
||||
REPLACE INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (30, 1, 'kontakt', 'kontakt', -1, 0, 0, '#content', './?page=kontakt&zu=${zu}', 'init_kontakt', 'default_kontakt');
|
||||
REPLACE INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (35, 1, 'unterstuetzen', 'unterstuetzen', -1, 0, 0, '#content', './?page=unterstuetzen', 'init_unterstuetzen', 'default_unterstuetzen');
|
||||
REPLACE INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (40, 1, 'komitee', 'komitee', -1, 0, 0, '#content', './?page=komitee', 'init_komitee', 'default_komitee');
|
||||
REPLACE INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (40, 1, 'komitee', 'komitee', -1, 0, 0, '#content', './?page=komitee', 'init_komitee', 'default_komitee');
|
||||
REPLACE INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (50, 1, 'login', 'login', -1, 0, 0, '#content', './?page=login', 'init_login', 'default_login');
|
||||
REPLACE INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (51, 1, 'resetpassword', 'resetpassword', -1, 0, 0, '#content', './?page=resetpassword', 'init_resetpassword', 'default_resetpassword');
|
||||
REPLACE INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (52, 1, 'account', 'account', -1, 0, 0, '#content', './?page=account', 'init_account', 'account_account');
|
||||
REPLACE INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (53, 1, 'changepassword', 'changepassword', -1, 0, 0, '#content', './?page=changepassword', 'init_changepassword', 'account_changepassword');
|
||||
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
Subproject commit e12fc04ea2b9dee75109535866fbc55bd37087a1
|
||||
Subproject commit 58ac0153010dd66d6b2da0482a4663490486e513
|
||||
Loading…
x
Reference in New Issue
Block a user