create factory for dropzones

This commit is contained in:
Jakobus Schürz 2023-03-15 04:46:46 +01:00
parent 39f7660a1d
commit ada11a2c67
4 changed files with 5 additions and 43 deletions

View file

@ -1141,7 +1141,7 @@ function photos_content(App $a)
'$qcomment' => $qcomment, '$qcomment' => $qcomment,
'$rand_num' => Crypto::randomDigits(12), '$rand_num' => Crypto::randomDigits(12),
// Dropzone // 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),
]); ]);
} }
} }

View file

@ -242,7 +242,7 @@ class Compose extends BaseModule
]), ]),
// Dropzone // 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),
]); ]);
} }
} }

View file

@ -67,45 +67,5 @@
<script> <script>
Dropzone.autoDiscover = false; Dropzone.autoDiscover = false;
var dropzone{{$id}} = new Dropzone( '#dropzone-{{$id}}', { dzFactory.setupDropzone('#dropzone-{{$id}}', $('#comment-edit-text-{{$id}}'), {{$max_imagesize}});
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())
}
})
});
</script> </script>

View file

@ -140,6 +140,8 @@
{{/if}} {{/if}}
<script type="text/javascript" src="view/theme/frio/js/textedit.js?v={{$smarty.const.FRIENDICA_VERSION}}"></script> <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="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) {{* 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 *}} They are loaded into the html <head> so that js functions can use them *}}