From 70c1d91aa2036f05edb2ba99a3caf0294b2ed482 Mon Sep 17 00:00:00 2001 From: ruibaby Date: Sun, 16 Sep 2018 16:21:29 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E6=94=AF=E6=8C=81i18n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/i18n/messages.properties | 45 ++++++++---- .../resources/i18n/messages_en_US.properties | 53 +++++++++----- .../resources/i18n/messages_zh_CN.properties | 45 ++++++++---- .../plugins/fileinput/fileinput.min.css | 6 +- .../static/plugins/fileinput/fileinput.min.js | 9 ++- .../templates/admin/admin_comment.ftl | 2 +- .../resources/templates/admin/admin_index.ftl | 16 ++--- .../templates/admin/admin_page_gallery.ftl | 24 +++---- .../templates/admin/admin_page_link.ftl | 69 ++++++++++--------- .../templates/admin/module/_header.ftl | 4 +- .../templates/admin/module/_macro.ftl | 4 +- .../admin/widget/_attachment-select-post.ftl | 2 + .../admin/widget/_attachment-select.ftl | 2 + .../templates/admin/widget/_theme-install.ftl | 4 +- 14 files changed, 172 insertions(+), 113 deletions(-) diff --git a/src/main/resources/i18n/messages.properties b/src/main/resources/i18n/messages.properties index 2a7d8b837..d72a5e507 100644 --- a/src/main/resources/i18n/messages.properties +++ b/src/main/resources/i18n/messages.properties @@ -52,6 +52,8 @@ admin.module.header.a.title.turn-to-front = 跳转到前台 admin.module.header.btn.view-all-comments = 查看所有评论 admin.module.header.btn.profile = 个人资料 admin.module.header.btn.loginout = 退出登录 +admin.module.header.new-comments-before = 你有 +admin.module.header.new-comments-after = 条新评论 # 后台首页 admin.index.title = 仪表盘 @@ -70,13 +72,22 @@ admin.index.widgets.post-lastest = 最新文章 admin.index.widgets.comment-lastest = 最新评论 admin.index.widgets.logs-lastest = 最新日志 admin.index.widgets.btn.clear-logs = 清空日志 +admin.index.widgets.text.all-logs = 所有日志 +admin.index.blog-data.title = 博客数据 +admin.index.blog-data.days-count-before = 已经运行 +admin.index.blog-data.days-count-after = 天了。 admin.index.blog-data.motto = 加油!不要因为走的太远,而忘了当初为什么出发。 admin.index.blog-data.during = 在此期间: -admin.index.blog-data.posts-count-text = 累计发表了 {0} 篇文章。 -admin.index.blog-data.tags-count-text = 累计创建了 {0} 个标签。 -admin.index.blog-data.comments-count-text = 累计获得了 {0} 条评论。 -admin.index.blog-data.links-count-text = 累计添加了 {0} 个友链。 -admin.index.blog-data.views-count-text = 文章总访问 {0} 次。 +admin.index.blog-data.posts-count-before = 累计发表了 +admin.index.blog-data.posts-count-after = 篇文章。 +admin.index.blog-data.tags-count-before = 累计创建了 +admin.index.blog-data.tags-count-after = 个标签。 +admin.index.blog-data.comments-count-before = 累计获得了 +admin.index.blog-data.comments-count-after = 条评论。 +admin.index.blog-data.links-count-before = 累计添加了 +admin.index.blog-data.links-count-after = 个友链。 +admin.index.blog-data.views-count-before = 文章总访问 +admin.index.blog-data.views-count-after = 次。 # logs page admin.logs.th.log-id = 日志编号 @@ -248,6 +259,7 @@ admin.pages.gallery = 图库页面 # 图库页面管理 admin.pages.galleries.title = 图库页面 +admin.pages.galleries.text.add-gallery = 添加图片 admin.pages.galleries.form.gallery-name = 图片名称: admin.pages.galleries.form.gallery-desc = 图片描述: admin.pages.galleries.form.gallery-date = 图片日期: @@ -258,6 +270,16 @@ admin.pages.galleries.modal.title = 图片详情 # 友情链接页面管理 admin.pages.links.title = 友情链接 +admin.pages.links.text.edit-link = 修改友情链接 +admin.pages.links.text.add-link = 添加友情链接 +admin.pages.links.text.all-links = 所有友情链接 +admin.pages.links.form.link-name = 网站名称 +admin.pages.links.form.link-name-tips = 好友的网站名称 +admin.pages.links.form.link-url = 网址 +admin.pages.links.form.link-url-tips = *需要加上http://或https:// +admin.pages.links.form.link-pic-tips = *LOGO链接地址,需要加上http://或https://,在部分主题可显示 +admin.pages.links.form.link-desc = 描述 +admin.pages.links.form.link-desc-tips = *网站的描述,部分主题可显示 # 页面编辑页面 admin.pages.edit.title = 页面编辑 @@ -319,6 +341,7 @@ admin.themes.modal.install.form.remote-address = 远程地址: admin.themes.modal.install.form.theme-name = 主题名称: admin.themes.modal.install.btn.install = 安装 admin.themes.modal.install.btn.installing = 安装中... +admin.themes.modal.install.plugin.text = 拖拽主题压缩包到这里,仅支持Zip格式 # 关于页面 admin.halo.title = 关于Halo @@ -348,12 +371,10 @@ common.btn.define-add = 确定添加 common.btn.editing = 正在修改 common.btn.modify = 修改 common.btn.choose = 选择 - common.radio.display = 显示 common.radio.hide = 隐藏 common.radio.enable = 启用 common.radio.disable = 禁用 - common.select.yes = 是 common.select.no = 否 @@ -380,6 +401,7 @@ common.th.file-size = 文件大小 common.th.file-type = 文件类型 common.th.sort = 排序 common.th.icon = 图标 +common.th.site = 网址 # 状态 common.status.published = 已发布 @@ -387,6 +409,7 @@ common.status.checking = 待审核 common.status.recycle-bin = 回收站 common.status.draft = 草 稿 +# 文本 common.text.no-data = 暂无数据 common.text.tips = 提示 common.text.tips.to-recycle-bin = 确定移到回收站? @@ -425,16 +448,13 @@ admin.editor.select.tag.default = 选择添加 code.admin.login.success = 登录成功! code.admin.login.disabled = 已禁止登录,请10分钟后再试! code.admin.login.failed = 登录失败,你还有{0}次机会。 - code.admin.attachment.upload-success = 上传成功! code.admin.attachment.upload-failed = 上传失败! - code.admin.backup.backup-failed = 备份失败! code.admin.backup.backup-success = 备份成功! code.admin.backup.no-email = 博主邮箱没有配置! code.admin.backup.email-success= 邮件发送成功! code.admin.backup.have-new-backup = 有新的备份! - code.admin.theme.change-success = 主题已设置为{0} code.admin.theme.change-failed = 主题设置失败! code.admin.theme.upload-failed = 主题上传失败! @@ -444,24 +464,19 @@ code.admin.theme.no-git = 没有安装Git! code.admin.theme.clone-theme-failed = 克隆主题失败: code.admin.theme.update-theme-failed = 更新主题失败: code.admin.theme.edit.no-content = 模板不能为空! - code.admin.user.old-password-error = 原密码错误! code.admin.user.update-password-failed = 修改密码失败! code.admin.user.update-password-success = 修改密码成功! - code.admin.post.push-to-baidu-success = 推送成功! code.admin.post.push-to-baidu-failed = 推送失败! code.admin.post.no-baidu-token = 百度推送Token为空! - code.admin.common.delete-success = 删除成功! code.admin.common.delete-failed = 删除失败! code.admin.common.no-post = 发信邮箱没有配置! - code.admin.common.save-success = 保存成功! code.admin.common.save-failed = 保存失败! code.admin.common.update-success = 更新成功! code.admin.common.update-failed = 更新失败! - code.admin.common.edit-success = 修改成功! code.admin.common.edit-failed = 修改失败! code.admin.common.info-no-complete = 请输入完整信息! diff --git a/src/main/resources/i18n/messages_en_US.properties b/src/main/resources/i18n/messages_en_US.properties index 34642adb3..4adbc26f6 100644 --- a/src/main/resources/i18n/messages_en_US.properties +++ b/src/main/resources/i18n/messages_en_US.properties @@ -52,6 +52,8 @@ admin.module.header.a.title.turn-to-front = Turn to front admin.module.header.btn.view-all-comments = View all comments admin.module.header.btn.profile = Profile admin.module.header.btn.loginout = Login out +admin.module.header.new-comments-before = You have +admin.module.header.new-comments-after = new comments # admin index admin.index.title = Dashboard @@ -70,13 +72,22 @@ admin.index.widgets.post-lastest = Newest posts admin.index.widgets.comment-lastest = Newest comments admin.index.widgets.logs-lastest = Newest logs admin.index.widgets.btn.clear-logs = Clear logs +admin.index.widgets.text.all-logs = All logs +admin.index.blog-data.title = Blog data +admin.index.blog-data.days-count-before = Has been running for 5 days +admin.index.blog-data.days-count-after = days. admin.index.blog-data.motto = Come on! Don’t forget why you left because you’re too far away. admin.index.blog-data.during = During this period: -admin.index.blog-data.posts-count-text = A total of %s posts has been published. -admin.index.blog-data.tags-count-text = A total of {0} tags has been created. -admin.index.blog-data.comments-count-text = A total of {0} comments was received. -admin.index.blog-data.links-count-text = A total of {0} friend chains have been added. -admin.index.blog-data.views-count-text = The posts was visited {0} times in total. +admin.index.blog-data.posts-count-before = Accumulated +admin.index.blog-data.posts-count-after = articles. +admin.index.blog-data.tags-count-before = Cumulatively created +admin.index.blog-data.tags-count-after = tags. +admin.index.blog-data.comments-count-before = Accumulated +admin.index.blog-data.comments-count-after = comments. +admin.index.blog-data.links-count-before = Added +admin.index.blog-data.links-count-after = links cumulatively. +admin.index.blog-data.views-count-before = Article received +admin.index.blog-data.views-count-after = total visits. # logs page admin.logs.th.log-id = Log number @@ -147,7 +158,7 @@ admin.menus.form.menu-target-blank = Blank admin.setting.title = Blog Settings admin.setting.bread.setting = Settings admin.setting.tab.general = General -admin.setting.tab.seo = Seo +admin.setting.tab.seo = SEO admin.setting.tab.post = Post admin.setting.tab.comment = Comment admin.setting.tab.attach = Attachment @@ -248,6 +259,7 @@ admin.pages.gallery = Gallery page # pages gallery page admin.pages.galleries.title = Galleries page +admin.pages.galleries.text.add-gallery = Add Picture admin.pages.galleries.form.gallery-name = Picture name: admin.pages.galleries.form.gallery-desc = Picture description: admin.pages.galleries.form.gallery-date = Picture date: @@ -258,6 +270,16 @@ admin.pages.galleries.modal.title = Picture details # pages link page admin.pages.links.title = Links page +admin.pages.links.text.edit-link = Edit link +admin.pages.links.text.add-link = Add link +admin.pages.links.text.all-links = All links +admin.pages.links.form.link-name = Website name +admin.pages.links.form.link-name-tips = Friend's website name +admin.pages.links.form.link-url = Website address +admin.pages.links.form.link-url-tips = *Requires http:// or https:// +admin.pages.links.form.link-pic-tips = *LOGO link address, need to add http:// or https://, can be displayed in some topics +admin.pages.links.form.link-desc = Description +admin.pages.links.form.link-desc-tips = *The description of the website, some themes can be displayed # pages edit page admin.pages.edit.title = Page edit @@ -319,6 +341,7 @@ admin.themes.modal.install.form.remote-address = Remote address: admin.themes.modal.install.form.theme-name = Theme name: admin.themes.modal.install.btn.install = Install admin.themes.modal.install.btn.installing = Installing... +admin.themes.modal.install.plugin.text = Drag and drop the theme zip package here, only supports Zip format # about page admin.halo.title = About Halo @@ -348,12 +371,10 @@ common.btn.define-add = OK common.btn.editing = Editing common.btn.modify = Modify common.btn.choose = Choose - common.radio.display = Display common.radio.hide = Hide common.radio.enable = Enable common.radio.disable = Disable - common.select.yes = Yes common.select.no = No @@ -380,6 +401,7 @@ common.th.file-size = File size common.th.file-type = File type common.th.sort = Sort common.th.icon = Icon +common.th.site = Site address # status common.status.published = Published @@ -387,6 +409,7 @@ common.status.checking = Pending Review common.status.recycle-bin = Recycle bin common.status.draft = Draft +# text common.text.no-data = No data common.text.tips = Tips common.text.tips.to-recycle-bin = Are you sure to move to the recycle bin? @@ -399,14 +422,14 @@ common.js.all-attachment = All attachments common.js.info-no-complete = Please enter full information! # Page info -admin.pageinfo.text.no = ( -admin.pageinfo.text.page = ) +admin.pageinfo.text.no = 「 +admin.pageinfo.text.page = 」 admin.pageinfo.btn.first = Home admin.pageinfo.btn.last = Last admin.pageinfo.btn.pre = Previous admin.pageinfo.btn.next = Next -# 文章/页面编辑 +# post/page edit admin.editor.btn.attachs = Attachment library admin.editor.form.url = Permalink: admin.editor.text.push = Release @@ -425,16 +448,13 @@ admin.editor.select.tag.default = Choose to add code.admin.login.success = Login successfully! code.admin.login.disabled = Login is forbidden, please try again in 10 minutes! code.admin.login.failed = Login failed, you still have {0} chances. - code.admin.attachment.upload-success = Uploaded successfully! code.admin.attachment.upload-failed = Uploaded failed! - code.admin.backup.backup-failed = Backup Failed! code.admin.backup.backup-success = Backup successfully! code.admin.backup.no-email = The blogger's mailbox is not configured! code.admin.backup.email-success= Mail sent successfully! code.admin.backup.have-new-backup = Have a new backup! - code.admin.theme.change-success = Theme has been set to {0} code.admin.theme.change-failed = Theme settings failed! code.admin.theme.upload-failed = Theme upload failed! @@ -444,24 +464,19 @@ code.admin.theme.no-git = No Git installed! code.admin.theme.clone-theme-failed = Cloning the theme failed: code.admin.theme.update-theme-failed = Update theme failed: code.admin.theme.edit.no-content = Template can't be empty! - code.admin.user.old-password-error = The original password is wrong! code.admin.user.update-password-failed = Failed to change password! code.admin.user.update-password-success = Password has been updated! - code.admin.post.push-to-baidu-success = Push successful! code.admin.post.push-to-baidu-failed = Push failed! code.admin.post.no-baidu-token = Baidu push Token is empty! - code.admin.common.delete-success = Deleted successfully! code.admin.common.delete-failed = Deleted Failed! code.admin.common.no-post = The mailing mailbox is not configured! - code.admin.common.save-success = Saved successfully! code.admin.common.save-failed = Save failed! code.admin.common.update-success = Updated successfully! code.admin.common.update-failed = Update failed! - code.admin.common.edit-success = Successfully modified! code.admin.common.edit-failed = Fail to update! code.admin.common.info-no-complete = Please enter full information! diff --git a/src/main/resources/i18n/messages_zh_CN.properties b/src/main/resources/i18n/messages_zh_CN.properties index 2a7d8b837..d72a5e507 100644 --- a/src/main/resources/i18n/messages_zh_CN.properties +++ b/src/main/resources/i18n/messages_zh_CN.properties @@ -52,6 +52,8 @@ admin.module.header.a.title.turn-to-front = 跳转到前台 admin.module.header.btn.view-all-comments = 查看所有评论 admin.module.header.btn.profile = 个人资料 admin.module.header.btn.loginout = 退出登录 +admin.module.header.new-comments-before = 你有 +admin.module.header.new-comments-after = 条新评论 # 后台首页 admin.index.title = 仪表盘 @@ -70,13 +72,22 @@ admin.index.widgets.post-lastest = 最新文章 admin.index.widgets.comment-lastest = 最新评论 admin.index.widgets.logs-lastest = 最新日志 admin.index.widgets.btn.clear-logs = 清空日志 +admin.index.widgets.text.all-logs = 所有日志 +admin.index.blog-data.title = 博客数据 +admin.index.blog-data.days-count-before = 已经运行 +admin.index.blog-data.days-count-after = 天了。 admin.index.blog-data.motto = 加油!不要因为走的太远,而忘了当初为什么出发。 admin.index.blog-data.during = 在此期间: -admin.index.blog-data.posts-count-text = 累计发表了 {0} 篇文章。 -admin.index.blog-data.tags-count-text = 累计创建了 {0} 个标签。 -admin.index.blog-data.comments-count-text = 累计获得了 {0} 条评论。 -admin.index.blog-data.links-count-text = 累计添加了 {0} 个友链。 -admin.index.blog-data.views-count-text = 文章总访问 {0} 次。 +admin.index.blog-data.posts-count-before = 累计发表了 +admin.index.blog-data.posts-count-after = 篇文章。 +admin.index.blog-data.tags-count-before = 累计创建了 +admin.index.blog-data.tags-count-after = 个标签。 +admin.index.blog-data.comments-count-before = 累计获得了 +admin.index.blog-data.comments-count-after = 条评论。 +admin.index.blog-data.links-count-before = 累计添加了 +admin.index.blog-data.links-count-after = 个友链。 +admin.index.blog-data.views-count-before = 文章总访问 +admin.index.blog-data.views-count-after = 次。 # logs page admin.logs.th.log-id = 日志编号 @@ -248,6 +259,7 @@ admin.pages.gallery = 图库页面 # 图库页面管理 admin.pages.galleries.title = 图库页面 +admin.pages.galleries.text.add-gallery = 添加图片 admin.pages.galleries.form.gallery-name = 图片名称: admin.pages.galleries.form.gallery-desc = 图片描述: admin.pages.galleries.form.gallery-date = 图片日期: @@ -258,6 +270,16 @@ admin.pages.galleries.modal.title = 图片详情 # 友情链接页面管理 admin.pages.links.title = 友情链接 +admin.pages.links.text.edit-link = 修改友情链接 +admin.pages.links.text.add-link = 添加友情链接 +admin.pages.links.text.all-links = 所有友情链接 +admin.pages.links.form.link-name = 网站名称 +admin.pages.links.form.link-name-tips = 好友的网站名称 +admin.pages.links.form.link-url = 网址 +admin.pages.links.form.link-url-tips = *需要加上http://或https:// +admin.pages.links.form.link-pic-tips = *LOGO链接地址,需要加上http://或https://,在部分主题可显示 +admin.pages.links.form.link-desc = 描述 +admin.pages.links.form.link-desc-tips = *网站的描述,部分主题可显示 # 页面编辑页面 admin.pages.edit.title = 页面编辑 @@ -319,6 +341,7 @@ admin.themes.modal.install.form.remote-address = 远程地址: admin.themes.modal.install.form.theme-name = 主题名称: admin.themes.modal.install.btn.install = 安装 admin.themes.modal.install.btn.installing = 安装中... +admin.themes.modal.install.plugin.text = 拖拽主题压缩包到这里,仅支持Zip格式 # 关于页面 admin.halo.title = 关于Halo @@ -348,12 +371,10 @@ common.btn.define-add = 确定添加 common.btn.editing = 正在修改 common.btn.modify = 修改 common.btn.choose = 选择 - common.radio.display = 显示 common.radio.hide = 隐藏 common.radio.enable = 启用 common.radio.disable = 禁用 - common.select.yes = 是 common.select.no = 否 @@ -380,6 +401,7 @@ common.th.file-size = 文件大小 common.th.file-type = 文件类型 common.th.sort = 排序 common.th.icon = 图标 +common.th.site = 网址 # 状态 common.status.published = 已发布 @@ -387,6 +409,7 @@ common.status.checking = 待审核 common.status.recycle-bin = 回收站 common.status.draft = 草 稿 +# 文本 common.text.no-data = 暂无数据 common.text.tips = 提示 common.text.tips.to-recycle-bin = 确定移到回收站? @@ -425,16 +448,13 @@ admin.editor.select.tag.default = 选择添加 code.admin.login.success = 登录成功! code.admin.login.disabled = 已禁止登录,请10分钟后再试! code.admin.login.failed = 登录失败,你还有{0}次机会。 - code.admin.attachment.upload-success = 上传成功! code.admin.attachment.upload-failed = 上传失败! - code.admin.backup.backup-failed = 备份失败! code.admin.backup.backup-success = 备份成功! code.admin.backup.no-email = 博主邮箱没有配置! code.admin.backup.email-success= 邮件发送成功! code.admin.backup.have-new-backup = 有新的备份! - code.admin.theme.change-success = 主题已设置为{0} code.admin.theme.change-failed = 主题设置失败! code.admin.theme.upload-failed = 主题上传失败! @@ -444,24 +464,19 @@ code.admin.theme.no-git = 没有安装Git! code.admin.theme.clone-theme-failed = 克隆主题失败: code.admin.theme.update-theme-failed = 更新主题失败: code.admin.theme.edit.no-content = 模板不能为空! - code.admin.user.old-password-error = 原密码错误! code.admin.user.update-password-failed = 修改密码失败! code.admin.user.update-password-success = 修改密码成功! - code.admin.post.push-to-baidu-success = 推送成功! code.admin.post.push-to-baidu-failed = 推送失败! code.admin.post.no-baidu-token = 百度推送Token为空! - code.admin.common.delete-success = 删除成功! code.admin.common.delete-failed = 删除失败! code.admin.common.no-post = 发信邮箱没有配置! - code.admin.common.save-success = 保存成功! code.admin.common.save-failed = 保存失败! code.admin.common.update-success = 更新成功! code.admin.common.update-failed = 更新失败! - code.admin.common.edit-success = 修改成功! code.admin.common.edit-failed = 修改失败! code.admin.common.info-no-complete = 请输入完整信息! diff --git a/src/main/resources/static/plugins/fileinput/fileinput.min.css b/src/main/resources/static/plugins/fileinput/fileinput.min.css index cfe53ec99..a47e5ddbf 100755 --- a/src/main/resources/static/plugins/fileinput/fileinput.min.css +++ b/src/main/resources/static/plugins/fileinput/fileinput.min.css @@ -1,12 +1,12 @@ /*! - * bootstrap-fileinput v4.4.6 + * bootstrap-fileinput v4.5.0 * http://plugins.krajee.com/file-input * * Krajee default styling for bootstrap-fileinput. * * Author: Kartik Visweswaran - * Copyright: 2014 - 2017, Kartik Visweswaran, Krajee.com + * Copyright: 2014 - 2018, Kartik Visweswaran, Krajee.com * * Licensed under the BSD 3-Clause * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md - */.file-loading input[type=file],input[type=file].file-loading{width:0;height:0}.file-caption-icon,.file-input-ajax-new .fileinput-remove-button,.file-input-ajax-new .fileinput-upload-button,.file-input-ajax-new .no-browse .input-group-btn,.file-input-new .close,.file-input-new .file-preview,.file-input-new .fileinput-remove-button,.file-input-new .fileinput-upload-button,.file-input-new .glyphicon-file,.file-input-new .no-browse .input-group-btn,.file-zoom-dialog .modal-header:after,.file-zoom-dialog .modal-header:before,.hide-content .kv-file-content,.kv-hidden{display:none}.btn-file input[type=file],.file-caption-icon,.file-preview .fileinput-remove,.file-zoom-dialog .btn-navigate,.file-zoom-dialog .floating-buttons,.krajee-default .file-thumb-progress{position:absolute}.btn-file,.file-caption,.file-loading:before,.file-preview,.file-zoom-dialog .modal-dialog,.krajee-default .file-thumbnail-footer,.krajee-default.file-preview-frame{position:relative}.file-error-message pre,.file-error-message ul,.krajee-default .file-actions,.krajee-default .file-other-error{text-align:left}.file-error-message pre,.file-error-message ul{margin:0}.krajee-default .file-drag-handle,.krajee-default .file-upload-indicator{float:left;margin:5px 0 -5px;width:16px;height:16px}.krajee-default .file-thumb-progress .progress,.krajee-default .file-thumb-progress .progress-bar{height:11px;font-size:9px;line-height:10px}.krajee-default .file-caption-info,.krajee-default .file-size-info{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:160px;height:15px;margin:auto}.file-zoom-content>.file-object.type-flash,.file-zoom-content>.file-object.type-image,.file-zoom-content>.file-object.type-video{max-width:100%;max-height:100%;width:auto}.file-zoom-content>.file-object.type-flash,.file-zoom-content>.file-object.type-video{height:100%}.file-zoom-content>.file-object.type-default,.file-zoom-content>.file-object.type-html,.file-zoom-content>.file-object.type-pdf,.file-zoom-content>.file-object.type-text{width:100%}.rotate-2{transform:rotateY(180deg)}.rotate-3{transform:rotate(180deg)}.rotate-4{transform:rotate(180deg) rotateY(180deg)}.rotate-5{transform:rotate(270deg) rotateY(180deg)}.rotate-6{transform:rotate(90deg)}.rotate-7{transform:rotate(90deg) rotateY(180deg)}.rotate-8{transform:rotate(270deg)}.file-loading:before{content:" Loading...";display:inline-block;padding-left:20px;line-height:16px;font-size:13px;font-variant:small-caps;color:#999;background:url(loading.gif) top left no-repeat}.file-object{margin:0 0 -5px;padding:0}.btn-file{overflow:hidden}.btn-file input[type=file]{top:0;right:0;min-width:100%;min-height:100%;text-align:right;opacity:0;background:none;cursor:inherit;display:block}.btn-file ::-ms-browse{font-size:10000px;width:100%;height:100%}.file-caption .file-caption-name{width:100%;margin:0;padding:0;box-shadow:none;border:none;background:0 0;outline:0}.file-caption.icon-visible .file-caption-icon{display:inline-block}.file-caption.icon-visible .file-caption-name{padding-left:15px}.file-caption-icon{line-height:1;left:8px}.file-error-message{color:#a94442;background-color:#f2dede;margin:5px;border:1px solid #ebccd1;border-radius:4px;padding:15px}.file-error-message pre{margin:5px 0}.file-caption-disabled{background-color:#eee;cursor:not-allowed;opacity:1}.file-preview{border-radius:5px;border:1px solid #ddd;padding:8px;width:100%;margin-bottom:5px}.file-preview .btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.file-preview .fileinput-remove{top:1px;right:1px;line-height:10px}.file-preview .clickable{cursor:pointer}.file-preview-image{font:40px Impact,Charcoal,sans-serif;color:green}.krajee-default.file-preview-frame{margin:8px;border:1px solid #ddd;box-shadow:1px 1px 5px 0 #a2958a;padding:6px;float:left;text-align:center}.krajee-default.file-preview-frame .kv-file-content{width:213px;height:160px}.krajee-default.file-preview-frame .file-thumbnail-footer{height:70px}.krajee-default.file-preview-frame:not(.file-preview-error):hover{box-shadow:3px 3px 5px 0 #333}.krajee-default .file-preview-text{display:block;color:#428bca;border:1px solid #ddd;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;outline:0;padding:8px;resize:none}.krajee-default .file-preview-html{border:1px solid #ddd;padding:8px;overflow:auto}.krajee-default .file-other-icon{font-size:6em}.krajee-default .file-footer-buttons{float:right}.krajee-default .file-footer-caption{display:block;text-align:center;padding-top:4px;font-size:11px;color:#777;margin-bottom:15px}.krajee-default .file-preview-error{opacity:.65;box-shadow:none}.krajee-default .file-thumb-progress{height:11px;top:37px;left:0;right:0}.krajee-default.kvsortable-ghost{background:#e1edf7;border:2px solid #a1abff}.krajee-default .file-preview-other:hover{opacity:.8}.krajee-default .file-preview-frame:not(.file-preview-error) .file-footer-caption:hover{color:#000}.kv-upload-progress .progress{height:20px;line-height:20px;margin:10px 0;overflow:hidden}.kv-upload-progress .progress-bar{height:20px;line-height:20px}.file-zoom-dialog .file-other-icon{font-size:22em;font-size:50vmin}.file-zoom-dialog .modal-dialog{width:auto}.file-zoom-dialog .modal-header{display:flex;align-items:center;justify-content:space-between}.file-zoom-dialog .btn-navigate{padding:0;margin:0;background:0 0;text-decoration:none;outline:0;opacity:.7;top:45%;font-size:4em;color:#1c94c4}.file-zoom-dialog .btn-navigate:not([disabled]):hover{outline:0;box-shadow:none;opacity:.6}.file-zoom-dialog .floating-buttons{top:5px;right:10px}.file-zoom-dialog .btn-navigate[disabled]{opacity:.3}.file-zoom-dialog .btn-prev{left:1px}.file-zoom-dialog .btn-next{right:1px}.file-zoom-dialog .kv-zoom-title{font-weight:300;color:#999;max-width:50%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.file-input-ajax-new .no-browse .form-control,.file-input-new .no-browse .form-control{border-top-right-radius:4px;border-bottom-right-radius:4px}.file-caption-main{width:100%}.file-thumb-loading{background:url(loading.gif) center center no-repeat content-box!important}.file-drop-zone{border:1px dashed #aaa;border-radius:4px;height:100%;text-align:center;vertical-align:middle;margin:12px 15px 12px 12px;padding:5px}.file-drop-zone.clickable:hover{border:2px dashed #999}.file-drop-zone.clickable:focus{border:2px solid #5acde2}.file-drop-zone .file-preview-thumbnails{cursor:default}.file-drop-zone-title{color:#aaa;font-size:1.6em;padding:85px 10px;cursor:default}.file-highlighted{border:2px dashed #999!important;background-color:#eee}.file-uploading{background:url(loading-sm.gif) center bottom 10px no-repeat;opacity:.65}@media (min-width:576px){.file-zoom-dialog .modal-dialog{max-width:500px}}@media (min-width:992px){.file-zoom-dialog .modal-lg{max-width:800px}}.file-zoom-fullscreen.modal{position:fixed;top:0;right:0;bottom:0;left:0}.file-zoom-fullscreen .modal-dialog{position:fixed;margin:0;padding:0;width:100%;height:100%;max-width:100%;max-height:100%}.file-zoom-fullscreen .modal-content{border-radius:0;box-shadow:none}.file-zoom-fullscreen .modal-body{overflow-y:auto}.btn-kv{display:inline-block;text-align:center;width:30px;height:30px;line-height:30px;padding:0;font-size:90%;border-radius:.2rem}.floating-buttons{z-index:3000}.floating-buttons .btn-kv{margin-left:3px;z-index:3000}.file-zoom-content{height:480px;text-align:center}.file-zoom-content .file-preview-image,.file-zoom-content .file-preview-video{max-height:100%}.file-zoom-content .is-portrait-gt4{margin-top:60px}.file-zoom-content>.file-object.type-image{height:auto;min-height:inherit}.file-zoom-content>.file-object.type-audio{width:auto;height:30px}@media screen and (max-width:767px){.file-preview-thumbnails{display:flex;justify-content:center;align-items:center;flex-direction:column}.file-zoom-dialog .modal-header{flex-direction:column}}@media screen and (max-width:350px){.krajee-default.file-preview-frame .kv-file-content{width:160px}}.file-loading[dir=rtl]:before{background:url(loading.gif) top right no-repeat;padding-left:0;padding-right:20px}.file-sortable .file-drag-handle{cursor:move;opacity:1}.file-sortable .file-drag-handle:hover{opacity:.7}.clickable .file-drop-zone-title{cursor:pointer}.kv-zoom-actions .btn-kv{margin-left:3px}.file-preview-initial.sortable-chosen{background-color:#d9edf7} \ No newline at end of file + */.btn-file input[type=file],.file-caption-icon,.file-no-browse,.file-preview .fileinput-remove,.file-zoom-dialog .btn-navigate,.file-zoom-dialog .floating-buttons,.krajee-default .file-thumb-progress{position:absolute}.file-loading input[type=file],input[type=file].file-loading{width:0;height:0}.file-no-browse{left:50%;bottom:20%;width:1px;height:1px;font-size:0;opacity:0;border:none;background:0 0;outline:0;box-shadow:none}.file-caption-icon,.file-input-ajax-new .fileinput-remove-button,.file-input-ajax-new .fileinput-upload-button,.file-input-ajax-new .no-browse .input-group-btn,.file-input-new .close,.file-input-new .file-preview,.file-input-new .fileinput-remove-button,.file-input-new .fileinput-upload-button,.file-input-new .glyphicon-file,.file-input-new .no-browse .input-group-btn,.file-zoom-dialog .modal-header:after,.file-zoom-dialog .modal-header:before,.hide-content .kv-file-content,.kv-hidden{display:none}.btn-file,.file-caption,.file-input,.file-loading:before,.file-preview,.file-zoom-dialog .modal-dialog,.krajee-default .file-thumbnail-footer,.krajee-default.file-preview-frame{position:relative}.file-error-message pre,.file-error-message ul,.krajee-default .file-actions,.krajee-default .file-other-error{text-align:left}.file-error-message pre,.file-error-message ul{margin:0}.krajee-default .file-drag-handle,.krajee-default .file-upload-indicator{float:left;margin:5px 0 -5px;width:16px;height:16px}.krajee-default .file-thumb-progress .progress,.krajee-default .file-thumb-progress .progress-bar{height:11px;font-family:Verdana,Helvetica,sans-serif;font-size:9px}.krajee-default .file-caption-info,.krajee-default .file-size-info{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:160px;height:15px;margin:auto}.file-zoom-content>.file-object.type-flash,.file-zoom-content>.file-object.type-image,.file-zoom-content>.file-object.type-video{max-width:100%;max-height:100%;width:auto}.file-zoom-content>.file-object.type-flash,.file-zoom-content>.file-object.type-video{height:100%}.file-zoom-content>.file-object.type-default,.file-zoom-content>.file-object.type-html,.file-zoom-content>.file-object.type-pdf,.file-zoom-content>.file-object.type-text{width:100%}.file-loading:before{content:" Loading...";display:inline-block;padding-left:20px;line-height:16px;font-size:13px;font-variant:small-caps;color:#999;background:url(../img/loading.gif) top left no-repeat}.file-object{margin:0 0 -5px;padding:0}.btn-file{overflow:hidden}.btn-file input[type=file]{top:0;left:0;min-width:100%;min-height:100%;text-align:right;opacity:0;background:none;cursor:inherit;display:block}.btn-file ::-ms-browse{font-size:10000px;width:100%;height:100%}.file-caption .file-caption-name{width:100%;margin:0;padding:0;box-shadow:none;border:none;background:0 0;outline:0}.file-caption.icon-visible .file-caption-icon{display:inline-block}.file-caption.icon-visible .file-caption-name{padding-left:15px}.file-caption-icon{left:8px}.file-error-message{color:#a94442;background-color:#f2dede;margin:5px;border:1px solid #ebccd1;border-radius:4px;padding:15px}.file-error-message pre{margin:5px 0}.file-caption-disabled{background-color:#eee;cursor:not-allowed;opacity:1}.file-preview{border-radius:5px;border:1px solid #ddd;padding:8px;width:100%;margin-bottom:5px}.file-preview .btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.file-preview .fileinput-remove{top:1px;right:1px;line-height:10px}.file-preview .clickable{cursor:pointer}.file-preview-image{font:40px Impact,Charcoal,sans-serif;color:green}.krajee-default.file-preview-frame{margin:8px;border:1px solid #ddd;box-shadow:1px 1px 5px 0 #a2958a;padding:6px;float:left;text-align:center}.krajee-default.file-preview-frame .kv-file-content{width:213px;height:160px}.krajee-default.file-preview-frame .kv-file-content.kv-pdf-rendered{width:400px}.krajee-default.file-preview-frame .file-thumbnail-footer{height:70px}.krajee-default.file-preview-frame:not(.file-preview-error):hover{box-shadow:3px 3px 5px 0 #333}.krajee-default .file-preview-text{display:block;color:#428bca;border:1px solid #ddd;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;outline:0;padding:8px;resize:none}.krajee-default .file-preview-html{border:1px solid #ddd;padding:8px;overflow:auto}.krajee-default .file-other-icon{font-size:6em}.krajee-default .file-footer-buttons{float:right}.krajee-default .file-footer-caption{display:block;text-align:center;padding-top:4px;font-size:11px;color:#777;margin-bottom:15px}.krajee-default .file-preview-error{opacity:.65;box-shadow:none}.krajee-default .file-thumb-progress{height:11px;top:37px;left:0;right:0}.krajee-default.kvsortable-ghost{background:#e1edf7;border:2px solid #a1abff}.krajee-default .file-preview-other:hover{opacity:.8}.krajee-default .file-preview-frame:not(.file-preview-error) .file-footer-caption:hover{color:#000}.kv-upload-progress .progress{height:20px;margin:10px 0;overflow:hidden}.kv-upload-progress .progress-bar{height:20px;font-family:Verdana,Helvetica,sans-serif}.file-zoom-dialog .file-other-icon{font-size:22em;font-size:50vmin}.file-zoom-dialog .modal-dialog{width:auto}.file-zoom-dialog .modal-header{display:flex;align-items:center;justify-content:space-between}.file-zoom-dialog .btn-navigate{padding:0;margin:0;background:0 0;text-decoration:none;outline:0;opacity:.7;top:45%;font-size:4em;color:#1c94c4}.file-zoom-dialog .btn-navigate:not([disabled]):hover{outline:0;box-shadow:none;opacity:.6}.file-zoom-dialog .floating-buttons{top:5px;right:10px}.file-zoom-dialog .btn-navigate[disabled]{opacity:.3}.file-zoom-dialog .btn-prev{left:1px}.file-zoom-dialog .btn-next{right:1px}.file-zoom-dialog .kv-zoom-title{font-weight:300;color:#999;max-width:50%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.file-input-ajax-new .no-browse .form-control,.file-input-new .no-browse .form-control{border-top-right-radius:4px;border-bottom-right-radius:4px}.file-caption-main{width:100%}.file-thumb-loading{background:url(../img/loading.gif) center center no-repeat content-box!important}.file-drop-zone{border:1px dashed #aaa;border-radius:4px;height:100%;text-align:center;vertical-align:middle;margin:12px 15px 12px 12px;padding:5px}.file-drop-zone.clickable:hover{border:2px dashed #999}.file-drop-zone.clickable:focus{border:2px solid #5acde2}.file-drop-zone .file-preview-thumbnails{cursor:default}.file-drop-zone-title{color:#aaa;font-size:1.6em;padding:85px 10px;cursor:default}.file-highlighted{border:2px dashed #999!important;background-color:#eee}.file-uploading{background:url(../img/loading-sm.gif) center bottom 10px no-repeat;opacity:.65}.file-zoom-fullscreen .modal-dialog{min-width:100%;margin:0}.file-zoom-fullscreen .modal-content{border-radius:0;box-shadow:none;min-height:100vh}.file-zoom-fullscreen .modal-body{overflow-y:auto}.floating-buttons{z-index:3000}.floating-buttons .btn-kv{margin-left:3px;z-index:3000}.file-zoom-content{height:480px;text-align:center}.file-zoom-content .file-preview-image,.file-zoom-content .file-preview-video{max-height:100%}.file-zoom-content>.file-object.type-image{height:auto;min-height:inherit}.file-zoom-content>.file-object.type-audio{width:auto;height:30px}@media (min-width:576px){.file-zoom-dialog .modal-dialog{max-width:500px}}@media (min-width:992px){.file-zoom-dialog .modal-lg{max-width:800px}}@media (max-width:767px){.file-preview-thumbnails{display:flex;justify-content:center;align-items:center;flex-direction:column}.file-zoom-dialog .modal-header{flex-direction:column}}@media (max-width:350px){.krajee-default.file-preview-frame .kv-file-content{width:160px}}@media (max-width:420px){.krajee-default.file-preview-frame .kv-file-content.kv-pdf-rendered{width:100%}}.file-loading[dir=rtl]:before{background:url(../img/loading.gif) top right no-repeat;padding-left:0;padding-right:20px}.file-sortable .file-drag-handle{cursor:move;opacity:1}.file-sortable .file-drag-handle:hover{opacity:.7}.clickable .file-drop-zone-title{cursor:pointer}.kv-zoom-actions .btn-kv{margin-left:3px}.file-preview-initial.sortable-chosen{background-color:#d9edf7} \ No newline at end of file diff --git a/src/main/resources/static/plugins/fileinput/fileinput.min.js b/src/main/resources/static/plugins/fileinput/fileinput.min.js index 2068e5aee..fb001b4c3 100755 --- a/src/main/resources/static/plugins/fileinput/fileinput.min.js +++ b/src/main/resources/static/plugins/fileinput/fileinput.min.js @@ -1,12 +1,11 @@ /*! - * bootstrap-fileinput v4.4.6 + * bootstrap-fileinput v4.5.0 * http://plugins.krajee.com/file-input * * Author: Kartik Visweswaran - * Copyright: 2014 - 2017, Kartik Visweswaran, Krajee.com + * Copyright: 2014 - 2018, Kartik Visweswaran, Krajee.com * * Licensed under the BSD 3-Clause * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md - */!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&module.exports?module.exports=e(require("jquery")):e(window.jQuery)}(function(e){"use strict";e.fn.fileinputLocales={},e.fn.fileinputThemes={},String.prototype.setTokens=function(e){var t,i,a=this.toString();for(t in e)e.hasOwnProperty(t)&&(i=new RegExp("{"+t+"}","g"),a=a.replace(i,e[t]));return a};var t,i;t={FRAMES:".kv-preview-thumb",SORT_CSS:"file-sortable",OBJECT_PARAMS:'\n\n\n\n\n\n',DEFAULT_PREVIEW:'
\n{previewFileIcon}\n
',MODAL_ID:"kvFileinputModal",MODAL_EVENTS:["show","shown","hide","hidden","loaded"],objUrl:window.URL||window.webkitURL,compare:function(e,t,i){return void 0!==e&&(i?e===t:e.match(t))},isIE:function(e){if("Microsoft Internet Explorer"!==navigator.appName)return!1;if(10===e)return new RegExp("msie\\s"+e,"i").test(navigator.userAgent);var t,i=document.createElement("div");return i.innerHTML="",t=i.getElementsByTagName("i").length,document.body.appendChild(i),i.parentNode.removeChild(i),t},initModal:function(t){var i=e("body");i.length&&t.appendTo(i)},isEmpty:function(t,i){return void 0===t||null===t||0===t.length||i&&""===e.trim(t)},isArray:function(e){return Array.isArray(e)||"[object Array]"===Object.prototype.toString.call(e)},ifSet:function(e,t,i){return i=i||"",t&&"object"==typeof t&&e in t?t[e]:i},cleanArray:function(e){return e instanceof Array||(e=[]),e.filter(function(e){return void 0!==e&&null!==e})},spliceArray:function(e,t){var i,a=0,r=[];if(!(e instanceof Array))return[];for(i=0;i=0?atob(e.split(",")[1]):decodeURIComponent(e.split(",")[1]),a=new ArrayBuffer(i.length),r=new Uint8Array(a),n=0;nl;)switch(i=n[l++],i>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:o+=String.fromCharCode(i);break;case 12:case 13:a=n[l++],o+=String.fromCharCode((31&i)<<6|63&a);break;case 14:a=n[l++],r=n[l++],o+=String.fromCharCode((15&i)<<12|(63&a)<<6|(63&r)<<0)}return o},isHtml:function(e){var t=document.createElement("div");t.innerHTML=e;for(var i=t.childNodes,a=i.length;a--;)if(1===i[a].nodeType)return!0;return!1},isSvg:function(e){return e.match(/^\s*<\?xml/i)&&(e.match(//g,">").replace(/"/g,""").replace(/'/g,"'")},replaceTags:function(t,i){var a=t;return i?(e.each(i,function(e,t){"function"==typeof t&&(t=t()),a=a.split(e).join(t)}),a):a},cleanMemory:function(e){var i=e.is("img")?e.attr("src"):e.find("source").attr("src");t.objUrl.revokeObjectURL(i)},findFileName:function(e){var t=e.lastIndexOf("/");return-1===t&&(t=e.lastIndexOf("\\")),e.split(e.substring(t,t+1)).pop()},checkFullScreen:function(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement},toggleFullScreen:function(e){var i=document,a=i.documentElement;a&&e&&!t.checkFullScreen()?a.requestFullscreen?a.requestFullscreen():a.msRequestFullscreen?a.msRequestFullscreen():a.mozRequestFullScreen?a.mozRequestFullScreen():a.webkitRequestFullscreen&&a.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):i.exitFullscreen?i.exitFullscreen():i.msExitFullscreen?i.msExitFullscreen():i.mozCancelFullScreen?i.mozCancelFullScreen():i.webkitExitFullscreen&&i.webkitExitFullscreen()},moveArray:function(e,t,i){if(i>=e.length)for(var a=i-e.length;a--+1;)e.push(void 0);return e.splice(i,0,e.splice(t,1)[0]),e},cleanZoomCache:function(e){var t=e.closest(".kv-zoom-cache-theme");t.length||(t=e.closest(".kv-zoom-cache")),t.remove()},setOrientation:function(e,t){var i,a,r,n=new DataView(e),o=0,l=1;if(65496!==n.getUint16(o)||e.length<2)return void(t&&t());for(o+=2,i=n.byteLength;i-2>o;)switch(a=n.getUint16(o),o+=2,a){case 65505:r=n.getUint16(o),i=r-o,o+=2;break;case 274:l=n.getUint16(o+6,!1),i=0}t&&t(l)},validateOrientation:function(e,i){if(window.FileReader&&window.DataView){var a,r=new FileReader;r.onloadend=function(){a=r.result,t.setOrientation(a,i)},r.readAsArrayBuffer(e)}},adjustOrientedImage:function(e,t){var i,a,r;if(e.hasClass("is-portrait-gt4")){if(t)return void e.css({width:e.parent().height()});e.css({height:"auto",width:e.height()}),i=e.parent().offset().top,a=e.offset().top,r=i-a,e.css("margin-top",r)}},closeButton:function(e){return e=e?"close "+e:"close",''}},i=function(i,a){var r=this;r.$element=e(i),r.$parent=r.$element.parent(),r._validate()&&(r.isPreviewable=t.hasFileAPISupport(),r.isIE9=t.isIE(9),r.isIE10=t.isIE(10),(r.isPreviewable||r.isIE9)&&(r._init(a),r._listen()),r.$element.removeClass("file-loading"))},i.prototype={constructor:i,_cleanup:function(){var e=this;e.reader=null,e.formdata={},e.uploadCount=0,e.uploadStatus={},e.uploadLog=[],e.uploadAsyncCount=0,e.loadedImages=[],e.totalImagesCount=0,e.ajaxRequests=[],e.clearStack(),e.fileInputCleared=!1,e.fileBatchCompleted=!0,e.isPreviewable||(e.showPreview=!1),e.isError=!1,e.ajaxAborted=!1,e.cancelling=!1},_init:function(i,a){var r,n,o,l,s=this,d=s.$element;s.options=i,e.each(i,function(e,i){switch(e){case"minFileCount":case"maxFileCount":case"minFileSize":case"maxFileSize":case"maxFilePreviewSize":case"resizeImageQuality":case"resizeIfSizeMoreThan":case"progressUploadThreshold":case"initialPreviewCount":case"zoomModalHeight":case"minImageHeight":case"maxImageHeight":case"minImageWidth":case"maxImageWidth":s[e]=t.getNum(i);break;default:s[e]=i}}),s.rtl&&(l=s.previewZoomButtonIcons.prev,s.previewZoomButtonIcons.prev=s.previewZoomButtonIcons.next,s.previewZoomButtonIcons.next=l),a||s._cleanup(),s.$form=d.closest("form"),s._initTemplateDefaults(),s.uploadFileAttr=t.isEmpty(d.attr("name"))?"file_data":d.attr("name"),o=s._getLayoutTemplate("progress"),s.progressTemplate=o.replace("{class}",s.progressClass),s.progressCompleteTemplate=o.replace("{class}",s.progressCompleteClass),s.progressErrorTemplate=o.replace("{class}",s.progressErrorClass),s.dropZoneEnabled=t.hasDragDropSupport()&&s.dropZoneEnabled,s.isDisabled=d.attr("disabled")||d.attr("readonly"),s.isDisabled&&d.attr("disabled",!0),s.isAjaxUpload=t.hasFileUploadSupport()&&!t.isEmpty(s.uploadUrl),s.isClickable=s.browseOnZoneClick&&s.showPreview&&(s.isAjaxUpload&&s.dropZoneEnabled||!t.isEmpty(s.defaultPreviewContent)),s.slug="function"==typeof i.slugCallback?i.slugCallback:s._slugDefault,s.mainTemplate=s.showCaption?s._getLayoutTemplate("main1"):s._getLayoutTemplate("main2"),s.captionTemplate=s._getLayoutTemplate("caption"),s.previewGenericTemplate=s._getPreviewTemplate("generic"),!s.imageCanvas&&s.resizeImage&&(s.maxImageWidth||s.maxImageHeight)&&(s.imageCanvas=document.createElement("canvas"),s.imageCanvasContext=s.imageCanvas.getContext("2d")),t.isEmpty(d.attr("id"))&&d.attr("id",t.uniqId()),s.namespace=".fileinput_"+d.attr("id").replace(/-/g,"_"),void 0===s.$container?s.$container=s._createContainer():s._refreshContainer(),n=s.$container,s.$dropZone=n.find(".file-drop-zone"),s.$progress=n.find(".kv-upload-progress"),s.$btnUpload=n.find(".fileinput-upload"),s.$captionContainer=t.getElement(i,"elCaptionContainer",n.find(".file-caption")),s.$caption=t.getElement(i,"elCaptionText",n.find(".file-caption-name")),t.isEmpty(s.msgPlaceholder)||(r=d.attr("multiple")?s.filePlural:s.fileSingle,s.$caption.attr("placeholder",s.msgPlaceholder.replace("{files}",r))),s.$captionIcon=s.$captionContainer.find(".file-caption-icon"),s.mainClass.indexOf("input-group-lg")>-1?t.addCss(s.$captionIcon,"icon-lg"):s.$captionIcon.removeClass("icon-lg"),s.$previewContainer=t.getElement(i,"elPreviewContainer",n.find(".file-preview")),s.$preview=t.getElement(i,"elPreviewImage",n.find(".file-preview-thumbnails")),s.$previewStatus=t.getElement(i,"elPreviewStatus",n.find(".file-preview-status")),s.$errorContainer=t.getElement(i,"elErrorContainer",s.$previewContainer.find(".kv-fileinput-error")),s._validateDisabled(),t.isEmpty(s.msgErrorClass)||t.addCss(s.$errorContainer,s.msgErrorClass),a||(s.$errorContainer.hide(),s.previewInitId="preview-"+t.uniqId(),s._initPreviewCache(),s._initPreview(!0),s._initPreviewActions(),s._setFileDropZoneTitle(),s.$parent.hasClass("file-loading")&&(s.$container.insertBefore(s.$parent),s.$parent.remove())),d.attr("disabled")&&s.disable(),s._initZoom(),s.hideThumbnailContent&&t.addCss(s.$preview,"hide-content")},_initTemplateDefaults:function(){var i,a,r,n,o,l,s,d,c,p,u,f,m,v,g,h,w,_,b,C,y,x,T,E,S,k,F,I,P,A,D,z,$,j,U,B,R,O,L=this;i='{preview}\n
\n
\n {caption}\n
\n {remove}\n {cancel}\n {upload}\n {browse}\n
\n
',a='{preview}\n
\n
\n{remove}\n{cancel}\n{upload}\n{browse}\n',r='
\n {close}
\n
\n
\n
\n
\n
\n
',o=t.closeButton("fileinput-remove"),n='',l='
\n \n \n
',s='',d='{icon} {label}',c='
{icon} {label}
',p='',u='\n',f='
\n
\n {status}\n
\n
',m=" ({sizeText})",v='',g='
\n \n
\n{drag}\n
',h='\n',w='',_='',b='',C='{dragIcon}',y='
{indicator}
',x='
\n',E=x+' title="{caption}">
\n',S="
{footer}\n
\n",k="{content}\n",F='
{data}
\n',I='{caption}\n',P='\n',A='',D='\n",z='\n",$='\n',U='\n',j='\n\n'+t.OBJECT_PARAMS+" "+t.DEFAULT_PREVIEW+"\n\n",B='
\n'+t.DEFAULT_PREVIEW+"\n
\n",R='',O={width:"100%",height:"100%","min-height":"480px"},L.defaults={layoutTemplates:{main1:i,main2:a,preview:r,close:o,fileIcon:n,caption:l,modalMain:p,modal:u,progress:f,size:m,footer:v,indicator:y,actions:g,actionDelete:h,actionUpload:w,actionDownload:_,actionZoom:b,actionDrag:C,btnDefault:s,btnLink:d,btnBrowse:c,zoomCache:R},previewMarkupTags:{tagBefore1:T,tagBefore2:E,tagAfter:S},previewContentTemplates:{generic:k,html:F,image:I,text:P,office:A,video:D,audio:z,flash:$,object:j,pdf:U,other:B},allowedPreviewTypes:["image","html","text","video","audio","flash","pdf","object"],previewTemplates:{},previewSettings:{image:{width:"auto",height:"auto","max-width":"100%","max-height":"100%"},html:{width:"213px",height:"160px"},text:{width:"213px",height:"160px"},office:{width:"213px",height:"160px"},video:{width:"213px",height:"160px"},audio:{width:"100%",height:"30px"},flash:{width:"213px",height:"160px"},object:{width:"213px",height:"160px"},pdf:{width:"213px",height:"160px"},other:{width:"213px",height:"160px"}},previewSettingsSmall:{image:{width:"auto",height:"auto","max-width":"100%","max-height":"100%"},html:{width:"100%",height:"160px"},text:{width:"100%",height:"160px"},office:{width:"100%",height:"160px"},video:{width:"100%",height:"auto"},audio:{width:"100%",height:"30px"},flash:{width:"100%",height:"auto"},object:{width:"100%",height:"auto"},pdf:{width:"100%",height:"160px"},other:{width:"100%",height:"160px"}},previewZoomSettings:{image:{width:"auto",height:"auto","max-width":"100%","max-height":"100%"},html:O,text:O,office:{width:"100%",height:"100%","max-width":"100%","min-height":"480px"},video:{width:"auto",height:"100%","max-width":"100%"},audio:{width:"100%",height:"30px"},flash:{width:"auto",height:"480px"},object:{width:"auto",height:"100%","max-width":"100%","min-height":"480px"},pdf:O,other:{width:"auto",height:"100%","min-height":"480px"}},fileTypeSettings:{image:function(e,i){return t.compare(e,"image.*")&&!t.compare(e,/(tiff?|wmf)$/i)||t.compare(i,/\.(gif|png|jpe?g)$/i)},html:function(e,i){return t.compare(e,"text/html")||t.compare(i,/\.(htm|html)$/i)},office:function(e,i){return t.compare(e,/(word|excel|powerpoint|office|iwork-pages|tiff?)$/i)||t.compare(i,/\.(rtf|docx?|xlsx?|pptx?|pps|potx?|ods|odt|pages|ai|dxf|ttf|tiff?|wmf|e?ps)$/i)},text:function(e,i){return t.compare(e,"text.*")||t.compare(i,/\.(xml|javascript)$/i)||t.compare(i,/\.(txt|md|csv|nfo|ini|json|php|js|css)$/i)},video:function(e,i){return t.compare(e,"video.*")&&(t.compare(e,/(ogg|mp4|mp?g|mov|webm|3gp)$/i)||t.compare(i,/\.(og?|mp4|webm|mp?g|mov|3gp)$/i))},audio:function(e,i){return t.compare(e,"audio.*")&&(t.compare(i,/(ogg|mp3|mp?g|wav)$/i)||t.compare(i,/\.(og?|mp3|mp?g|wav)$/i))},flash:function(e,i){return t.compare(e,"application/x-shockwave-flash",!0)||t.compare(i,/\.(swf)$/i)},pdf:function(e,i){return t.compare(e,"application/pdf",!0)||t.compare(i,/\.(pdf)$/i)},object:function(){return!0},other:function(){return!0}},fileActionSettings:{showRemove:!0,showUpload:!0,showDownload:!0,showZoom:!0,showDrag:!0,removeIcon:'',removeClass:"btn btn-kv btn-default btn-outline-secondary",removeErrorClass:"btn btn-kv btn-danger",removeTitle:"Remove file",uploadIcon:'',uploadClass:"btn btn-kv btn-default btn-outline-secondary",uploadTitle:"Upload file",uploadRetryIcon:'',uploadRetryTitle:"Retry upload",downloadIcon:'',downloadClass:"btn btn-kv btn-default btn-outline-secondary",downloadTitle:"Download file",zoomIcon:'',zoomClass:"btn btn-kv btn-default btn-outline-secondary",zoomTitle:"View Details",dragIcon:'',dragClass:"text-info",dragTitle:"Move / Rearrange",dragSettings:{},indicatorNew:'',indicatorSuccess:'',indicatorError:'',indicatorLoading:'',indicatorNewTitle:"Not uploaded yet",indicatorSuccessTitle:"Uploaded",indicatorErrorTitle:"Upload Error",indicatorLoadingTitle:"Uploading ..."}},e.each(L.defaults,function(t,i){return"allowedPreviewTypes"===t?void(void 0===L.allowedPreviewTypes&&(L.allowedPreviewTypes=i)):void(L[t]=e.extend(!0,{},i,L[t]))}),L._initPreviewTemplates()},_initPreviewTemplates:function(){var i,a=this,r=a.defaults,n=a.previewMarkupTags,o=n.tagAfter;e.each(r.previewContentTemplates,function(e,r){t.isEmpty(a.previewTemplates[e])&&(i=n.tagBefore2,"generic"!==e&&"image"!==e&&"html"!==e&&"text"!==e||(i=n.tagBefore1),a.previewTemplates[e]=i+r+o)})},_initPreviewCache:function(){var i=this;i.previewCache={data:{},init:function(){var e=i.initialPreview;e.length>0&&!t.isArray(e)&&(e=e.split(i.initialPreviewDelimiter)),i.previewCache.data={content:e,config:i.initialPreviewConfig,tags:i.initialPreviewThumbTags}},count:function(){return i.previewCache.data&&i.previewCache.data.content?i.previewCache.data.content.length:0},get:function(a,r){var n,o,l,s,d,c,p,u="init_"+a,f=i.previewCache.data,m=f.config[a],v=f.content[a],g=i.previewInitId+"-"+u,h=t.ifSet("previewAsData",m,i.initialPreviewAsData),w=function(e,a,r,n,o,l,s,d,c){return d=" file-preview-initial "+t.SORT_CSS+(d?" "+d:""),i._generatePreviewTemplate(e,a,r,n,o,!1,null,d,l,s,c)};return v?(r=void 0===r?!0:r,l=t.ifSet("type",m,i.initialPreviewFileType||"generic"),d=t.ifSet("filename",m,t.ifSet("caption",m)),c=t.ifSet("filetype",m,l),s=i.previewCache.footer(a,r,m&&m.size||null),p=t.ifSet("frameClass",m),n=h?w(l,v,d,c,g,s,u,p):w("generic",v,d,c,g,s,u,p,l).setTokens({content:f.content[a]}),f.tags.length&&f.tags[a]&&(n=t.replaceTags(n,f.tags[a])),t.isEmpty(m)||t.isEmpty(m.frameAttr)||(o=e(document.createElement("div")).html(n),o.find(".file-preview-initial").attr(m.frameAttr),n=o.html(),o.remove()),n):""},add:function(e,a,r,n){var o,l=i.previewCache.data;return t.isArray(e)||(e=e.split(i.initialPreviewDelimiter)),n?(o=l.content.push(e)-1,l.config[o]=a,l.tags[o]=r):(o=e.length-1,l.content=e,l.config=a,l.tags=r),i.previewCache.data=l,o},set:function(e,a,r,n){var o,l,s=i.previewCache.data;if(e&&e.length&&(t.isArray(e)||(e=e.split(i.initialPreviewDelimiter)),l=e.filter(function(e){return null!==e}),l.length)){if(void 0===s.content&&(s.content=[]),void 0===s.config&&(s.config=[]),void 0===s.tags&&(s.tags=[]),n){for(o=0;ot;t++)a+=i.previewCache.get(t);return e=i._getMsgSelected(r),{content:a,caption:e}},footer:function(e,a,r){var n=i.previewCache.data||{};if(t.isEmpty(n.content))return"";(t.isEmpty(n.config)||t.isEmpty(n.config[e]))&&(n.config[e]={}),a=void 0===a?!0:a;var o,l=n.config[e],s=t.ifSet("caption",l),d=t.ifSet("width",l,"auto"),c=t.ifSet("url",l,!1),p=t.ifSet("key",l,null),u=i.fileActionSettings,f=i.initialPreviewShowDelete||!1,m=l.downloadUrl||i.initialPreviewDownloadUrl||"",v=l.filename||l.caption||"",g=!!m,h=t.ifSet("showDelete",l,t.ifSet("showDelete",u,f)),w=t.ifSet("showDownload",l,t.ifSet("showDownload",u,g)),_=t.ifSet("showZoom",l,t.ifSet("showZoom",u,!0)),b=t.ifSet("showDrag",l,t.ifSet("showDrag",u,!0)),C=c===!1&&a;return w=w&&l.downloadUrl!==!1&&!!m,o=i._renderFileActions(!1,w,h,_,b,C,c,p,!0,m,v),i._getLayoutTemplate("footer").setTokens({progress:i._renderThumbProgress(),actions:o,caption:s,size:i._getSize(r),width:d,indicator:""})}},i.previewCache.init()},_handler:function(e,t,i){var a=this,r=a.namespace,n=t.split(" ").join(r+" ")+r;e&&e.length&&e.off(n).on(n,i)},_log:function(e){var t=this,i=t.$element.attr("id");i&&(e='"'+i+'": '+e),"undefined"!=typeof window.console.log?window.console.log(e):window.alert(e)},_validate:function(){var e=this,t="file"===e.$element.attr("type");return t||e._log('The input "type" must be set to "file" for initializing the "bootstrap-fileinput" plugin.'),t},_errorsExist:function(){var t,i=this,a=i.$errorContainer.find("li");return a.length?!0:(t=e(document.createElement("div")).html(i.$errorContainer.html()),t.find(".kv-error-close").remove(),t.find("ul").remove(),!!e.trim(t.text()).length)},_errorHandler:function(e,t){var i=this,a=e.target.error,r=function(e){i._showError(e.replace("{name}",t))};r(a.code===a.NOT_FOUND_ERR?i.msgFileNotFound:a.code===a.SECURITY_ERR?i.msgFileSecured:a.code===a.NOT_READABLE_ERR?i.msgFileNotReadable:a.code===a.ABORT_ERR?i.msgFilePreviewAborted:i.msgFilePreviewError)},_addError:function(e){var t=this,i=t.$errorContainer;e&&i.length&&(i.html(t.errorCloseButton+e),t._handler(i.find(".kv-error-close"),"click",function(){setTimeout(function(){t.showPreview&&!t.getFrames().length&&t.clear(),i.fadeOut("slow")},10)}))},_setValidationError:function(e){var i=this;e=(e?e+" ":"")+"has-error",i.$container.removeClass(e).addClass("has-error"),t.addCss(i.$captionContainer,"is-invalid")},_resetErrors:function(e){var t=this,i=t.$errorContainer;t.isError=!1,t.$container.removeClass("has-error"),t.$captionContainer.removeClass("is-invalid"),i.html(""),e?i.fadeOut("slow"):i.hide()},_showFolderError:function(e){var t,i=this,a=i.$errorContainer;e&&(t=i.msgFoldersNotAllowed.replace("{n}",e),i._addError(t),i._setValidationError(),a.fadeIn(800),i._raise("filefoldererror",[e,t]))},_showUploadError:function(e,t,i){var a=this,r=a.$errorContainer,n=i||"fileuploaderror",o=t&&t.id?'
  • '+e+"
  • ":"
  • "+e+"
  • ";return 0===r.find("ul").length?a._addError("
      "+o+"
    "):r.find("ul").append(o),r.fadeIn(800),a._raise(n,[t,e]),a._setValidationError("file-input-new"),!0},_showError:function(e,t,i){var a=this,r=a.$errorContainer,n=i||"fileerror";return t=t||{},t.reader=a.reader,a._addError(e),r.fadeIn(800),a._raise(n,[t,e]),a.isAjaxUpload||a._clearFileInput(),a._setValidationError("file-input-new"),a.$btnUpload.attr("disabled",!0),!0},_noFilesError:function(e){var t=this,i=t.minFileCount>1?t.filePlural:t.fileSingle,a=t.msgFilesTooLess.replace("{n}",t.minFileCount).replace("{files}",i),r=t.$errorContainer;t._addError(a),t.isError=!0,t._updateFileDetails(0),r.fadeIn(800),t._raise("fileerror",[e,a]),t._clearFileInput(),t._setValidationError()},_parseError:function(t,i,a,r){var n,o=this,l=e.trim(a+""),s=void 0!==i.responseJSON&&void 0!==i.responseJSON.error?i.responseJSON.error:i.responseText;return o.cancelling&&o.msgUploadAborted&&(l=o.msgUploadAborted),o.showAjaxErrorDetails&&s&&(s=e.trim(s.replace(/\n\s*\n/g,"\n")),n=s.length?"
    "+s+"
    ":"",l+=l?n:s),l||(l=o.msgAjaxError.replace("{operation}",t)),o.cancelling=!1,r?""+r+": "+l:l},_parseFileType:function(e,i){var a,r,n,o,l=this,s=l.allowedPreviewTypes||[];if("application/text-plain"===e)return"text";for(o=0;o-1&&(i=t.split(".").pop(),a.previewFileIconSettings&&(r=a.previewFileIconSettings[i]||a.previewFileIconSettings[i.toLowerCase()]||null),a.previewFileExtSettings&&e.each(a.previewFileExtSettings,function(e,t){return a.previewFileIconSettings[e]&&t(i)?void(r=a.previewFileIconSettings[e]):void 0})),r},_parseFilePreviewIcon:function(e,t){var i=this,a=i._getPreviewIcon(t)||i.previewFileIcon,r=e;return r.indexOf("{previewFileIcon}")>-1&&(r=r.setTokens({previewFileIconClass:i.previewFileIconClass,previewFileIcon:a})),r},_raise:function(t,i){var a=this,r=e.Event(t);if(void 0!==i?a.$element.trigger(r,i):a.$element.trigger(r),r.isDefaultPrevented()||r.result===!1)return!1;switch(t){case"filebatchuploadcomplete":case"filebatchuploadsuccess":case"fileuploaded":case"fileclear":case"filecleared":case"filereset":case"fileerror":case"filefoldererror":case"fileuploaderror":case"filebatchuploaderror":case"filedeleteerror":case"filecustomerror":case"filesuccessremove":break;default:a.ajaxAborted||(a.ajaxAborted=r.result)}return!0},_listenFullScreen:function(e){var t,i,a=this,r=a.$modal;r&&r.length&&(t=r&&r.find(".btn-fullscreen"),i=r&&r.find(".btn-borderless"),t.length&&i.length&&(t.removeClass("active").attr("aria-pressed","false"),i.removeClass("active").attr("aria-pressed","false"),e?t.addClass("active").attr("aria-pressed","true"):i.addClass("active").attr("aria-pressed","true"),r.hasClass("file-zoom-fullscreen")?a._maximizeZoomDialog():e?a._maximizeZoomDialog():i.removeClass("active").attr("aria-pressed","false")))},_listen:function(){var i,a=this,r=a.$element,n=a.$form,o=a.$container;a._handler(r,"change",e.proxy(a._change,a)),a.showBrowse&&a._handler(a.$btnFile,"click",e.proxy(a._browse,a)),a._handler(o.find(".fileinput-remove:not([disabled])"),"click",e.proxy(a.clear,a)),a._handler(o.find(".fileinput-cancel"),"click",e.proxy(a.cancel,a)),a._initDragDrop(),a._handler(n,"reset",e.proxy(a.clear,a)),a.isAjaxUpload||a._handler(n,"submit",e.proxy(a._submitForm,a)),a._handler(a.$container.find(".fileinput-upload"),"click",e.proxy(a._uploadClick,a)),a._handler(e(window),"resize",function(){a._listenFullScreen(screen.width===window.innerWidth&&screen.height===window.innerHeight)}),i="webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange",a._handler(e(document),i,function(){a._listenFullScreen(t.checkFullScreen())}),a._autoFitContent(),a._initClickable()},_autoFitContent:function(){var t,i=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,a=this,r=400>i?a.previewSettingsSmall||a.defaults.previewSettingsSmall:a.previewSettings||a.defaults.previewSettings;e.each(r,function(e,i){t=".file-preview-frame .file-preview-"+e,a.$preview.find(t+".kv-preview-data,"+t+" .kv-preview-data").css(i)})},_initClickable:function(){var i,a=this;a.isClickable&&(i=a.isAjaxUpload?a.$dropZone:a.$preview.find(".file-default-preview"),t.addCss(i,"clickable"),i.attr("tabindex",-1),a._handler(i,"click",function(t){var r=e(t.target);i.find(".kv-fileinput-error:visible").length||r.parents(".file-preview-thumbnails").length&&!r.parents(".file-default-preview").length||(a.$element.trigger("click"),i.blur())}))},_initDragDrop:function(){var t=this,i=t.$dropZone;t.isAjaxUpload&&t.dropZoneEnabled&&t.showPreview&&(t._handler(i,"dragenter dragover",e.proxy(t._zoneDragEnter,t)),t._handler(i,"dragleave",e.proxy(t._zoneDragLeave,t)),t._handler(i,"drop",e.proxy(t._zoneDrop,t)),t._handler(e(document),"dragenter dragover drop",t._zoneDragDropInit))},_zoneDragDropInit:function(e){e.stopPropagation(),e.preventDefault()},_zoneDragEnter:function(i){var a=this,r=e.inArray("Files",i.originalEvent.dataTransfer.types)>-1;return a._zoneDragDropInit(i),a.isDisabled||!r?(i.originalEvent.dataTransfer.effectAllowed="none",void(i.originalEvent.dataTransfer.dropEffect="none")):void t.addCss(a.$dropZone,"file-highlighted")},_zoneDragLeave:function(e){var t=this;t._zoneDragDropInit(e),t.isDisabled||t.$dropZone.removeClass("file-highlighted")},_zoneDrop:function(e){var i=this;e.preventDefault(),i.isDisabled||t.isEmpty(e.originalEvent.dataTransfer.files)||(i._change(e,"dragdrop"), -i.$dropZone.removeClass("file-highlighted"))},_uploadClick:function(e){var i,a=this,r=a.$container.find(".fileinput-upload"),n=!r.hasClass("disabled")&&t.isEmpty(r.attr("disabled"));if(!e||!e.isDefaultPrevented()){if(!a.isAjaxUpload)return void(n&&"submit"!==r.attr("type")&&(i=r.closest("form"),i.length&&i.trigger("submit"),e.preventDefault()));e.preventDefault(),n&&a.upload()}},_submitForm:function(){var e=this;return e._isFileSelectionValid()&&!e._abort({})},_clearPreview:function(){var i=this,a=i.$preview,r=i.showUploadedThumbs?i.getFrames(":not(.file-preview-success)"):i.getFrames();r.each(function(){var i=e(this);i.remove(),t.cleanZoomCache(a.find("#zoom-"+i.attr("id")))}),i.getFrames().length&&i.showPreview||i._resetUpload(),i._validateDefaultPreview()},_initSortable:function(){var i,a=this,r=a.$preview,n="."+t.SORT_CSS;window.KvSortable&&0!==r.find(n).length&&(i={handle:".drag-handle-init",dataIdAttr:"data-preview-id",scroll:!1,draggable:n,onSort:function(i){var r,n,o=i.oldIndex,l=i.newIndex;a.initialPreview=t.moveArray(a.initialPreview,o,l),a.initialPreviewConfig=t.moveArray(a.initialPreviewConfig,o,l),a.previewCache.init();for(var s=0;s