summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-02-14 13:04:51 -0300
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-02-14 13:04:51 -0300
commitf6846a543c1f9b4bdbfbdb1a7b36a782d5393062 (patch)
tree45e685a2c3412dc502a7abd8d68662f1fd97d0e0
parent6ab8f84c6801a055620ae0ba44bacf4e9aa643ed (diff)
parentf40c0a98a1875161d6f5e83c6c30d8d4029de99b (diff)
downloadaskbot-f6846a543c1f9b4bdbfbdb1a7b36a782d5393062.tar.gz
askbot-f6846a543c1f9b4bdbfbdb1a7b36a782d5393062.tar.bz2
askbot-f6846a543c1f9b4bdbfbdb1a7b36a782d5393062.zip
Merge branch 'dejan'
-rw-r--r--askbot/skins/common/media/js/user.js30
-rw-r--r--askbot/skins/default/media/style/style.css10
-rw-r--r--askbot/skins/default/templates/user_profile/user_inbox.html34
-rw-r--r--askbot/views/commands.py13
-rw-r--r--askbot/views/users.py2
5 files changed, 81 insertions, 8 deletions
diff --git a/askbot/skins/common/media/js/user.js b/askbot/skins/common/media/js/user.js
index d80adad6..f3b4ed8e 100644
--- a/askbot/skins/common/media/js/user.js
+++ b/askbot/skins/common/media/js/user.js
@@ -18,7 +18,7 @@ $(document).ready(function(){
};
var submit = function(id_list, elements, action_type){
- if (action_type == 'delete' || action_type == 'mark_new' || action_type == 'mark_seen'){
+ if (action_type == 'delete' || action_type == 'mark_new' || action_type == 'mark_seen' || action_type == 'remove_flag' || action_type == 'close'){
$.ajax({
type: 'POST',
cache: false,
@@ -27,7 +27,7 @@ $(document).ready(function(){
url: askbot['urls']['manageInbox'],
success: function(response_data){
if (response_data['success'] === true){
- if (action_type == 'delete'){
+ if (action_type == 'delete' || action_type == 'remove_flag' || action_type == 'close'){
elements.remove();
}
else if (action_type == 'mark_new'){
@@ -61,11 +61,27 @@ $(document).ready(function(){
return;
}
}
+ if (action_type == 'close'){
+ msg = ngettext('Close this entry?',
+ 'Close these entries?', data['id_list'].length);
+ if (confirm(msg) === false){
+ return;
+ }
+ }
+ if (action_type == 'remove_flag'){
+ msg = ngettext('Remove all flags on this entry?',
+ 'Remove all flags on these entries?', data['id_list'].length);
+ if (confirm(msg) === false){
+ return;
+ }
+ }
submit(data['id_list'], data['elements'], action_type);
};
setupButtonEventHandlers($('#re_mark_seen'), function(){startAction('mark_seen')});
setupButtonEventHandlers($('#re_mark_new'), function(){startAction('mark_new')});
setupButtonEventHandlers($('#re_dismiss'), function(){startAction('delete')});
+ setupButtonEventHandlers($('#re_remove_flag'), function(){startAction('remove_flag')});
+ setupButtonEventHandlers($('#re_close'), function(){startAction('close')});
setupButtonEventHandlers(
$('#sel_all'),
function(){
@@ -92,6 +108,16 @@ $(document).ready(function(){
setCheckBoxesIn('#responses .seen', false);
}
);
+
+ setupButtonEventHandlers($('.re_expand'),
+ function(e){
+ e.preventDefault();
+ var re_snippet = $(this).find(".re_snippet:first")
+ var re_content = $(this).find(".re_content:first")
+ $(re_snippet).slideToggle();
+ $(re_content).slideToggle();
+ }
+ );
});
/**
diff --git a/askbot/skins/default/media/style/style.css b/askbot/skins/default/media/style/style.css
index d52c4f11..737dcdd2 100644
--- a/askbot/skins/default/media/style/style.css
+++ b/askbot/skins/default/media/style/style.css
@@ -3153,3 +3153,13 @@ pre.prettyprint {
#leading-sidebar {
float: left;
}
+
+a.re_expand{
+ color: #616161;
+ text-decoration:none;
+}
+
+a.re_expand .re_content{
+ display:none;
+ margin-left:77px;
+} \ No newline at end of file
diff --git a/askbot/skins/default/templates/user_profile/user_inbox.html b/askbot/skins/default/templates/user_profile/user_inbox.html
index e7e3dbfe..9d5d3db6 100644
--- a/askbot/skins/default/templates/user_profile/user_inbox.html
+++ b/askbot/skins/default/templates/user_profile/user_inbox.html
@@ -56,6 +56,17 @@ inbox_section - forum|flags
<button id="re_dismiss">{% trans %}dismiss{% endtrans %}</button>
</div>
{% endif %}
+ {% if inbox_section == 'flags' %}
+ <div id="re_tools">
+ <strong>{% trans %}select:{% endtrans %}</strong>
+ <a id="sel_all">{% trans %}all{% endtrans %}</a> |
+ <a id="sel_seen">{% trans %}seen{% endtrans %}</a> |
+ <a id="sel_new">{% trans %}new{% endtrans %}</a> |
+ <a id="sel_none">{% trans %}none{% endtrans %}</a><br />
+ <button id="re_remove_flag">{% trans %}remove flags{% endtrans %}</button>
+ <button id="re_close">{% trans %}close{% endtrans %}</button>
+ </div>
+ {% endif %}
<div id="responses">
{% for response in responses %}
<div class="response-parent">
@@ -63,7 +74,7 @@ inbox_section - forum|flags
<strong>"{{ response.response_title.strip()|escape}}"</strong>
</p>
<div id="re_{{response.id}}" class="re{% if response.is_new %} new highlight{% else %} seen{% endif %}">
- {% if inbox_section == 'forum' %}<input type="checkbox" />{% endif %}
+ <input type="checkbox" />
<div class="face">
{{ macros.gravatar(response.user, 48) }}
</div>
@@ -71,13 +82,20 @@ inbox_section - forum|flags
<a style="text-decoration:none;" href="{{ response.response_url }}">
{{ response.response_type }}
({{ response.timestamp|diff_date(True) }}):<br/>
- {{ response.response_snippet}}
+ {% if inbox_section != 'flags' %}
+ {{ response.response_snippet }}
+ {% endif %}
</a>
+ {% if inbox_section == 'flags' %}
+ <a class="re_expand" href="{{ response.response_url }}">
+ <div class="re_snippet">{{ response.response_snippet }}</div>
+ <div class="re_content">{{ response.response_content }}</div></a>
+ {% endif %}
</div>
{% if response.nested_responses %}
{%for nested_response in response.nested_responses %}
<div id="re_{{nested_response.id}}" class="re{% if nested_response.is_new %} new highlight{% else %} seen{% endif %}">
- {% if inbox_section == 'forum' %}<input type="checkbox" />{% endif %}
+ <input type="checkbox" />
<div class="face">
{{ macros.gravatar(nested_response.user, 48) }}
</div>
@@ -85,8 +103,15 @@ inbox_section - forum|flags
<a style="text-decoration:none;" href="{{ nested_response.response_url }}">
{{ nested_response.response_type }}
({{ nested_response.timestamp|diff_date(True) }}):<br/>
- {{ nested_response.response_snippet}}
+ {% if inbox_section != 'flags' %}
+ {{ nested_response.response_snippet }}
+ {% endif %}
</a>
+ {% if inbox_section == 'flags' %}
+ <a class="re_expand" href="{{ nested_response.response_url }}">
+ <div class="re_snippet">{{ nested_response.response_snippet }}</div>
+ <div class="re_content">{{ nested_response.response_content }}</div></a>
+ {% endif %}
</div>
{%endfor%}
{%endif%}
@@ -96,7 +121,6 @@ inbox_section - forum|flags
</div>
{% endblock %}
{% block userjs %}
- <script type="text/javascript" src="{{'/js/user.js'|media}}"></script>
<script type="text/javascript">
var askbot = askbot || {};
askbot['urls'] = askbot['urls'] || {};
diff --git a/askbot/views/commands.py b/askbot/views/commands.py
index 7db27ef2..2e289d2e 100644
--- a/askbot/views/commands.py
+++ b/askbot/views/commands.py
@@ -41,7 +41,7 @@ def manage_inbox(request):
post_data = simplejson.loads(request.raw_post_data)
if request.user.is_authenticated():
activity_types = const.RESPONSE_ACTIVITY_TYPES_FOR_DISPLAY
- activity_types += (const.TYPE_ACTIVITY_MENTION, )
+ activity_types += (const.TYPE_ACTIVITY_MENTION, const.TYPE_ACTIVITY_MARK_OFFENSIVE,)
user = request.user
memo_set = models.ActivityAuditStatus.objects.filter(
id__in = post_data['memo_list'],
@@ -56,6 +56,17 @@ def manage_inbox(request):
memo_set.update(status = models.ActivityAuditStatus.STATUS_NEW)
elif action_type == 'mark_seen':
memo_set.update(status = models.ActivityAuditStatus.STATUS_SEEN)
+ elif action_type == 'remove_flag':
+ for memo in memo_set:
+ request.user.flag_post(post = memo.activity.content_object, cancel_all = True)
+ elif action_type == 'close':
+ for memo in memo_set:
+ if memo.activity.content_object.post_type == "question":
+ request.user.close_question(question = memo.activity.content_object, reason = 7)
+ else:
+ memo.activity.content_object.deleted = True
+ memo.activity.content_object.save()
+ memo.delete()
else:
raise exceptions.PermissionDenied(
_('Oops, apologies - there was some error')
diff --git a/askbot/views/users.py b/askbot/views/users.py
index 28561bf4..b38a54c8 100644
--- a/askbot/views/users.py
+++ b/askbot/views/users.py
@@ -597,6 +597,7 @@ def user_responses(request, user, context):
'response_type': memo.activity.get_activity_type_display(),
'response_id': memo.activity.question.id,
'nested_responses': [],
+ 'response_content': memo.activity.content_object.html,
}
response_list.append(response)
@@ -617,6 +618,7 @@ def user_responses(request, user, context):
last_response_index = i
response_list = filtered_response_list
+
response_list.sort(lambda x,y: cmp(y['timestamp'], x['timestamp']))
filtered_response_list = list()