id = $pid;
$prj->setProject();
$common = new AJTODO_Common();
$common->loadCommon();
$user = wp_get_current_user();
$ajtodo_auto_done_hidden = get_option('ajtodo_auto_done_hidden', "Y");
$ajtodo_del_noconfirm = get_option('ajtodo_del_noconfirm', "Y");
$ajtodo_direct_done = get_option('ajtodo_direct_done', "N");
$ajtodo_direct_inprogress_status_id = get_option('ajtodo_direct_inprogress_status_id', "2");
$ajtodo_noti_delay = get_option('ajtodo_noti_delay', "2000");
$ajtodo_set_showtodokey = get_option('ajtodo_set_showtodokey', "Y");
wp_enqueue_script('ajtodo_todo_js', AJTODO_JS_PATH."ajtodo_todo_team.".AJTODO_JSMIN."js", array('jquery'), '1.0', true );
wp_localize_script('ajtodo_todo_js', 'ajax_todo_info', array(
'ajax_url' => admin_url('admin-ajax.php'),
'nonce' => wp_create_nonce('ajtodo-ajax-nonce'),
'type' => "get_todolist",
'locale' => get_locale(),
'isshortcode' => "Y",
'uid' => $uid,
'user_filter' => "AR",
'planid' => $startPlanId ? $startPlanId : "",
'freeze' => "Y",
'status_filter' => $ajtodo_start_status_filter,
'auto_done_hidden' => $ajtodo_auto_done_hidden,
'del_noconfirm' => $ajtodo_del_noconfirm,
'direct_done' => $ajtodo_direct_done,
'set_show_todokey' => $ajtodo_set_showtodokey,
'inprogress_status_id' => $ajtodo_direct_inprogress_status_id,
'noti_delay' => $ajtodo_noti_delay,
'statuses' => json_encode($prj->statuses),
'planperms' => json_encode($prj->planperms),
'todoperms' => json_encode($prj->todoperms),
'todotypes' => json_encode($prj->todotype),
'category' => json_encode($prj->category),
'members' => json_encode(AJTODO_User::getUsers($prj)),
'filter_project' => $pid
));
//include(AJTODO_PLUGIN_PATH . "inc/ajtodo_js.php");
$todolist = new AJTODO_ProjectTodoList();
$todolist->init($common);
$todolist->uid = $uid;
$todo = new AJTODO_Todo();
$todo->init($common);
$ret = $todolist->js_templates;
$ret .= "
";
//$ret .= $todolist->getUserProgressView();
$ret .= $todolist->getView();
$ret .= "
";
return $ret;
}
function ajtodo_admin_todo(){
$common = new AJTODO_Common();
$common->loadCommon();
$common->start("container");
$user = wp_get_current_user();
$filter_pid = isset($_GET['pid']) ? sanitize_text_field($_GET['pid']) : "";
$prj = new AJTODO_Project();
$prj->id = $filter_pid;
$prj->setProject();
$ajtodo_start_user_filter = get_option('ajtodo_start_user_filter', "AR");
$ajtodo_start_status_filter = get_option('ajtodo_start_status_filter', "O");
$ajtodo_auto_done_hidden = get_option('ajtodo_auto_done_hidden', "Y");
$ajtodo_del_noconfirm = get_option('ajtodo_del_noconfirm', "Y");
$ajtodo_direct_done = get_option('ajtodo_direct_done', "N");
$ajtodo_direct_inprogress_status_id = get_option('ajtodo_direct_inprogress_status_id', "2");
$ajtodo_noti_delay = get_option('ajtodo_noti_delay', "2000");
$ajtodo_done_click = get_option('ajtodo_done_click', 1);
wp_enqueue_script('ajtodo_todo_js', AJTODO_JS_PATH."ajtodo_todo.".AJTODO_JSMIN."js", array('jquery'), '1.0', true );
wp_localize_script('ajtodo_todo_js', 'ajax_todo_info', array(
'ajax_url' => admin_url('admin-ajax.php'),
'nonce' => wp_create_nonce('ajtodo-ajax-nonce'),
'type' => "get_todolist",
'freeze' => $prj->donedate ? "Y" : "",
'siteurl' => get_site_url(),
'locale' => get_locale(),
'userid' => $user->ID,
'hello_title' => $user->user_nicename."! ".__("안녕하세요!","ajtodo"),
'hello_msg' => __("할일들을 체계적으로 관리해보세요~
먼저 해야할 일들을 등록해보세요.","ajtodo"),
'uid' => "",
'user_filter' => $ajtodo_start_user_filter,
'done_click' => $ajtodo_done_click,
'status_filter' => $ajtodo_start_status_filter,
'auto_done_hidden' => $ajtodo_auto_done_hidden,
'del_noconfirm' => $ajtodo_del_noconfirm,
'direct_done' => $ajtodo_direct_done,
'inprogress_status_id' => $ajtodo_direct_inprogress_status_id,
'noti_delay' => $ajtodo_noti_delay,
'filter_project' => $filter_pid
));
echo "".__("할일", "ajtodo")."
";
echo "
".__("Shortcode","ajtodo")."
";
echo "
";
echo "
";
$todolist = new AJTODO_TodoList();
$todolist->init($common);
$todo = new AJTODO_Todo();
$todo->init($common);
if(!$prj->donedate){
echo $todo->getView("CreateTodo");
}
if(!isset($_COOKIE["hidehello"])) {
echo $todo->getView("Hello");
}
echo $todolist->getFilter();
echo $todolist->getUserProgressView();
echo $todolist->getView();
$common->last();
}
function ajtodo_ajax_gettodolist(){
$todo = new AJTODO_TodoList();
$todo->uid = isset($_POST['uid']) ? sanitize_text_field($_POST['uid']) : "";
$todo->filter_project = isset($_POST['filter_project']) ? sanitize_text_field($_POST['filter_project']) : "";
$todo->filter_user = isset($_POST['filter_user']) ? sanitize_text_field($_POST['filter_user']) : "";
$todo->filter_status = isset($_POST['filter_status']) ? sanitize_text_field($_POST['filter_status']) : "";
$todo->search = isset($_POST['search']) ? sanitize_text_field($_POST['search']) : "";
$ret = $todo->getList();
if(!$ret["result"]){
$ret["msg"] = __("할일 목록을 가져오는데 문제가 발생했습니다.","ajtodo");
}
wp_send_json(json_encode($ret));
}
function ajtodo_ajax_gettodo(){
$todo = new AJTODO_Todo();
$todo->id = sanitize_text_field($_POST['todo_id']);
$todo->projectid = sanitize_text_field($_POST['pid']);
//$prj->comment = sanitize_text_field($_POST['comment']);
//$prj->projecttype = sanitize_text_field($_POST['projecttype']);
if($todo->getTodoInfo()){
$ret["result"] = true;
$ret["msg"] = $todo->msg;
$ret["data"] = $todo->tData;
}else{
$ret["result"] = false;
$ret["msg"] = $todo->msg;
}
wp_send_json(json_encode($ret));
}
function ajtodo_ajax_createtodo(){
$common = new AJTODO_Common();
$common->loadCommon();
$todo = new AJTODO_Todo();
$todo->init($common);
$todo->title = sanitize_text_field($_POST['title']);
$todo->projectid = sanitize_text_field($_POST['projectid']);
$todo->project_filter = sanitize_text_field($_POST['project_filter']);
$todo->comment = "";
if($todo->createTodo()){
$ret["result"] = true;
$ret["msg"] = $todo->msg;
$ret["todoid"] = $todo->id;
}else{
$ret["result"] = false;
$ret["msg"] = $todo->msg;
}
wp_send_json(json_encode($ret));
}
function ajtodo_ajax_updatestatus(){
$common = new AJTODO_Common();
$common->loadCommon();
$todo = new AJTODO_Todo();
$todo->init($common);
$todo->id = sanitize_text_field($_POST['todo_id']);
$status_id = sanitize_text_field($_POST['status_id']);
if($todo->updateStatus($status_id)){
$ret["result"] = true;
$ret["msg"] = $todo->msg;
$ret["todoid"] = $todo->id;
}else{
$ret["result"] = false;
$ret["msg"] = $todo->msg;
}
wp_send_json(json_encode($ret));
}
function ajtodo_ajax_update(){
$common = new AJTODO_Common();
$common->loadCommon();
$todo = new AJTODO_Todo();
$todo->init($common);
$todo->id = sanitize_text_field($_POST['todo_id']);
$todo->projectid = sanitize_text_field($_POST['pid']);
$col = isset($_POST['col']) ? sanitize_text_field($_POST['col']) : "";
if($col == "comment"){
$val = isset($_POST['val']) ? wp_kses_post($_POST['val']) : "";
}else{
$val = isset($_POST['val']) ? sanitize_text_field($_POST['val']) : "";
}
$colval = isset($_POST['colval']) ? sanitize_text_field($_POST['colval']) : "";
if($todo->updateTodo($col, $val, $colval)){
$ret["result"] = true;
$ret["msg"] = $todo->msg;
$ret["todoid"] = $todo->id;
}else{
$ret["result"] = false;
$ret["msg"] = $todo->msg;
}
wp_send_json(json_encode($ret));
}
function ajtodo_ajax_deltodo(){
$common = new AJTODO_Common();
$common->loadCommon();
$todo = new AJTODO_Todo();
$todo->init($common);
$todo->id = sanitize_text_field($_POST['todo_id']);
$todo->projectid = sanitize_text_field($_POST['pid']);
if($todo->delTodo()){
$ret["result"] = true;
$ret["msg"] = $todo->msg;
$ret["todoid"] = $todo->id;
}else{
$ret["result"] = false;
$ret["msg"] = $todo->msg;
}
wp_send_json(json_encode($ret));
}
function ajtodo_ajax_getprogress(){
$common = new AJTODO_Common();
$common->loadCommon();
$todolist = new AJTODO_TodoList();
$todolist->init($common);
$todolist->uid = isset($_POST['uid']) ? sanitize_text_field($_POST['uid']) : "";
$todolist->planid = ajtodo_post("planid","");
$todolist->filter_project = isset($_POST['filter_project']) ? sanitize_text_field($_POST['filter_project']) : "";
$ret = $todolist->getUserProgress();
$ret["result"] = true;
wp_send_json(json_encode($ret));
}
function ajtodo_ajax_getprojects(){
$common = new AJTODO_Common();
$common->loadCommon();
$prjList = new AJTODO_ProjectList();
$prjList->getList(true);
$ret["result"] = true;
$ret["projects"] = $prjList->plist;
wp_send_json(json_encode($ret));
}
function ajtodo_ajax_setcookie(){
$key = sanitize_text_field($_POST['key']);
$val = sanitize_text_field($_POST['val']);
$expiry = strtotime('+1 day');
setcookie($key, $val, $expiry, COOKIEPATH, COOKIE_DOMAIN);
$ret["result"] = true;
wp_die();
}
function ajtodo_ajax_getdoc(){
$pdoc = new AJTODO_ProjectLink();
$data = $pdoc->getDocs($_POST['pid'], "", $_POST['todo_id']);
$ret["result"] = true;
$ret["docs"] = $data;
wp_send_json(json_encode($ret));
}
function ajtodo_todo_ajax(){
$ret = array();
$nonce = sanitize_text_field($_POST['nonce']);
if(!wp_verify_nonce($nonce, 'ajtodo-ajax-nonce')){
$ret["result"] = false;
$ret["msg"] = __("비정상적인 접근입니다.","ajtodo");
}
switch($_POST["type"]){
case "gettodolist" :
ajtodo_ajax_gettodolist();
break;
case "createtodo" :
ajtodo_ajax_createtodo();
break;
case "getsingletodo" :
ajtodo_ajax_gettodo();
break;
case "updatetodo" :
ajtodo_ajax_update();
break;
case "updatestatus" :
ajtodo_ajax_updatestatus();
break;
case "deltodo" :
ajtodo_ajax_deltodo();
break;
case "getdocs" :
ajtodo_ajax_getdoc();
break;
case "getprogress" :
ajtodo_ajax_getprogress();
break;
case "getprojects" :
ajtodo_ajax_getprojects();
break;
case "setcookie" :
ajtodo_ajax_setcookie();
break;
}
}