Implement creating, renaming, and deleting scrap folders

This commit is contained in:
Kijin Sung 2017-09-28 14:09:57 +09:00
parent cf0a5d019c
commit 4a5385a635
10 changed files with 226 additions and 10 deletions

View file

@ -222,11 +222,12 @@ class memberController extends member
return new Object(-1,'msg_invalid_request');
}
// Check folder
// Check that the target folder exists and belongs to member
$args = new stdClass;
$args->member_srl = $logged_info->member_srl;
$args->folder_srl = $folder_srl;
$output = executeQueryArray('member.getScrapFolderList', $args);
if(!array_filter($output->data, function($folder) use($folder_srl) { return $folder->folder_srl == $folder_srl; }))
if(!count($output->data))
{
return new Object(-1, 'msg_invalid_request');
}
@ -239,6 +240,137 @@ class memberController extends member
return executeQuery('member.updateScrapDocumentFolder', $args);
}
/**
* Create a scrap folder
*
* @return void|Object (void : success, Object : fail)
*/
function procMemberInsertScrapFolder()
{
// Check login information
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
// Get new folder name
$folder_name = Context::get('name');
$folder_name = escape(trim(utf8_normalize_spaces($folder_name)));
if(!$folder_name)
{
return new Object(-1, 'msg_invalid_request');
}
// Check existing folder with same name
$args = new stdClass;
$args->member_srl = $logged_info->member_srl;
$args->name = $folder_name;
$output = executeQueryArray('member.getScrapFolderList', $args);
if(count($output->data) || $folder_name === lang('default_folder'))
{
return new Object(-1, 'msg_folder_alreay_exists');
}
// Create folder
$args = new stdClass;
$args->folder_srl = getNextSequence();
$args->member_srl = $logged_info->member_srl;
$args->name = $folder_name;
$args->list_order = $args->folder_srl;
$this->add('folder_srl', $args->folder_srl);
return executeQuery('member.insertScrapFolder', $args);
}
/**
* Rename a scrap folder
*
* @return void|Object (void : success, Object : fail)
*/
function procMemberRenameScrapFolder()
{
// Check login information
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
// Get new folder name
$folder_srl = intval(Context::get('folder_srl'));
$folder_name = Context::get('name');
$folder_name = escape(trim(utf8_normalize_spaces($folder_name)));
if(!$folder_srl || !$folder_name)
{
return new Object(-1, 'msg_invalid_request');
}
// Check that the original folder exists and belongs to member
$args = new stdClass;
$args->member_srl = $logged_info->member_srl;
$args->folder_srl = $folder_srl;
$output = executeQueryArray('member.getScrapFolderList', $args);
if(!count($output->data))
{
return new Object(-1, 'msg_invalid_request');
}
// Check existing folder with same name
$args = new stdClass;
$args->member_srl = $logged_info->member_srl;
$args->not_folder_srl = $folder_srl;
$args->name = $folder_name;
$output = executeQueryArray('member.getScrapFolderList', $args);
if(count($output->data) || $folder_name === lang('default_folder'))
{
return new Object(-1, 'msg_folder_alreay_exists');
}
// Rename folder
$args = new stdClass;
$args->folder_srl = $folder_srl;
$args->name = $folder_name;
return executeQuery('member.updateScrapFolder', $args);
}
/**
* Delete a scrap folder
*
* @return void|Object (void : success, Object : fail)
*/
function procMemberDeleteScrapFolder()
{
// Check login information
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
// Get folder_srl to delete
$folder_srl = intval(Context::get('folder_srl'));
if(!$folder_srl)
{
return new Object(-1, 'msg_invalid_request');
}
// Check that the folder exists and belongs to member
$args = new stdClass;
$args->member_srl = $logged_info->member_srl;
$args->folder_srl = $folder_srl;
$output = executeQueryArray('member.getScrapFolderList', $args);
if(!count($output->data))
{
return new Object(-1, 'msg_invalid_request');
}
// Check that the folder is empty
$args = new stdClass;
$args->member_srl = $logged_info->member_srl;
$args->folder_srl = $folder_srl;
$output = executeQueryArray('member.getScrapDocumentList', $args);
if(count($output->data))
{
return new Object(-1, 'msg_folder_not_empty');
}
// Delete folder
$args = new stdClass;
$args->folder_srl = $folder_srl;
return executeQuery('member.deleteScrapFolder', $args);
}
/**
* Save posts
* @deprecated - instead Document Controller - procDocumentTempSave method use