fixes for windows

This commit is contained in:
jygaulier
2012-04-25 12:15:23 +02:00
parent c15a8e228c
commit fbaa2e16a2

131
www/admin/adminFeedback.php Normal file → Executable file
View File

@@ -3,7 +3,7 @@
/* /*
* This file is part of Phraseanet * This file is part of Phraseanet
* *
* (c) 2005-2012 Alchemy * (c) 2005-2010 Alchemy
* *
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
@@ -11,6 +11,7 @@
/** /**
* *
* @package
* @license http://opensource.org/licenses/gpl-3.0 GPLv3 * @license http://opensource.org/licenses/gpl-3.0 GPLv3
* @link www.phraseanet.com * @link www.phraseanet.com
*/ */
@@ -24,7 +25,8 @@ $parm = $request->get_parms('action', 'position', 'test', 'renew', 'path', 'test
$output = ''; $output = '';
switch ($parm['action']) { switch ($parm['action'])
{
case 'TREE': case 'TREE':
$output = module_admin::getTree($parm['position']); $output = module_admin::getTree($parm['position']);
break; break;
@@ -35,21 +37,25 @@ switch ($parm['action']) {
$output = '0'; $output = '0';
break; break;
case 'SCHEDULERKEY': case 'SCHEDULERKEY':
$output = $registry->get('GV_ServerName') . 'admin/runscheduler.php?key=' . urlencode(phrasea::scheduler_key( ! ! $parm['renew'])); $output = $registry->get('GV_ServerName') . 'admin/runscheduler.php?key=' . urlencode(phrasea::scheduler_key(!!$parm['renew']));
break; break;
case 'TESTPATH': case 'TESTPATH':
$tests = true; $tests = true;
foreach ($parm['tests'] as $test) { foreach ($parm['tests'] as $test)
switch ($test) { {
switch ($test)
{
case 'writeable': case 'writeable':
if ( ! is_writable($parm['path'])) { if (!is_writable($parm['path']))
{
$tests = false; $tests = false;
} }
break; break;
case 'readable': case 'readable':
default: default:
if ( ! is_readable($parm['path'])) { if (!is_readable($parm['path']))
{
$tests = true; $tests = true;
} }
break; break;
@@ -61,23 +67,30 @@ switch ($parm['action']) {
case 'EMPTYBASE': case 'EMPTYBASE':
$parm = $request->get_parms(array('sbas_id' => http_request::SANITIZE_NUMBER_INT)); $parm = $request->get_parms(array('sbas_id' => http_request::SANITIZE_NUMBER_INT));
$message = _('Base empty successful'); $message = _('Base empty successful');
try { try
{
$sbas_id = (int) $parm['sbas_id']; $sbas_id = (int) $parm['sbas_id'];
$databox = databox::get_instance($sbas_id); $databox = databox::get_instance($sbas_id);
$class_name = 'task_period_emptyColl'; $class_name = 'task_period_emptyColl';
foreach ($databox->get_collections() as $collection) { foreach ($databox->get_collections() as $collection)
if ($collection->get_record_amount() <= 500) { {
if($collection->get_record_amount() <= 500)
{
$collection->empty_collection(500); $collection->empty_collection(500);
} else { }
else
{
$settings = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><tasksettings><base_id>" . $collection->get_base_id() . "</base_id></tasksettings>"; $settings = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><tasksettings><base_id>" . $collection->get_base_id() . "</base_id></tasksettings>";
task_abstract::create($appbox, $class_name, $settings); task_abstract::create($appbox, $class_name, $settings);
$message = _('A task has been creted, please run it to complete empty collection'); $message = _('A task has been creted, please run it to complete empty collection');
} }
} }
} catch (Exception $e) { }
catch (Exception $e)
{
$message = _('An error occurred'); $message = _('An error occurred');
} }
$output = p4string::jsonencode(array('message' => $message)); $output = p4string::jsonencode(array('message'=>$message));
break; break;
case 'EMPTYCOLL': case 'EMPTYCOLL':
$message = _('Collection empty successful'); $message = _('Collection empty successful');
@@ -87,36 +100,45 @@ switch ($parm['action']) {
, "coll_id" => http_request::SANITIZE_NUMBER_INT , "coll_id" => http_request::SANITIZE_NUMBER_INT
) )
); );
try { try
{
$databox = databox::get_instance($parm['sbas_id']); $databox = databox::get_instance($parm['sbas_id']);
$collection = collection::get_from_coll_id($databox, $parm['coll_id']); $collection = collection::get_from_coll_id($databox, $parm['coll_id']);
if ($collection->get_record_amount() <= 500) { if($collection->get_record_amount() <= 500)
{
$collection->empty_collection(500); $collection->empty_collection(500);
} else { }
else
{
$class_name = 'task_period_emptyColl'; $class_name = 'task_period_emptyColl';
$settings = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<tasksettings>\n<base_id>" . $collection->get_base_id() . "</base_id></tasksettings>"; $settings = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<tasksettings>\n<base_id>" . $collection->get_base_id() . "</base_id></tasksettings>";
task_abstract::create($appbox, $class_name, $settings); task_abstract::create($appbox, $class_name, $settings);
$message = _('A task has been creted, please run it to complete empty collection'); $message = _('A task has been creted, please run it to complete empty collection');
} }
} catch (Exception $e) { }
catch (Exception $e)
{
$message = _('An error occurred'); $message = _('An error occurred');
} }
$output = p4string::jsonencode(array('message' => $message)); $output = p4string::jsonencode(array('message'=>$message));
break; break;
case 'SETTASKSTATUS': case 'SETTASKSTATUS':
$parm = $request->get_parms('task_id', 'status', 'signal'); $parm = $request->get_parms('task_id', 'status', 'signal');
try { try
{
$task_manager = new task_manager($appbox); $task_manager = new task_manager($appbox);
$task = $task_manager->get_task($parm['task_id']); $task = $task_manager->get_task($parm['task_id']);
$pid = (int) ($task->get_pid()); $pid = (int)($task->get_pid());
$task->set_status($parm["status"]); $task->set_status($parm["status"]);
$signal = (int) ($parm['signal']); $signal = (int)($parm['signal']);
if ($signal > 0 && $pid) if( $signal > 0 && $pid )
posix_kill($pid, $signal); posix_kill($pid, $signal);
} catch (Exception $e) { }
catch (Exception $e)
{
} }
$output = json_encode($pid); $output = json_encode($pid);
@@ -124,22 +146,28 @@ switch ($parm['action']) {
case 'SETSCHEDSTATUS': case 'SETSCHEDSTATUS':
$parm = $request->get_parms('status', 'signal'); $parm = $request->get_parms('status', 'signal');
try { try
{
$task_manager = new task_manager($appbox); $task_manager = new task_manager($appbox);
$task_manager->set_sched_status($parm['status']); $task_manager->set_sched_status($parm['status']);
} catch (Exception $e) { }
catch (Exception $e)
{
} }
break; break;
case 'RESETTASKCRASHCOUNTER': case 'RESETTASKCRASHCOUNTER':
$parm = $request->get_parms("task_id"); $parm = $request->get_parms("task_id");
try { try
{
$task_manager = new task_manager($appbox); $task_manager = new task_manager($appbox);
$task = $task_manager->get_task($parm['task_id']); $task = $task_manager->get_task($parm['task_id']);
$task->reset_crash_counter(); $task->reset_crash_counter();
} catch (Exception $e) { }
catch (Exception $e)
{
} }
$ret = new DOMDocument("1.0", "UTF-8"); $ret = new DOMDocument("1.0", "UTF-8");
@@ -160,7 +188,8 @@ switch ($parm['action']) {
$root->setAttribute("saved", "0"); $root->setAttribute("saved", "0");
$root->appendChild($ret->createCDATASection(var_export($parm, true))); $root->appendChild($ret->createCDATASection(var_export($parm, true)));
try { try
{
$task_manager = new task_manager($appbox); $task_manager = new task_manager($appbox);
$task = $task_manager->get_task($parm["task_id"]); $task = $task_manager->get_task($parm["task_id"]);
/** /**
@@ -169,40 +198,50 @@ switch ($parm['action']) {
$root->setAttribute("crashed", $task->get_crash_counter()); $root->setAttribute("crashed", $task->get_crash_counter());
if ($task->saveChanges($conn, $parm["task_id"], $row)) if ($task->saveChanges($conn, $parm["task_id"], $row))
$root->setAttribute("saved", "1"); $root->setAttribute("saved", "1");
} catch (Exception $e) { }
catch (Exception $e)
{
} }
$output = $ret->saveXML(); $output = $ret->saveXML();
break; break;
case 'PINGSCHEDULER_JS': case 'PINGSCHEDULER_JS':
$ret = array('time' => date("H:i:s")); $ret = array('time'=> date("H:i:s") );
$task_manager = new task_manager($appbox); $task_manager = new task_manager($appbox);
$ret['scheduler'] = $task_manager->get_scheduler_state(); $ret['scheduler'] = $task_manager->get_scheduler_state();
$ret['tasks'] = array(); $ret['tasks'] = array();
foreach ($task_manager->get_tasks(true) as $task) { foreach ($task_manager->get_tasks(true) as $task)
{
if($task->get_status()==task_abstract::STATUS_TOSTOP && $task->get_pid()===NULL)
{
// fix
$task->set_status(task_abstract::STATUS_STOPPED);
}
$id = $task->get_task_id(); $id = $task->get_task_id();
$ret['tasks'][$id] = array( $ret['tasks'][$id] = array(
'id' => $id 'id'=>$id
, 'pid' => $task->get_pid() , 'pid' =>$task->get_pid()
, 'crashed' => $task->get_crash_counter() , 'crashed'=>$task->get_crash_counter()
, 'completed' => $task->get_completed_percentage() , 'completed'=>$task->get_completed_percentage()
, 'status' => $task->get_status() , 'status'=>$task->get_status()
); );
} }
if (1) { if(1)
{
$sql = 'SHOW PROCESSLIST'; $sql = 'SHOW PROCESSLIST';
$stmt = $appbox->get_connection()->prepare($sql); $stmt = $appbox->get_connection()->prepare($sql);
$stmt->execute(); $stmt->execute();
$rows = $stmt->fetchALL(PDO::FETCH_ASSOC); $rows = $stmt->fetchALL(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
$ret['db_processlist'] = array(); $ret['db_processlist'] = array();
foreach ($rows as $row) { foreach($rows as $row)
if ($row['Info'] != $sql) {
if($row['Info'] != $sql)
$ret['db_processlist'][] = $row; $ret['db_processlist'][] = $row;
} }
} }
@@ -312,19 +351,25 @@ switch ($parm['action']) {
$ret = array('sbas_id' => null, 'err' => -1, 'errmsg' => null); $ret = array('sbas_id' => null, 'err' => -1, 'errmsg' => null);
try { try
{
$sbas_id = (int) $parm['sbas_id']; $sbas_id = (int) $parm['sbas_id'];
$databox = databox::get_instance($sbas_id); $databox = databox::get_instance($sbas_id);
if ($databox->get_record_amount() == 0) { if ($databox->get_record_amount() == 0)
{
$databox->unmount_databox($appbox); $databox->unmount_databox($appbox);
$appbox->write_databox_pic($databox, null, databox::PIC_PDF); $appbox->write_databox_pic($databox, null, databox::PIC_PDF);
$databox->delete(); $databox->delete();
$ret['sbas_id'] = $parm['sbas_id']; $ret['sbas_id'] = $parm['sbas_id'];
$ret['err'] = 0; $ret['err'] = 0;
} else { }
else
{
$ret['errmsg'] = _('admin::base: vider la base avant de la supprimer'); $ret['errmsg'] = _('admin::base: vider la base avant de la supprimer');
} }
} catch (Exception $e) { }
catch (Exception $e)
{
$ret['errmsg'] = $e->getMessage(); $ret['errmsg'] = $e->getMessage();
} }
$output = p4string::jsonencode($ret); $output = p4string::jsonencode($ret);