create factory for dropzones
authorJakobus Schürz <jakobus.schuerz@schuerz.at>
Wed, 15 Mar 2023 03:46:46 +0000 (04:46 +0100)
committerJakobus Schürz <jakobus.schuerz@schuerz.at>
Sun, 19 Mar 2023 17:52:45 +0000 (18:52 +0100)
mod/photos.php
src/Module/Item/Compose.php
view/theme/frio/templates/comment_item.tpl
view/theme/frio/templates/head.tpl

index d7d806b..06c0d19 100644 (file)
@@ -1141,7 +1141,7 @@ function photos_content(App $a)
                                                '$qcomment' => $qcomment,
                                                '$rand_num' => Crypto::randomDigits(12),
                                                // Dropzone
-                                               '$max_imagesize' => floor(Strings::getBytesFromShorthand(DI::config()->get('system', 'maximagesize')) / 1000000),
+                                               '$max_imagesize' => floor(\Friendica\Util\Strings::getBytesFromShorthand(DI::config()->get('system', 'maximagesize')) / 1000000),
                                        ]);
                                }
                        }
index d1744b9..2f60eeb 100644 (file)
@@ -242,7 +242,7 @@ class Compose extends BaseModule
                        ]),
 
                        // Dropzone
-                       '$max_imagesize' => floor(Strings::getBytesFromShorthand(DI::config()->get('system', 'maximagesize')) / 1000000),
+                       '$max_imagesize' => floor(\Friendica\Util\Strings::getBytesFromShorthand(DI::config()->get('system', 'maximagesize')) / 1000000),
                ]);
        }
 }
index 00ca396..c4fcb9f 100644 (file)
 
 <script>
        Dropzone.autoDiscover = false;
-       var dropzone{{$id}} = new Dropzone( '#dropzone-{{$id}}', {
-               paramName: 'userfile', // The name that will be used to transfer the file
-               maxFilesize: {{$max_imagesize}}, // MB
-               url: '/media/photo/upload?response=url&album=',
-               accept: function(file, done) {
-                       done();
-               },
-               init: function() {
-                       this.on('success', function(file, serverResponse) {
-                               var target = $('#comment-edit-text-{{$id}}')
-                               var resp = $(serverResponse).find('div#content').text()
-                               if (target.setRangeText) {
-                                       //if setRangeText function is supported by current browser
-                                       target.setRangeText(' ' + $.trim(resp) + ' ')
-                               } else {
-                                       target.focus()
-                                       document.execCommand('insertText', false /*no UI*/, ' ' + $.trim(resp) + ' ');
-                               }
-                       });
-                       this.on('complete', function(file) {
-                               // Remove just uploaded file from dropzone, makes interface more clear.
-                               // Image can be seen in posting-preview
-                               // We need preview to get optical feedback about upload-progress.
-                               // you see success, when the bb-code link for image is inserted
-                               setTimeout(function(){
-                                       dropzone{{$id}}.removeFile(file);
-                               },5000);
-                       });
-               },
-       });
-       
-       // Enables Copy&Paste for this dropzone
-       $('#dropzone-{{$id}}').on('paste', function(event){
-               const items = (event.clipboardData || event.originalEvent.clipboardData).items;
-               items.forEach((item) => {
-                       if (item.kind === 'file') {
-                               // adds the file to your dropzone instance
-                               dropzone{{$id}}.addFile(item.getAsFile())
-                       }
-               })
-       });
+       dzFactory.setupDropzone('#dropzone-{{$id}}', $('#comment-edit-text-{{$id}}'), {{$max_imagesize}}); 
 </script>
index 478f190..13104aa 100644 (file)
        {{/if}}
        <script type="text/javascript" src="view/theme/frio/js/textedit.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
        <script type="text/javascript" src="vendor/enyo/dropzone/dist/min/dropzone.min.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
+       <script type="text/javascript" src="view/js/dropzone-factory.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script>
+       <script type="text/javascript"> var dzFactory = new DzFactory();</script>
 
        {{* Include the strings which are needed for some js functions (e.g. translation)
 They are loaded into the html <head> so that js functions can use them *}}