Added the ability to update System and apps seperatly

This commit is contained in:
kolaente 2016-11-13 10:02:05 +01:00
parent 696f879a31
commit e9c981feb5
12 changed files with 1447 additions and 14 deletions

View File

@ -643,7 +643,7 @@ header {
color: #727272;
z-index: 2;
font-size: 30px;
overflow: hidden;
/*overflow: hidden;*/
}
header:after {
@ -653,7 +653,7 @@ header:after {
}
header .options {
display: block;
display: inline-block;
float: right;
font-size: 15px;
text-align: right;
@ -661,11 +661,12 @@ header .options {
-moz-user-select: -moz-none;
-webkit-user-select: none;
user-select: none;
position: fixed;
/*position: fixed;
top: -9px;
right: 10px;
right: 10px;*/
background: #fff;
height: 65px;
margin-top: -15px;
}
header .options span {
@ -1179,11 +1180,54 @@ a[class^="card-"]:hover, a[class*=" card-"]:hover {
.form span {
float: left;
width: 200px;
width: 230px;
text-align: left;
padding-top: 5px;
}
/*Stream*/
header .stream{
display: inline-block;
margin-right: 10px;
}
.stream a{
color: #727272;
font-size: 30px;
}
.stream #streamContent{
background: #fff;
padding: 10px 10px 20px;
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 5px 0 rgba(0, 0, 0, .12);
border-radius: 1px;
z-index: 1;
font-size: 14px;
width: 300px;
max-height: 200px;
overflow: auto;
position: absolute;
margin-left: -150px;
margin-top: 5px;
display: none;
}
.stream #streamContent p:last-child{
margin-bottom: 10px;
}
.stream .button{
width: calc(100% + 20px);
margin: 10px -10px 0;
padding: 0;
color: #fff;
font-size: 16px;
border-radius: 0;
background: #BDBDBD;
}
/*Msgs*/
[class^="message-"], [class*=" message-"] {
width: calc(100% - 95px);

1212
admin/assets/js/moment.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -173,6 +173,13 @@ $lang['user_settings_settings_fail'] = 'Fehler beim Speichern der Änderungen de
$lang['user_settings_settings_pass'] = 'Passwort ändern';
$lang['user_settings_last_login'] = 'Letzter Login';
$lang['user_settings_show_current_sessions'] = 'Offene Anmeldungen anzeigen';
$lang['user_settings_log_level'] = 'Log-Level für Benachrichtigung';
$lang['user_settings_log_level_1'] = 'Nur wichtiges';
$lang['user_settings_log_level_2'] = 'System-Mitteilungen';
$lang['user_settings_log_level_3'] = 'Änderungen';
$lang['user_settings_log_level_4'] = 'Generelle Mitteilungen';
$lang['user_settings_log_level_fail'] = 'Fehler beim Speichern des Log-Levels.';
$lang['user_settings_log_level_success'] = 'Die Änderungen des Log-Levels wurden erfolgreich gespeichert.';
//Mail
$lang['mail_write'] = 'Email schreiben';
@ -211,4 +218,5 @@ $lang['update_version'] = 'Version';
$lang['update_version_current'] = 'Installierte Version';
$lang['update_new_version'] = 'Neue Version verfügbar!';
$lang['update_version_current_new'] = 'Die installierte Version ist aktuell.';
$lang['update_app_update_available'] = 'App-Update - Neue Version für "%1$s" verfügbar: %2$s';
$lang['update_app_update_available'] = 'App-Update - Neue Version für "%1$s" verfügbar: %2$s';
$lang['update_log'] = '{user} hat das System geupdated.';

View File

@ -174,6 +174,13 @@ $lang['user_settings_settings_fail'] = 'An error occured while saving user-setti
$lang['user_settings_settings_pass'] = 'Update Password';
$lang['user_settings_last_login'] = 'Last Login';
$lang['user_settings_show_current_sessions'] = 'Show Current Sessions';
$lang['user_settings_log_level'] = 'Log-Level';
$lang['user_settings_log_level_1'] = 'Important Only';
$lang['user_settings_log_level_2'] = 'System-Messages';
$lang['user_settings_log_level_3'] = 'Edits';
$lang['user_settings_log_level_4'] = 'General Messages';
$lang['user_settings_log_level_fail'] = 'An error occured while saving Log-Levels.';
$lang['user_settings_log_level_success'] = 'The Log-Levels were saved successfully.';
//Mail
$lang['mail_write'] = 'Write Email';
@ -213,4 +220,5 @@ $lang['update_version'] = 'Version';
$lang['update_version_current'] = 'Installed Version';
$lang['update_new_version'] = 'New Version Available!';
$lang['update_version_current_new'] = 'Installed Version is up-to-date';
$lang['update_app_update_available'] = 'App-Update - New Version for "%1$s" available: %2$s';
$lang['update_app_update_available'] = 'App-Update - New Version for "%1$s" available: %2$s';
$lang['update_log'] = '{user} updated the System.';

View File

@ -74,8 +74,8 @@ if (hasPerm('edit_permissions'))
if (file_exists($appUri . '/' . $app . '/permissions.json'))
{
require $appUri . '/' . $app . '/config.php';
$permsTotal[$_CONF['mod_name']] = json_decode(file_get_contents($appUri . '/' . $app . '/permissions.json'), true);
$permsTotal[$_CONF['mod_name']] = $permsTotal[$_CONF['mod_name']]['permissions'];
$permsTotal[$_CONF['app_name']] = json_decode(file_get_contents($appUri . '/' . $app . '/permissions.json'), true);
$permsTotal[$_CONF['app_name']] = $permsTotal[$_CONF['app_name']]['permissions'];
}
}

49
admin/stream.php Normal file
View File

@ -0,0 +1,49 @@
<?php
error_reporting(E_ALL);
require_once '../inc/autoload_adm.php';
//Get Stream as JSON
if(isset($_GET['getStream']) && is_loggedin())
{
$db->setCol('system_show_stream');
$db->data['user'] = $_SESSION['userid'];
$db->get();
$loglevel = json_decode($db->data[0]['level']);
$streamData = [];
$db->setCol('system_stream');
$db->get(null, null, 'id', 'DESC', 10);
foreach($db->data as $stream)
{
if(in_array($stream['lvl'], $loglevel))
{
$streamData[] = [
'id' => $stream['id'],
'time' => $stream['time'],
'user' => $stream['user'],
'message' => str_replace('{user}', getUserByID($stream['user']), $lang->get($stream['message']))
];
}
}
header('Charset: utf-8');
header('Content-type: application/json');
echo json_encode( $streamData );
exit;
}
//Show Stream
printHeader('Stream');
echo '<div class="main">';
$db->setCol('system_stream');
$db->get(null, null, 'id', 'DESC', 200);
foreach ($db->data as $stream)
{
echo '<p><b>'.date('d.m.Y H:i', $stream['time']).':</b> '.str_replace('{user}', getUserByID($stream['user']), $lang->get($stream['message'])).'</p>';
}
echo '</div>';
require_once '../inc/footer.php';

View File

@ -252,4 +252,5 @@ if (isset($_GET['update']))
echo msg('info', $lang->get('update_version_current_new'));
}
}
require_once '../inc/footer.php';
}

