From 2736c7faaacecd011fe5f3b280489563a736ae04 Mon Sep 17 00:00:00 2001 From: Evgeny Fadeev Date: Fri, 27 Apr 2012 11:09:33 -0300 Subject: started working on a menu for rejecting the post --- askbot/skins/common/media/js/user.js | 121 ++++++++++++++------- .../templates/user_profile/reject_post_dialog.html | 60 ++++++++++ .../default/templates/user_profile/user_inbox.html | 50 +-------- 3 files changed, 143 insertions(+), 88 deletions(-) create mode 100644 askbot/skins/default/templates/user_profile/reject_post_dialog.html diff --git a/askbot/skins/common/media/js/user.js b/askbot/skins/common/media/js/user.js index 2138746b..c52ffff9 100644 --- a/askbot/skins/common/media/js/user.js +++ b/askbot/skins/common/media/js/user.js @@ -85,16 +85,6 @@ $(document).ready(function(){ setupButtonEventHandlers($('#re_dismiss'), function(){startAction('delete')}); setupButtonEventHandlers($('#re_remove_flag'), function(){startAction('remove_flag')}); //setupButtonEventHandlers($('#re_close'), function(){startAction('close')}); - setupButtonEventHandlers( - $('#re_delete_post'), - function(){ - var data = getSelected(); - if (data['id_list'].length === 0){ - return; - } - $('#rejectEditModal').modal('show'); - } - ); setupButtonEventHandlers( $('#sel_all'), function(){ @@ -121,39 +111,20 @@ $(document).ready(function(){ setCheckBoxesIn('#responses .seen', false); } ); + + var reject_post_dialog = new RejectPostDialog(); + reject_post_dialog.decorate($('#reject-edit-modal')); setupButtonEventHandlers( - $('.cancel-reject'), - function(){ - $('#rejectEditModal').modal('hide'); - } - ) - setupButtonEventHandlers( - $('#doReject'), - function(){ - $('#rejectEditModal').modal('hide'); - } - ); - setupButtonEventHandlers( - $('#doRejectWithNewReason'), - function(){ - $('#rejectEditModal').modal('hide'); - } - ); - setupButtonEventHandlers( - $('#useOldReason'), - function(){ - $('#old-reason-btns').show(); - $('#new-reason-btns').hide(); - } - ); - setupButtonEventHandlers( - $('#addReason'), + $('#re_delete_post'), function(){ - $('#old-reason-btns').hide(); - $('#new-reason-btns').show(); + var data = getSelected(); + if (data['id_list'].length === 0){ + return; + } + reject_post_dialog.setSelectedEditIds(data); + reject_post_dialog.show(); } ); - //setupButtonEventHandlers($('.re_expand'), // function(e){ // e.preventDefault(); @@ -181,6 +152,78 @@ $(document).ready(function(){ }); }); +/** + * @constructor + * manages post/edit reject reasons + * in the post moderation view + */ +var RejectPostDialog = function(){ + WrappedElement.call(this); + this._selected_edit_ids = null; + this._state = null;//'select', 'preview', 'add-new' +}; +inherits(RejectPostDialog, WrappedElement); + +RejectPostDialog.prototype.setSelectedEditIds = function(ids){ + this._selected_edit_ids = ids; +}; + +RejectPostDialog.prototype.setState = function(state){ + this._state = state; + if (this._element){ + this._selector.hide(); + this._adder.hide(); + this._previewer.hide(); + if (state === 'select'){ + this._selector.show(); + } else if (state === 'preview'){ + this._previewer.show(); + } else if (state === 'add-new'){ + this._adder.show(); + } + } +}; + +RejectPostDialog.prototype.show = function(){ + $(this._element).modal('show'); +}; + +RejectPostDialog.prototype.addReason = function(title, description){ + $(this._adder).find('.select-other-reason').show(); +}; + +RejectPostDialog.prototype.decorate = function(element){ + this._element = element; + //set default state according to the # of available reasons + this._selector = $(element).find('#reject-edit-modal-select'); + this._adder = $(element).find('#reject-edit-modal-add-new'); + this._previewer = $(element).find('#reject-edit-modal-preview'); + if (this._selector.find('li').length > 0){ + this.setState('select'); + } else { + this.setState('add-new'); + $(this._adder).find('.select-other-reason').hide(); + } + + //var select_box = new SelectBox(); + //select_box.decorate($(this._selector.find('.select-box'))); + + //setup tipped-inputs + var me = this; + setupButtonEventHandlers( + element.find('.select-other-reason'), + function(){ me.setState('select') } + ) + setupButtonEventHandlers( + element.find('.add-new-reason'), + function(){ me.setState('add-new') } + ); + setupButtonEventHandlers( + element.find('.cancel'), + function() { $(element).modal('hide') } + ); +}; + /** * @constructor * allows to follow/unfollow users diff --git a/askbot/skins/default/templates/user_profile/reject_post_dialog.html b/askbot/skins/default/templates/user_profile/reject_post_dialog.html new file mode 100644 index 00000000..9b32121b --- /dev/null +++ b/askbot/skins/default/templates/user_profile/reject_post_dialog.html @@ -0,0 +1,60 @@ + diff --git a/askbot/skins/default/templates/user_profile/user_inbox.html b/askbot/skins/default/templates/user_profile/user_inbox.html index 8d1a75fd..4e051a3b 100644 --- a/askbot/skins/default/templates/user_profile/user_inbox.html +++ b/askbot/skins/default/templates/user_profile/user_inbox.html @@ -67,49 +67,7 @@ inbox_section - forum|flags {% endif %} -