mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-26 05:42:13 +09:00
issue 1533, fixed a bug related move document extra var
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@10297 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
0877657962
commit
70ac43c24d
4 changed files with 103 additions and 3 deletions
|
|
@ -707,10 +707,41 @@ class documentController extends document {
|
|||
if(!$module_srl) return new Object(-1,'msg_invalid_request');
|
||||
$obj->module_srl = $module_srl;
|
||||
if(!is_null($var_idx)) $obj->var_idx = $var_idx;
|
||||
$output = executeQuery('document.deleteDocumentExtraKeys', $obj);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
return executeQuery('document.deleteDocumentExtraVars', $obj);
|
||||
$oDB = DB::getInstance();
|
||||
$oDB->begin();
|
||||
|
||||
$output = $oDB->executeQuery('document.deleteDocumentExtraKeys', $obj);
|
||||
if(!$output->toBool())
|
||||
{
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
|
||||
$output = $oDB->executeQuery('document.updateDocumentExtraKeyIdxOrder', $obj);
|
||||
if(!$output->toBool())
|
||||
{
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
|
||||
$output = executeQuery('document.deleteDocumentExtraVars', $obj);
|
||||
if(!$output->toBool())
|
||||
{
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
|
||||
$output = $oDB->executeQuery('document.updateDocumentExtraVarIdxOrder', $obj);
|
||||
if(!$output->toBool())
|
||||
{
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
|
||||
$oDB->commit();
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -417,6 +417,51 @@
|
|||
$obj->sort_index = 'var_idx';
|
||||
$obj->order = 'asc';
|
||||
$output = executeQueryArray('document.getDocumentExtraKeys', $obj);
|
||||
|
||||
// correcting index order
|
||||
$isFixed = FALSE;
|
||||
if(is_array($output->data))
|
||||
{
|
||||
$prevIdx = 0;
|
||||
foreach($output->data as $no => $value)
|
||||
{
|
||||
// case first
|
||||
if($prevIdx == 0 && $value->idx != 1)
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->module_srl = $module_srl;
|
||||
$args->var_idx = $value->idx;
|
||||
$args->new_idx = 1;
|
||||
executeQuery('document.updateDocumentExtraKeyIdx', $args);
|
||||
executeQuery('document.updateDocumentExtraVarIdx', $args);
|
||||
$prevIdx = 1;
|
||||
$isFixed = TRUE;
|
||||
continue;
|
||||
}
|
||||
|
||||
// case others
|
||||
if($prevIdx > 0 && $prevIdx + 1 != $value->idx)
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->module_srl = $module_srl;
|
||||
$args->var_idx = $value->idx;
|
||||
$args->new_idx = $prevIdx + 1;
|
||||
executeQuery('document.updateDocumentExtraKeyIdx', $args);
|
||||
executeQuery('document.updateDocumentExtraVarIdx', $args);
|
||||
$prevIdx += 1;
|
||||
$isFixed = TRUE;
|
||||
continue;
|
||||
}
|
||||
|
||||
$prevIdx = $value->idx;
|
||||
}
|
||||
}
|
||||
|
||||
if($isFixed)
|
||||
{
|
||||
$output = executeQueryArray('document.getDocumentExtraKeys', $obj);
|
||||
}
|
||||
|
||||
$oExtraVar->setExtraVarKeys($output->data);
|
||||
$keys = $oExtraVar->getExtraVars();
|
||||
if(!$keys) $keys = array();
|
||||
|
|
|
|||
12
modules/document/queries/updateDocumentExtraKeyIdxOrder.xml
Normal file
12
modules/document/queries/updateDocumentExtraKeyIdxOrder.xml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<query id="updateDocumentExtraKeyIdxOrder" action="update">
|
||||
<tables>
|
||||
<table name="document_extra_keys" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="var_idx" default="minus(1)" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="module_srl" var="module_srl" filter="number" notnull="notnull" />
|
||||
<condition operation="excess" column="var_idx" var="var_idx" filter="number" notnull="notnull" pipe="and" />
|
||||
</conditions>
|
||||
</query>
|
||||
12
modules/document/queries/updateDocumentExtraVarIdxOrder.xml
Normal file
12
modules/document/queries/updateDocumentExtraVarIdxOrder.xml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<query id="updateDocumentExtraVarIdxOrder" action="update">
|
||||
<tables>
|
||||
<table name="document_extra_vars" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="var_idx" default="minus(1)" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="module_srl" var="module_srl" filter="number" notnull="notnull" />
|
||||
<condition operation="excess" column="var_idx" var="var_idx" filter="number" notnull="notnull" pipe="and" />
|
||||
</conditions>
|
||||
</query>
|
||||
Loading…
Add table
Add a link
Reference in a new issue