diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2012-02-14 13:04:51 -0300 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2012-02-14 13:04:51 -0300 |
commit | f6846a543c1f9b4bdbfbdb1a7b36a782d5393062 (patch) | |
tree | 45e685a2c3412dc502a7abd8d68662f1fd97d0e0 | |
parent | 6ab8f84c6801a055620ae0ba44bacf4e9aa643ed (diff) | |
parent | f40c0a98a1875161d6f5e83c6c30d8d4029de99b (diff) | |
download | askbot-f6846a543c1f9b4bdbfbdb1a7b36a782d5393062.tar.gz askbot-f6846a543c1f9b4bdbfbdb1a7b36a782d5393062.tar.bz2 askbot-f6846a543c1f9b4bdbfbdb1a7b36a782d5393062.zip |
Merge branch 'dejan'
-rw-r--r-- | askbot/skins/common/media/js/user.js | 30 | ||||
-rw-r--r-- | askbot/skins/default/media/style/style.css | 10 | ||||
-rw-r--r-- | askbot/skins/default/templates/user_profile/user_inbox.html | 34 | ||||
-rw-r--r-- | askbot/views/commands.py | 13 | ||||
-rw-r--r-- | askbot/views/users.py | 2 |
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() |