src/cm/media/js/site/c_text_view_comments.js
author gibus
Mon, 10 Mar 2014 13:24:19 +0100
changeset 600 fda73ac53450
parent 556 69503659fe8f
permissions -rw-r--r--
Use YUI 3.10 (now that conflict with ASCIIMathML is solved).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
CY = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
gPrefs = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
gLayout = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
gDb = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
gIComments = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
gSync = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
gGETValues = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
gConf = {'iCommentLeftPadding':4, 
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    10
    'iCommentThreadPadding':12,
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
        'defaultCommentFormat':'markdown',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
        'sliderFixedMin':.9,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
        'sliderFixedMax':.1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
        'iCommentsInitAlloc':2,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
        'defaultPrefs':{'text':{'style':'text-modern-style'}, 'user' : {'name' : '','email' : ''},'general': {'animduration' : '0.4'},'comments': {'threadpad' : '1'},'layout': {'comments_col_width' : '25'  /* out of 100 */}}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
//available text styles in c-text-styles.css
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
//classname(key) : will be added to #textcontainer, name(value) : the name to display in style dropdown choice"
482
00f61fe2430a Add custom CSS and fonts.
gibus
parents: 474
diff changeset
    20
if (sv_custom_font) {
00f61fe2430a Add custom CSS and fonts.
gibus
parents: 474
diff changeset
    21
  gTextStyles = {'custom':gettext('custom'), 'modern':gettext('modern'), 'classic':gettext('classic'), 'code':gettext('code')};
00f61fe2430a Add custom CSS and fonts.
gibus
parents: 474
diff changeset
    22
}
00f61fe2430a Add custom CSS and fonts.
gibus
parents: 474
diff changeset
    23
else {
00f61fe2430a Add custom CSS and fonts.
gibus
parents: 474
diff changeset
    24
  gTextStyles = {'modern':gettext('modern'), 'classic':gettext('classic'), 'code':gettext('code')};
00f61fe2430a Add custom CSS and fonts.
gibus
parents: 474
diff changeset
    25
}
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
YUI( {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    28
  base :sv_media_url + "/js/lib/yui/" + c_yui_base + "/build/",
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    29
  // filter: '{% if CLIENT_DEBUG %}debug{% else %}raw{% endif %}',
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    30
  // filter :'raw',
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    31
  timeout :10000
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
}).use(
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    33
    "cookie",
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    34
    "json",
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    35
    "overlay",
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    36
    "io-form",
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    37
    "async-queue",
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    38
    "event-mouseenter",   
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    39
    "anim",
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    40
    "collection",
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    41
    function(Y) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    42
          CY = Y;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    43
          
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
            gPrefs = new Preferences() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
            gPrefs.init() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
            gLayout = new Layout() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
            gLayout.init() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    50
        if (sv_withComments) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    51
              gDb = new Db() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    52
              gDb.init() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    53
              
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    54
              gIComments = new IComments() ;                            
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    55
              gIComments.init() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    56
        }
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
            gSync = new Sync() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
            gSync.init() ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    61
      CY.on("domready", onDomReady, this); 
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    63
    });
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
_reinit = function(filterRes) {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    66
  gIComments.hide();
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    67
  gDb.initComments(filterRes['commentIds']);
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    69
  unpaintAllComments();
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    70
  renderCommentScopes();
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    71
  
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    72
  updateFilterResultsCount(filterRes['nbDiscussions'], filterRes['nbComments'], filterRes['nbReplies']);
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
reinit = function(filterGETValues) {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    76
  var filterRes = gDb.computeFilterResults(filterGETValues);
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    77
  _reinit(filterRes);
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
hideAll = function() {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    81
  _reinit({'commentIds':[],'nbDiscussions':0, 'nbComments':0, 'nbReplies':0});
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
updateFilterResultsCount = function(nbDiscussions, nbComments, nbReplies) {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    85
  var r = gDb.getCommentsAndRepliesCounts(true);
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    86
  var nbAllComments = r[0], nbAllReplies = r[1];
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    87
  var detailedResults = (nbComments != 0 || nbReplies != 0) && (nbAllComments != nbComments || nbAllReplies != nbReplies) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    88
  if (gLayout.isInFrame()) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    89
    parent.f_updateFilterCountDetailed(detailedResults) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    90
    parent.f_updateFilterCountResult(nbDiscussions, nbComments, nbReplies, nbAllComments, nbAllReplies);
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    91
  }
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
updateResetFilterResultsCount = function() {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    95
  var counts = gDb.getCommentsAndRepliesCounts(false)
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    96
  var nbComments = counts[0], nbReplies = counts[1];
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    98
  var nbDiscussions = nbComments;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
    99
  updateFilterResultsCount(nbDiscussions, nbComments, nbReplies);
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
// TODO MOVE
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
renderCommentScopes = function() {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   104
  for (var i = 0 ; i < gDb.comments.length ; i++) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   105
    var comment = gDb.comments[i] ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   106
    paintCommentScope(comment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   107
  }
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
} ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
onTextMouseUp = function(e) {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   111
  if (readyForAction()) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   112
    var selection = getSelectionInfo() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   113
    if (selection != null) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   114
      updateICommentFormSelection(selection) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   115
      if (gEditICommentHost != null) {
600
fda73ac53450 Use YUI 3.10 (now that conflict with ASCIIMathML is solved).
gibus
parents: 556
diff changeset
   116
        var modifyScope = CY.one("#"+gEdit['ids']['changeScopeInputId']+" input").get('checked') ;
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   117
        if (modifyScope) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   118
          gEditICommentHost.scrollIntoView() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   119
        }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   120
      }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   121
    }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   122
    else {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   123
      var node = e.target ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   124
      if (node.hasClass('c-c')) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   125
        var elt = CY.Node.getDOMNode(node) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   126
        var commentIds = getCommentIdsFromClasses(elt) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   127
        if (commentIds.length > 0) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   128
          checkForOpenedDialog(null, function() { // will only check for reply
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   129
            gSync.showComments(commentIds, [e.pageX, e.pageY], false) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   130
          }) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   131
        }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   132
      } 
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   133
    }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   134
//// FIRST UPDATE SELECTION IF ANY AND SCROLL TO EDITION IF ANY   
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   135
//    if (isICommentFormVisible() || gEditICommentHost != null) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   136
//      CY.log(selection) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   137
//      updateICommentFormSelection(selection) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   138
//      
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   139
//      if (gEditICommentHost != null) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   140
//        var modifyScope = CY.get("#"+gEdit['ids']['changeScopeInputId']+" input").get('checked') ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   141
//        if (modifyScope) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   142
//          gEditICommentHost.scrollIntoView() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   143
//          didSomething = true ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   144
//        }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   145
//      }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   146
//      if (isICommentFormVisible())
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   147
//      didSomething = true ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   148
//    }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   149
//    else {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   150
//      checkForOpenedDialog(null, function() { // will only check for reply
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   151
//          var node = e.target ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   152
//          if (node.hasClass('c-c')) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   153
//            var elt = CY.Node.getDOMNode(node) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   154
//            var commentIds = getCommentIdsFromClasses(elt) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   155
//            if (commentIds.length > 0) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   156
//              //hideOverlay(gICommentForm) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   157
//              // gIComments.hide() ;20080814 moved it to gSync._showComments
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   158
//              gSync.showComments(commentIds, [e.pageX, e.pageY]) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   159
//            }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   160
//          }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   161
//        }) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   162
//    }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   163
  }
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
} ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
556
69503659fe8f [c_selection.js] If safari_mobile, get current selection from a previously created global variable
Simon Descarpentries <sid@sopinspace.com>
parents: 532
diff changeset
   166
