mirror of
https://github.com/owncloudarchive/contacts.git
synced 2024-12-12 23:09:15 +01:00
8c3d7ccdba
Remove old combobox user bower for onfontresize Add jcrop + md5 Add files to scrutinizer ignore list Remove misplaced text Selected the right MultiSelect library via bower Move bower dependencies to correct location
107 lines
3.3 KiB
JavaScript
107 lines
3.3 KiB
JavaScript
/*
|
|
* jQuery File Upload Audio Preview Plugin 1.0.3
|
|
* https://github.com/blueimp/jQuery-File-Upload
|
|
*
|
|
* Copyright 2013, Sebastian Tschan
|
|
* https://blueimp.net
|
|
*
|
|
* Licensed under the MIT license:
|
|
* http://www.opensource.org/licenses/MIT
|
|
*/
|
|
|
|
/* jshint nomen:false */
|
|
/* global define, window, document */
|
|
|
|
(function (factory) {
|
|
'use strict';
|
|
if (typeof define === 'function' && define.amd) {
|
|
// Register as an anonymous AMD module:
|
|
define([
|
|
'jquery',
|
|
'load-image',
|
|
'./jquery.fileupload-process'
|
|
], factory);
|
|
} else {
|
|
// Browser globals:
|
|
factory(
|
|
window.jQuery,
|
|
window.loadImage
|
|
);
|
|
}
|
|
}(function ($, loadImage) {
|
|
'use strict';
|
|
|
|
// Prepend to the default processQueue:
|
|
$.blueimp.fileupload.prototype.options.processQueue.unshift(
|
|
{
|
|
action: 'loadAudio',
|
|
// Use the action as prefix for the "@" options:
|
|
prefix: true,
|
|
fileTypes: '@',
|
|
maxFileSize: '@',
|
|
disabled: '@disableAudioPreview'
|
|
},
|
|
{
|
|
action: 'setAudio',
|
|
name: '@audioPreviewName',
|
|
disabled: '@disableAudioPreview'
|
|
}
|
|
);
|
|
|
|
// The File Upload Audio Preview plugin extends the fileupload widget
|
|
// with audio preview functionality:
|
|
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
|
|
|
|
options: {
|
|
// The regular expression for the types of audio files to load,
|
|
// matched against the file type:
|
|
loadAudioFileTypes: /^audio\/.*$/
|
|
},
|
|
|
|
_audioElement: document.createElement('audio'),
|
|
|
|
processActions: {
|
|
|
|
// Loads the audio file given via data.files and data.index
|
|
// as audio element if the browser supports playing it.
|
|
// Accepts the options fileTypes (regular expression)
|
|
// and maxFileSize (integer) to limit the files to load:
|
|
loadAudio: function (data, options) {
|
|
if (options.disabled) {
|
|
return data;
|
|
}
|
|
var file = data.files[data.index],
|
|
url,
|
|
audio;
|
|
if (this._audioElement.canPlayType &&
|
|
this._audioElement.canPlayType(file.type) &&
|
|
($.type(options.maxFileSize) !== 'number' ||
|
|
file.size <= options.maxFileSize) &&
|
|
(!options.fileTypes ||
|
|
options.fileTypes.test(file.type))) {
|
|
url = loadImage.createObjectURL(file);
|
|
if (url) {
|
|
audio = this._audioElement.cloneNode(false);
|
|
audio.src = url;
|
|
audio.controls = true;
|
|
data.audio = audio;
|
|
return data;
|
|
}
|
|
}
|
|
return data;
|
|
},
|
|
|
|
// Sets the audio element as a property of the file object:
|
|
setAudio: function (data, options) {
|
|
if (data.audio && !options.disabled) {
|
|
data.files[data.index][options.name || 'preview'] = data.audio;
|
|
}
|
|
return data;
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}));
|