main.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. //CHARGEMENT DE LA PAGE
  2. function init_plugin_example(){
  3. switch($.urlParam('page')){
  4. default:
  5. break;
  6. }
  7. $('#contacts').sortable_table({
  8. onSort : contact_search
  9. });
  10. }
  11. /**
  12. *
  13. * QUICKFORM
  14. *
  15. */
  16. function example_quickform_buttons(){
  17. $('.quickform-modal .modal-footer').append('<div class="btn btn-success" onclick="contact_save(contact_submit_quickform);"><i class="fas fa-check"></i> Ajouter</div>');
  18. }
  19. // Callback du quickform on save
  20. function contact_submit_quickform(){
  21. //do something
  22. $('#quickform-modal').modal('hide');
  23. }
  24. //GESTION CONTACT
  25. function contact_search(){
  26. $('#contacts').fill({
  27. action:"contact_search",
  28. filters : $('#filters').filters(),
  29. sort : $('#contacts').sortable_table('get')
  30. });
  31. }
  32. //Sauvegarde
  33. function contact_save(cb){
  34. var data = $('#contactForm').toJson();
  35. data.id = $('#contactForm').attr('data-id');
  36. data.avatar = $('#picture')[0].files[0];
  37. $.action(data,function(r){
  38. if(cb) cb();
  39. $('#contactForm').attr('data-id',r.id);
  40. $.message('success','Enregistré');
  41. });
  42. }
  43. //Suppression
  44. function contact_delete(element){
  45. if(!confirm('Êtes vous sûr de vouloir supprimer cet item ?')) return;
  46. var line = $(element).closest('tr');
  47. $.action({
  48. action : 'contact_delete',
  49. id : line.attr('data-id')
  50. },function(r){
  51. line.remove();
  52. $.message('info','Element supprimé');
  53. });
  54. }
  55. //Suppression de document
  56. function contact_delete_document(element){
  57. if(!confirm("Êtes-vous sûr de vouloir supprimer ce fichier ?")) return;
  58. var line = $(element).closest('li');
  59. $.action({
  60. action : 'contact_delete_document',
  61. path : line.attr('data-path')
  62. },function(r){
  63. line.remove();
  64. $.message('info','Element supprimé');
  65. });
  66. }
  67. //Ajout de document
  68. function contact_add_document(files){
  69. var form = $('#contactForm');
  70. var contactId = form.attr('data-id');
  71. $.action({
  72. action : 'contact_add_document',
  73. id: contactId,
  74. files : files
  75. }, function(r){
  76. form.attr('data-id', r.id);
  77. $.each(r.files, function(i, file){
  78. var line = $('li[data-path="'+file.oldPath+'"]', form);
  79. line.attr('data-path', file.relative);
  80. line.find('a').attr('href', file.url);
  81. line.find('i.pointer').attr('onclick', 'contact_delete_document(this)');
  82. $('[data-type="dropzone"] input:not(:visible)', form).val('');
  83. $.message('success', 'Fichier "'+file.name+'" sauvegardé');
  84. });
  85. });
  86. }
  87. //Suppression de l'avatar
  88. function contact_avatar_delete(element){
  89. if(!confirm('Êtes vous sûr de vouloir supprimer l\'image ?')) return;
  90. var imageComposer = $(element).parent().find("input[data-type='image']");
  91. $.action({
  92. action: 'contact_avatar_delete',
  93. id: $('#contactForm').attr('data-id')
  94. }, function(r){
  95. imageComposer.wrap('<form>').closest('form').get(0).reset();
  96. imageComposer.unwrap();
  97. $(element).next('img').attr('src', $(imageComposer).attr('data-default-src'));
  98. $(element).remove();
  99. });
  100. }
  101. /* EXPORT MODELE */
  102. function contact_export_callback(){
  103. console.log('Callback custom après chargement du modal');
  104. setTimeout(function(){
  105. $('#export-modal .cb-custom-btn').remove();
  106. $('#export-modal .modal-footer').prepend('<div class="btn btn-primary mr-auto cb-custom-btn"><i class="fas fa-check"></i> Bouton ajouté avec le callback custom</div>');
  107. },0);
  108. }