// safari_mobile defined in media/js/client/c_sync.js
69503659fe8f [c_selection.js] If safari_mobile, get current selection from a previously created global variable
Simon Descarpentries <sid@sopinspace.com>
parents: 532
diff changeset
   167
if (safari_mobile)
69503659fe8f [c_selection.js] If safari_mobile, get current selection from a previously created global variable
Simon Descarpentries <sid@sopinspace.com>
parents: 532
diff changeset
   168
	onSelectionChange = onTextMouseUp;
69503659fe8f [c_selection.js] If safari_mobile, get current selection from a previously created global variable
Simon Descarpentries <sid@sopinspace.com>
parents: 532
diff changeset
   169
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
gLastScrollTime = null ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
checkForAlignement = function () {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   172
  var now = (new Date()).getTime() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   173
  if ((gLastScrollTime != null) && (now - gLastScrollTime) > 200) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   174
    positionICommentForm() ;      
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   175
    gLastScrollTime = null ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   176
  }
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
onFrameScroll = function () {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   180
  gLastScrollTime = (new Date()).getTime() ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
browse = function(order, whereto) {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   184
  gSync.browse(order, whereto) ; 
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
initialConnect = function() {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   188
  CY.on("mouseup", onTextMouseUp, "#textcontainer");
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   189
  gTimer = CY.Lang.later(200, this, checkForAlignement, [], true) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   190
  CY.on('scroll', onFrameScroll, window, this, true);
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   191
  CY.on('resize', onFrameScroll, window, this, true);
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
preventLinksInText = function() {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   195
  var interceptLink = function(e) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   196
    var a = e.target;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   197
    var href = null;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   198
    while (a != null && href == null) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   199
      a = a.get('parentNode');
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   200
      href = a.get("href");
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   201
    }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   202
    
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   203
    if (a != null && href != null) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   204
      //alert(window.location) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   205
      var clean_window_location = window.location.href ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   206
      
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   207
      var ind = clean_window_location.indexOf('#') ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   208
      if (ind != -1)
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   209
        clean_window_location = clean_window_location.substring(0, ind) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   210
      
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   211
      if (href.indexOf(clean_window_location) == -1 ) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   212
        window.open(a.get("href"));
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   213
        e.preventDefault(); ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   214
      }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   215
    }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   216
  } ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   218
  CY.all("#textcontainer a").on("click", interceptLink);
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
onDomReady = function(arg1) {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   222
  preventLinksInText();
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   223
  var q1 = new CY.AsyncQueue(); //  
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   224
  // doesn't behave like the doc says :
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   225
  // no timeout -> seems in blocking mode
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   226
  q1.add( {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   227
    fn : function() {
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   229
      if (gLayout.isInComentSite()) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   230
        parent.toInitialSize();
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   231
      }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   232
      if (sv_withComments) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   233
        instanciateICommentForm();
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   234
      }
421
3ddbfa64f596 Adds a table of content.
gibus
parents: 341
diff changeset
   235
      instanciateToc();
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   236
    },
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   237
    timeout :5
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   238
  }, {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   239
    fn : function() {
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   241
      gGETValues = CY.JSON.parse(sv_get_params);
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   242
      
600
fda73ac53450 Use YUI 3.10 (now that conflict with ASCIIMathML is solved).
gibus
parents: 556
diff changeset
   243
      CY.one('#maincontainer').setStyle('display', 'block');
fda73ac53450 Use YUI 3.10 (now that conflict with ASCIIMathML is solved).
gibus
parents: 556
diff changeset
   244
      CY.one('#textcontainer').setStyle('display', 'block');
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   245
      
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   246
      var val = (sv_withComments) ? gPrefs.get('layout','comments_col_width') : 0 ; 
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   247
      var colWidth = sliderValToPx(val) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   248
      gLayout.setLeftColumnWidth(colWidth) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   249
      
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   250
      if (gLayout.isInFrame()) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   251
        parent.f_initFrame();
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   252
        parent.f_layoutFrames();
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   254
        if (sv_withComments) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   255
          parent.f_fillTopToolbar() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   256
          if (hasPerm("can_create_comment"))    
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   257
            parent.$("#add_comment_btn").removeClass('initially_hidden');
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   258
          //parent.enqueueLoadingMsg(); // no more loading message ? TODO
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   259
          
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   260
          parent.f_fillFilterTab() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   261
          parent.f_fillPreferencesTab() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   262
          
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   263
//          parent.f_fillBrowseSection() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   264
          
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   265
          var firstTimeFilterData = CY.JSON.parse(sv_filter_data);
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   266
          parent.f_updateFilterData(firstTimeFilterData);
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   267
          
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   268
          parent.f_setFilterValue(gGETValues) ;         
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   269
        }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   270
        parent.f_fillTextPreferencesTab() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   271
      }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   272
      
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   273
      if (gLayout.isInComentSite()) 
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   274
        parent.$("#c_fullscreen_btn").show();
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   275
      else {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   276
        parent.$("#c_fullscreen_btn").hide();
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   277
      }
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
422
37cd1c72115d Hides button if table of contents is empty.
gibus
parents: 421
diff changeset
   279
      if (gToc['empty'])
