mirror of
https://github.com/friendica/friendica
synced 2024-11-09 23:02:54 +00:00
admin page to manage failed updates
This commit is contained in:
parent
e3fecb2557
commit
0153d86b7f
4 changed files with 83 additions and 3 deletions
2
boot.php
2
boot.php
|
@ -667,7 +667,7 @@ if(! function_exists('check_config')) {
|
|||
// call the specific update
|
||||
|
||||
$func = 'update_' . $x;
|
||||
$retval = $func($a);
|
||||
$retval = $func();
|
||||
if($retval) {
|
||||
//send the administrator an e-mail
|
||||
$email_tpl = get_intltext_template("update_fail_eml.tpl");
|
||||
|
|
|
@ -61,6 +61,9 @@ function admin_post(&$a){
|
|||
case 'logs':
|
||||
admin_page_logs_post($a);
|
||||
break;
|
||||
case 'dbsync':
|
||||
admin_page_dbsync_post($a);
|
||||
break;
|
||||
case 'update':
|
||||
admin_page_remoteupdate_post($a);
|
||||
break;
|
||||
|
@ -94,7 +97,8 @@ function admin_content(&$a) {
|
|||
'users' => Array($a->get_baseurl(true)."/admin/users/", t("Users") , "users"),
|
||||
'plugins'=> Array($a->get_baseurl(true)."/admin/plugins/", t("Plugins") , "plugins"),
|
||||
'themes' => Array($a->get_baseurl(true)."/admin/themes/", t("Themes") , "themes"),
|
||||
'update' => Array($a->get_baseurl(true)."/admin/update/", t("Update") , "update")
|
||||
'dbsync' => Array($a->get_baseurl(true)."/admin/dbsync/", t('DB updates'), "dbsync"),
|
||||
'update' => Array($a->get_baseurl(true)."/admin/update/", t("Software Update") , "update")
|
||||
);
|
||||
|
||||
/* get plugins admin page */
|
||||
|
@ -142,6 +146,9 @@ function admin_content(&$a) {
|
|||
case 'logs':
|
||||
$o = admin_page_logs($a);
|
||||
break;
|
||||
case 'dbsync':
|
||||
$o = admin_page_dbsync($a);
|
||||
break;
|
||||
case 'update':
|
||||
$o = admin_page_remoteupdate($a);
|
||||
break;
|
||||
|
@ -435,6 +442,62 @@ function admin_page_site(&$a) {
|
|||
}
|
||||
|
||||
|
||||
function admin_page_dbsync(&$a) {
|
||||
|
||||
$o = '';
|
||||
|
||||
if($a->argc > 3 && intval($a->argv[3]) && $a->argv[2] === 'mark') {
|
||||
set_config('database', 'update_' . intval($a->argv[3]), 'success');
|
||||
info( t('Update has been marked successful') . EOL);
|
||||
goaway($a->get_baseurl(true) . '/admin/dbsync');
|
||||
}
|
||||
|
||||
if($a->argc > 2 && intval($a->argv[2])) {
|
||||
require_once('update.php');
|
||||
$func = 'update_' . intval($a->argv[2]);
|
||||
if(function_exists($func)) {
|
||||
$retval = $func();
|
||||
if($retval === UPDATE_FAILED) {
|
||||
$o .= sprintf( t('Executing %s failed. Check system logs.'), $func);
|
||||
}
|
||||
elseif($retval === UPDATE_SUCCESS) {
|
||||
$o .= sprintf( t('Update %s was successfully applied.', $func));
|
||||
set_config('database',$func, 'success');
|
||||
}
|
||||
else
|
||||
$o .= sprintf( t('Update %s did not return a status. Unknown if it succeeded.'), $func);
|
||||
}
|
||||
else
|
||||
$o .= sprintf( t('Update function %s could not be found.'), $func);
|
||||
return $o;
|
||||
}
|
||||
|
||||
$failed = array();
|
||||
$r = q("select * from config where `cat` = 'database' ");
|
||||
if(count($r)) {
|
||||
foreach($r as $rr) {
|
||||
$upd = intval(substr($rr['k'],7));
|
||||
if($upd < 1139 || $rr['v'] === 'success')
|
||||
continue;
|
||||
$failed[] = $upd;
|
||||
}
|
||||
}
|
||||
if(! count($failed))
|
||||
return '<h3>' . t('No failed updates.') . '</h3>';
|
||||
|
||||
$o = replace_macros(get_markup_template('failed_updates.tpl'),array(
|
||||
'$base' => $a->get_baseurl(true),
|
||||
'$banner' => t('Failed Updates'),
|
||||
'$desc' => t('This does not include updates prior to 1139, which did not return a status.'),
|
||||
'$mark' => t('Mark success (if update was manually applied)'),
|
||||
'$apply' => t('Attempt to execute this update step automatically'),
|
||||
'$failed' => $failed
|
||||
));
|
||||
|
||||
return $o;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Users admin page
|
||||
*
|
||||
|
@ -979,7 +1042,6 @@ readable.");
|
|||
$size = 5000000;
|
||||
$seek = fseek($fp,0-$size,SEEK_END);
|
||||
if($seek === 0) {
|
||||
fgets($fp); // throw away the first partial line
|
||||
$data = escape_tags(fread($fp,$size));
|
||||
while(! feof($fp))
|
||||
$data .= escape_tags(fread($fp,4096));
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
<li class='admin link button $admin.users.2'><a href='$admin.users.0'>$admin.users.1</a><span id='pending-update' title='$h_pending'></span></li>
|
||||
<li class='admin link button $admin.plugins.2'><a href='$admin.plugins.0'>$admin.plugins.1</a></li>
|
||||
<li class='admin link button $admin.themes.2'><a href='$admin.themes.0'>$admin.themes.1</a></li>
|
||||
<li class='admin link button $admin.dbsync.2'><a href='$admin.dbsync.0'>$admin.dbsync.1</a></li>
|
||||
</ul>
|
||||
|
||||
<ul class='admin linklist'>
|
||||
|
|
17
view/failed_updates.tpl
Normal file
17
view/failed_updates.tpl
Normal file
|
@ -0,0 +1,17 @@
|
|||
<h2>$banner</h2>
|
||||
|
||||
<div id="failed_updates_desc">$desc</div>
|
||||
|
||||
{{ if $failed }}
|
||||
{{ for $failed as $f }}
|
||||
|
||||
<h4>$f</h4>
|
||||
<ul>
|
||||
<li><a href="$base/admin/dbsync/mark/$f">$mark</a></li>
|
||||
<li><a href="$base/admin/dbsync/$f">$apply</a></li>
|
||||
</ul>
|
||||
|
||||
<hr />
|
||||
{{ endfor }}
|
||||
{{ endif }}
|
||||
|
Loading…
Reference in a new issue