vendor/assets/javascripts/webshims/shims/mediacapture.js in webshims-rails-1.15.3 vs vendor/assets/javascripts/webshims/shims/mediacapture.js in webshims-rails-1.15.4
- old
+ new
@@ -79,23 +79,29 @@
} else {
hasCamera = -1;
resolve();
}
})();
+ var regImage = /image\/\*|image\/jp/i;
var loadPicker = function(){
webshim.ready('WINDOWLOAD', function(){
webshim.loader.loadList(['mediacapture-picker']);
});
loadPicker = $.noop;
};
var _createPhotoPicker = function(){
if($(this).is('[capture].ws-filereader, .ws-capture') && webshim.implement(this, 'capture')){
- var $wrapper, $customFile;
+ var $wrapper, $customFile, $button, popover;
var $fileinput = $(this);
- var $button = $('<button type="button" class="ws-capture-button">photo</button>');
- var popover = webshim.objectCreate(webshim.wsPopover, {}, $.extend({prepareFor: $button}));
+ var accept = $fileinput.prop('accept') || 'image/*';
+
+ if(!regImage.test(accept)){return;}
+
+ $button = $('<button type="button" class="ws-capture-button" />');
+ popover = webshim.objectCreate(webshim.wsPopover, {}, $.extend({prepareFor: $button}));
+
popover.element.addClass('capture-popover input-picker');
if($fileinput.is('.ws-custom-file > *')){
$customFile = $fileinput.closest('.ws-custom-file');
$wrapper = $('<div class="ws-capture-file" />').insertAfter($customFile);