planet todo 수정

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@4753 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ngleader 2008-11-04 09:34:43 +00:00
parent 712a2619ad
commit 74fce0419f
2 changed files with 222 additions and 0 deletions

View file

@ -0,0 +1,28 @@
<?php
if(!defined("__ZBXE__")) exit();
/**
* @file planet_todo.addon.php
* @author SOL군 (sol@ngleader.com)
* @brief
**/
if($called_position == 'after_module_proc' && Context::getResponseMethod()!="XMLRPC" && Context::getResponseMethod()!="JSON") {
$config = Context::get('config');
//getTagSearchResultCount
if($config->mid == 'planet'){
$oPlanet = Context::get('planet');
if($oPlanet->isMyPlanet()){
$oPlanetModel = &getModel('planet');
$countTodo = $oPlanetModel->getTagSearchResultCount($this->module_srl,'todo');
$countDone = $oPlanetModel->getTagSearchResultCount($this->module_srl,'done');
Context::addHtmlHeader("<script type=\"text/javascript\">//<![CDATA[\nvar planet_todo_count={todo:".$countTodo.",done:".$countDone."};\n//]]></script>");
Context::addJsFile('./addons/planet_todo/planet_todo.js');
}
}
}
?>

View file

@ -0,0 +1,194 @@
function planetTab(){
if($('planet_tab')) $('planet_tab').innerHTML += '<ul id="planetex_Tab" class="exTab"><li><a id="aa" href="#" onclick="planet_showTodoList(this); return false;">ToDo<sup><span id="planet_todo_count">'+ planet_todo_count.todo + '</span>/<span id="planet_done_count">' + planet_todo_count.done + '</span></sup></a></li>';
}
xAddEventListener(window,'load',planetTab);
function planetTabOff(){
$Element('planetex_Tab').leave();
}
function planet_showTodoList(o){
$ElementList('#planetex_Tab li').removeClass('active');
$Element(o).parent().addClass('active');
$ElementList('#planet_myTab li').removeClass('active');
planet_reload_todo();
}
function planet_reload_todo(){
$('commentList').innerHTML = '<h3>todo</h3><div id="todoList"></div>\n<div id="todoList_page"></div>\n<h3>done</h3>\n<div id="doneList"></div>\n<div id="doneList_page"></div>\n';
planet_getTodo();
planet_getDone();
}
function planet_getTodo(page){
$('todoList').innerHTML ='';
_getPlanetTagSeachResult('todo',page,result_planet_getTodo);
}
function planet_getDone(page){
$('doneList').innerHTML ='';
_getPlanetTagSeachResult('done',page,result_planet_getDone);
}
function _getPlanetTagSeachResult(tag,page,func){
var response_tags = new Array('error','message','contentList','pageNavigation');
exec_xml('planet','dispPlanetContentTagSearch',{keyword:tag,page:page},func,response_tags);
}
function result_planet_getTodo(ret_obj,response_tags, params, fo_obj) {
if(ret_obj['error'] == 0 && ret_obj.contentList){
var o = new Array();
var it = new Array();
var items = ret_obj['contentList']['item'];
if(typeof(items[0]) == 'undefined'){
it[0] = items;
}else{
it = items;
}
o.push('<ul>');
for(var i=0,c=it.length;i<c;i++){
it[i]['regdate'] += '';
it[i]['regdate'] = it[i]['regdate'].substr(0,4) + '/' + it[i]['regdate'].substr(4,2) + '/' + it[i]['regdate'].substr(6,2);
var tag = $A();
if(typeof(it[i]['tag_list']['item'])=='string'){
tag.push(it[i]['tag_list']['item']);
}else{
tag = $A(it[i]['tag_list']['item']);
}
tag = tag.refuse('todo');
tag.push('done');
tag = tag.$value().join(',');
o.push('<li><input type="checkbox" id="document_srl:'+it[i]['document_srl']+'" value="'+tag+'" onclick="planet_todo_setDone(this)"/>');
o.push('<em>');
o.push(it[i]['content']);
o.push('</em><span>');
o.push(it[i]['regdate']);
o.push('</span>');
o.push("</li>\n");
}
o.push('</ul>');
$('todoList').innerHTML = o.join('');
var pageNavigation = ret_obj['pageNavigation'];
$('planet_todo_count').innerHTML = pageNavigation.total_count;
var str = "";
for(var i=pageNavigation.first_page;i<=pageNavigation.page_count;i++){
str += "|";
if(i== pageNavigation.cur_page){
str += "<strong>"+i+"</strong>";
}else{
str += '<a href="#" onclick="planet_getTodo('+i+');return false;">'+ i +'</a>';
}
}
$('todoList_page').innerHTML = str + '|';
}
}
function result_planet_getDone(ret_obj,response_tags, params, fo_obj) {
if(ret_obj['error'] == 0 && ret_obj.contentList){
var o = new Array();
var it = new Array();
var items = ret_obj['contentList']['item'];
if(typeof(items[0]) == 'undefined'){
it[0] = items;
}else{
it = items;
}
o.push('<ul>');
for(var i=0,c=it.length;i<c;i++){
it[i]['regdate'] += '';
it[i]['regdate'] = it[i]['regdate'].substr(0,4) + '/' + it[i]['regdate'].substr(4,2) + '/' + it[i]['regdate'].substr(6,2);
var tag = $A();
if(typeof(it[i]['tag_list']['item'])=='string'){
tag.push(it[i]['tag_list']['item']);
}else{
tag = $A(it[i]['tag_list']['item']);
}
tag = tag.refuse('done');
tag.push('todo');
tag = tag.$value().join(',');
o.push('<li><input type="checkbox" id="document_srl:'+it[i]['document_srl']+'" value="'+tag+'" onclick="planet_todo_setDone(this)" checked="checked=" />');
o.push('<em>');
o.push(it[i]['content']);
o.push('</em><button type="button" onclick="planet_todo_setDel('+it[i]['document_srl']+')">삭제</button>');
o.push("</li>\n");
}
o.push('</ul>');
$('doneList').innerHTML = o.join('');
var pageNavigation = ret_obj['pageNavigation'];
$('planet_done_count').innerHTML = pageNavigation.total_count;
var str = "";
for(var i=pageNavigation.first_page;i<=pageNavigation.page_count;i++){
str += "|";
if(i== pageNavigation.cur_page){
str += "<strong>"+i+"</strong>";
}else{
str += '<a href="#" onclick="planet_getDone('+i+');return false;">'+ i +'</a>';
}
}
$('doneList_page').innerHTML = str + '|';
}
}
function planet_todo_setDone(o){
var document_srl = o.id.replace(/.*:/,'');
var tag = o.value;
var params = {};
params['document_srl'] = document_srl;
params['planet_content_tag'] = tag;
exec_xml('planet','procPlanetContentTagModify',params,planet_reload_todo);
return false;
}
function planet_todo_setDel(document_srl){
var tag = $A($('document_srl:'+document_srl).value.split(','));
tag = tag.refuse('todo');
tag.push('hide');
tag = tag.$value().join(',');
var params = {};
params['document_srl'] = document_srl;
params['planet_content_tag'] = tag;
exec_xml('planet','procPlanetContentTagModify',params,planet_reload_todo);
return false;
}
function showWritePostTodo(tag){
tag = tag||'todo';
$Element($('writePostForm').about_tag).hide();
$Element($('writePostForm').content_tag).show();
$('writePostForm').content_tag.value = tag;
showWritePost();
}