cfmgrv4 init...3
This commit is contained in:
parent
ed8ded5f7b
commit
3a69193a9d
@ -40,6 +40,7 @@ $routes->group('admin/mapurl', ['namespace' => 'App\Controllers\Admin', 'filter'
|
||||
$routes->get('delete/(:num)', 'MapurlController::delete/$1');
|
||||
$routes->get('toggle/(:num)/(:any)', 'MapurlController::toggle/$1/$2');
|
||||
$routes->post('batchjob', 'MapurlController::batcjob');
|
||||
$routes->post('batchjob_delete', 'MapurlController::batcjob_delete');
|
||||
$routes->get('download/(:alpha)', 'MapurlController::download/$1');
|
||||
});
|
||||
$routes->group('admin/user', ['namespace' => 'App\Controllers\Admin', 'filter' => 'authFilter:master'], function ($routes) {
|
||||
@ -52,6 +53,7 @@ $routes->group('admin/user', ['namespace' => 'App\Controllers\Admin', 'filter' =
|
||||
$routes->get('delete/(:num)', 'UserController::delete/$1');
|
||||
$routes->get('toggle/(:num)/(:any)', 'UserController::toggle/$1/$2');
|
||||
$routes->post('batchjob', 'UserController::batcjob');
|
||||
$routes->post('batchjob_delete', 'UserController::batcjob_delete');
|
||||
$routes->get('download/(:alpha)', 'UserController::download/$1');
|
||||
});
|
||||
$routes->group('admin/usersns', ['namespace' => 'App\Controllers\Admin', 'filter' => 'authFilter:master'], function ($routes) {
|
||||
@ -59,6 +61,7 @@ $routes->group('admin/usersns', ['namespace' => 'App\Controllers\Admin', 'filter
|
||||
$routes->get('delete/(:num)', 'UserSNSController::delete/$1');
|
||||
$routes->get('toggle/(:num)/(:any)', 'UserSNSController::toggle/$1/$2');
|
||||
$routes->post('batchjob', 'UserSNSController::batcjob');
|
||||
$routes->post('batchjob_delete', 'UserSNSController::batcjob_delete');
|
||||
$routes->get('download/(:alpha)', 'UserSNSController::download/$1');
|
||||
});
|
||||
|
||||
@ -72,6 +75,7 @@ $routes->group('admin/cloudflare', ['namespace' => 'App\Controllers\Admin\Cloudf
|
||||
$routes->get('delete/(:num)', 'AuthController::delete/$1');
|
||||
$routes->get('toggle/(:num)/(:any)', 'AuthController::toggle/$1/$2');
|
||||
$routes->post('batchjob', 'AuthController::batcjob');
|
||||
$routes->post('batchjob_delete', 'AuthController::batcjob_delete');
|
||||
$routes->get('download/(:alpha)', 'AccountController::download/$1');
|
||||
});
|
||||
$routes->group('account', function ($routes) {
|
||||
@ -88,6 +92,7 @@ $routes->group('admin/cloudflare', ['namespace' => 'App\Controllers\Admin\Cloudf
|
||||
$routes->get('sync/(:alphanum)', 'ZoneController::sync/$1');
|
||||
$routes->get('toggle/(:alphanum)/(:any)', 'ZoneController::toggle/$1/$2');
|
||||
$routes->post('batchjob', 'ZoneController::batcjob');
|
||||
$routes->post('batchjob_delete', 'ZoneController::batcjob_delete');
|
||||
$routes->get('reload/(:alphanum)', 'ZoneController::reload/$1');
|
||||
$routes->get('download/(:alpha)', 'ZoneController::download/$1');
|
||||
});
|
||||
@ -100,6 +105,7 @@ $routes->group('admin/cloudflare', ['namespace' => 'App\Controllers\Admin\Cloudf
|
||||
$routes->get('sync/(:alphanum)', 'RecordController::sync/$1');
|
||||
$routes->get('toggle/(:alphanum)/(:any)', 'RecordController::toggle/$1/$2');
|
||||
$routes->post('batchjob', 'RecordController::batcjob');
|
||||
$routes->post('batchjob_delete', 'RecordController::batcjob_delete');
|
||||
$routes->get('reload/(:alphanum)', 'RecordController::reload/$1');
|
||||
$routes->get('download/(:alpha)', 'RecordController::download/$1');
|
||||
});
|
||||
|
||||
@ -148,7 +148,7 @@ class RecordController extends CloudflareController
|
||||
if ($this->entity === null) {
|
||||
throw new \Exception("{$uid} 정보를 찾을수 없습니다.");
|
||||
}
|
||||
//fixed 필드가 있고 값이 변경되었을때
|
||||
//fixed 필드가 있고 값이 변경되었을때(toggle에서 fixed만 설정시사용)
|
||||
if (in_array('fixed', $this->fields)) {
|
||||
// dd($this->formDatas, $this->entity->fixed);
|
||||
if (isset($this->formDatas['fixed']) && $this->formDatas['fixed'] !== $this->entity->fixed) {
|
||||
@ -165,7 +165,14 @@ class RecordController extends CloudflareController
|
||||
public function batcjob(): RedirectResponse
|
||||
{
|
||||
$this->action = __FUNCTION__;
|
||||
$this->fields = ['proxied'];
|
||||
//데이터가 있는경우 Field만 처리하기위해
|
||||
$fields = [];
|
||||
foreach (['content', 'proxied'] as $field) {
|
||||
if ($this->request->getVar($field)) {
|
||||
$fields[$field] = $field;
|
||||
}
|
||||
}
|
||||
$this->fields = $fields;
|
||||
$this->field_rules = $this->getModel()->getFieldRules($this->action, $this->fields);
|
||||
return $this->batcjob_procedure();
|
||||
}
|
||||
|
||||
@ -202,7 +202,14 @@ class ZoneController extends CloudflareController
|
||||
public function batcjob(): RedirectResponse
|
||||
{
|
||||
$this->action = __FUNCTION__;
|
||||
$this->fields = ['development_mode', 'ipv6', 'security_level'];
|
||||
//데이터가 있는경우 Field만 처리하기위해
|
||||
$fields = [];
|
||||
foreach (['development_mode', 'ipv6', 'security_level'] as $field) {
|
||||
if ($this->request->getVar($field)) {
|
||||
$fields[$field] = $field;
|
||||
}
|
||||
}
|
||||
$this->fields = $fields;
|
||||
$this->field_rules = $this->getModel()->getFieldRules($this->action, $this->fields);
|
||||
return $this->batcjob_procedure();
|
||||
}
|
||||
|
||||
@ -304,6 +304,32 @@ abstract class MVController extends CommonController
|
||||
return redirect()->back()->with('error', __FUNCTION__ . " 실패하였습니다.\n" . $e->getMessage());
|
||||
}
|
||||
}
|
||||
//일괄삭제
|
||||
final public function batcjob_delete(): RedirectResponse|string
|
||||
{
|
||||
//Transaction Start
|
||||
$this->getModel()->transStart();
|
||||
try {
|
||||
//변경할 UIDS
|
||||
$uids = $this->request->getVar('batchjob_uids');
|
||||
if (!$uids) {
|
||||
throw new \Exception("적용할 리스트를 선택하셔야합니다.");
|
||||
}
|
||||
foreach (explode(",", $uids) as $uid) {
|
||||
$this->delete_process($uid);
|
||||
}
|
||||
$this->getModel()->transCommit();
|
||||
$this->message = "{$this->class_name} : 일괄삭제처리작업이 완료되었습니다.";
|
||||
log_message("notice", $this->message);
|
||||
// 이전 URL로 리다이렉트
|
||||
return redirect()->to($this->myauth->popPreviousUrl())->with('error', $this->message);
|
||||
} catch (\Exception $e) {
|
||||
//Transaction Rollback
|
||||
$this->getModel()->transRollback();
|
||||
log_message("error", $e->getMessage());
|
||||
return redirect()->back()->with('error', __FUNCTION__ . " 실패하였습니다.\n" . $e->getMessage());
|
||||
}
|
||||
}
|
||||
// 리스트
|
||||
protected function list_condition_process(): void
|
||||
{
|
||||
|
||||
@ -104,6 +104,12 @@ class AccountHelper extends CommonHelper
|
||||
case 'batchjob':
|
||||
$action = "";
|
||||
break;
|
||||
case 'batchjob_delete':
|
||||
$action = "";
|
||||
break;
|
||||
default:
|
||||
$action = parent::getListButton($action, $viewDatas, $extras);
|
||||
break;
|
||||
}
|
||||
return $action;
|
||||
}
|
||||
|
||||
@ -52,4 +52,16 @@ class AuthHelper extends CommonHelper
|
||||
}
|
||||
return $value;
|
||||
} //
|
||||
public function getListButton(string $action, array $viewDatas, array $extras = []): string
|
||||
{
|
||||
switch ($action) {
|
||||
case 'batchjob_delete':
|
||||
$action = "";
|
||||
break;
|
||||
default:
|
||||
$action = parent::getListButton($action, $viewDatas, $extras);
|
||||
break;
|
||||
}
|
||||
return $action;
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,9 +4,7 @@ namespace App\Helpers;
|
||||
|
||||
class CommonHelper
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
}
|
||||
public function __construct() {}
|
||||
final public function getRandomString($length = 10, $characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
|
||||
{
|
||||
return substr(str_shuffle($characters), 0, $length);
|
||||
@ -265,10 +263,18 @@ class CommonHelper
|
||||
break;
|
||||
case 'batchjob':
|
||||
$action = form_submit("batchjob_submit", '일괄처리', [
|
||||
"formaction" => current_url() . '/batchjob',
|
||||
"class" => "btn btn-outline btn-warning",
|
||||
"onclick" => "return submitBatchJob()"
|
||||
]);
|
||||
break;
|
||||
case 'batchjob_delete':
|
||||
$action = form_submit("batchjob_submit", '일괄삭제', [
|
||||
"formaction" => current_url() . '/batchjob_delete',
|
||||
"class" => "btn btn-outline btn-danger",
|
||||
"onclick" => "return submitBatchJobDelete()"
|
||||
]);
|
||||
break;
|
||||
}
|
||||
return $action;
|
||||
}
|
||||
|
||||
@ -54,6 +54,12 @@ class UserSNSHelper extends CommonHelper
|
||||
case 'batchjob':
|
||||
$action = "";
|
||||
break;
|
||||
case 'batchjob_delete':
|
||||
$action = "";
|
||||
break;
|
||||
default:
|
||||
$action = parent::getListButton($action, $viewDatas, $extras);
|
||||
break;
|
||||
}
|
||||
return $action;
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<div class="index_batchjob">
|
||||
<?= form_open(current_url() . '/batchjob', ['id' => 'batchjob_form', 'method' => "post"]) ?>
|
||||
<?= form_open("", ['id' => 'batchjob_form', 'method' => "post"]) ?>
|
||||
<input type="hidden" name="batchjob_uids" id="batchjob_uids" value="">
|
||||
<ul class="nav justify-content-center">
|
||||
<li class="nav-item"><?= form_checkbox(array("id" => "batchjobuids_checkbox")) ?>ALL</li>
|
||||
@ -8,6 +8,7 @@
|
||||
<?php endforeach ?>
|
||||
<li class="nav-item"><?= $viewDatas['helper']->getListButton('batchjob', $viewDatas) ?></li>
|
||||
<li class="nav-item"><?= $viewDatas['helper']->getListButton('create', $viewDatas) ?></li>
|
||||
<li class="nav-item"><?= $viewDatas['helper']->getListButton('batchjob_delete', $viewDatas) ?></li>
|
||||
</ul>
|
||||
<?= form_close() ?>
|
||||
</div>
|
||||
@ -38,4 +39,18 @@
|
||||
document.getElementById('batchjob_uids').value = batchjobUids.join(',');
|
||||
return true;
|
||||
}
|
||||
|
||||
function submitBatchJobDelete() {
|
||||
var batchjobUids = [];
|
||||
var checkboxes = document.querySelectorAll('input[name="batchjob_uids[]"]:checked');
|
||||
checkboxes.forEach(function(checkbox) {
|
||||
batchjobUids.push(checkbox.value);
|
||||
});
|
||||
if (batchjobUids.length === 0) {
|
||||
alert('적용할 리스트를 선택하셔야합니다.');
|
||||
return false;
|
||||
}
|
||||
document.getElementById('batchjob_uids').value = batchjobUids.join(',');
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
@ -99,6 +99,11 @@ div.index_batchjob {
|
||||
/* border: 1px solid red; */
|
||||
}
|
||||
|
||||
div.index_batchjob ul.nav li.nav-item {
|
||||
margin-left: 10px;
|
||||
/* border: 1px solid red; */
|
||||
}
|
||||
|
||||
div.index_pagination {
|
||||
margin-top: 20px;
|
||||
/* border: 1px solid red; */
|
||||
|
||||
Loading…
Reference in New Issue
Block a user