瀏覽代碼

Ability to configure `alt` and `title` attributes for images in `initialPreviewConfig` fixes #1336

Kartik Visweswaran 6 年之前
父節點
當前提交
9d7234037b
共有 3 個文件被更改,包括 18 次插入5 次删除
  1. 1 0
      CHANGE.md
  2. 17 5
      js/fileinput.js
  3. 0 0
      js/fileinput.min.js

+ 1 - 0
CHANGE.md

@@ -6,6 +6,7 @@ Change Log: `bootstrap-fileinput`
 **Date:** _under development_
 **Date:** _under development_
 
 
 - (enh #1362, #1337, #1269): AutoOrientImage enhancement for mobile safari.
 - (enh #1362, #1337, #1269): AutoOrientImage enhancement for mobile safari.
+- (enh #1336): Ability to configure `alt` and `title` attributes for images in `initialPreviewConfig`.
 
 
 ## version 4.5.2
 ## version 4.5.2
 
 

+ 17 - 5
js/fileinput.js

@@ -767,8 +767,8 @@
             tGeneric = '{content}\n';
             tGeneric = '{content}\n';
             tStyle = ' {style}';
             tStyle = ' {style}';
             tHtml = '<div class="kv-preview-data file-preview-html" title="{caption}"' + tStyle + '>{data}</div>\n';
             tHtml = '<div class="kv-preview-data file-preview-html" title="{caption}"' + tStyle + '>{data}</div>\n';
-            tImage = '<img src="{data}" class="file-preview-image kv-preview-data" title="{caption}" ' +
-                'alt="{caption}"' + tStyle + '>\n';
+            tImage = '<img src="{data}" class="file-preview-image kv-preview-data" title="{title}" ' +
+                'alt="{alt}"' + tStyle + '>\n';
             tText = '<textarea class="kv-preview-data file-preview-text" title="{caption}" readonly' + tStyle + '>' +
             tText = '<textarea class="kv-preview-data file-preview-text" title="{caption}" readonly' + tStyle + '>' +
                 '{data}</textarea>\n';
                 '{data}</textarea>\n';
             tOffice = '<iframe class="kv-preview-data file-preview-office" ' +
             tOffice = '<iframe class="kv-preview-data file-preview-office" ' +
@@ -1005,9 +1005,10 @@
                     var ind = 'init_' + i, data = self.previewCache.data, config = data.config[i],
                     var ind = 'init_' + i, data = self.previewCache.data, config = data.config[i],
                         content = data.content[i], previewId = self.previewInitId + '-' + ind, out, $tmp, cat, ftr,
                         content = data.content[i], previewId = self.previewInitId + '-' + ind, out, $tmp, cat, ftr,
                         fname, ftype, frameClass, asData = $h.ifSet('previewAsData', config, self.initialPreviewAsData),
                         fname, ftype, frameClass, asData = $h.ifSet('previewAsData', config, self.initialPreviewAsData),
+                        a = {title: config.title, alt: config.alt},
                         parseTemplate = function (cat, dat, fn, ft, id, ftr, ind, fc, t) {
                         parseTemplate = function (cat, dat, fn, ft, id, ftr, ind, fc, t) {
                             fc = ' file-preview-initial ' + $h.SORT_CSS + (fc ? ' ' + fc : '');
                             fc = ' file-preview-initial ' + $h.SORT_CSS + (fc ? ' ' + fc : '');
-                            return self._generatePreviewTemplate(cat, dat, fn, ft, id, false, null, fc, ftr, ind, t);
+                            return self._generatePreviewTemplate(cat, dat, fn, ft, id, false, null, fc, ftr, ind, t, a);
                         };
                         };
                     if (!content) {
                     if (!content) {
                         return '';
                         return '';
@@ -2906,12 +2907,13 @@
             frameClass,
             frameClass,
             foot,
             foot,
             ind,
             ind,
-            templ
+            templ,
+            attrs
         ) {
         ) {
             var self = this, caption = self.slug(fname), prevContent, zoomContent = '', styleAttribs = '',
             var self = this, caption = self.slug(fname), prevContent, zoomContent = '', styleAttribs = '',
                 screenW = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,
                 screenW = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,
                 config = screenW < 400 ? (self.previewSettingsSmall[cat] || self.defaults.previewSettingsSmall[cat]) :
                 config = screenW < 400 ? (self.previewSettingsSmall[cat] || self.defaults.previewSettingsSmall[cat]) :
-                    (self.previewSettings[cat] || self.defaults.previewSettings[cat]),
+                    (self.previewSettings[cat] || self.defaults.previewSettings[cat]), title = caption, alt = caption,
                 footer = foot || self._renderFileFooter(caption, size, 'auto', isError),
                 footer = foot || self._renderFileFooter(caption, size, 'auto', isError),
                 hasIconSetting = self._getPreviewIcon(fname), typeCss = 'type-default',
                 hasIconSetting = self._getPreviewIcon(fname), typeCss = 'type-default',
                 forcePrevIcon = hasIconSetting && self.preferIconicPreview,
                 forcePrevIcon = hasIconSetting && self.preferIconicPreview,
@@ -2944,9 +2946,19 @@
                         }
                         }
                     });
                     });
                 }
                 }
+                if (!$h.isEmpty(attrs)) {
+                    if (attrs.title !== undefined && attrs.title !== null) {
+                        title = attrs.title;
+                    }
+                    if (attrs.alt !== undefined && attrs.alt !== null) {
+                        title = attrs.alt;
+                    }
+                }
                 return tmplt.setTokens({
                 return tmplt.setTokens({
                     'previewId': id,
                     'previewId': id,
                     'caption': caption,
                     'caption': caption,
+                    'title': title,
+                    'alt': alt,
                     'frameClass': css,
                     'frameClass': css,
                     'type': self._getFileType(ftype),
                     'type': self._getFileType(ftype),
                     'fileindex': ind,
                     'fileindex': ind,

File diff suppressed because it is too large
+ 0 - 0
js/fileinput.min.js


Some files were not shown because too many files changed in this diff