dom-refresh.js

Maintainability

76.17

Lines of code

36

Created with Raphaël 2.1.002550751002016-7-102016-6-102016-5-112016-4-112016-3-122016-2-112016-1-12

2016-8-9
Maintainability: 76.17

Created with Raphaël 2.1.00102030402016-7-102016-6-102016-5-112016-4-112016-3-122016-2-112016-1-12

2016-8-9
Lines of Code: 36

Difficulty

9.75

Estimated Errors

0.11

Function weight

By Complexity

Created with Raphaël 2.1.0triggerDOMRefresh4

By SLOC

Created with Raphaël 2.1.0<anonymous>29
1
// DOM Refresh
2
// -----------
3
 
4
// Monitor a view's state, and after it has been rendered and shown
5
// in the DOM, trigger a "dom:refresh" event every time it is
6
// re-rendered.
7
 
8
Marionette.MonitorDOMRefresh = function(view) {
9
  if (view._isDomRefreshMonitored) { return; }
10
  view._isDomRefreshMonitored = true;
11
 
12
  // track when the view has been shown in the DOM,
13
  // using a Marionette.Region (or by other means of triggering "show")
14
  function handleShow() {
15
    view._isShown = true;
16
    triggerDOMRefresh();
17
  }
18
 
19
  // track when the view has been rendered
20
  function handleRender() {
21
    view._isRendered = true;
22
    triggerDOMRefresh();
23
  }
24
 
25
  // Trigger the "dom:refresh" event and corresponding "onDomRefresh" method
26
  function triggerDOMRefresh() {
27
    if (view._isShown && view._isRendered && Marionette.isNodeAttached(view.el)) {
28
      Marionette.triggerMethodOn(view, 'dom:refresh', view);
29
    }
30
  }
31
 
32
  view.on({
33
    show: handleShow,
34
    render: handleRender
35
  });
36
};