"; $ret .= __("역할은 '프로젝트 멤버' 탭에서 생성할 수 있습니다.","ajtodo"); $ret .= ""; return $ret; } public function categoryListView(){ $ret = ""; $ret .= "
"; $ret .= ""; $ret .= $this->createFormPart( __("할일 카테고리","ajtodo") ); if(!$this->project->donedate){ $ret .="".__('카테고리 추가', 'ajtodo' ).""; } $ret .= "
"; return $ret; } private function getTodoCountByCategory($key){ global $wpdb; return $wpdb->get_var("select count(id) from ".AJTODO_DB_TODO."_".$this->project->id." where categorykey = '".$key."'"); } public function delCategory($key){ global $wpdb; $delindex = -1; for($i = 0; $i < count($this->project->category) ; $i++){ if($this->project->category[$i]["key"] == $key){ $delindex = $i; } } if($delindex != -1){ array_splice($this->project->category, $delindex, 1); } $this->project->updateCols( array( "category" => json_encode($this->project->category, JSON_UNESCAPED_UNICODE)) ); $ret = $wpdb->query("update ".AJTODO_DB_TODO."_".$this->project->id." set categorykey = NULL where categorykey = '".$key."'"); if($ret) do_action('ajtodo_del_category', $this->project->id); return $ret; } public function createFormPart($title){ $ret = ""; $ret .= "
".$title."
"; $ret .= ""; $ret .= ""; $ret .= " "; $ret .= " "; $ret .= " "; $ret .= " "; if(!$this->project->donedate){ $ret .= " "; } $ret .= " "; $ret .= ""; $ret .= ""; if(count($this->project->category) > 0){ foreach($this->project->category as $category){ $ret .= ""; $ret .= " "; $ret .= " "; $ret .= " "; if(!$this->project->donedate){ $ret .= " "; } $ret .= ""; } }else{ $ret .= ""; $ret .= ""; $ret .= ""; } $ret .= ""; $ret .= "
".__("카테고리 이름","ajtodo")."".__("할일 개수","ajtodo")."".__("기본 담당자","ajtodo")."".__("관리","ajtodo")."
".$category["name"]."".$this->getTodoCountByCategory($category["key"]).""; if($category["leader"]){ $ret .= AJTODO_ProjectMember::getUserSmallCard($category["leader"]); }else{ $ret .= "".__("지정 안됨","ajtodo").""; } $ret .= "
"; $ret .= "
"; $ret .= " ".__('수정', 'ajtodo' ).""; $ret .= " ".__('삭제', 'ajtodo' ).""; $ret .= "
".__("카테고리가 없습니다.","ajtodo")."
"; return $ret; } public function getSingleCategory($categorykey){ foreach($this->project->category as $s){ if($s["key"] == $categorykey){ return $s; } } } public function addCategoryView($categorykey){ if($categorykey){ $category = $this->getSingleCategory($categorykey); } $ret = ""; $ret .= "
"; $ret .= ""; $ret .= ""; $ret .= ""; $ret .= wp_nonce_field('ajtodo_nonce','update_roleperm'); $ret .= "
"; $ret .= " "; $ret .= "
"; if($categorykey){ $ret .= ""; $ret .= "".$categorykey.""; }else{ $ret .= ""; $ret .= "

".__("10자 이내의 영문자와 숫자만 가능합니다.","ajtodo")."

"; } $ret .= "
"; $ret .= "
"; $ret .= "
"; $ret .= " "; $ret .= "
"; $ret .= ""; $ret .= "
"; $ret .= "
"; $ret .= "
"; $ret .= " "; $ret .= "
"; $ret .= " "; $ret .= " ".__("이 카테고리에 등록될 경우, 자동으로 담당자에게 할일이 지정됩니다.","ajtodo").""; $ret .= "
"; $ret .= "
"; $ret .=""; $ret .=""; $ret .= "
"; return $ret; } public function addCategory($dotype, $categorykey, $categoryname, $categorycolor, $categoryleader){ if($dotype == "add"){ $has = false; foreach($this->project->category as $r){ if($r["key"] == $categorykey){ $has = true; } } if($has){ $this->msg = __("카테고리 키가 중복됩니다. ","ajtodo"); return false; } $this->project->category[] = array( "key" => $categorykey, "name" => $categoryname, "leader" => $categoryleader, "color" => $categorycolor); }else{ foreach($this->project->category as &$r){ if($r["key"] == $categorykey){ $r["name"] = $categoryname; $r["leader"] = $categoryleader; $r["color"] = $categorycolor; } } } $ret = $this->project->updateCol("category", json_encode($this->project->category, JSON_UNESCAPED_UNICODE)); if($ret){ if($dotype == "add"){ do_action('ajtodo_add_category', $this->project->id, $categorykey, $categoryname); }else{ do_action('ajtodo_modify_category', $this->project->id, $categorykey, $categoryname); } } return $ret; } public function getMembers(){ $ret = array(); foreach($this->project->roles as $role){ $ret = array_unique(array_merge($ret, $role["users"])); } return $ret; } public function delConfirmView($categorykey){ $cate = $this->getSingleCategory($categorykey); $ret = ""; $ret .= "
"; $ret .= ""; $ret .= wp_nonce_field('ajtodo_nonce','update_roleperm'); $ret .= "
".__("카테고리 이름","ajtodo")." : ".$cate["name"]."
".__("이 카테고리를 삭제하시겠습니까?","ajtodo")."
  • ".__("총 할일 개수","ajtodo")." : ".$this->getTodoCountByCategory($categorykey)."
".__("카테고리에 존재하는 할일들은 모두 '카테고리 없음'이 됩니다.","ajtodo")."
".__("카테고리에 포함된 할일이 삭제되는 것은 아닙니다.","ajtodo")."
".__("취소","ajtodo")."
"; $ret .= "
"; return $ret; } }