aboutsummaryrefslogtreecommitdiffstats
path: root/mod/admin.php
diff options
context:
space:
mode:
authorSimon L'nu <simon.lnu@gmail.com>2012-04-30 06:02:38 -0400
committerSimon L'nu <simon.lnu@gmail.com>2012-04-30 06:02:38 -0400
commit9b7dac6ce19e99ae9341329f422685626146fbdb (patch)
treedbf505881b60a675492d299d94ec6fb7875c8fac /mod/admin.php
parent34eb843fb486b9487f02553c1b791892bb7615fc (diff)
parent9f18c9d664d44ce4d2bfe092bf1a8a154d31ac5f (diff)
downloadvolse-hubzilla-9b7dac6ce19e99ae9341329f422685626146fbdb.tar.gz
volse-hubzilla-9b7dac6ce19e99ae9341329f422685626146fbdb.tar.bz2
volse-hubzilla-9b7dac6ce19e99ae9341329f422685626146fbdb.zip
Merge branch 'master', remote-tracking branch 'remotes/upstream/master'
* remotes/upstream/master: provide "xxx joined yyy" notifications adding META viewport tag for better look on tablets Update Esperanto to 100% DE update to the strings activitystreams schema constants for "join group" missed a db field typo in profile_selectors, fix remote tagging not all profile selector choices have unique or direct translations log db error strings in all cases admin page to manage failed updates improved db error logging close one menu (like the notifications menu) when another one is opened (like it is done when clicking somewhere else) (thx to ^mw) * master:
Diffstat (limited to 'mod/admin.php')
-rw-r--r--mod/admin.php66
1 files changed, 64 insertions, 2 deletions
diff --git a/mod/admin.php b/mod/admin.php
index 3b6d186d5..b07ef851a 100644
--- a/mod/admin.php
+++ b/mod/admin.php
@@ -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));