issue 70 favorite interface developement

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@9030 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ovclas 2011-09-05 09:34:08 +00:00
parent 425b02531f
commit 249ba8c7f5
5 changed files with 8 additions and 106 deletions

View file

@ -154,24 +154,23 @@
{ {
$siteSrl = Context::get('site_srl'); $siteSrl = Context::get('site_srl');
$moduleName = Context::get('module_name'); $moduleName = Context::get('module_name');
$key = Context::get('key');
// check favorite exists // check favorite exists
$oModel = &getAdminModel('admin'); $oModel = &getAdminModel('admin');
$output = $oModel->isExistsFavorite($siteSrl, $moduleName, $key); $output = $oModel->isExistsFavorite($siteSrl, $moduleName);
if (!$output->toBool()) return $output; if (!$output->toBool()) return $output;
// if exists, delete favorite // if exists, delete favorite
if ($output->get('result')) if ($output->get('result'))
{ {
$favoriteSrl = $output->get('favoriteSrl'); $favoriteSrl = $output->get('favoriteSrl');
$output = $this->deleteFavorite($favoriteSrl); $output = $this->_deleteFavorite($favoriteSrl);
} }
// if not exists, insert favorite // if not exists, insert favorite
else else
{ {
$output = $this->insertFavorite($siteSrl, $moduleName, $key); $output = $this->_insertFavorite($siteSrl, $moduleName);
} }
if (!$output->toBool()) return $output; if (!$output->toBool()) return $output;
@ -261,11 +260,10 @@
/** /**
* @brief Insert favorite * @brief Insert favorite
**/ **/
function insertFavorite($siteSrl, $module, $key) function _insertFavorite($siteSrl, $module)
{ {
$args->site_srl = $siteSrl; $args->site_srl = $siteSrl;
$args->module = $module; $args->module = $module;
$args->key = $key;
$output = executeQuery('admin.insertFavorite', $args); $output = executeQuery('admin.insertFavorite', $args);
return $output; return $output;
} }
@ -273,71 +271,13 @@
/** /**
* @brief Delete favorite * @brief Delete favorite
**/ **/
function deleteFavorite($favoriteSrl) function _deleteFavorite($favoriteSrl)
{ {
$args->admin_favorite_srl = $favoriteSrl; $args->admin_favorite_srl = $favoriteSrl;
$output = executeQuery('admin.deleteFavorite', $args); $output = executeQuery('admin.deleteFavorite', $args);
return $output; return $output;
} }
/**
* @brief set favorites at one time
**/
function setFavoritesByModule($siteSrl, $module, $keyList)
{
$oModel = &getAdminModel('admin');
$output = $oModel->getFavoriteListByModule($siteSrl, $module);
if (!$output->toBool()) return $output;
$originList = $output->get('list');
// find insert key
$insertKey = array_diff($keyList, $originList);
// find delete key
$deleteKey = array_diff($originList, $keyList);
// start transaction
$oDB = &DB::getInstance();
$oDB->begin();
// insert key
foreach($insertKey as $key)
{
$output = $this->insertFavorite($siteSrl, $module, $key);
if (!$output->toBool())
{
$oDB->rollback();
return $output;
}
}
// delete key
foreach($deleteKey as $key)
{
$output = $oModel->isExistsFavorite($siteSrl, $module, $key);
if (!$output->toBool())
{
$oDB->rollback();
return $output;
}
$favoriteSrl = $output->get('favoriteSrl');
if ($favoriteSrl)
{
$output = $this->deleteFavorite($favoriteSrl);
if (!$output->toBool())
{
$oDB->rollback();
return $output;
}
}
}
// commit
$oDB->commit();
return new Object();
}
function procAdminRemoveIcons(){ function procAdminRemoveIcons(){
$iconname = Context::get('iconname'); $iconname = Context::get('iconname');
$file_exist = FileHandler::readFile(_XE_PATH_.'files/attach/xeicon/'.$iconname); $file_exist = FileHandler::readFile(_XE_PATH_.'files/attach/xeicon/'.$iconname);

View file

@ -341,17 +341,6 @@
if (!$output->toBool()) return $output; if (!$output->toBool()) return $output;
if (!$output->data) return new Object(); if (!$output->data) return new Object();
foreach($output->data as $row)
{
$targetModule = $row->module;
$oTargetModuleAdminModel = &getAdminModel($targetModule);
if (!$oTargetModuleAdminModel) continue;
if (!method_exists($oTargetModuleAdminModel, 'getFavoriteInfo')) continue;
$favoriteInfo = $oTargetModuleAdminModel->getFavoriteInfo($row->key);
$favoriteList[] = $favoriteInfo;
}
$returnObject = new Object(); $returnObject = new Object();
$returnObject->add('favoriteList', $favoriteList); $returnObject->add('favoriteList', $favoriteList);
return $returnObject; return $returnObject;
@ -360,11 +349,10 @@
/** /**
* @brief Check available insert favorite * @brief Check available insert favorite
**/ **/
function isExistsFavorite($siteSrl, $module, $key) function isExistsFavorite($siteSrl, $module)
{ {
$args->site_srl = $siteSrl; $args->site_srl = $siteSrl;
$args->module = $module; $args->module = $module;
$args->key = $key;
$output = executeQuery('admin.getFavorite', $args); $output = executeQuery('admin.getFavorite', $args);
if (!$output->toBool()) return $output; if (!$output->toBool()) return $output;
@ -382,29 +370,6 @@
return $returnObject; return $returnObject;
} }
/**
* @brief Get favorite by module, site
**/
function getFavoriteListByModule($siteSrl, $module)
{
$args->site_srl = $siteSrl;
$args->module = $module;
$columnList = array('key');
$output = executeQueryArray('admin.getFavoriteList', $args, $columnList);
if (!$output->toBool()) return $output;
if (!$output->data) $output->data = array();
$list = array();
foreach($output->data as $row)
{
$list[$row->key] = $row->key;
}
$returnObject = new Object();
$returnObject->add('list', $list);
return $returnObject;
}
/** /**
* @brief Return site list * @brief Return site list
**/ **/

View file

@ -9,7 +9,6 @@
<condition operation="equal" column="admin_favorite_srl" var="favorite_srl" /> <condition operation="equal" column="admin_favorite_srl" var="favorite_srl" />
<condition operation="equal" column="site_srl" var="site_srl" pipe="and" /> <condition operation="equal" column="site_srl" var="site_srl" pipe="and" />
<condition operation="equal" column="module" var="module" pipe="and" /> <condition operation="equal" column="module" var="module" pipe="and" />
<condition operation="equal" column="key" var="key" pipe="and" />
</conditions> </conditions>
<navigation> <navigation>
<index var="sort_index" default="admin_favorite_srl" order="desc" /> <index var="sort_index" default="admin_favorite_srl" order="desc" />

View file

@ -5,6 +5,5 @@
<columns> <columns>
<column name="site_srl" var="site_srl" filter="number" notnull="notnull" /> <column name="site_srl" var="site_srl" filter="number" notnull="notnull" />
<column name="module" var="module" notnull="notnull" /> <column name="module" var="module" notnull="notnull" />
<column name="key" var="key" notnull="notnull" />
</columns> </columns>
</query> </query>

View file

@ -1,6 +1,5 @@
<table name="admin_favorite"> <table name="admin_favorite">
<column name="admin_favorite_srl" type="number" size="11" notnull="notnull" primary_key="primary_key" auto_increment="auto_increment" /> <column name="admin_favorite_srl" type="number" size="11" notnull="notnull" primary_key="primary_key" auto_increment="auto_increment" />
<column name="site_srl" type="number" size="11" /> <column name="site_srl" type="number" size="11" default="0" />
<column name="module" type="varchar" size="80" /> <column name="module" type="varchar" size="80" />
<column name="key" type="varchar" size="255" /> </table>
</table>