APIs

Show:
  1. ///<reference path="../typings/lite/app_references.d.ts" />
  2. var __extends = (this && this.__extends) || function (d, b) {
  3. for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
  4. function __() { this.constructor = d; }
  5. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  6. };
  7. //GULP_ABSTRACT_END
  8. define(['jquery', 'validator'], function ($, validator) {
  9. //BB.SERVICES['UPGRADE_VIEW'] = 'UpgradeView'
  10. /**
  11. Upgrade to Enterprise view
  12. @class UpgradeView
  13. @constructor
  14. @return {Object} instantiated UpgradeView
  15. **/
  16. var UpgradeView = (function (_super) {
  17. __extends(UpgradeView, _super);
  18. function UpgradeView(options) {
  19. this.m_options = options;
  20. _super.call(this);
  21. }
  22. UpgradeView.prototype.initialize = function () {
  23. var self = this;
  24. this.id = self.m_options.el;
  25. this.$el = $(this.id);
  26. this.el = this.$el.get(0);
  27. //BB.comBroker.setService(BB.SERVICES['UPGRADE_VIEW'], self);
  28. $(Elements.CLASS_START_UPGRADE).on('click', function (e) {
  29. self.validateAndUpgrade();
  30. e.stopImmediatePropagation();
  31. return false;
  32. });
  33. };
  34. UpgradeView.prototype.detectCardType = function (number) {
  35. var re = {
  36. electron: /^(4026|417500|4405|4508|4844|4913|4917)\d+$/,
  37. maestro: /^(5018|5020|5038|5612|5893|6304|6759|6761|6762|6763|0604|6390)\d+$/,
  38. dankort: /^(5019)\d+$/,
  39. interpayment: /^(636)\d+$/,
  40. unionpay: /^(62|88)\d+$/,
  41. visa: /^4[0-9]{12}(?:[0-9]{3})?$/,
  42. mastercard: /^5[1-5][0-9]{14}$/,
  43. amex: /^3[47][0-9]{13}$/,
  44. diners: /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/,
  45. discover: /^6(?:011|5[0-9]{2})[0-9]{12}$/,
  46. jcb: /^(?:2131|1800|35\d{3})\d{11}$/
  47. };
  48. if (re.electron.test(number)) {
  49. return 'ELECTRON';
  50. }
  51. else if (re.maestro.test(number)) {
  52. return 'MAESTRO';
  53. }
  54. else if (re.dankort.test(number)) {
  55. return 'DANKORT';
  56. }
  57. else if (re.interpayment.test(number)) {
  58. return 'INTERPAYMENT';
  59. }
  60. else if (re.unionpay.test(number)) {
  61. return 'UNIONPAY';
  62. }
  63. else if (re.visa.test(number)) {
  64. return 'VISA';
  65. }
  66. else if (re.mastercard.test(number)) {
  67. return 'MASTERCARD';
  68. }
  69. else if (re.amex.test(number)) {
  70. return 'AMEX';
  71. }
  72. else if (re.diners.test(number)) {
  73. return 'DINERS';
  74. }
  75. else if (re.discover.test(number)) {
  76. return 'DISCOVER';
  77. }
  78. else if (re.jcb.test(number)) {
  79. return 'JCB';
  80. }
  81. else {
  82. return undefined;
  83. }
  84. };
  85. UpgradeView.prototype.showMessage = function (i_title, i_msg, i_status) {
  86. bootbox.hideAll();
  87. bootbox.dialog({
  88. closeButton: true,
  89. title: i_title,
  90. message: "<br/><br/><br/>\n <center>\n " + (i_status == true ? '<i style="color: green; font-size: 4em; padding:30px" class="fa fa-thumbs-up"></i>'
  91. : '<i style="color: red; font-size: 4em; padding: 30px" class="fa fa-thumbs-down"></i>') + "\n <h4>" + i_msg + "</h4>\n </center>\n <br/><br/><br/>\n "
  92. });
  93. };
  94. UpgradeView.prototype.validateAndUpgrade = function () {
  95. var self = this;
  96. var errors = [];
  97. var resellerName = $(Elements.UPG_USERNAME).val();
  98. var resellerPass = $(Elements.UPG_PASS).val();
  99. var resellerPass2 = $(Elements.UPG_PASS2).val();
  100. var userName = BB.Pepper.getUserData().userName;
  101. var userPass = BB.Pepper.getUserData().userPass;
  102. var credit = $(Elements.UPG_CREDIT).val();
  103. var card = self.detectCardType(credit);
  104. var cv = $(Elements.UPG_CV).val();
  105. var year = $(Elements.UPG_YEAR).val().length == 2 ? '20' + $(Elements.UPG_YEAR).val() : $(Elements.UPG_YEAR).val();
  106. var month = $(Elements.UPG_MONTH).val().replace(/^0+/, '');
  107. switch (card) {
  108. case 'VISA':
  109. {
  110. card = '0';
  111. break;
  112. }
  113. case 'MASTERCARD':
  114. {
  115. card = '1';
  116. break;
  117. }
  118. case 'DISCOVER':
  119. {
  120. card = '2';
  121. break;
  122. }
  123. case 'AMEX':
  124. {
  125. card = '3';
  126. break;
  127. }
  128. default:
  129. {
  130. card = '-1';
  131. }
  132. }
  133. if (resellerName.length < 4)
  134. errors.push('Enterprise user name is invalid');
  135. if (card == '-1')
  136. errors.push('Credit card type not supported');
  137. if (!validator.isCreditCard(credit))
  138. errors.push('Credit card number is invalid');
  139. if (!validator.isInt(cv))
  140. errors.push('Credit card security code is invalid');
  141. if (!validator.isInt(year))
  142. errors.push('Credit card year is invalid');
  143. if (!validator.isInt(month))
  144. errors.push('credit card month is invalid, must be a number like 1 for Jan');
  145. if (resellerPass.length < 4 || resellerPass != resellerPass2)
  146. errors.push('Password is invalid');
  147. if (errors.length > 0) {
  148. bootbox.alert(errors.join('<br/>'));
  149. }
  150. else {
  151. bootbox.dialog({
  152. closeButton: false,
  153. title: "Please wait, validating...",
  154. message: "<br/><br/><br/>\n <center>\n <img src=\"./_assets/preload6.gif\"></span>\n </center>\n <br/><br/><br/>\n "
  155. });
  156. var url = "https://galaxy.signage.me/WebService/UpgradeToResellerAccount.ashx?userName=" + userName + "&userPassword=" + userPass + "&resellerUserName=" + resellerName + "&resellerPassword=" + resellerPass + "&cardType=" + card + "&cardNumber=" + credit + "&expirationMonth=" + month + "&expirationYear=" + year + "&securityCode=" + cv + "&callback=?";
  157. $.getJSON(url, function (e) {
  158. var msg = '';
  159. console.log('Credit card status ' + e.result);
  160. switch (e.result) {
  161. case -4:
  162. {
  163. msg = 'This user is already under a subscription account';
  164. self.showMessage(e.status, msg, false);
  165. return;
  166. }
  167. case -5:
  168. {
  169. msg = 'Enterprise use name is taken, please pick a different name';
  170. self.showMessage(e.status, msg, false);
  171. return;
  172. }
  173. case -3:
  174. {
  175. }
  176. case -2:
  177. {
  178. }
  179. case -1:
  180. {
  181. msg = 'Problem with credit card, please use a different card';
  182. self.showMessage(e.status, msg, false);
  183. return;
  184. }
  185. default:
  186. {
  187. if (e.result > 100) {
  188. bootbox.hideAll();
  189. $('.modal').modal('hide');
  190. //var snippet = `Congratulations, be sure to checkout the <a href="http://www.digitalsignage.com/_html/video_tutorials.html?videoNumber=liteUpgrade" target="_blank">video tutorial</a> on how to install your newly available components from the mediaSTORE`;
  191. var snippet = "Congratulations, be sure to go to the mediaSTORE and install your newly available components...";
  192. self.showMessage('success', snippet, true);
  193. return;
  194. }
  195. else {
  196. msg = 'Problem with credit card, please use a different card';
  197. self.showMessage(e.status, msg, false);
  198. }
  199. }
  200. }
  201. })
  202. .done(function (e) {
  203. })
  204. .fail(function (e) {
  205. self.showMessage(e.status, 'Could not complete, something went wrong on server side', false);
  206. })
  207. .always(function () {
  208. });
  209. }
  210. };
  211. return UpgradeView;
  212. }(Backbone.View));
  213. return UpgradeView;
  214. });
  215.