View File

@ -222,6 +222,47 @@ if (hasPerm('manage_admins') || $uid == $_SESSION['userid'])
{
echo msg('fail', $lang->get('user_settings_settings_fail') . ' {back}');
}
//Log-Level
$loglevel = '';
$loglevelA = [];
if(isset($_POST['level_1']) && $_POST['level_1'] == 'true') $loglevelA[] = 1;
if(isset($_POST['level_2']) && $_POST['level_2'] == 'true') $loglevelA[] = 2;
if(isset($_POST['level_3']) && $_POST['level_3'] == 'true') $loglevelA[] = 3;
if(isset($_POST['level_4']) && $_POST['level_4'] == 'true') $loglevelA[] = 4;
$loglevel = json_encode($loglevelA);
//Get the current status
$db->setCol('system_show_stream');
$db->data['user'] = $_SESSION['userid'];
$db->get();
if(isset($db->data[0]))//If we already have stream settings saved, update them
{
$db->setCol('system_show_stream');
$db->data['level'] = $loglevel;
if($db->update(['user' => $_SESSION['userid']]))
{
echo msg('success', $lang->get('user_settings_log_level_success') . ' {back}');
}
else
{
echo msg('fail', $lang->get('user_settings_log_level_fail') . ' {back}');
}
}
else //Otherwise insert them
{
$db->setCol('system_show_stream');
$db->data['user'] = $_SESSION['userid'];
$db->data['level'] = $loglevel;
if($db->insert())
{
echo msg('success', $lang->get('user_settings_log_level_success'));
}
else
{
echo msg('fail', $lang->get('user_settings_log_level_fail'));
}
}
} else
{
$db->data['id'] = $uid;
@ -288,7 +329,26 @@ if (hasPerm('manage_admins') || $uid == $_SESSION['userid'])
echo $lang->get('general_inactive') . '. <a href="?2fa">' . $lang->get('general_activate') . '</a>';
}
}
?></p>
?><br/></p>
<p><span><?php echo $lang->get('user_settings_log_level'); ?>:</span>
<?php
$db->setCol('system_show_stream');
$db->data['user'] = $_SESSION['userid'];
$db->get();
$loglevel = json_decode($db->data[0]['level']);
?>
<input type="checkbox" name="level_1" id="level_1"<?php if(in_array(1, $loglevel)) echo ' checked="checked"';?>/>
<label for="level_1"><i></i> <?php echo $lang->get('user_settings_log_level_1'); ?></label><div style="clear: both;"></div>
<span>&nbsp;</span>
<input type="checkbox" name="level_2" id="level_2"<?php if(in_array(2, $loglevel)) echo ' checked="checked"';?>/>
<label for="level_2"><i></i> <?php echo $lang->get('user_settings_log_level_2'); ?></label><div style="clear: both;"></div>
<span>&nbsp;</span>
<input type="checkbox" name="level_3" id="level_3"<?php if(in_array(3, $loglevel)) echo ' checked="checked"';?>/>
<label for="level_3"><i></i> <?php echo $lang->get('user_settings_log_level_3'); ?></label><div style="clear: both;"></div>
<span>&nbsp;</span>
<input type="checkbox" name="level_4" id="level_4"<?php if(in_array(4, $loglevel)) echo ' checked="checked"';?>/>
<label for="level_4"><i></i> <?php echo $lang->get('user_settings_log_level_4'); ?></label>
</p>
<p><input type="submit" name="smbt" value="<?php echo $lang->get('general_save_changes'); ?>"/>
</p>
</form>

