edit_package.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. App.Actions.PACKAGE.enable_unlimited = function (elm, source_elm) {
  2. $(elm).data('checked', true);
  3. $(elm).data('prev_value', $(elm).val()); // save prev value in order to restore if needed
  4. $(elm).val(App.Constants.UNLIM_TRANSLATED_VALUE);
  5. $(elm).attr('disabled', true);
  6. $(source_elm).css('opacity', '1');
  7. };
  8. App.Actions.PACKAGE.disable_unlimited = function (elm, source_elm) {
  9. $(elm).data('checked', false);
  10. if ($(elm).data('prev_value') && $(elm).data('prev_value').trim() != '') {
  11. var prev_value = $(elm).data('prev_value').trim();
  12. $(elm).val(prev_value);
  13. if (App.Helpers.isUnlimitedValue(prev_value)) {
  14. $(elm).val('0');
  15. }
  16. } else {
  17. if (App.Helpers.isUnlimitedValue($(elm).val())) {
  18. $(elm).val('0');
  19. }
  20. }
  21. $(elm).attr('disabled', false);
  22. $(source_elm).css('opacity', '0.5');
  23. };
  24. //
  25. App.Actions.PACKAGE.toggle_unlimited_feature = function (evt) {
  26. var elm = $(evt.target);
  27. var ref = elm.prev('.form-control');
  28. if (!$(ref).data('checked')) {
  29. App.Actions.PACKAGE.enable_unlimited(ref, elm);
  30. } else {
  31. App.Actions.PACKAGE.disable_unlimited(ref, elm);
  32. }
  33. };
  34. App.Listeners.PACKAGE.checkbox_unlimited_feature = function () {
  35. $('.unlim-trigger').on('click', App.Actions.PACKAGE.toggle_unlimited_feature);
  36. };
  37. App.Listeners.PACKAGE.init = function () {
  38. $('.unlim-trigger').each(function (i, elm) {
  39. var ref = $(elm).prev('.form-control');
  40. if (App.Helpers.isUnlimitedValue($(ref).val())) {
  41. App.Actions.PACKAGE.enable_unlimited(ref, elm);
  42. } else {
  43. $(ref).data('prev_value', $(ref).val());
  44. App.Actions.PACKAGE.disable_unlimited(ref, elm);
  45. }
  46. });
  47. };
  48. App.Helpers.isUnlimitedValue = function (value) {
  49. var value = value.trim();
  50. if (value == App.Constants.UNLIM_VALUE || value == App.Constants.UNLIM_TRANSLATED_VALUE) {
  51. return true;
  52. }
  53. return false;
  54. };
  55. //
  56. // Page entry point
  57. // Trigger listeners
  58. App.Listeners.PACKAGE.init();
  59. App.Listeners.PACKAGE.checkbox_unlimited_feature();
  60. $('form[name="v_edit_package"]').on('submit', function (evt) {
  61. $('input:disabled').each(function (i, elm) {
  62. $(elm).attr('disabled', false);
  63. if (App.Helpers.isUnlimitedValue($(elm).val())) {
  64. $(elm).val(App.Constants.UNLIM_VALUE);
  65. }
  66. });
  67. });
  68. $(document).ready(function () {
  69. $('.js-add-ns-button').click(function () {
  70. var n = $('input[name^=v_ns]').length;
  71. if (n < 8) {
  72. var t = $($('input[name=v_ns1]').parents('div')[0]).clone(true, true);
  73. t.find('input').attr({ value: '', name: 'v_ns' + (n + 1) });
  74. t.find('span').show();
  75. $('.js-add-ns').before(t);
  76. }
  77. if (n == 7) {
  78. $('.js-add-ns').addClass('u-hidden');
  79. }
  80. });
  81. $('.js-remove-ns').click(function () {
  82. $(this).parents('div')[0].remove();
  83. $('input[name^=v_ns]').each(function (i, ns) {
  84. $(ns).attr({ name: 'v_ns' + (i + 1) });
  85. i < 2 ? $(ns).parent().find('span').hide() : $(ns).parent().find('span').show();
  86. });
  87. $('.js-add-ns').removeClass('u-hidden');
  88. });
  89. $('input[name^=v_ns]').each(function (i, ns) {
  90. i < 2 ? $(ns).parent().find('span').hide() : $(ns).parent().find('span').show();
  91. });
  92. });