summaryrefslogtreecommitdiffstats
path: root/askbot/skins/common/media/js/user.js
diff options
context:
space:
mode:
Diffstat (limited to 'askbot/skins/common/media/js/user.js')
-rw-r--r--askbot/skins/common/media/js/user.js121
1 files changed, 82 insertions, 39 deletions
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
@@ -86,16 +86,6 @@ $(document).ready(function(){
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(){
setCheckBoxesIn('#responses .new', true);
@@ -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();
@@ -183,6 +154,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
*/
var FollowUser = function(){