Initial commit
This commit is contained in:
commit
05c65aad4d
155 changed files with 93617 additions and 0 deletions
89
viewer/admin/api/actions.php
Normal file
89
viewer/admin/api/actions.php
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
<?php
|
||||
require __DIR__ . '/common.php';
|
||||
|
||||
$root = workspace_root();
|
||||
$body = file_get_contents('php://input');
|
||||
$data = json_decode($body, true);
|
||||
if (!$data || !isset($data['action'])) { http_response_code(400); json_response(['error'=>'invalid_request']); }
|
||||
|
||||
$action = $data['action'];
|
||||
if ($action === 'clear_cache') {
|
||||
$target = $root . '/viewer/build';
|
||||
$out = '';
|
||||
if (is_dir($target)) {
|
||||
// remove all files
|
||||
$cmd = 'rm -rf ' . escapeshellarg($target) . '/*';
|
||||
$out = shell_exec($cmd . ' 2>&1');
|
||||
} else { $out = 'no build dir'; }
|
||||
json_response(['ok'=>true,'output'=>$out]);
|
||||
}
|
||||
|
||||
if ($action === 'rebuild_thumbs') {
|
||||
$script = $root . '/scripts/render.sh';
|
||||
if (file_exists($script) && is_executable($script)) {
|
||||
$out = shell_exec(escapeshellcmd($script) . ' 2>&1');
|
||||
json_response(['ok'=>true,'output'=>$out]);
|
||||
}
|
||||
http_response_code(500); json_response(['error'=>'script_missing']);
|
||||
}
|
||||
|
||||
if ($action === 'diagnostics') {
|
||||
$out = [];
|
||||
$out['php'] = shell_exec('php -v 2>&1');
|
||||
$out['uname'] = shell_exec('uname -a 2>&1');
|
||||
$out['df'] = shell_exec('df -h 2>&1');
|
||||
json_response(['ok'=>true,'output'=>$out]);
|
||||
}
|
||||
|
||||
if ($action === 'entity_resave') {
|
||||
$entity_id = $data['entity_id'] ?? null;
|
||||
$entity_type = $data['entity_type'] ?? 'wisski_individual';
|
||||
if (!$entity_id) { http_response_code(400); json_response(['error'=>'missing_entity_id']); }
|
||||
|
||||
$out = "Attempting to re-save entity $entity_type:$entity_id ...\n\n";
|
||||
|
||||
// Try to bootstrap Drupal if available
|
||||
$drupal_root = $root;
|
||||
if (file_exists($drupal_root . '/index.php')) {
|
||||
$out .= "Found index.php, attempting Drupal bootstrap...\n";
|
||||
try {
|
||||
// Push to Drupal context
|
||||
$cwd = getcwd();
|
||||
chdir($drupal_root);
|
||||
|
||||
// Simple Drupal load without full bootstrap (safer)
|
||||
if (function_exists('drush_main')) {
|
||||
$out .= "Drush detected, will attempt re-save.\n";
|
||||
}
|
||||
|
||||
// Try using Drupal's entity loader via autoloader
|
||||
if (file_exists($drupal_root . '/vendor/autoload.php')) {
|
||||
require_once $drupal_root . '/vendor/autoload.php';
|
||||
$out .= "Drupal autoloader loaded.\n";
|
||||
|
||||
// Simple check: can we access Drupal\Core ?
|
||||
if (class_exists('Drupal\Core\Entity\EntityTypeManager')) {
|
||||
$out .= "Drupal namespace available - attempting entity save.\n";
|
||||
// Real bootstrap would require more setup
|
||||
$out .= "INFO: Full entity re-save requires Drupal context.\n";
|
||||
}
|
||||
}
|
||||
chdir($cwd);
|
||||
$out .= "\nTo re-save this entity, use Drupal CLI:\n";
|
||||
$out .= " drush entity:save $entity_type $entity_id\n";
|
||||
$out .= "Or access Drupal admin panel and update the entity.\n";
|
||||
} catch (\Throwable $e) {
|
||||
$out .= "Bootstrap check failed: " . $e->getMessage() . "\n";
|
||||
$out .= "\nTo re-save this entity, use Drupal CLI:\n";
|
||||
$out .= " drush entity:save $entity_type $entity_id\n";
|
||||
}
|
||||
} else {
|
||||
$out .= "Drupal not detected in this directory.\n";
|
||||
$out .= "To re-save an entity, use:\n";
|
||||
$out .= " drush entity:save $entity_type $entity_id\n";
|
||||
$out .= "Or trigger via Drupal admin panel.\n";
|
||||
}
|
||||
json_response(['ok'=>true,'output'=>$out]);
|
||||
}
|
||||
|
||||
http_response_code(400); json_response(['error'=>'unknown_action']);
|
||||
Loading…
Add table
Add a link
Reference in a new issue