View File

@ -12,7 +12,7 @@ $GLOBALS['lang']->set('Create New Page', 'sp_create_new', 'en');
$_CONF['app_name'] = 'SimplePages';
$_CONF['app_desc'] = 'Wird benutzt, um Einfache statische Seitn zu erzeugen und zu verwalten.';
$_CONF['app_build'] = 1;
$_CONF['app_build'] = 2;
$_CONF['app_version'] = 'v0.9 Beta';
$_CONF['base_url'] = '/'; //Basisurl des moduls, wenn es über das Frontend aufgerufen wird
$_CONF['base_file'] = 'front/page.php'; //Datei, die angezeigt wird, wenn die basisurl aufgerufen wird

View File

@ -13,9 +13,13 @@ if (!isset($_GET['direct']))
});
</script>
<script src="<?php echo $MCONF['web_uri'] ?>admin/assets/js/moment.js"></script>
<!--<script src="<?php echo $MCONF['web_uri'] ?>admin/assets/js/page.js"></script>
<script src="<?php echo $MCONF['web_uri'] ?>admin/assets/js/page.bodyparser.js"></script>-->
<script>
moment.locale('de');
//Msg
function showMsg(msg) {
$('#showMsg').html('<div class="snackbar"><a onclick="closeMsg();" class="closeMsg"><i class="fa fa-close"></i> </a><p>' + msg + '</p></div>');
@ -53,6 +57,22 @@ if (!isset($_GET['direct']))
})
}
//showStream
function showStream()
{
$('#streamContent').fadeToggle(100,function() {
if($('#streamContent').is(":visible")) {
$.getJSON('<?php echo $MCONF['home_uri'];?>admin/stream.php?getStream&limit=10', function (streamData) {
$('#streamContent').html('');
$.each(streamData, function (key, val) {
$('#streamContent').append('<p>' + val.message + ' (' + moment(val.time * 1000).fromNow() + ')</p>');
});
$('#streamContent').append('<a href="<?php echo $MCONF['home_uri'];?>admin/stream.php" class="button">Mehr</a>');
});
}
});
}
$(document).ready(function () {
//Router

View File

@ -47,7 +47,7 @@ class db
}
//Daten holen
public function get($where = [], $link = 'AND')
public function get($where = [], $link = 'AND', $orderby = 'id', $order = 'ASC', $limit = null, $limitstart = 0)
{
if (isset($this->col))
{
@ -82,7 +82,17 @@ class db
//print_r($whereAr);
$stmt = $this->dbh->prepare('SELECT * FROM ' . $this->prefix . $this->col . $whereCl);
//Order
$orderstmt = 'ORDER BY '.$orderby.' '.$order;
//Limit
$limitstmt = '';
if(isset($limit))
{
$limitstmt = ' LIMIT ' . $limitstart . ', ' . $limit;
}
$stmt = $this->dbh->prepare('SELECT * FROM `' . $this->prefix . $this->col .'`' . $whereCl.$orderstmt.$limitstmt);
$stmt->execute($whereAr);
$all = [];
@ -143,7 +153,6 @@ class db
$i++;
}
$stmt .= ') VALUES (' . $valCnt . ')';
//echo $stmt;
$insert = $this->dbh->prepare($stmt);
return $insert->execute($vals);

View File

@ -278,6 +278,12 @@ echo '
{
echo '<div class="toploading"></div> <header>
<span id="title">' . $title . '</span>
<div style="float: right;">
<div class="stream"><a onclick="showStream();"><i class="fa fa-bell-o" aria-hidden="true"></i></a><div id="streamContent"><div class="spinner-container" style="margin: 12px auto 0;">
<svg class="spinner" style="width:41px;height:40px;" viewBox="0 0 44 44">
<circle class="path" cx="22" cy="22" r="20" fill="none" stroke-width="4"></circle>
</svg>
</div></div></div>
<div class="options" tabindex="0">
<input type="checkbox" id="options_menu" />
<label for="options_menu">
@ -290,6 +296,7 @@ echo '
</ul>
</label>
</div>
</div>
</header>
<label for="show-menu" class="show-menu"><i class="fa fa-bars"></i> </label>
<input type="checkbox" id="show-menu" role="button">
@ -672,4 +679,19 @@ function remote_file_exists($url)
}
}
//New Message to the stream
function stream_message($msg, $lvl, $time = null, $user = null)
{
if(!isset($time)) $time = time();
if(!isset($user)) $user = $_SESSION['userid'];
global $db;
$db->setCol('system_stream');
$db->data['time'] = $time;
$db->data['user'] = intval($user);
$db->data['lvl'] = $lvl;
$db->data['message'] = $msg;
return $db->insert();
}
?>