37cd1c72115d Hides button if table of contents is empty.
gibus
parents: 421
diff changeset
   280
        parent.$("#c_toc_btn").hide();
37cd1c72115d Hides button if table of contents is empty.
gibus
parents: 421
diff changeset
   281
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   282
    },
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   283
    timeout :5
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   284
  }, {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   285
    fn : function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   286
      if (sv_withComments) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   287
        
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   288
        reinit(gGETValues);
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   289
        initialConnect();
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   290
      }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   291
    },
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   292
    timeout :5
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   293
  }, {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   294
    fn : function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   295
      if (gLayout.isInFrame()) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   296
        parent.f_interfaceUnfreeze() ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   297
        parent.f_removeLoadingMsg();
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   298
      }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   299
      // if there is a comment id in the url display it
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   300
      if ("comment_id_key" in gGETValues) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   301
        var id_key = gGETValues["comment_id_key"] ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   302
        var comment = gDb.getCommentByIdKey(id_key) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   303
        if (comment != null) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   304
          var path = gDb.getPath(comment) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   305
          var topParentComment = path[path.length - 1] ;
329
00df963f91fb When comment_id_key is passed as URL parameter, focus on this comment, instead of the top comment of the related thread.
gibus
parents: 276
diff changeset
   306
          var focusComment = gDb.getCommentByIdKey(id_key);
