nodeclub/views/topic/index.html
2013-08-15 13:41:16 +08:00

291 lines
10 KiB
HTML

<div id='sidebar'>
<div class='panel'>
<div class='header'>
<span class='col_fade'>作者</span>
</div>
<div class='inner'>
<%- partial('user/card', { object: topic.author, as: 'user' }) %>
</div>
</div>
<div class='panel'>
<div class='header'>
<span class='col_fade'>作者其它话题</span>
</div>
<div class='inner'>
<% if (locals.author_other_topics && author_other_topics.length > 0) { %>
<ul class='unstyled'>
<%- partial('topic/small', { collection: author_other_topics, as: 'topic' }) %>
</ul>
<% } else { %>
<p></p>
<% } %>
</div>
</div>
<div class='panel'>
<div class='header'>
<span class='col_fade'>无人回复的话题</span>
</div>
<div class='inner'>
<% if (locals.no_reply_topics && no_reply_topics.length > 0) { %>
<ul class='unstyled'>
<%- partial('topic/small', { collection: no_reply_topics, as: 'topic' }) %>
</ul>
<% } else { %>
<p></p>
<% } %>
</div>
</div>
</div>
<div id='content'>
<div class='panel'>
<div class='header'>
<ul class='breadcrumb'>
<li><a href='/'>主页</a><span class='divider'>/</span></li>
<li class='active'>话题详情</li>
</ul>
</div>
<div class='inner topic'>
<h3>
<% if (topic.top) { %>
<span class='put_top'>置顶</span>
<% } %>
<%= topic.title %>
</h3>
<hr>
<div class='topic_content'>
<%- markdown(topic.content) %>
</div>
<hr>
<div class="tags">
<% if (topic.tags.length > 0) { %>
<span class='col_fade'>标签:</span>
<%- partial('tag/tag_in_topic',{ collection: topic.tags, as: 'tag' }) %>
<% } else { %>
<span class='col_fade'>标签:无</span>
<% } %>
</div>
<div class="changes">
<span class='col_fade'>
<a class='dark' href="/user/<%= topic.author.name %>"><%= topic.author.name %></a><%= topic.friendly_create_at %> 发布
</span>
<% if (topic.friendly_create_at != topic.friendly_update_at) { %>
<span class='col_fade'>
<a class='dark' href="/user/<%= topic.author.name %>"><%= topic.author.name %></a><%= topic.friendly_update_at %> 重新编辑
</span>
<% } %>
</div>
<div class="action">
<a class='dark' id='share_weibo_btn'
href="javascript:void((function(s,d,e,r,l,p,t,z,c){var%20f='http://v.t.sina.com.cn/share/share.php?appkey=<%= config.weibo_key %>',u=z||d.location,p=['&url=',e(u),'&title=',e(t||d.title),'&source=',e(r),'&sourceUrl=',e(l),'&content=',c||'gb2312','&pic=',e(p||'')].join('');function%20a(){if(!window.open([f,p].join(''),'mb',['toolbar=0,status=0,resizable=1,width=440,height=430,left=',(s.width-440)/2,',top=',(s.height-430)/2].join('')))u.href=[f,p].join('');};if(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else%20a();})(screen,document,encodeURIComponent,'','','','分享来自<%= config.name %>的话题:<%= topic.title %>','',''));"
>分享到 weibo</a>
<% if (locals.current_user) { %>
<% if (!topic.in_collection) { %>
<button class='btn btn-success' id='collect_btn' action='collect'>加入收藏</button>
<% } else { %>
<button class='btn' id='collect_btn' action='de_collect'>取消收藏</button>
<% } %>
<% } %>
<% if (locals.current_user) { %>
<% if (current_user.is_admin) { %>
<% if (topic.top) { %>
<a href='/topic/<%= topic._id %>/top/0'><img class='user_icon' src='<%- config.site_static_host %>/public/images/star_fav_empty_icon&16.png' title='取消置顶' /></a>
<% } else { %>
<a href='/topic/<%= topic._id %>/top/1'><img class='user_icon' src='<%- config.site_static_host %>/public/images/star_fav_icon&16.png' title='置顶' /></a>
<% } %>
<a href='/topic/<%= topic._id %>/edit'><img class='user_icon' src='<%- config.site_static_host %>/public/images/doc_edit_icon&16.png' title='编辑' /></a>
<a href='javascript:;' data-id="<%= topic._id %>" class='delete_topic_btn'><img class='user_icon' src='<%- config.site_static_host %>/public/images/trash_icon&16.png' title='删除' /></a>
<% } else { %>
<% if (current_user._id == topic.author_id) { %>
<a href='/topic/<%= topic._id %>/edit'><img class='user_icon' src='<%- config.site_static_host %>/public/images/doc_edit_icon&16.png' title='编辑' /></a>
<% } %>
<% } %>
<% } %>
</div>
</div>
</div>
<% if (topic.replies && topic.replies.length > 0) { %>
<div class='panel'>
<div class='header'>
<span class='col_fade'><%= topic.replies.length %> 回复</span>
</div>
<%- partial('reply/reply', topic.replies) %>
</div>
<% } %>
<% if (locals.current_user && locals.topic) { %>
<div class='panel'>
<div class='header'>
<span class='col_fade'>添加回复</span>
</div>
<div class='inner reply'>
<form id='reply_form' action='/<%= topic._id %>/reply' method='post'>
<div class='tabbable'>
<ul class='nav nav-pills'>
<li class='active'><a href='#markdown' data-toggle='pill'>markdown</a></li>
<!-- <li><a href='#preview' data-toggle='pill' class="preview-btn">预览</a></li> -->
</ul>
<div class='tab-content'>
<div class='tab-pane active' id='markdown'>
<div id='wmd-button-bar'></div>
<textarea class='span8 editor' id='wmd-input' name='r_content' rows='8'></textarea>
</div>
<div id='preview' class='tab-pane'>
<div id='wmd-preview' class='wmd-preview reply-wmd-preview'></div>
</div>
</div>
<input type='hidden' name='_csrf' id="_csrf" value='<%= csrf %>' />
</div>
<button id='submit_btn' class='btn'>回复</button>
<span class='col_fade'>Ctrl+Enter 快捷回复</span>
</form>
</div>
</div>
<% } %>
</div>
<% if (locals.current_user && locals.topic) { %>
<!-- ajaxupload -->
<!-- markdown editor -->
<%- Loader('/public/topic_edit.min.js')
.js('/public/libs/ajax-upload/ajaxupload.js')
.js('/public/libs/epiceditor/epiceditor.js')
.js('/public/javascripts/editor.js')
.done(assets, config.site_static_host, config.mini_assets)
%>
<script>
$(document).ready(function () {
var editorList = {};
$('.reply2_btn').click(function () {
var $btn = $(this);
var parent = $btn.parents('.reply_area');
var editorWrap = parent.find('.reply2_form');
parent.find('.reply2_area').prepend(editorWrap);
var textarea = editorWrap.find('textarea.editor');
var user = $btn.parents('.cell').find('.reply_author a').html();
editorWrap.show('fast', function () {
var editor = createEpicEditor(textarea);
editorList[textarea.attr('id')] = editor;
editor.load();
});
});
$('.reply2_at_btn').click(function () {
var $btn = $(this);
var editorWrap = $btn.parents('.reply2_area').find('.reply2_form');
$btn.parents('.reply2_item').after(editorWrap);
var textarea = editorWrap.find('textarea.editor');
var user = $btn.parents('.cell').find('.reply_author a').html();
if (textarea.val().indexOf('@' + user) < 0) {
textarea.val('@' + user + ' ');
}
editorWrap.show('fast', function () {
var editor = createEpicEditor(textarea);
editorList[textarea.attr('id')] = editor;
editor.load();
});
});
$('#collect_btn').click(function(){
var $me = $(this);
var action = $me.attr('action');
var data = {
topic_id: '<%= topic._id %>',
_csrf: '<%= csrf %>'
};
$.post('/topic/' + action, data, function(data) {
if (data.status === 'success') {
if (action == 'collect') {
$me.html('取消收藏');
$me.attr('action','de_collect');
} else {
$me.html('加入收藏');
$me.attr('action','collect');
}
$me.toggleClass('btn-success');
}
}, 'json');
});
$('.delete_reply_btn, .delete_reply2_btn').live('click', function() {
var $me = $(this);
if (confirm('确定要删除此回复吗?')) {
var reply_id = null;
if ($me.hasClass('delete_reply_btn')) {
reply_id = $me.parents('.reply_item').attr('reply_id');
}
if ($me.hasClass('delete_reply2_btn')) {
reply_id = $me.parents('.reply2_item').attr('reply_id');
}
var data = {
reply_id: reply_id,
_csrf: "<%- csrf %>"
};
$.post('/reply/' + reply_id + '/delete', data, function (data) {
if (data.status === 'success') {
if($me.hasClass('delete_reply_btn')){
$me.parents('.reply_item').remove();
}
if($me.hasClass('delete_reply2_btn')){
$me.parents('.reply2_item').remove();
}
}
}, 'json');
}
return false;
});
$('.delete_topic_btn').click(function () {
var topicId = $(this).data('id');
if (topicId && confirm('确定要删除此话题吗?')) {
$.post('/topic/' + topicId + '/delete', { _csrf: $('#_csrf').val() }, function (result) {
if (!result.success) {
alert(result.message);
} else {
location.href = '/';
}
});
}
return false;
});
var submit_btn;
$('textarea').each(function(){
$(this).focus(function(){
var parent = $(this).parent().parent().parent().parent();
var btn = parent.find('button');
if(btn.html() == '回复'){
submit_btn = btn;
}
});
});
document.onkeyup=function(event) {
if(window.ActiveXObject) {
var keydown = window.event.keyCode;
event=window.event;
}else{
var keydown = event.keyCode;
if(event.ctrlKey == true && keydown == 13){
if(submit_btn){
submit_btn.click();
}
}
}
};
});
</script>
<% } %>
<%- Loader('/public/fancebox.min.js', '/public/libs/fancybox/fancebox.min.css')
.css('/public/libs/fancybox/jquery.fancybox-1.3.4.css')
.js('/public/libs/fancybox/jquery.fancybox-1.3.4.pack.js')
.js('/public/javascripts/topic.js')
.done(assets, config.site_static_host, config.mini_assets)
%>