src/cm/media/js/client/c_edit_form.js
author gibus
Tue, 30 Nov 2010 09:53:35 +0100
changeset 341 053551f213fb
parent 113 cf99f4e14534
child 504 b2e0186daa5b
permissions -rw-r--r--
Coding style for js: expand tabs
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
gEditICommentHost = null ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
gEdit = null ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
dbgc = null ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
showEditForm = function(iCommentHost) {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
     6
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
     7
  if (gEdit == null) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
     8
    gEdit = {
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
     9
        'ids':{
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    10
          'formId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    11
          'formTitleId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    12
          'nameInputId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    13
          'emailInputId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    14
          'titleInputId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    15
          'contentInputId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    16
          'tagsInputId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    17
          'formatInputId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    18
          'startWrapperInputId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    19
          'endWrapperInputId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    20
          'startOffsetInputId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    21
          'endOffsetInputId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    22
          'changeScopeInputId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    23
          'changeScopeInputWrapper':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    24
          'selectionPlaceId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    25
          'keyId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    26
          'editCommentId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    27
          'currentSelId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    28
          'currentSelIdI':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    29
          'addBtnId':CY.guid(),
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    30
          'cancelBtnId':CY.guid()
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    31
          },
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    32
        'handlers':{}
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    33
    } ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    34
  }
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    35
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    36
  gEditICommentHost = iCommentHost ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    38
  gEditICommentHost.hideContent() ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    40
// FORM HTML  
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    41
  var overlayHtml = getHtml(gEdit['ids']) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    42
  var editHeader = '<div class="icomment-edit-header">' + overlayHtml['headerContent'] + '</div>' ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    43
  var editBody = '<div class="icomment-edit-body">' + overlayHtml['bodyContent'] + '</div>' ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    44
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    45
//  cf. http://yuilibrary.com/projects/yui3/ticket/2528319 
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    46
  gEditICommentHost['overlay'].setStdModContent(CY.WidgetStdMod.HEADER,CY.Node.create(editHeader),CY.WidgetStdMod.AFTER);   
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    47
  gEditICommentHost['overlay'].setStdModContent(CY.WidgetStdMod.BODY,CY.Node.create(editBody),CY.WidgetStdMod.AFTER);
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    48
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    49
// FORM TITLE   
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    50
  CY.get("#"+gEdit['ids']['formTitleId']).set('innerHTML', gettext("Edit comment")) ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
// FETCH FORM VALUES FROM COMMENT
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    53
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    54
  var comment = gDb.getComment(gEditICommentHost.commentId) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    55
  CY.get("#"+gEdit['ids']['editCommentId']).set('value', comment.id) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    56
  CY.get("#"+gEdit['ids']['keyId']).set('value', comment.key) ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    58
  CY.get("#"+gEdit['ids']['changeScopeInputId']+" input").set('checked', false) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    59
  if (comment.reply_to_id != null) 
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    60
    CY.get("#"+gEdit['ids']['changeScopeInputId']).addClass('displaynone')
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    61
  changeScopeFormClick() ; // to adapt
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    63
  CY.get("#"+gEdit['ids']['nameInputId']).set('value', comment.name) ; 
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    64
  CY.get("#"+gEdit['ids']['emailInputId']).set('value', comment.email) ; 
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    66
  if (comment.logged_author) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    67
    CY.get("#"+gEdit['ids']['nameInputId']).setAttribute("disabled", true); 
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    68
    CY.get("#"+gEdit['ids']['emailInputId']).setAttribute("disabled", true);
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    69
  }
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    70
  
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
// FORM VALUES
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    72
  CY.get("#"+gEdit['ids']['titleInputId']).set('value', comment['title']) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    73
  CY.get("#"+gEdit['ids']['contentInputId']).set('value', comment['content']) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    74
  CY.get("#"+gEdit['ids']['tagsInputId']).set('value', comment['tags']) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    75
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    76
  CY.get("#"+gEdit['ids']['formatInputId']).set('value',gConf['defaultCommentFormat']) ;// for now ...
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    77
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    78
// WIDTH  
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    79
  var width = gLayout.getTopICommentsWidth() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    80
  changeFormFieldsWidth(gEdit['ids']['formId'], width) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    81
  
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
// ATTACH EVENT HANDLERS
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    83
  gEdit['handlers']['addBtnId'] = CY.on("click", onEditSaveClick, "#"+gEdit['ids']['addBtnId']);
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    84
  gEdit['handlers']['cancelBtnId'] = CY.on("click", onEditCancelClick, "#"+gEdit['ids']['cancelBtnId']);
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    85
  gEdit['handlers']['changeScope'] = CY.on("click", onChangeScopeClick, "#"+gEdit['ids']['changeScopeInputId']);
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    86
  
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
onEditSaveClick = function(iCommentHost) {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    89
  if (readyForAction())
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    90
    gSync.editComment() ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
onEditCancelClick = function(iCommentHost) {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    93
  if (readyForAction())
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    94
    gSync.cancelEdit() ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
onChangeScopeClick = function() {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    97
  if (readyForAction())
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    98
    gSync.changeScopeFormClick() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
    99
  else {// (onChangeScopeClick triggers an animation : checking for readyForAction does not prevent the checkbox change ...)
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   100
    var chckCtrl = CY.get("#"+gEdit['ids']['changeScopeInputId']+" input") ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   101
    var chck = chckCtrl.get('checked') ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   102
    chckCtrl.set('checked', !chck) ; // set it back 
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   103
  }
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
changeScopeFormClick = function() {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   106
  var node = CY.get("#"+gEdit['ids']['currentSelId']) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   107
  if (CY.get("#"+gEdit['ids']['changeScopeInputId']+" input").get('checked'))
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   108
    node.removeClass('displaynone') ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   109
  else
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   110
    node.addClass('displaynone') ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
cancelEditForm = function() {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   113
  if (gEditICommentHost != null) {
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
// DETACH EVENT HANDLERS
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   115
    for (var id in gEdit['handlers']) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   116
      if (gEdit['handlers'][id] != null) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   117
        gEdit['handlers'][id].detach() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   118
        gEdit['handlers'][id] = null ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   119
      }
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   120
    }
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
// REMOVE EDIT FORM NODES FROM ICOMMENT OVERLAY
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   123
    var node = gEditICommentHost['overlay'].get('contentBox').query(".icomment-edit-body") ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   124
    node.get('parentNode').removeChild(node) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   125
    node = gEditICommentHost['overlay'].get('contentBox').query(".icomment-edit-header") ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   126
    node.get('parentNode').removeChild(node) ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
// SHOW ICOMMENT OVERLAY
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   129
    gEditICommentHost.showContent() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   130
    
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   131
    gEditICommentHost = null ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 113
diff changeset
   132
  }
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
}