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);