337
614669e0e313 Add url parameter (comment_op=reply) to open automatically reply to comment form
gibus
parents: 329
diff changeset
   307
          // if comment_op=reply, show reply form
340
9e2b9e568e42 Be more strict by controlling that value ofcomment_op url parameter is set to "reply"
gibus
parents: 337
diff changeset
   308
          if ("comment_op" in gGETValues && gGETValues["comment_op"] == 'reply') {
337
614669e0e313 Add url parameter (comment_op=reply) to open automatically reply to comment form
gibus
parents: 329
diff changeset
   309
            gSync.showFocusSingleComment(topParentComment, focusComment, true) ;
614669e0e313 Add url parameter (comment_op=reply) to open automatically reply to comment form
gibus
parents: 329
diff changeset
   310
          }
614669e0e313 Add url parameter (comment_op=reply) to open automatically reply to comment form
gibus
parents: 329
diff changeset
   311
          else {
614669e0e313 Add url parameter (comment_op=reply) to open automatically reply to comment form
gibus
parents: 329
diff changeset
   312
            gSync.showFocusSingleComment(topParentComment, focusComment, false) ;
614669e0e313 Add url parameter (comment_op=reply) to open automatically reply to comment form
gibus
parents: 329
diff changeset
   313
          }
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   314
        }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   315
      }
337
614669e0e313 Add url parameter (comment_op=reply) to open automatically reply to comment form
gibus
parents: 329
diff changeset
   316
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   317
      // if comment_auto_display: show all comments
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   318
      if ("comments_auto_display" in gGETValues) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   319
        gSync.showAllComments();
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   320
      }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   321
      
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   322
//      else {
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   323
//      gSync.showAllComments() ;// show all
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   324
//      }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   325
    }
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   326
  });
053551f213fb Coding style for js: expand tabs
gibus
parents: 340
diff changeset
   327
  q1.run();
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329