1
- angular . module ( "templates" , [ ] ) . run ( [ "$templateCache" , function ( $templateCache ) { $templateCache . put ( "src/templates/angular-schema-form-base64-file-upload.html" , "<div class=\"angular-schema-form--base64-file\" ng-class=\"{\'has-error\': form.disableErrorState !== true && hasError(), \'has-success\': form.disableSuccessState !== true && hasSuccess(), \'has-feedback\': form.feedback !== false}\">\n <label class=\"control-label\" ng-hide=\"form.notitle\">{{form.title}}</label>\n <div base64-file-upload=\"form\" sf-field-model schema-validate=\"form\">\n <label>\n <input type=\"file\" class=\"base64-file--input\" style=\"display:none;\" ng-disabled=\"hasFile\"/>\n <div class=\"base64-file--drop-area\" ng-class=\"{\'file-hovering\': dropAreaHover, \'has-file\': hasFile}\">\n\n <div class=\"base64-file--file\" ng-show=\"hasFile\">\n <div class=\"base64-file--file-preview\"\n ng-style=\"{\'background-image\': isImage(file) ? \'url(\' + file.src + \')\': \'\'}\">\n <span ng-show=\"!isImage(file)\">{{file.ext}}</span>\n </div>\n <div class=\"base64-file--file-name\">{{file.name}}</div>\n <div class=\"base64-file--file-size\">{{file.humanSize}}</div>\n <div class=\"base64-file--file-remove\" ng-click=\"removeFile($event)\">✕</div>\n </div>\n <span ng-hide=\"hasFile\" class=\"base64-file--drop-area-description\">{{form.placeholder || dropText}}</span>\n </div>\n </label>\n </div>\n\n <span class=\"help-block\" sf-message=\"form.description\"></span>\n</div>\n" ) ; } ] ) ;
1
+ angular . module ( "templates" , [ ] ) . run ( [ "$templateCache" , function ( $templateCache ) { $templateCache . put ( "src/templates/angular-schema-form-base64-file-upload.html" , "<div class=\"angular-schema-form--base64-file\" ng-class=\"{\'has-error\': form.disableErrorState !== true && hasError(), \'has-success\': form.disableSuccessState !== true && hasSuccess(), \'has-feedback\': form.feedback !== false}\">\n <label class=\"control-label\" ng-hide=\"form.notitle\">{{form.title}}</label>\n <div base64-file-upload=\"form\" sf-field-model schema-validate=\"form\">\n <input type=\"file\" class=\"base64-file--input\" style=\"visibility:hidden;position:absolute;top:0;left:0;\" ng-disabled=\"hasFile\"/>\n <button class=\"base64-file--drop-area\" ng-class=\"{\'file-hovering\': dropAreaHover, \'has-file\': hasFile}\">\n\n <div class=\"base64-file--file\" ng-show=\"hasFile\">\n <div class=\"base64-file--file-preview\"\n ng-style=\"{\'background-image\': isImage(file) ? \'url(\' + file.src + \')\': \'\'}\">\n <span ng-show=\"!isImage(file)\">{{file.ext}}</span>\n </div>\n <div class=\"base64-file--file-name\">{{file.name}}</div>\n <div class=\"base64-file--file-size\">{{file.humanSize}}</div>\n <div class=\"base64-file--file-remove\" ng-click=\"removeFile($event)\">✕</div>\n </div>\n <span ng-hide=\"hasFile\" class=\"base64-file--drop-area-description\">{{form.placeholder || dropText}}</span>\n </button>\n </div>\n\n <span class=\"help-block\" sf-message=\"form.description\"></span>\n</div>\n" ) ; } ] ) ;
2
2
angular . module ( 'angularSchemaFormBase64FileUpload' , [
3
3
'schemaForm' ,
4
4
'templates'
@@ -134,7 +134,13 @@ angular.module('angularSchemaFormBase64FileUpload').directive('base64FileUpload'
134
134
getFile ( e . target . files [ 0 ] ) ;
135
135
} ) ;
136
136
137
- var dropArea = document . getElementsByClassName ( 'base64-file--drop-area' ) [ 0 ] ;
137
+ var dropArea = element . find ( '.base64-file--drop-area' ) [ 0 ] ;
138
+ var inputField = element . find ( '.base64-file--input' ) [ 0 ] ;
139
+
140
+ var clickArea = function ( e ) {
141
+ e . stopPropagation ( ) ;
142
+ inputField . click ( ) ;
143
+ }
138
144
139
145
var dragOver = function ( e ) {
140
146
e . preventDefault ( ) ;
@@ -157,12 +163,16 @@ angular.module('angularSchemaFormBase64FileUpload').directive('base64FileUpload'
157
163
getFile ( e . dataTransfer . files [ 0 ] ) ;
158
164
}
159
165
166
+ dropArea . addEventListener ( "click" , clickArea , false ) ;
167
+ dropArea . addEventListener ( "touchstart" , clickArea , false ) ;
160
168
dropArea . addEventListener ( "dragenter" , dragOver , false ) ;
161
169
dropArea . addEventListener ( "dragleave" , dragLeave , false ) ;
162
170
dropArea . addEventListener ( "dragover" , dragOver , false ) ;
163
171
dropArea . addEventListener ( "drop" , drop , false ) ;
164
172
165
173
scope . $on ( '$destroy' , function ( ) {
174
+ dropArea . removeEventListener ( "click" , clickArea , false ) ;
175
+ dropArea . removeEventListener ( "touchstart" , clickArea , false ) ;
166
176
dropArea . removeEventListener ( "dragenter" , dragOver , false ) ;
167
177
dropArea . removeEventListener ( "dragleave" , dragLeave , false ) ;
168
178
dropArea . removeEventListener ( "dragover" , dragOver , false ) ;
0 commit comments