diff options
-rw-r--r-- | app.js | 6 | ||||
-rw-r--r-- | lib/utils.js | 20 | ||||
-rw-r--r-- | public/views/html.hbs | 23 |
3 files changed, 49 insertions, 0 deletions
@@ -22,6 +22,9 @@ var i18n = require('i18n') var flash = require('connect-flash') var validator = require('validator') +// utils +var getImageMimeType = require('./lib/utils.js').getImageMimeType + // core var config = require('./lib/config.js') var logger = require('./lib/logger.js') @@ -548,6 +551,9 @@ app.post('/uploadimage', function (req, res) { Body: buffer } + var mimeType = getImageMimeType(files.image.path) + if (mimeType) { params.ContentType = mimeType } + s3.putObject(params, function (err, data) { if (err) { logger.error(err) diff --git a/lib/utils.js b/lib/utils.js index 6c36549b..d9289dca 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -3,3 +3,23 @@ exports.isSQLite = function isSQLite (sequelize) { return sequelize.options.dialect === 'sqlite' } + +exports.getImageMimeType = function getImageMimeType (imagePath) { + var fileExtension = /[^.]+$/.exec(imagePath) + + switch (fileExtension[0]) { + case 'bmp': + return 'image/bmp' + case 'gif': + return 'image/gif' + case 'jpg': + case 'jpeg': + return 'image/jpeg' + case 'png': + return 'image/png' + case 'tiff': + return 'image/tiff' + default: + return undefined + } +} diff --git a/public/views/html.hbs b/public/views/html.hbs index 5ef51920..a300ddd5 100644 --- a/public/views/html.hbs +++ b/public/views/html.hbs @@ -160,6 +160,29 @@ removeHash(); }); + var toggle = $('.expand-toggle'); + var tocExpand = false; + + checkExpandToggle(); + toggle.click(function (e) { + e.preventDefault(); + e.stopPropagation(); + tocExpand = !tocExpand; + checkExpandToggle(); + }) + + function checkExpandToggle () { + var toc = $('.ui-toc-dropdown .toc'); + var toggle = $('.expand-toggle'); + if (!tocExpand) { + toc.removeClass('expand'); + toggle.text('Expand all'); + } else { + toc.addClass('expand'); + toggle.text('Collapse all'); + } + } + function scrollToTop() { $('body, html').stop(true, true).animate({ scrollTop: 0 |