[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/webroot/rsrc/js/core/ -> behavior-device.js (source)

   1  /**
   2   * @provides javelin-behavior-device
   3   * @requires javelin-behavior
   4   *           javelin-stratcom
   5   *           javelin-dom
   6   *           javelin-vector
   7   *           javelin-install
   8   */
   9  
  10  JX.install('Device', {
  11    statics : {
  12      _device : null,
  13      recalculate: function() {
  14        var v = JX.Vector.getViewport();
  15        var self = JX.Device;
  16  
  17        var device = 'desktop';
  18        if (v.x <= 768) {
  19          device = 'tablet';
  20        }
  21        if (v.x <= 480) {
  22          device = 'phone';
  23        }
  24  
  25        if (device == self._device) {
  26          return;
  27        }
  28  
  29        self._device = device;
  30  
  31        var e = document.body;
  32        JX.DOM.alterClass(e, 'device-phone', (device == 'phone'));
  33        JX.DOM.alterClass(e, 'device-tablet', (device == 'tablet'));
  34        JX.DOM.alterClass(e, 'device-desktop', (device == 'desktop'));
  35        JX.DOM.alterClass(e, 'device', (device != 'desktop'));
  36  
  37        JX.Stratcom.invoke('phabricator-device-change', null, device);
  38      },
  39  
  40      getDevice : function() {
  41        var self = JX.Device;
  42        if (self._device === null) {
  43          self.recalculate();
  44        }
  45        return self._device;
  46      }
  47    }
  48  });
  49  
  50  JX.behavior('device', function() {
  51    JX.Stratcom.listen('resize', null, JX.Device.recalculate);
  52    JX.Device.recalculate();
  53  });


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1