mirror of
https://github.com/Terranom674/Piwigo_Bratonien_Tools.git
synced 2026-09-19 22:14:33 +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'))
|
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(
|
$GLOBALS['template']->func_combine_script(array(
|
||||||
'id'=>'bratonien_nc_connector_edit_v2',
|
'id'=>'bratonien_nc_connector_edit_v2',
|
||||||
'path'=>BRATONIEN_TOOLS_PATH.'js/nc_connector_edit_v2.js',
|
'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_webdav.inc.php');
|
||||||
require_once(BRATONIEN_TOOLS_PATH . 'include/nc_connector_wizard_webdav_flow.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_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()
|
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_create' => array('handler' => 'bratonien_tools_create_album_share'),
|
||||||
'album_share_regenerate_link' => array('handler' => 'bratonien_tools_regenerate_album_share_link'),
|
'album_share_regenerate_link' => array('handler' => 'bratonien_tools_regenerate_album_share_link'),
|
||||||
'album_share_revoke' => array('handler' => 'bratonien_tools_revoke_album_share'),
|
'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_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_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_update_local' => array('handler' => 'bratonien_tools_nc_connector_update_local_friendly'),
|
||||||
'nc_connector_delete' => array('handler' => 'bratonien_tools_nc_connector_delete_safe'),
|
'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_name' => array('handler' => 'bratonien_tools_nc_connector_update_name'),
|
||||||
'nc_connector_update_technical' => array('handler' => 'bratonien_tools_nc_connector_update_technical'),
|
'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_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_save_technical' => array('handler' => 'bratonien_tools_nc_wizard_save_technical_flow'),
|
||||||
'nc_connector_wizard_directory_browse' => array('handler' => 'bratonien_tools_nc_wizard_directory_browse'),
|
'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 tokenInput = section.querySelector('input[name="pwg_token"]');
|
||||||
var pwgToken = tokenInput ? tokenInput.value : '';
|
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) {
|
function escapeHtml(value) {
|
||||||
return String(value == null ? '' : value).replace(/[&<>"']/g, function (c) {
|
return String(value == null ? '' : value).replace(/[&<>"']/g, function (c) {
|
||||||
return {'&':'&','<':'<','>':'>','"':'"',"'":'''}[c];
|
return {'&':'&','<':'<','>':'>','"':'"',"'":'''}[c];
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
Plugin Name: Bratonien Tools
|
Plugin Name: Bratonien Tools
|
||||||
Version: 0.9.6.26
|
Version: 0.9.6.27
|
||||||
Description: Erweiterbare Administrationswerkzeuge fuer die Bratonien-Piwigo-Installation.
|
Description: Erweiterbare Administrationswerkzeuge fuer die Bratonien-Piwigo-Installation.
|
||||||
Plugin URI: https://github.com/Terranom674/Piwigo_Bratonien_Tools
|
Plugin URI: https://github.com/Terranom674/Piwigo_Bratonien_Tools
|
||||||
Author: Bratonien
|
Author: Bratonien
|
||||||
|
|||||||
Reference in New Issue
Block a user