APIs

Show:
  1. /**
  2. Resolution selector used to select new campaign width x height
  3. @class ResolutionSelectorView
  4. @constructor
  5. @return {Object} instantiated ResolutionSelectorView
  6. **/
  7. define(['jquery', 'backbone'], function ($, Backbone) {
  8.  
  9. BB.SERVICES.RESOLUTION_SELECTOR_VIEW = 'ResolutionSelectorView';
  10. BB.CONSTS.RESOLUTION = 'RESOLUTION';
  11.  
  12. var ResolutionSelectorView = BB.View.extend({
  13.  
  14. /**
  15. Constructor
  16. @method initialize
  17. **/
  18. initialize: function () {
  19. var self = this;
  20. $(this.el).find(Elements.PREVIOUS).on('click', function (e) {
  21. if (self.options.from == null)
  22. return;
  23. self.options.stackView.slideToPage(self.options.from, 'left');
  24. return false;
  25. });
  26. },
  27.  
  28. /**
  29. Draw the UI for resolution selection
  30. @method render
  31. **/
  32. render: function () {
  33. var self = this;
  34. var screens = '';
  35. var i = 0;
  36.  
  37. $(Elements.CLASS_SELECTED_RESOLUTION, self.el).off('click');
  38. require(['ScreenTemplate'], function () {
  39. self.orientationSelector = BB.comBroker.getService(BB.SERVICES.ORIENTATION_SELECTOR_VIEW);
  40. var orientation = self.orientationSelector.model.get(BB.CONSTS.ORIENTATION);
  41. $(Elements.RESOLUTION_LIST).empty();
  42. for (var screenResolution in ScreenTemplate[orientation]) {
  43. screens += '<a href="#" data-resolution="' + screenResolution + '" class="' + BB.lib.unclass(Elements.CLASS_SELECTED_RESOLUTION) + ' list-group-item">' +
  44. '<input name="resolutionOption" id="resSelector' + i + '" type="radio"/>' +
  45. '<label class="screenResolutionLabel"> ' + screenResolution + ' </label></a>'
  46. i++;
  47. }
  48. $(Elements.RESOLUTION_LIST).append(screens);
  49. $('.selectedResolution', self.el).on('click', function (e) {
  50. var a = ($(e.target).is('a')) ? $(e.target) : $(e.target).closest('a');
  51. $(a).find(':input').prop('checked', true);
  52. self.model.set(BB.CONSTS.RESOLUTION, $(a).data('resolution'))
  53. setTimeout(function () {
  54. self.options.stackView.slideToPage(self.options.to, 'right');
  55. }, 500);
  56. });
  57. });
  58. },
  59.  
  60. /**
  61. Set the campaign's screen resolution
  62. @method setResolution
  63. @param {Number} i_resolution
  64. @return {Number} i_resolution
  65. **/
  66. setResolution: function (i_resolution) {
  67. return this.model.set(BB.CONSTS.RESOLUTION, i_resolution)
  68. },
  69.  
  70. /**
  71. Get the campaign's screen resolution
  72. @method getResolution
  73. @return {Number} i_resolution
  74. **/
  75. getResolution: function () {
  76. return this.model.get(BB.CONSTS.RESOLUTION)
  77. }
  78. });
  79.  
  80. return ResolutionSelectorView;
  81.  
  82. });
  83.  
  84.