PageRenderTime 41ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/js/dialogs/listDialog.js

https://bitbucket.org/onehost/respond
JavaScript | 187 lines | 131 code | 52 blank | 4 comment | 13 complexity | 63257e52592f4fba37b4a2e91342483c MD5 | raw file
Possible License(s): MIT
  1. var listDialog = {
  2. editor: null,
  3. dialog: null,
  4. mode: null,
  5. moduleId: null,
  6. init:function(){
  7. listDialog.dialog = $('#listDialog');
  8. $('#addList').click(function(){
  9. var editor = listDialog.editor;
  10. var friendlyId = $('#listPageType').val();
  11. var uniqId = 'list'+ ($(editor).find('.list').length + 1);
  12. var display = $('#listDisplay').val();
  13. var label = $('#listPageType option:selected').text();
  14. label = label.toLowerCase();
  15. if(friendlyId=='-1'){
  16. message.showMessage('error', $('#msg-select-list-error').val());
  17. return;
  18. }
  19. var html = '<div id="'+uniqId+'" data-display="'+display+'" data-pagetype="'+friendlyId+'" class="list"' +
  20. ' data-length="'+$('#listLength').val() + '"' +
  21. ' data-orderby="'+$('#listOrderBy').val() + '"' +
  22. ' data-category="'+$('#listCategory').val() + '"' +
  23. ' data-pageresults="'+$('#listPageResults').is(':checked') + '"' +
  24. ' data-desclength="'+$('#listDescLength').val() + '"' +
  25. ' data-label="' +
  26. label +
  27. '">' +
  28. respond.defaults.elementMenuList +
  29. '<div class="title"><i class="fa fa-bars"></i> List ' +
  30. label +
  31. '</div></div>';
  32. respond.Editor.Append(editor,
  33. html
  34. );
  35. $('#listDialog').modal('hide');
  36. });
  37. $('#updateList').on('click', function(){
  38. var moduleId = listDialog.moduleId;
  39. var editor = listDialog.editor;
  40. var desclength = parseInt($('#listDescLength').val());
  41. $('div#'+moduleId+'.list').attr('data-display', $('#listDisplay').val());
  42. $('div#'+moduleId+'.list').attr('data-length', $('#listLength').val());
  43. $('div#'+moduleId+'.list').attr('data-orderby', $('#listOrderBy').val());
  44. $('div#'+moduleId+'.list').attr('data-category', $('#listCategory').val());
  45. $('div#'+moduleId+'.list').attr('data-pageresults', $('#listPageResults').val());
  46. $('div#'+moduleId+'.list').attr('data-desclength', desclength);
  47. $('#listDialog').modal('hide');
  48. });
  49. // retrieves new categories for page type
  50. $('#listPageType').on('change', function(){
  51. var friendlyId = $(this).val();
  52. contentModel.updateCategoriesWithFriendlyId(friendlyId);
  53. });
  54. // disable paging for calendars
  55. $('#listDisplay').on('change', function(){
  56. var display = $('#listDisplay').val();
  57. if(display=='calendar'){
  58. $(listDialog.dialog).find('.paging').hide();
  59. }
  60. else{
  61. $(listDialog.dialog).find('.paging').show();
  62. }
  63. });
  64. },
  65. show:function(editor, mode, moduleId){ // shows the dialog
  66. listDialog.editor = editor;
  67. listDialog.mode = mode;
  68. listDialog.moduleId = moduleId;
  69. if(mode=='add'){
  70. $('#listDialog .add').show(); // show/hide
  71. $('#listDialog .edit').hide();
  72. $('#listPageTypeBlock').show();
  73. $('#showSelectOptions').show();
  74. $('#selectList li').removeClass('selected');
  75. $('#showCategoryOptions').hide();
  76. $('#showCategoryPageTypes').show();
  77. $("#listPageType")[0].selectedIndex = 0;
  78. var friendlyId = $("#listPageType").val();
  79. contentModel.updateCategoriesWithFriendlyId(friendlyId);
  80. $('#listDisplay').val('list');
  81. $('#listLength').val('10'); // set initial values
  82. $('#listCategory').val('-1');
  83. $('#listOrderBy').val('Name');
  84. $('#listPageResults').val('false');
  85. $('#listDescLength').val(250);
  86. $('#listFeaturedOnly').val(0);
  87. // show paging by default
  88. $(listDialog.dialog).find('.paging').show();
  89. $('#listDialog').modal('show'); // show modal
  90. }
  91. else{
  92. $('#listDialog .edit').show(); // show/hide
  93. $('#listDialog .add').hide();
  94. $('#listPageTypeBlock').hide();
  95. var node = $('div#'+listDialog.moduleId+'.list'); // get reference to list
  96. var display = $(node).attr('data-display');
  97. var pagetype = $(node).attr('data-pagetype');
  98. var type = $(node).attr('data-type');
  99. var category = $(node).attr('data-category')
  100. function setCategory(){
  101. $('#listCategory').val(category);
  102. }
  103. if(pagetype != '' && pagetype != undefined){
  104. contentModel.updateCategoriesWithFriendlyId(pagetype, setCategory);
  105. }
  106. if(type != '' && type != undefined){
  107. contentModel.updateCategoriesWithPageTypeUniqId(type, setCategory);
  108. }
  109. var label = $(node).attr('data-label');
  110. var length = $(node).attr('data-length');
  111. var orderby = $(node).attr('data-orderby');
  112. var pageresults = $(node).attr('data-pageresults');
  113. var desclength = $(node).attr('data-desclength');
  114. if(desclength==undefined){
  115. desclength = 250;
  116. }
  117. $('#listDisplay').val(display); // set current values
  118. $('#listLength').val(length);
  119. $('#listOrderBy').val(orderby);
  120. $('#listPageResults').val(pageresults);
  121. $('#listDescLength').val(desclength);
  122. // hide paging for calendars
  123. if(display=='calendar'){
  124. $(listDialog.dialog).find('.paging').hide();
  125. }
  126. else{
  127. $(listDialog.dialog).find('.paging').show();
  128. }
  129. $('#listDialog').modal('show'); // show modal
  130. }
  131. }
  132. }
  133. $(document).ready(function(){
  134. listDialog.init();
  135. });