mirror of
https://github.com/Terranom674/Piwigo_Bratonien_Tools.git
synced 2026-09-19 11:44:31 +00:00
0.9.6.27: einen NC-Anlageweg und Jetzt-abgleichen
0.9.6.27: einen NC-Anlageweg und Jetzt-abgleichen
This commit is contained in:
@@ -6,7 +6,7 @@ if (!defined('PHPWG_ROOT_PATH'))
|
||||
|
||||
if (isset($GLOBALS['template']) && is_object($GLOBALS['template']) && method_exists($GLOBALS['template'], 'func_combine_script'))
|
||||
{
|
||||
$script_version = function_exists('bratonien_tools_current_version') ? bratonien_tools_current_version() : '0.9.6.24';
|
||||
$script_version = function_exists('bratonien_tools_current_version') ? bratonien_tools_current_version() : '0.9.6.27';
|
||||
$GLOBALS['template']->func_combine_script(array(
|
||||
'id'=>'bratonien_nc_connector_edit_v2',
|
||||
'path'=>BRATONIEN_TOOLS_PATH.'js/nc_connector_edit_v2.js',
|
||||
@@ -41,6 +41,58 @@ require_once(BRATONIEN_TOOLS_PATH . 'include/nc_connector_delete_safe.inc.php');
|
||||
require_once(BRATONIEN_TOOLS_PATH . 'include/nc_connector_webdav.inc.php');
|
||||
require_once(BRATONIEN_TOOLS_PATH . 'include/nc_connector_wizard_webdav_flow.inc.php');
|
||||
require_once(BRATONIEN_TOOLS_PATH . 'include/nc_connector_edit.inc.php');
|
||||
require_once(BRATONIEN_TOOLS_PATH . 'include/nc_connector_system.inc.php');
|
||||
|
||||
function bratonien_tools_nc_connector_run_now()
|
||||
{
|
||||
$service = 'bratonien-nc-connector.service';
|
||||
$active = bratonien_tools_nc_connector_systemctl_value(array('is-active', $service));
|
||||
if ($active === 'active' || $active === 'activating')
|
||||
{
|
||||
return array('message'=>'Der NC-Abgleich läuft bereits.');
|
||||
}
|
||||
|
||||
if (!function_exists('proc_open'))
|
||||
{
|
||||
throw new RuntimeException('Der NC-Abgleich konnte nicht gestartet werden: proc_open ist nicht verfügbar.');
|
||||
}
|
||||
|
||||
$commands = array(
|
||||
array('/usr/bin/sudo', '-n', '/usr/bin/systemctl', 'start', '--no-block', $service),
|
||||
array('/usr/bin/systemctl', 'start', '--no-block', $service),
|
||||
);
|
||||
$last_error = '';
|
||||
|
||||
foreach ($commands as $command)
|
||||
{
|
||||
if (!is_executable($command[0]))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
$spec = array(
|
||||
0=>array('file','/dev/null','r'),
|
||||
1=>array('pipe','w'),
|
||||
2=>array('pipe','w'),
|
||||
);
|
||||
$process = @proc_open($command, $spec, $pipes, null, array_merge($_ENV, array('LC_ALL'=>'C','LANG'=>'C')));
|
||||
if (!is_resource($process))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
$stdout = trim((string)stream_get_contents($pipes[1]));
|
||||
$stderr = trim((string)stream_get_contents($pipes[2]));
|
||||
fclose($pipes[1]);
|
||||
fclose($pipes[2]);
|
||||
$exit = proc_close($process);
|
||||
if ($exit === 0)
|
||||
{
|
||||
return array('message'=>'NC-Abgleich wurde gestartet.');
|
||||
}
|
||||
$last_error = $stderr !== '' ? $stderr : $stdout;
|
||||
}
|
||||
|
||||
throw new RuntimeException('Der NC-Abgleich konnte nicht gestartet werden'.($last_error !== '' ? ': '.$last_error : '.'));
|
||||
}
|
||||
|
||||
function bratonien_tools_get_tools()
|
||||
{
|
||||
@@ -65,13 +117,13 @@ function bratonien_tools_get_tools()
|
||||
'album_share_create' => array('handler' => 'bratonien_tools_create_album_share'),
|
||||
'album_share_regenerate_link' => array('handler' => 'bratonien_tools_regenerate_album_share_link'),
|
||||
'album_share_revoke' => array('handler' => 'bratonien_tools_revoke_album_share'),
|
||||
'nc_connector_create_local' => array('handler' => 'bratonien_tools_nc_connector_create_local_api_first'),
|
||||
'nc_connector_create_webdav_parallel' => array('handler' => 'bratonien_tools_nc_connector_create_webdav_placeholder_from_wizard'),
|
||||
'nc_connector_edit_start' => array('handler' => 'bratonien_tools_nc_connector_edit_start'),
|
||||
'nc_connector_update_local' => array('handler' => 'bratonien_tools_nc_connector_update_local_friendly'),
|
||||
'nc_connector_delete' => array('handler' => 'bratonien_tools_nc_connector_delete_safe'),
|
||||
'nc_connector_update_name' => array('handler' => 'bratonien_tools_nc_connector_update_name'),
|
||||
'nc_connector_update_technical' => array('handler' => 'bratonien_tools_nc_connector_update_technical'),
|
||||
'nc_connector_run_now' => array('handler' => 'bratonien_tools_nc_connector_run_now'),
|
||||
'nc_connector_wizard_scan' => array('handler' => 'bratonien_tools_nc_wizard_scan_webdav_first'),
|
||||
'nc_connector_wizard_save_technical' => array('handler' => 'bratonien_tools_nc_wizard_save_technical_flow'),
|
||||
'nc_connector_wizard_directory_browse' => array('handler' => 'bratonien_tools_nc_wizard_directory_browse'),
|
||||
|
||||
@@ -13,6 +13,33 @@
|
||||
var tokenInput = section.querySelector('input[name="pwg_token"]');
|
||||
var pwgToken = tokenInput ? tokenInput.value : '';
|
||||
|
||||
var technicalButton = document.getElementById('bratonien-nc-technical-open');
|
||||
if (technicalButton) technicalButton.remove();
|
||||
var technicalCreate = document.getElementById('bratonien-nc-technical-create');
|
||||
if (technicalCreate) technicalCreate.remove();
|
||||
|
||||
var statusHeading = Array.prototype.find.call(section.querySelectorAll('h4'), function (heading) {
|
||||
return heading.textContent.trim() === 'Status';
|
||||
});
|
||||
var statusCard = statusHeading ? statusHeading.closest('.bratonien-card') : null;
|
||||
if (statusCard && pwgToken && !statusCard.querySelector('[data-nc-run-now]')) {
|
||||
var runForm = document.createElement('form');
|
||||
runForm.method = 'post';
|
||||
runForm.className = 'bratonien-actions';
|
||||
runForm.style.marginTop = '1rem';
|
||||
runForm.setAttribute('data-nc-run-now', '1');
|
||||
runForm.innerHTML = '<input type="hidden" name="pwg_token" value="'+escapeHtml(pwgToken)+'">'
|
||||
+ '<button class="buttonLike" type="submit" name="bratonien_tool" value="nc_connector_run_now">Jetzt abgleichen</button>';
|
||||
runForm.addEventListener('submit', function () {
|
||||
var button = runForm.querySelector('button');
|
||||
if (button) {
|
||||
button.disabled = true;
|
||||
button.textContent = 'Abgleich wird gestartet …';
|
||||
}
|
||||
});
|
||||
statusCard.appendChild(runForm);
|
||||
}
|
||||
|
||||
function escapeHtml(value) {
|
||||
return String(value == null ? '' : value).replace(/[&<>"']/g, function (c) {
|
||||
return {'&':'&','<':'<','>':'>','"':'"',"'":'''}[c];
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/*
|
||||
Plugin Name: Bratonien Tools
|
||||
Version: 0.9.6.26
|
||||
Version: 0.9.6.27
|
||||
Description: Erweiterbare Administrationswerkzeuge fuer die Bratonien-Piwigo-Installation.
|
||||
Plugin URI: https://github.com/Terranom674/Piwigo_Bratonien_Tools
|
||||
Author: Bratonien
|
||||
|
||||
Reference in New Issue
Block a user