mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-06 18:21:39 +09:00
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:
parent
f4cfe6bb21
commit
986bd5c6c6
4 changed files with 101 additions and 111 deletions
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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)}
|
||||
|
|
|
|||
2
modules/admin/tpl/css/admin.min.css
vendored
2
modules/admin/tpl/css/admin.min.css
vendored
File diff suppressed because one or more lines are too long
|
|
@ -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>›</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>›</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>›</i> {$lang->more}</a></p>
|
||||
</section>
|
||||
<div>
|
||||
<section class="status">
|
||||
<h2>{$lang->uv}</h2>
|
||||
<div style="margin:10px 15px"><!-- Graph here --></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>›</i> {$lang->details}</a>
|
||||
</div>
|
||||
</section>
|
||||
<section class="status">
|
||||
<h2>{$lang->pv}</h2>
|
||||
<div style="margin:10px 15px"><!-- Graph here --></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>›</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>›</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>›</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();
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue