redegelde

stories ossn

Apr 9th, 2024
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.11 KB | Source Code | 0 0
  1. <div>
  2. <label><?php echo ossn_print('stories:title');?></label>
  3. <input type="text" name="title" multiple />
  4. </div>
  5. <div class="ossn-stories-add-button">
  6. <input type="file" name="images[]" multiple class="hidden" accept=".jpg,.png"/>
  7.  
  8. <button type="button" id="ossn-stories-add-button-inner" class="btn btn-default btn-lg">
  9. <i class="fa fa-copy"></i> <?php echo ossn_print('photo:select'); ?>
  10. </button>
  11. <div class="images"><i class="fa fa-image"></i> <span class="count">0</span></div>
  12. </div>
  13.  
  14. <?php if(!ossn_is_xhr()){ ?>
  15. <div>
  16. <input type="submit" value="<?php echo ossn_print('save');?>" class="btn btn-success" />
  17. </div>
  18. <?php } else { ?>
  19. <input type="submit" id="stories-add-submit" value="<?php echo ossn_print('save');?>" class="btn btn-success hidden" />
  20. <?php } ?>
  21.  
  22. <script>
  23. $(document).ready(function() {
  24. // When the add button is clicked, trigger the file input
  25. $('#ossn-stories-add-button-inner').click(function(e){
  26. e.preventDefault();
  27. $('input[type="file"][name="images[]"]').click();
  28. });
  29.  
  30. // Handle file input change event
  31. $('input[type="file"][name="images[]"]').change(function(){
  32. // Update the displayed file count
  33. updateImageCount(this.files.length);
  34. });
  35.  
  36. // Drag and Drop Events
  37. $('.ossn-stories-add-button').on({
  38. 'dragover dragenter': function(e) {
  39. e.preventDefault();
  40. e.stopPropagation();
  41. $(this).css('border', '3px dashed #009688'); // Highlight to indicate drop is possible
  42. },
  43. 'dragleave': function(e) {
  44. $(this).css('border', '3px dashed #eee'); // Reset border when drag leaves
  45. },
  46. 'drop': function(e) {
  47. e.preventDefault();
  48. $(this).css('border', '3px dashed #eee'); // Reset border on drop
  49. var files = e.originalEvent.dataTransfer.files; // Get dropped files
  50. var count = 0;
  51. // Filter files to only include .jpg and .png
  52. for (var i = 0; i < files.length; i++) {
  53. if (files[i].type === "image/jpeg" || files[i].type === "image/png") {
  54. count++;
  55. }
  56. }
  57. updateImageCount(count); // Update the count of selected files
  58. // Note: You need to separately upload the files via AJAX or submit a form because direct assignment to input:file is not possible.
  59. }
  60. });
  61.  
  62. // Function to update the displayed count of selected files
  63. function updateImageCount(count) {
  64. $('.images .count').text(count); // Display how many files were selected or dropped
  65. }
  66. });
  67. </script>
  68.  
  69.  
  70. <style>
  71. .ossn-stories-add-button{
  72. padding: 20px;
  73. text-align: center;
  74. border: 3px dashed #eee;
  75. margin-top: 10px;
  76. margin-bottom: 10px;
  77. position: relative; /* Voor drag & drop */
  78. overflow: hidden; /* Zorg ervoor dat niets buiten dit element gaat */
  79. }
  80. .ossn-stories-add-button .hidden {
  81. width: 100%;
  82. height: 100%;
  83. position: absolute;
  84. top: 0;
  85. left: 0;
  86. opacity: 0;
  87. cursor: pointer;
  88. }
  89. </style>
  90.  
Advertisement
Add Comment
Please, Sign In to add comment