diff options
Diffstat (limited to 'modules-available/sysconfig/addmodule_custommodule.inc.php')
-rw-r--r-- | modules-available/sysconfig/addmodule_custommodule.inc.php | 73 |
1 files changed, 27 insertions, 46 deletions
diff --git a/modules-available/sysconfig/addmodule_custommodule.inc.php b/modules-available/sysconfig/addmodule_custommodule.inc.php index 0c3c299d..3afdad0a 100644 --- a/modules-available/sysconfig/addmodule_custommodule.inc.php +++ b/modules-available/sysconfig/addmodule_custommodule.inc.php @@ -14,7 +14,7 @@ class CustomModule_Start extends AddModule_Base Session::set('mod_temp', false); Render::addDialog(Dictionary::translateFile('config-module', 'custom_title'), false, 'custom-upload', array( 'step' => 'CustomModule_ProcessUpload', - 'edit' => $this->edit ? $this->edit->id() : false + 'edit' => $this->edit === null ? null : $this->edit->id(), )); } @@ -55,8 +55,9 @@ class CustomModule_ProcessUpload extends AddModule_Base protected function renderInternal() { - $status = Taskmanager::waitComplete($this->taskId); + $status = Taskmanager::waitComplete($this->taskId, 7500); Taskmanager::release($this->taskId); + $userGroupWarn = false; $tempfile = Session::get('mod_temp'); if (!isset($status['statusCode'])) { unlink($tempfile); @@ -66,47 +67,29 @@ class CustomModule_ProcessUpload extends AddModule_Base unlink($tempfile); $this->taskError($status); } - // Sort files for better display - $dirs = array(); - foreach ($status['data']['entries'] as $file) { - if ($file['isdir']) continue; - $dirs[dirname($file['name'])][] = $file; - } - ksort($dirs); - $list = array(); - foreach ($dirs as $dir => $files) { - $list[] = array( - 'name' => $dir, - 'isdir' => true - ); - sort($files); - foreach ($files as $file) { - $file['size'] = Util::readableFileSize($file['size']); - $list[] = $file; - } - } - if ($this->edit !== false) + $list = SysConfig::archiveContentsFromTask($status, $userGroupWarn); + + if ($this->edit !== null) { $title = $this->edit->title(); - elseif (isset($_FILES['modulefile']['name'])) + } else if (isset($_FILES['modulefile']['name'])) { $title = basename($_FILES['modulefile']['name']); - else + } else { $title = ''; - Render::addDialog(Dictionary::translate('config-module', 'custom_title'), false, 'custom-fileselect', array( + } + Render::addDialog(Dictionary::translateFile('config-module', 'custom_title'), false, 'custom-fileselect', array( 'step' => 'CustomModule_CompressModule', 'files' => $list, - 'edit' => $this->edit ? $this->edit->id() : false, - 'title' => $title + 'edit' => $this->edit === null ? null : $this->edit->id(), + 'title' => $title, + 'userGroupWarn' => $userGroupWarn, )); - Session::save(); } } class CustomModule_CompressModule extends AddModule_Base { - - private $taskId = false; - + protected function preprocessInternal() { $title = Request::post('title'); @@ -116,14 +99,15 @@ class CustomModule_CompressModule extends AddModule_Base Util::redirect('?do=SysConfig&action=addmodule&step=CustomModule_Start'); } // Recompress using task manager - $this->taskId = 'tgzmod' . mt_rand() . '-' . microtime(true); + $taskId = 'tgzmod' . mt_rand() . '-' . microtime(true); $destFile = tempnam(sys_get_temp_dir(), 'bwlp-') . '.tgz'; Taskmanager::submit('RecompressArchive', array( - 'id' => $this->taskId, + 'id' => $taskId, 'inputFiles' => [$tempfile => false], - 'outputFile' => $destFile + 'outputFile' => $destFile, + 'forceRoot' => Request::post('force-owner', 0, 'int') !== 0, ), true); - $status = Taskmanager::waitComplete($this->taskId, 5000); + $status = Taskmanager::waitComplete($taskId, 10000); unlink($tempfile); if (!isset($status['statusCode'])) { $this->tmError(); @@ -132,29 +116,26 @@ class CustomModule_CompressModule extends AddModule_Base $this->taskError($status); } // Seems ok, create entry - if ($this->edit === false) + if ($this->edit === null) { $module = ConfigModule::getInstance('CustomModule'); - else + } else { $module = $this->edit; - if ($module === false) { - Message::addError('main.error-read', 'custommodule.inc.php'); - Util::redirect('?do=SysConfig&action=addmodule&step=CustomModule_Start'); } $module->setData('tmpFile', $destFile); - if ($this->edit !== false) + if ($this->edit !== null) { $ret = $module->update($title); - else + } else { $ret = $module->insert($title); + } if (!$ret) Util::redirect('?do=SysConfig&action=addmodule&step=CustomModule_Start'); - elseif (!$module->generate($this->edit === false, NULL, 200)) + elseif (!$module->generate($this->edit === null, NULL, 200)) Util::redirect('?do=SysConfig&action=addmodule&step=CustomModule_Start'); Session::set('mod_temp', false); - Session::save(); // Yay - if ($this->edit !== false) + if ($this->edit !== null) { Message::addSuccess('module-edited'); - else { + } else { Message::addSuccess('module-added'); AddModule_Base::setStep('AddModule_Assign', $module->id()); return; |