src/cm/media/js/client/c_sync.js
author gibus
Wed, 11 Sep 2013 23:13:01 +0200
changeset 532 0bad3613f59d
parent 525 89ef5ed3c48b
child 553 bf26fb47a14c
permissions -rw-r--r--
Reverse to YUI 3.0.0 since with YUI.3.10.3, comment content including words 'paragraph' or 'section' do not show up on Firefox, this is weird and has to be investigated.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
gShowingAllComments = false ;
466
f00e34a4476b indexOf method of Array is unknown by stupid IE.
gibus
parents: 432
diff changeset
     2
// indexOf method of Array is unknown by stupid IE.
f00e34a4476b indexOf method of Array is unknown by stupid IE.
gibus
parents: 432
diff changeset
     3
if (!Array.prototype.indexOf) {
f00e34a4476b indexOf method of Array is unknown by stupid IE.
gibus
parents: 432
diff changeset
     4
  Array.prototype.indexOf = function(obj, start) {
f00e34a4476b indexOf method of Array is unknown by stupid IE.
gibus
parents: 432
diff changeset
     5
    for (var i = (start || 0), j = this.length; i < j; i++) {
f00e34a4476b indexOf method of Array is unknown by stupid IE.
gibus
parents: 432
diff changeset
     6
      if (this[i] === obj) { return i; }
f00e34a4476b indexOf method of Array is unknown by stupid IE.
gibus
parents: 432
diff changeset
     7
    }
f00e34a4476b indexOf method of Array is unknown by stupid IE.
gibus
parents: 432
diff changeset
     8
    return -1;
f00e34a4476b indexOf method of Array is unknown by stupid IE.
gibus
parents: 432
diff changeset
     9
  }
f00e34a4476b indexOf method of Array is unknown by stupid IE.
gibus
parents: 432
diff changeset
    10
}
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
// YUI : queue, overlay
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
Sync = function() {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    13
  // this queue handles both animations and io requests
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    14
  this._q = null ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    15
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    16
  this._iPreventClick = false ; // oh really ?
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
Sync.prototype = {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    20
  init : function (iComment) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    21
  this._q = new CY.AsyncQueue() ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
// pr2 this._q = new CY.Queue() ;
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    23
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    24
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    25
  setPreventClickOn : function () {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    26
    CY.log("setPreventClickOn !") ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    27
    if (gLayout.isInFrame())
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    28
      parent.f_interfaceFreeze()    
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    29
    this._iPreventClick = true ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    30
  },
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    32
  setPreventClickOff : function () {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    33
    CY.log("setPreventClickOff !") ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    34
    if (gLayout.isInFrame())
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    35
      parent.f_interfaceUnfreeze()    
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    36
    this._iPreventClick = false ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    37
  },
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    39
  removeCommentRet : function(args) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    40
    var successfull = args['successfull'] ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    41
    
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    42
    var iComment = (successfull) ? args['failure']['iComment'] : args['success']['iComment'] ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    43
    
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    44
    if (successfull) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    45
      var filterData = args['returned']['filterData'] ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    46
      if (gLayout.isInFrame()) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    47
        parent.f_updateFilterData(filterData) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    48
      }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    49
      
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    50
      var y = gIComments.getTopPosition()[1] ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    51
      
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    52
      var comment = gDb.getComment(iComment.commentId) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    53
      this._q.add(
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    54
                function(){
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    55
                  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    56
                unpaintCommentScope(comment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    57
                gIComments.close(comment.id) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    58
                gIComments.remove(comment.id) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    59
                if (comment.reply_to_id != null)
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    60
                  gIComments.refresh(comment.reply_to_id) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    61
                
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    62
                gDb.del(comment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    63
                
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    64
                if (gLayout.isInFrame()) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    65
                  if (gDb.comments.length == 0 && gDb.allComments.length != 0) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    66
                    parent.f_enqueueMsg(gettext("no filtered comments left")) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    67
                  parent.resetFilter() ;  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    68
                  }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    69
                  else {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    70
                  // just counting here ...
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    71
                  var filterRes = gDb.computeFilterResults() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    72
                  updateFilterResultsCount(filterRes['nbDiscussions'], filterRes['nbComments'], filterRes['nbReplies']) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    73
                  }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    74
                }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    75
                }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    76
      );
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    77
      
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    78
      this._animateTo(y) ;    
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    79
    }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    80
    this._q.add({fn:CY.bind(this.setPreventClickOff, this)}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    81
    this.resume() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    82
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    83
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    84
  moderateCommentRet : function(args) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    85
    var successfull = args['successfull'] ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    87
    var iComment = (successfull) ? args['failure']['iComment'] : args['success']['iComment'] ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    89
    if (successfull) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    90
      var ret = args['returned'] ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    91
      var comment = ret['comment'] ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    93
      gDb.upd(comment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    94
      
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    95
      var shouldReset = gLayout.isInFrame() && !parent.f_isFrameFilterFieldsInit() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    96
      if (shouldReset){
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    97
        parent.resetFilter() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    98
        this._showSingleComment(comment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
    99
      }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   100
      else 
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   101
        iComment.changeModeration(comment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   102
    }
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   104
    this._q.add({fn:CY.bind(this.setPreventClickOff, this)}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   105
    this.resume() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   106
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   107
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   108
  saveCommentRet : function(args) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   109
    var successfull = args['successfull'] ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   110
    if (successfull) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   111
      var formId = args['success']['formId'] ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   112
      var ret = args['returned'] ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   113
    
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   114
      removeFormErrMsg(formId) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   115
    
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   116
      if ('errors' in ret) { // validation error
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   117
        var errors = ret['errors'] ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   118
        for (var eltName in errors) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   119
          addFormErrMsg(formId, eltName, errors[eltName]) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   120
        }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   121
        this._animateToTop() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   122
      }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   123
      else {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   124
        var isReply = function() {return (gNewReply != null) && (formId == gNewReply['ids']['formId']) ;} ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   125
        var isNewComment = function() {return (gICommentForm != null) && (formId == gICommentForm['formId']) ;} ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   126
        var isEdit = function() {return (gEdit != null) && (formId == gEdit['ids']['formId']) ;} ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   127
        
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   128
        // doing this here for the a priori moderation case
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   129
        if (isNewComment())
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   130
          this.hideICommentForm(cleanICommentForm()) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   131
        else if (isEdit())
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   132
          this._hideEditForm() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   133
        else if (isReply())
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   134
          this._hideNewReplyForm() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   135
        
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   136
        if ("ask_for_notification" in ret) {  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   137
          if (ret['ask_for_notification']) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   138
            // TODO ask for notification ...or use AUTO_CONTRIB ?
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   139
            parent.f_yesNoDialog(gettext("Do you want to be notified of all replies in all discussions you participated in?"), gettext("Reply notification"), 
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   140
              function() { // special case : no waiting for the return, no error check, nothing !
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   141
                  var cfg = {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   142
                  method: "POST", 
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   143
                  data: urlEncode({'fun':'ownNotify', 'key':sv_key, 'version_key':sv_version_key, 'email':ret['email'], 'active':false}) 
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   144
                } ; 
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   145
                CY.io(sv_client_url, cfg);
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   146
              }, this, null,
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   147
              function() { // special case : no waiting for the return, no error check, nothing !
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   148
                  var cfg = {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   149
                  method: "POST", 
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   150
                  data: urlEncode({'fun':'ownNotify', 'key':sv_key, 'version_key':sv_version_key, 'email':ret['email'], 'active':true}) 
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   151
                } ; 
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   152
                CY.io(sv_client_url, cfg);
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   153
              }, this, null) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   154
          }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   155
        }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   156
          
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   157
        
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   158
        if ("comment" in ret) { // won't be when add with a priori moderation
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   159
          var comment = ret['comment'] ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   160
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   161
          gDb.upd(comment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   162
  
490
57c1ba71f642 Do not reset filters when adding a comment.
Production Moz <dev@sopinspace.com>
parents: 466
diff changeset
   163
          var shouldReset = gLayout.isInFrame() && parent.f_isFrameFilterFieldsInit() ;
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   164
          if (shouldReset)
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   165
            parent.resetFilter() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   166
          else { // ASSUMING filter is in init state ! (because when not // TODO $$$$$$$$$$$ this isn't true anymore .... when passing filter arguments in url !!
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   167
              // in frame for now data can't be filtered)
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   168
            if (comment.reply_to_id == null) { // not a reply
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   169
              unpaintCommentScope(comment) ; // for the edit case
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   170
              paintCommentScope(comment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   171
            }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   172
          }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   173
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   174
          // UPDATE FILTER DATA // TODO move ????
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   175
          var filterData = ret['filterData'] ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   176
          if (gLayout.isInFrame()) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   177
            parent.f_updateFilterData(filterData) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   178
            updateResetFilterResultsCount() ;       
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   179
          }
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   181
          if (isReply()) { // add reply case
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   182
            if (!shouldReset) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   183
              this._insertReply(comment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   184
            }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   185
          }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   186
          else { // edit (reply or comment) or add (comment) case
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   187
              this._showSingleComment(comment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   188
          }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   189
        }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   190
        else 
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   191
          this._animateToTop() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   192
      }
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   194
    }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   195
    else { // TODO ? ALL ret-FUNCTIONS ?
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   196
      this._q.add({id:"expl", fn:function () {CY.log('in example .........') ;}}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   197
      this._q.promote("expl") ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   198
    }
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   200
    this._q.add({fn:CY.bind(this.setPreventClickOff, this)}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   201
    this.resume() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   202
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   203
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   204
  example : function () {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   205
    CY.log('in example .........') ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   206
  },
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   208
  moderateComment : function(iComment, state) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   209
    var comment = gDb.getComment(iComment['commentId']) ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
        this._q.add(
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   211
              {fn:CY.bind(this.setPreventClickOn, this)},
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   212
              {autoContinue:false, fn:CY.bind(doExchange, null, "editComment", {'comment_key':comment.key, 'state':state}, null, this.moderateCommentRet, this, {'iComment':iComment}, gettext("could not save comment"))}
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   213
              ).run();
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   214
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   215
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   216
  _saveComment : function(serverFun, formId) {
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
        this._q.add(
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   218
              {fn:CY.bind(this.setPreventClickOn, this)},
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   219
              {autoContinue:false, fn:CY.bind(doExchange, null, serverFun, {}, formId, this.saveCommentRet, this, {'formId':formId}, gettext("could not save comment"))}
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   220
              ).run();
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   221
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   222
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   223
  editComment : function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   224
    this._saveComment("editComment", gEdit['ids']['formId']) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   225
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   226
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   227
  saveComment : function(formId) {
501
5cd02f32be5e Prevents sumitting comment several time while waiting for server response.
gibus
parents: 492
diff changeset
   228
    if (readyForAction())
5cd02f32be5e Prevents sumitting comment several time while waiting for server response.
gibus
parents: 492
diff changeset
   229
      this._saveComment("addComment", formId) ;
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   230
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   231
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   232
  removeComment : function(iComment) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   233
    checkForOpenedDialog(iComment, function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   234
      if (gLayout.isInFrame()) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   235
        parent.f_yesNoDialog(gettext("Are you sure you want to delete this comment?"), gettext("Warning"), function() { this.animateToTop() ;}, this, null, function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   236
          var comment = gDb.getComment(iComment.commentId) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   237
              this._q.add(
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   238
                    {fn:CY.bind(this.setPreventClickOn, this)},
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   239
                    {autoContinue:false, fn:CY.bind(doExchange, null, "removeComment", {'comment_key':comment.key}, null, this.removeCommentRet, this, {'iComment':iComment}, gettext("could not remove comment"))}
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   240
                    ).run();
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   241
        }, this, null) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   242
            
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   243
      }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   244
//      else {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   245
//        alert("TODO : can't yet delete comments when not embed in text_view_frame because can't 'dialog' confirmation") ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   246
//      }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   247
    
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   248
    }, this, null) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   249
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   250
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   251
  resume : function(commentDbIds, mouseXY) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   252
    this._q.run() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   253
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   254
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   255
  resetAutoContinue : function(callbackId) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   256
    this._q.getCallback(callbackId).autoContinue = true;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   257
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   258
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   259
  hideICommentForm : function(funObj) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   260
//    this._q.add({fn:function() {persistICommentFormValues();}}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   261
    this._q.add({autoContinue:false, fn:CY.bind(gICommentForm['animationHide'].run, gICommentForm['animationHide'])}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   262
//    this._q.add({fn:function() {cleanICommentForm();}}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   263
    if (funObj)
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   264
      this._q.add(funObj) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   265
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   266
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   267
  /* ANIMATION DRIVEN INTERFACE CHANGES */
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   268
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   269
  showCommentForm : function(iComment) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   270
    checkForOpenedDialog(null, function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   271
          this._q.add({fn:CY.bind(this.setPreventClickOn, this)});
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   272
      this._q.add({fn:function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   273
                if (iComment == null) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   274
                  var selection = getSelectionInfo() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   275
                  updateICommentFormSelection(selection) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   276
                }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   277
                showICommentForm(iComment);
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   278
              }}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   279
      this._q.add({autoContinue:false, fn:CY.bind(gICommentForm['animationShow'].run, gICommentForm['animationShow'])},
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   280
          {fn:CY.bind(this.setPreventClickOff, this)}
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   281
          ).run();
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   282
    }, this, null) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   283
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   284
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   285
  showEditForm : function(iComment) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   286
    checkForOpenedDialog(null, function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   287
          this._q.add({fn:CY.bind(this.setPreventClickOn, this)});
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   289
          this._q.add({fn:function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   290
                  showEditForm(iComment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   291
                }});
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   292
      this._animateToTop() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   293
      
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   294
          this._q.add({fn:CY.bind(this.setPreventClickOff, this)});
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   295
          this._q.run() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   296
    }, this, null) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   297
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   298
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   299
  showReplyForm : function(iComment) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   300
    checkForOpenedDialog(null, function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   301
          this._q.add({fn:CY.bind(this.setPreventClickOn, this)});
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   302
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   303
          this._q.add({fn:function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   304
                    instanciateNewReplyForm(iComment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   305
                    }});
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   306
      this._animateToTop() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   307
      
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   308
          this._q.add({fn:CY.bind(this.setPreventClickOff, this)});
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   309
          this._q.run() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   310
    }, this, null) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   311
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   312
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   313
  cancelICommentForm : function() {
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
        this._q.add({fn:CY.bind(this.setPreventClickOn, this)});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
        
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   316
//    this._q.add({fn:function() {cleanICommentForm();}}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   317
      this.hideICommentForm() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   318
      
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
        this._q.add({fn:CY.bind(this.setPreventClickOff, this)});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
        this._q.run() ;
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   321
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   322
  cancelEdit : function() {
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
        this._q.add({fn:CY.bind(this.setPreventClickOn, this)});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
        
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   325
      this._q.add({fn:function() {cancelEditForm();}}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   326
      this._animateToTop() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   327
      
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
        this._q.add({fn:CY.bind(this.setPreventClickOff, this)});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
        this._q.run() ;
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   330
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   331
  cancelReply : function() {
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
        this._q.add({fn:CY.bind(this.setPreventClickOn, this)});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
        
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   334
      this._q.add({fn:function() {cancelNewReplyForm();}}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   335
      this._animateToTop() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   336
      
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
        this._q.add({fn:CY.bind(this.setPreventClickOff, this)});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
        this._q.run() ;
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   339
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   340
  changeScopeFormClick : function() {
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
        this._q.add({fn:CY.bind(this.setPreventClickOn, this)});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
        
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   343
      this._q.add({fn:function() {changeScopeFormClick();}}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   344
      this._animateToTop() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   345
      
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
        this._q.add({fn:CY.bind(this.setPreventClickOff, this)});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
        this._q.run() ;
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   348
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   349
  // this is invoked during queue execution
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   350
  _hideNewReplyForm : function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   351
    this._q.add({fn:function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   352
          cleanNewReplyForm() ; 
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   353
          cancelNewReplyForm() ;}}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   354
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   355
  // this is invoked during queue execution
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   356
  _hideEditForm : function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   357
    this._q.add({fn:function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   358
          cancelEditForm() ;}}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   359
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   360
  // this is invoked during queue execution
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   361
  _insertReply : function(comment) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   362
    this._q.add({fn:function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   363
          var parentComment = gDb.getComment(comment.reply_to_id) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   364
          var parentThread = gDb.getThreads([parentComment]) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   365
          var previousComment = parentThread[parentThread.length - 2] ; // - 2 because now that comment has been added comment is parentThread[parentThread.length - 1]
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   367
          var iComment = gIComments.insertAfter(previousComment, comment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   368
          // iComment CAN'T BE NULL ! (TODO check that there is a
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   369
          // check server side that parent exists when adding a reply
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   370
          // !)
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   371
          
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   372
          var parentPosition = gIComments.getPosition(comment.reply_to_id) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   373
          iComment.setPosition(parentPosition) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   374
          
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   375
          // check if activation is necessary (will always be ?)
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   376
          var comment_path = gDb.getPath(comment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   377
          var topComment = comment_path[comment_path.length - 1] ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   378
          if (gIComments.isTopActive(topComment.id))
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   379
            iComment.activate() ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   380
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   381
          iComment.show() ;}}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   382
      this._animateToTop() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   383
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   384
  _showSingleComment : function(comment) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   385
    if (comment != null) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   386
      var path = gDb.getPath(comment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   387
      var topAncestorComment = path[path.length - 1] ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   388
      var topY = 0 ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   389
      if (comment['start_wrapper'] != -1) 
532
0bad3613f59d Reverse to YUI 3.0.0 since with YUI.3.10.3, comment content including words 'paragraph' or 'section' do not show up on Firefox, this is weird and has to be investigated.
gibus
parents: 525
diff changeset
   390
        topY = CY.get(".c-id-"+topAncestorComment.id).getY() ;
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   391
      else 
532
0bad3613f59d Reverse to YUI 3.0.0 since with YUI.3.10.3, comment content including words 'paragraph' or 'section' do not show up on Firefox, this is weird and has to be investigated.
gibus
parents: 525
diff changeset
   392
        topY = CY.get('document').get('scrollTop') ;
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   393
      
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   394
      this._showComments([topAncestorComment.id], topY, false) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   395
      // optim when browsing comments with no reply     
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   396
      if (topAncestorComment.replies.length > 0)
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   397
        this._animateTo(topY) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   398
    }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   399
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   400
  _showFocusSingleComment : function(topComment, focusComment, reply) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   401
    if (topComment != null) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   402
      var topY = 0 ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   403
      if (topComment['start_wrapper'] != -1) 
532
0bad3613f59d Reverse to YUI 3.0.0 since with YUI.3.10.3, comment content including words 'paragraph' or 'section' do not show up on Firefox, this is weird and has to be investigated.
gibus
parents: 525
diff changeset
   404
        topY = CY.get(".c-id-"+topComment.id).getY() ;
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   405
      else 
532
0bad3613f59d Reverse to YUI 3.0.0 since with YUI.3.10.3, comment content including words 'paragraph' or 'section' do not show up on Firefox, this is weird and has to be investigated.
gibus
parents: 525
diff changeset
   406
        topY = CY.get('document').get('scrollTop') ;
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   407
      
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   408
      this._showComments([topComment.id], topY, false) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   409
      // optim when browsing comments with no reply     
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   410
      if (topComment.replies.length > 0 || reply)
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   411
        this._animateToAndFocus(topY, focusComment.id, reply) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   412
    }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   413
  },
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   414
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   415
  showSingleComment : function(comment) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   416
    this._q.add({fn:CY.bind(this.setPreventClickOn, this)}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   417
    this._showSingleComment(comment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   418
    this._q.add({fn:CY.bind(this.setPreventClickOff, this)}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   419
    this._q.run();
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   420
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   421
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   422
  showFocusSingleComment : function(topComment, focusComment, reply) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   423
    this._q.add({fn:CY.bind(this.setPreventClickOn, this)}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   424
    this._showFocusSingleComment(topComment, focusComment, reply) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   425
    this._q.add({fn:CY.bind(this.setPreventClickOff, this)}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   426
    this._q.run();
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   427
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   428
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   429
  browse : function(order, whereto) { 
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   430
    var comment = gIComments.browse(order, whereto) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   431
    if (comment != null) 
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   432
      this.showSingleComment(comment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   433
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   434
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   435
  _showComments : function(commentDbIds, topY, atDocumentTop) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   436
    this._q.add(
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   437
      {fn:function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   438
        gShowingAllComments = atDocumentTop ;     
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   439
        gIComments.hide() ; 
421
3ddbfa64f596 Adds a table of content.
gibus
parents: 375
diff changeset
   440
        hideToc();
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   441
        var cs = CY.Array.map(commentDbIds, function(id) { return gDb.getComment(id) ; }) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   442
        var comments = gDb.getThreads(cs) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   443
        gIComments.fetch(comments) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   444
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   445
        if (commentDbIds.length > 0) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   446
          if (atDocumentTop) {
532
0bad3613f59d Reverse to YUI 3.0.0 since with YUI.3.10.3, comment content including words 'paragraph' or 'section' do not show up on Firefox, this is weird and has to be investigated.
gibus
parents: 525
diff changeset
   447
            CY.get('document').set('scrollTop', 0) ; 
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   448
          }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   449
          else {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   450
            gIComments.activate(commentDbIds[0]) ;
532
0bad3613f59d Reverse to YUI 3.0.0 since with YUI.3.10.3, comment content including words 'paragraph' or 'section' do not show up on Firefox, this is weird and has to be investigated.
gibus
parents: 525
diff changeset
   451
            var scopeStart = CY.get(".c-id-"+commentDbIds[0]) ;
491
50eeeb10e960 Since scrollIntoView scroll the embed iframe *and* the parent window, save and restore the position of the toolbar.
Production Moz <dev@sopinspace.com>
parents: 490
diff changeset
   452
            if (scopeStart && !scopeStart.inViewportRegion()) { // scopeStart could be null when comment has no scope
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   453
              scopeStart.scrollIntoView(true) ;
491
50eeeb10e960 Since scrollIntoView scroll the embed iframe *and* the parent window, save and restore the position of the toolbar.
Production Moz <dev@sopinspace.com>
parents: 490
diff changeset
   454
              // Since scrollIntoView scroll the embed ifram *and* the parent window
50eeeb10e960 Since scrollIntoView scroll the embed iframe *and* the parent window, save and restore the position of the toolbar.
Production Moz <dev@sopinspace.com>
parents: 490
diff changeset
   455
              // restore the position of the toolbar
492
5b5245f4fe9a Since scrollIntoView scroll the embed iframe *and* the parent window, restore the position of the toolbar.
Production Moz <dev@sopinspace.com>
parents: 491
diff changeset
   456
              if (parent)
5b5245f4fe9a Since scrollIntoView scroll the embed iframe *and* the parent window, restore the position of the toolbar.
Production Moz <dev@sopinspace.com>
parents: 491
diff changeset
   457
                parent.document.getElementById('outer-north').scrollIntoView(true) ;
491
50eeeb10e960 Since scrollIntoView scroll the embed iframe *and* the parent window, save and restore the position of the toolbar.
Production Moz <dev@sopinspace.com>
parents: 490
diff changeset
   458
            }
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   459
          }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   460
        }
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   461
        
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   462
        gIComments.setPosition([gConf['iCommentLeftPadding'], topY]) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   463
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   464
        gIComments.show() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   465
      }}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   466
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   467
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   468
  _animateTo : function(topY) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   469
    this._q.add({fn:function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   470
            gIComments.setAnimationToPositions(topY) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   471
            }},
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   472
          {id:"animationRun", autoContinue:false, fn:CY.bind(gIComments.runAnimations, gIComments)}
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   473
              ) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   474
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   475
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   476
  _animateToAndFocus : function(topY, focusCommentId, reply) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   477
    this._q.add({fn:function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   478
            gIComments.setAnimationToPositionsAndFocus(topY, focusCommentId, reply) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   479
            }},
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   480
          {id:"animationRun", autoContinue:false, fn:CY.bind(gIComments.runAnimations, gIComments)}
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   481
              ) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   482
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   483
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   484
  _animateToTop : function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   485
    var topPos = gIComments.getTopPosition() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   486
    if (topPos != null)
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   487
      this._animateTo(topPos[1]) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   488
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   489
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   490
  animateToTop : function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   491
    this._q.add({fn:CY.bind(this.setPreventClickOn, this)}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   492
    this._animateToTop() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   493
    this._q.add({fn:CY.bind(this.setPreventClickOff, this)}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   494
    this._q.run();
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   495
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   496
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   497
  showAllComments : function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   498
    checkForOpenedDialog(null, function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   499
      gShowingAllComments = true ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   500
      var allTopComments = CY.Array.map(gDb.comments, function(c){return c.id;}) ;
432
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   501
      // Reorder if by scope.
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   502
      if (parent.$("#browse_by").val() == 'scope') {
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   503
        allTopComments.sort(function (a,b) {
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   504
          if (gDb.ordered_comment_ids['scope'].indexOf(a) < gDb.ordered_comment_ids['scope'].indexOf(b))
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   505
            return -1;
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   506
          if (gDb.ordered_comment_ids['scope'].indexOf(a) > gDb.ordered_comment_ids['scope'].indexOf(b))
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   507
            return 1
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   508
          return 0
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   509
		    });
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   510
      }
375
d6439b3eb2de replace 'add comment' button
gibus
parents: 341
diff changeset
   511
      // GIB: go down the 'add comment' icon
d6439b3eb2de replace 'add comment' button
gibus
parents: 341
diff changeset
   512
      this.showComments(allTopComments, [0,30], true) ;
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   513
    }, this, null) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   514
  },
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   515
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   516
  showScopeRemovedComments : function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   517
    checkForOpenedDialog(null, function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   518
      gShowingAllComments = true ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   519
      var scopeRemovedComments = CY.Array.filter(gDb.comments, function(comment) { return (comment.start_wrapper == -1) ; }) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   520
      var scopeRemovedCommentIds = CY.Array.map(scopeRemovedComments, function(c){return c.id;}) ;
432
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   521
      // Reorder if by scope.
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   522
      if (parent.$("#browse_by").val() == 'scope') {
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   523
        scopeRemovedCommentIds.sort(function (a,b) {
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   524
          if (gDb.ordered_comment_ids['scope'].indexOf(a) < gDb.ordered_comment_ids['scope'].indexOf(b))
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   525
            return -1;
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   526
          if (gDb.ordered_comment_ids['scope'].indexOf(a) > gDb.ordered_comment_ids['scope'].indexOf(b))
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   527
            return 1
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   528
          return 0
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   529
		    });
aad07a378d44 Respect order by scope in show all comments or show all detached comments.
gibus
parents: 421
diff changeset
   530
      }
375
d6439b3eb2de replace 'add comment' button
gibus
parents: 341
diff changeset
   531
      // GIB: go down the 'add comment' icon
d6439b3eb2de replace 'add comment' button
gibus
parents: 341
diff changeset
   532
      this.showComments(scopeRemovedCommentIds, [0,30], true) ;
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   533
      
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   534
    }, this, null) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   535
  },
103
61fd17f9ab78 enh: detached comments
rbernard
parents: 24
diff changeset
   536
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   537
  showComments : function(commentDbIds, mouseXY, atDocumentTop) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   538
    checkForOpenedDialog(null, function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   539
      this._q.add({fn:CY.bind(this.setPreventClickOn, this)}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   540
      this._showComments(commentDbIds, mouseXY[1], atDocumentTop) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   541
      this._animateTo(mouseXY[1]) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   542
      this._q.add({fn:CY.bind(this.setPreventClickOff, this)}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   543
      this._q.run();
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   544
    }, this, null) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   545
  },
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   546
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   547
  openComment : function(iComment) { 
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   548
    this._q.add({fn:CY.bind(this.setPreventClickOn, this)}) ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   549
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   550
    var y = gIComments.getTopPosition()[1] ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   551
    this._q.add({fn:function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   552
      gIComments.open(iComment.commentId) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   553
        gIComments.refresh(iComment.commentId) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   554
    }}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   555
    this._animateTo(y) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   556
    
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   557
    this._q.add({fn:CY.bind(this.setPreventClickOff, this)}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   558
    this._q.run();
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   559
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   560
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   561
  closeComment : function(iComment) { 
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   562
    checkForOpenedDialog(iComment, function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   563
      this._q.add({fn:CY.bind(this.setPreventClickOn, this)}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   564
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   565
      var y = gIComments.getTopPosition()[1] ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   566
      this._q.add({fn:function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   567
        var comment = gDb.getComment(iComment.commentId) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   568
        gIComments.close(iComment.commentId) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   569
          if (comment.reply_to_id != null)
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   570
            gIComments.refresh(comment.reply_to_id) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   571
      }}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   572
      this._animateTo(y) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   573
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   574
      this._q.add({fn:CY.bind(this.setPreventClickOff, this)}) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   575
      this._q.run() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   576
    }, this, null) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   577
  },
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   578
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   579
  activate : function(iComment) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   580
    gIComments.activate(iComment.commentId) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   581
  }
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   582
}
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   583
      
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   584
readyForAction = function () {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 339
diff changeset
   585
  return !gSync._iPreventClick ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   586
};