Dashboard stats UI added.

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12352 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ChanMyeong 2012-12-07 08:12:56 +00:00
parent f4cfe6bb21
commit 986bd5c6c6
4 changed files with 101 additions and 111 deletions

View file

@ -1520,4 +1520,12 @@
<value xml:lang="ko"><![CDATA[새 버전을 사용할 수 있습니다]]></value>
<value xml:lang="en"><![CDATA[Available new versions]]></value>
</item>
<item name="uv">
<value xml:lang="ko"><![CDATA[순 방문자]]></value>
<value xml:lang="en"><![CDATA[Unique Visitors]]></value>
</item>
<item name="pv">
<value xml:lang="ko"><![CDATA[페이지 뷰]]></value>
<value xml:lang="en"><![CDATA[Page Views]]></value>
</item>
</lang>

View file

@ -178,7 +178,7 @@ body>.x,
/* Image Sprite */
.x a[target="_blank"]:after,
.x>.body>.gnb>ul>li>a>i,
.x .dashboard>section>h2:before{background-image:url(../../../../common/img/glyphicons-halflings.png);background-repeat:no-repeat}
.x .dashboard>div>section>h2:before{background-image:url(../../../../common/img/glyphicons-halflings.png);background-repeat:no-repeat}
.x>.body>.gnb>ul>li.open>a>i,
.x>.body>.gnb>ul>li.active>a>i{background-image:url(../../../../common/img/glyphicons-halflings-white.png);background-repeat:no-repeat}
@media all and (max-width:980px){
@ -334,27 +334,30 @@ body>.x,
/* Dashboard */
.x .dashboard{zoom:1}
.x .dashboard:after{content:"";display:block;clear:both}
.x .dashboard>section{position:relative;border:1px solid #ddd;border-radius:4px;margin:0 0 25px 0;overflow:hidden}
.x .dashboard>section:nth-child(odd){float:left;width:49%}
.x .dashboard>section:nth-child(even){float:right;width:49%}
.x .dashboard>section>h2{font-size:14px;margin:0;padding:6px 15px;border-bottom:1px solid #ddd;background:#e8e8e8;background:-webkit-gradient(linear,left top,left bottom,from(#F1F1F1),to(#E8E8E8));background:-moz-linear-gradient(top,#F1F1F1,#E8E8E8);background:-o-linear-gradient(top,#F1F1F1,#E8E8E8);text-shadow:0 1px 0 #fff}
.x .dashboard>section>h2:before{content:"";display:inline-block;width:14px;height:14px;margin:0 4px 0 0;vertical-align:middle;opacity:.5;filter:alpha(opacity=50)}
.x .dashboard>.status>h2:before{background-position:-264px -24px}
.x .dashboard>.document>h2:before{background-position:-264px -48px}
.x .dashboard>.reply>h2:before{background-position:-240px -120px}
.x .dashboard>.trackback>h2:before{background-position:-216px -120px}
.x .dashboard>section>.more{position:absolute;top:7px;right:15px;text-shadow:0 1px 0 #fff}
.x .dashboard>section>.more i{font:12px Tahoma, Geneva, sans-serif}
.x .dashboard>section ul{list-style:none;margin:10px;padding:0;height:140px;overflow:hidden;zoom:1}
.x .dashboard>section li{position:relative;height:28px;line-height:28px;padding:0 70px 0 5px;white-space:nowrap;overflow:hidden;zoom:1;vertical-align:top}
.x .dashboard>section li.hover{background:#f4f4f4;border-radius:4px}
.x .dashboard>section li>a{display:block;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.x .dashboard>section li>.side{position:absolute;top:0;right:5px;line-height:28px;width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;zoom:1}
.x .dashboard>section li>.action{display:none;position:absolute;top:0;right:5px;margin:0;padding:0 0 0 10px;text-align:right;white-space:nowrap;line-height:28px;background:#f4f4f4}
.x .dashboard>section li>.action>button{margin:0 0 0 4px;padding:0;overflow:visible}
.x .dashboard>div{float:right;width:49%}
.x .dashboard>div:first-child{float:left}
.x .dashboard>div>section{position:relative;height:196px;border:1px solid #ddd;border-radius:4px;margin:0 0 25px 0;overflow:hidden}
.x .dashboard>div>section>h2{font-size:14px;margin:0;padding:6px 15px;border-bottom:1px solid #ddd;background:#e8e8e8;background:-webkit-gradient(linear,left top,left bottom,from(#F1F1F1),to(#E8E8E8));background:-moz-linear-gradient(top,#F1F1F1,#E8E8E8);background:-o-linear-gradient(top,#F1F1F1,#E8E8E8);text-shadow:0 1px 0 #fff}
.x .dashboard>div>section>h2:before{content:"";display:inline-block;width:14px;height:14px;margin:0 4px 0 0;vertical-align:middle;opacity:.5;filter:alpha(opacity=50)}
.x .dashboard>div>.status>h2:before{background-position:-408px 0}
.x .dashboard>div>.status dl{color:#767676;display:inline-block;*display:inline;zoom:1;margin:0 8px 0 0;padding:1px 8px 0;font:11px/1 , Dotum, Arial, Helvetica, sans-serif;background:#fff;box-shadow:0 0 3px #999 inset;border-radius:3px;min-width:60px;text-align:center}
.x .dashboard>div>.status dt{display:inline;font-weight:normal}
.x .dashboard>div>.status dd{display:inline;margin:0}
.x .dashboard>div>.status dl a{color:#767676}
.x .dashboard>div>.document>h2:before{background-position:-264px -48px}
.x .dashboard>div>.reply>h2:before{background-position:-240px -120px}
.x .dashboard>div>.trackback>h2:before{background-position:-216px -120px}
.x .dashboard>div>section>.more{position:absolute;top:7px;right:15px;text-shadow:0 1px 0 #fff}
.x .dashboard>div>section>.more i{font:12px Tahoma, Geneva, sans-serif}
.x .dashboard>div>section ul{list-style:none;margin:10px;padding:0;overflow:hidden;zoom:1}
.x .dashboard>div>section li{position:relative;height:28px;line-height:28px;padding:0 70px 0 5px;white-space:nowrap;overflow:hidden;zoom:1;vertical-align:top}
.x .dashboard>div>section li.hover{background:#f4f4f4;border-radius:4px}
.x .dashboard>div>section li>a{display:block;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.x .dashboard>div>section li>.side{position:absolute;top:0;right:5px;line-height:28px;width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;zoom:1}
.x .dashboard>div>section li>.action{display:none;position:absolute;top:0;right:5px;margin:0;padding:0 0 0 10px;text-align:right;white-space:nowrap;line-height:28px;background:#f4f4f4}
.x .dashboard>div>section li>.action>button{margin:0 0 0 4px;padding:0;overflow:visible}
@media all and (max-width:980px){
.x .dashboard>section:nth-child(odd),
.x .dashboard>section:nth-child(even){float:none;width:auto}
.x .dashboard>div{float:none !important;width:auto}
}
.x .g11n>.x_add-on{font-size:0;position:relative;cursor:pointer;text-decoration:none;*color:#eee}
.x .g11n>.x_add-on>i{position:absolute;top:50%;left:50%;margin:-7px 0 0 -7px;z-index:1;opacity:.25;filter:alpha(opacity=25)}

File diff suppressed because one or more lines are too long

View file

@ -36,101 +36,80 @@
</ul>
</div>
<div class="dashboard">
<section class="status">
<h2>{$lang->current_state}</h2>
<ul>
<li>
<a href="{getUrl('', 'module', 'admin', 'act', 'dispMemberAdminList')}">{$lang->menu_gnb['user']}</a>
<span class="side">{number_format($status->member->totalCount)}(<!--@if($status->member->todayCount > 0)-->+<!--@end-->{number_format($status->member->todayCount)})</span>
</li>
<li>
<a href="{getUrl('', 'module', 'admin', 'act', 'dispDocumentAdminList')}">{$lang->menu_gnb_sub['document']}</a>
<span class="side">{number_format($status->document->totalCount)}(<!--@if($status->document->todayCount > 0)-->+<!--@end-->{number_format($status->document->todayCount)})</span>
</li>
<li>
<a href="{getUrl('', 'module', 'admin', 'act', 'dispCommentAdminList')}">{$lang->menu_gnb_sub['comment']}</a>
<span class="side">{number_format($status->comment->totalCount)}(<!--@if($status->comment->todayCount > 0)-->+<!--@end-->{$status->comment->todayCount})</span>
</li>
<li>
<a href="{getUrl('', 'module', 'admin', 'act', 'dispTrackbackAdminList')}">{$lang->menu_gnb_sub['trackback']}</a>
<span class="side">{number_format($status->trackback->totalCount)}(<!--@if($status->trackback->todayCount > 0)-->+<!--@end-->{$status->trackback->todayCount})</span>
</li>
<li>
<a href="{getUrl('', 'module', 'admin', 'act', 'dispFileAdminList')}">{$lang->menu_gnb_sub['file']}</a>
<span class="side">{number_format($status->file->totalCount)}(<!--@if($status->file->todayCount > 0)-->+<!--@end-->{number_format($status->file->todayCount)})</span>
</li>
</ul>
</section>
<section class="document">
<h2>{$lang->latest_documents}</h2>
<ul>
<!--@foreach($latestDocumentList AS $key=>$value)-->
{@$document = $value->variables}
<li>
<a href="{getUrl('', 'document_srl', $document['document_srl'])}" target="_blank"><!--@if(trim($value->getTitle()))-->{$value->getTitle()}<!--@else--><strong>{$lang->no_title_document}</strong><!--@end--></a>
<span class="side">{$document['nick_name']}</span>
<form class="action">
<input type="hidden" name="module" value="admin" />
<input type="hidden" name="act" value="procDocumentManageCheckedDocument" />
<input type="hidden" name="cart[]" value="{$document['document_srl']}" />
<input type="hidden" name="success_return_url" value="{getUrl('', 'module', 'admin')}" />
<button type="submit" name="type" value="trash" class="text">{$lang->cmd_trash}</button>
<button type="submit" name="type" value="delete" class="text">{$lang->cmd_delete}</button>
</form>
</li>
<!--@end-->
<li cond="!is_array($latestDocumentList) || count($latestDocumentList) < 1">{$lang->no_data}</li>
</ul>
<p class="more"><a href="{getUrl('', 'module', 'admin', 'act', 'dispDocumentAdminList')}"><i>&rsaquo;</i> {$lang->more}</a></p>
</section>
<section class="reply">
<h2>{$lang->latest_comments}</h2>
<ul>
<!--@foreach($latestCommentList AS $key=>$value)-->
<li>
<a href="{getUrl('', 'document_srl', $value->document_srl)}#comment_{$value->comment_srl}" target="_blank"><!--@if(trim($value->content))-->{$value->getSummary()}<!--@else--><strong>{$lang->no_text_comment}</strong><!--@end--></a>
<span class="side">{$value->nick_name}</span>
<form class="action">
<input type="hidden" name="module" value="admin" />
<input type="hidden" name="act" value="procCommentAdminDeleteChecked" />
<input type="hidden" name="cart[]" value="{$value->comment_srl}" />
<input type="hidden" name="success_return_url" value="{getUrl('', 'module', 'admin')}" />
<button type="submit" name="is_trash" value="true" class="text">{$lang->cmd_trash}</button>
<button type="submit" name="is_trash" value="false" class="text">{$lang->cmd_delete}</button>
</form>
</li>
<!--@end-->
<li cond="!is_array($latestCommentList) || count($latestCommentList) < 1">{$lang->no_data}</li>
</ul>
<p class="more"><a href="{getUrl('', 'module', 'admin', 'act', 'dispCommentAdminList')}"><i>&rsaquo;</i> {$lang->more}</a></p>
</section>
<section class="trackback">
<h2>{$lang->latest_trackbacks}</h2>
<ul>
<!--@foreach($latestTrackbackList AS $key=>$value)-->
<li>
<a href="{$value->url}" target="_blank">{$value->title}</a>
<span class="side">{$value->blog_name}</span>
<form class="action">
<input type="hidden" name="module" value="admin" />
<input type="hidden" name="act" value="procTrackbackAdminDeleteChecked" />
<input type="hidden" name="cart[]" value="{$value->trackback_srl}" />
<input type="hidden" name="success_return_url" value="{getUrl('', 'module', 'admin')}" />
<button type="submit" class="text">{$lang->cmd_delete}</button>
</form>
</li>
<!--@end-->
<li cond="!is_array($latestTrackbackList) || count($latestTrackbackList) < 1">{$lang->no_data}</li>
</ul>
<p class="more"><a href="{getUrl('', 'module', 'admin', 'act', 'dispTrackbackAdminList')}"><i>&rsaquo;</i> {$lang->more}</a></p>
</section>
<div>
<section class="status">
<h2>{$lang->uv}</h2>
<div style="margin:10px 15px">&lt;!-- Graph here --&gt;</div>
<div class="more">
<dl>
<dt>{$lang->menu_gnb['user']}:</dt><dd><a href="{getUrl('', 'module', 'admin', 'act', 'dispMemberAdminList')}">{number_format($status->member->totalCount)}(<!--@if($status->member->todayCount > 0)-->+<!--@end-->{number_format($status->member->todayCount)})</a></dd>
</dl>
<a href="{getUrl('', 'module', 'admin', 'act', 'dispCounterAdminIndex')}"><i>&rsaquo;</i> {$lang->details}</a>
</div>
</section>
<section class="status">
<h2>{$lang->pv}</h2>
<div style="margin:10px 15px">&lt;!-- Graph here --&gt;</div>
<div class="more">
<dl>
<dt>{$lang->menu_gnb_sub['document']}:</dt><dd><a href="{getUrl('', 'module', 'admin', 'act', 'dispDocumentAdminList')}">{number_format($status->document->totalCount)}(<!--@if($status->document->todayCount > 0)-->+<!--@end-->{number_format($status->document->todayCount)})</a></dd>
</dl>
<a href="{getUrl('', 'module', 'admin', 'act', 'dispCounterAdminIndex')}"><i>&rsaquo;</i> {$lang->details}</a>
</div>
</section>
</div>
<div>
<section class="document">
<h2>{$lang->latest_documents}</h2>
<ul>
<!--@foreach($latestDocumentList AS $key=>$value)-->
{@$document = $value->variables}
<li>
<a href="{getUrl('', 'document_srl', $document['document_srl'])}" target="_blank"><!--@if(trim($value->getTitle()))-->{$value->getTitle()}<!--@else--><strong>{$lang->no_title_document}</strong><!--@end--></a>
<span class="side">{$document['nick_name']}</span>
<form class="action">
<input type="hidden" name="module" value="admin" />
<input type="hidden" name="act" value="procDocumentManageCheckedDocument" />
<input type="hidden" name="cart[]" value="{$document['document_srl']}" />
<input type="hidden" name="success_return_url" value="{getUrl('', 'module', 'admin')}" />
<button type="submit" name="type" value="trash" class="x_icon-trash">{$lang->cmd_trash}</button>
<button type="submit" name="type" value="delete" class="x_icon-remove">{$lang->cmd_delete}</button>
</form>
</li>
<!--@end-->
<li cond="!is_array($latestDocumentList) || count($latestDocumentList) < 1">{$lang->no_data}</li>
</ul>
<p class="more"><a href="{getUrl('', 'module', 'admin', 'act', 'dispDocumentAdminList')}"><i>&rsaquo;</i> {$lang->more}</a></p>
</section>
<section class="reply">
<h2>{$lang->latest_comments}</h2>
<ul>
<!--@foreach($latestCommentList AS $key=>$value)-->
<li>
<a href="{getUrl('', 'document_srl', $value->document_srl)}#comment_{$value->comment_srl}" target="_blank"><!--@if(trim($value->content))-->{$value->getSummary()}<!--@else--><strong>{$lang->no_text_comment}</strong><!--@end--></a>
<span class="side">{$value->nick_name}</span>
<form class="action">
<input type="hidden" name="module" value="admin" />
<input type="hidden" name="act" value="procCommentAdminDeleteChecked" />
<input type="hidden" name="cart[]" value="{$value->comment_srl}" />
<input type="hidden" name="success_return_url" value="{getUrl('', 'module', 'admin')}" />
<button type="submit" name="is_trash" value="true" class="x_icon-trash">{$lang->cmd_trash}</button>
<button type="submit" name="is_trash" value="false" class="x_icon-remove">{$lang->cmd_delete}</button>
</form>
</li>
<!--@end-->
<li cond="!is_array($latestCommentList) || count($latestCommentList) < 1">{$lang->no_data}</li>
</ul>
<p class="more"><a href="{getUrl('', 'module', 'admin', 'act', 'dispCommentAdminList')}"><i>&rsaquo;</i> {$lang->more}</a></p>
</section>
</div>
</div>
</div>
<include target="./_footer.html" />
<script>
jQuery(function($){
// Dashboard portlet UI
$('.dashboard>section>ul>li')
$('.dashboard>div>section>ul>li')
.bind('mouseenter focusin', function(){
$(this).addClass('hover').find('>.action').show();
})