main.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. //CHARGEMENT DE LA PAGE
  2. function init_plugin_skanman(){
  3. switch($.urlParam('page')){
  4. case 'sort.scanfile':
  5. skanman_scanfile_sort('next');
  6. break;
  7. }
  8. $('#scanfiles').sortable_table({
  9. onSort : skanman_scanfile_search
  10. });
  11. }
  12. function skanman_sort_count(){
  13. $.action({
  14. action: 'skanman_scanfile_sort_count',
  15. },function(response){
  16. if(response.count ==0){
  17. $('.btn-sort').addClass('hidden');
  18. }else{
  19. $('.btn-sort span').text(response.count);
  20. $('.btn-sort').removeClass('hidden');
  21. }
  22. });
  23. }
  24. function skanman_scanfile_sort(direction){
  25. var form = $('#scanfile-form');
  26. var currentId = form.attr('data-id');
  27. $.action({
  28. action: 'skanman_scanfile_sort',
  29. current: currentId,
  30. direction: direction
  31. },function(response){
  32. if(!response.url) return $.message('warning','Plus aucun élément à trier '+(direction == 'next' ? 'après' : 'avant' )+' celui ci');
  33. form.fromJson(response).attr('data-id', response.id);
  34. $('.scanfile-content', form).html(response.file);
  35. $('.file-context:not(.hidden)').remove();
  36. var context = $('.file-context.hidden').clone().removeClass('hidden');
  37. context.html(Mustache.render(context.html(),response));
  38. $('.file-context').after(context);
  39. init_components('#scanfile-form');
  40. });
  41. }
  42. //Enregistrement des configurations
  43. function skanman_setting_save(){
  44. $.action({
  45. action: 'skanman_setting_save',
  46. fields: $('#skanman-setting-form').toJson()
  47. },function(){
  48. $.message('success','Enregistré');
  49. });
  50. }
  51. function init_setting_global_skanman(){
  52. skanman_scan_category_search();
  53. }
  54. /** CATéGORIE DE SCAN **/
  55. //Récuperation d'une liste catégorie de scan dans le tableau #scancategorys
  56. function skanman_scan_category_search(callback,exportMode){
  57. $('#scan-categorys').fill({
  58. action:'skanman_scan_category_search',
  59. export: !exportMode ? false : exportMode
  60. },function(response){
  61. if(callback!=null) callback();
  62. });
  63. }
  64. //Ajout ou modification catégorie de scan
  65. function skanman_scan_category_save(){
  66. var data = $('#scan-category-form').toJson();
  67. $.action(data,function(r){
  68. $('#scan-category-form').attr('data-id','').clear();
  69. skanman_scan_category_search();
  70. $.message('success','Enregistré');
  71. });
  72. }
  73. //Récuperation ou edition catégorie de scan
  74. function skanman_scan_category_edit(element){
  75. var line = $(element).closest('.item-line');
  76. $.action({
  77. action: 'skanman_scan_category_edit',
  78. id: line.attr('data-id')
  79. },function(r){
  80. $('#scan-category-form').fromJson(r);
  81. init_components('#scan-category-form');
  82. $('#scan-category-form').attr('data-id',r.id);
  83. });
  84. }
  85. //Suppression catégorie de scan
  86. function skanman_scan_category_delete(element){
  87. if(!confirm('Êtes vous sûr de vouloir supprimer cet item ?')) return;
  88. var line = $(element).closest('.item-line');
  89. $.action({
  90. action: 'skanman_scan_category_delete',
  91. id: line.attr('data-id')
  92. },function(r){
  93. line.remove();
  94. $.message('info','Item supprimé');
  95. });
  96. }
  97. /** FICHIER **/
  98. //Récuperation d'une liste fichier dans le tableau #scanfiles
  99. function skanman_scanfile_search(callback,exportMode){
  100. var box = new FilterBox('#skanman_scanfile-filters');
  101. if(exportMode) $('.btn-export').addClass('btn-preloader');
  102. skanman_sort_count();
  103. $('#scanfiles').fill({
  104. action:'skanman_scanfile_search',
  105. filters: box.filters(),
  106. sort: $('#scanfiles').sortable_table('get'),
  107. export: !exportMode ? false : exportMode
  108. },function(response){
  109. if(!exportMode) $('.results-count span').text(response.pagination.total);
  110. if(callback!=null) callback();
  111. init_components('#scanfiles');
  112. });
  113. }
  114. //Ajout ou modification fichier
  115. function skanman_scanfile_save(){
  116. if(window.skanmanSave) clearTimeout(window.skanmanSave);
  117. window.skanmanSave = setTimeout(function(){
  118. var data = $('#scanfile-form').toJson();
  119. $.action(data,function(r){
  120. $('#scanfile-form').attr('data-id',r.id);
  121. $.urlParam('id',r.id);
  122. $.message('success','Enregistré');
  123. });
  124. },300);
  125. }
  126. //Suppression fichier
  127. function skanman_scanfile_delete(element){
  128. if(!confirm('Êtes vous sûr de vouloir supprimer cet item ?')) return;
  129. var line = $(element).closest('.item-line');
  130. $.action({
  131. action: 'skanman_scanfile_delete',
  132. id: line.attr('data-id')
  133. },function(r){
  134. line.remove();
  135. $.message('info','Item supprimé');
  136. });
  137. }