From e9fbed71ae79a29f071d86f13794be7fe0270e40 Mon Sep 17 00:00:00 2001
From: Baris Soner Usakli <barisusakli@gmail.com>
Date: Mon, 23 Dec 2013 20:59:55 -0500
Subject: [PATCH] closes #613, fixed allowRegistration incase its undefined

---
 public/src/modules/composer.js    | 26 ++++++++++++++++++++++++--
 public/templates/admin/header.tpl |  6 +++---
 public/templates/composer.tpl     |  7 +++++++
 src/routes/authentication.js      |  2 +-
 src/webserver.js                  |  2 +-
 5 files changed, 36 insertions(+), 7 deletions(-)

diff --git a/public/src/modules/composer.js b/public/src/modules/composer.js
index 4c22fa1529..c95a8ed508 100644
--- a/public/src/modules/composer.js
+++ b/public/src/modules/composer.js
@@ -202,6 +202,20 @@ define(['taskbar'], function(taskbar) {
 				}
 			});
 
+			postContainer.on('click', '.formatting-bar span .fa-picture-o', function() {
+				$('#files').click();
+			});
+
+			$('#files').on('change', function(e) {
+				var files = e.target.files;
+				if(files) {
+					for (var i=0; i<files.length; i++) {
+						loadFile(post_uuid, files[i]);
+					}
+				}
+			});
+
+
 			var	resizeActive = false,
 				resizeCenterX = 0,
 				resizeOffset = 0,
@@ -302,6 +316,10 @@ define(['taskbar'], function(taskbar) {
 			}
 		}
 
+		if(config.imgurClientIDSet) {
+			postContainer.find('.upload-instructions').removeClass('hide')
+		}
+
 		postContainer.css('visibility', 'visible');
 
 		composer.focusElements(post_uuid);
@@ -459,12 +477,16 @@ define(['taskbar'], function(taskbar) {
 	}
 
 	function loadFile(post_uuid, file) {
+
+		if (!file.type.match('image.*')) {
+			return;
+		}
+
 		var reader = new FileReader(),
 			dropDiv = $('#cmp-uuid-' + post_uuid).find('.imagedrop');
 
 		$(reader).on('loadend', function(e) {
-			var bin = this.result;
-			bin = bin.split(',')[1];
+			var bin = this.result.split(',')[1];
 
 			var img = {
 				name: file.name,
diff --git a/public/templates/admin/header.tpl b/public/templates/admin/header.tpl
index 66ef0fe982..905170fa9f 100644
--- a/public/templates/admin/header.tpl
+++ b/public/templates/admin/header.tpl
@@ -54,13 +54,13 @@
 			<div class="collapse navbar-collapse">
 				<ul class="nav navbar-nav">
 					<li>
-						<a href="/admin/index"><i class="fa fa-home"></i> Home</a>
+						<a href="/admin/index"><i class="fa fa-home" title="Home"></i></a>
 					</li>
 					<li>
-						<a href="/admin/settings"><i class="fa fa-cogs"></i> Settings</a>
+						<a href="/admin/settings"><i class="fa fa-cogs" title="Settings"></i></a>
 					</li>
 					<li>
-						<a href="/" target="_top"><i class="fa fa-book"></i> Forum</a>
+						<a href="/" target="_top"><i class="fa fa-book" title="Forum"></i></a>
 					</li>
 					<li>
 						<a href="#" id="reconnect"></a>
diff --git a/public/templates/composer.tpl b/public/templates/composer.tpl
index 14936352fe..8ad2cc533d 100644
--- a/public/templates/composer.tpl
+++ b/public/templates/composer.tpl
@@ -7,12 +7,19 @@
 				<span class="btn btn-link" tabindex="-1"><i class="fa fa-italic"></i></span>
 				<span class="btn btn-link" tabindex="-1"><i class="fa fa-list"></i></span>
 				<span class="btn btn-link" tabindex="-1"><i class="fa fa-link"></i></span>
+				<span class="btn btn-link" tabindex="-1">
+				<input type="file" id="files" name="files[]" multiple class="hide"/>
+					<i class="fa fa-picture-o"></i>
+				</span>
 			</div>
 			<!-- <div class="btn btn-link pull-right">Preview</div> -->
 		</div>
 		<textarea tabIndex="2"></textarea>
 		<div class="preview"></div>
 		<div class="imagedrop"><div>Drag and Drop Images Here</div></div>
+		<div class="text-center upload-instructions hide">
+			<small>Upload images by dragging & dropping them</small>
+		</div>
 		<div class="btn-toolbar action-bar">
 			<div class="btn-group pull-right">
 				<button class="btn btn-default" data-action="discard" tabIndex="5"><i class="fa fa-times"></i> Discard</button>
diff --git a/src/routes/authentication.js b/src/routes/authentication.js
index c731c9952f..5a3f0d42b7 100644
--- a/src/routes/authentication.js
+++ b/src/routes/authentication.js
@@ -193,7 +193,7 @@
 		});
 
 		app.post('/register', function(req, res) {
-			if(parseInt(meta.config.allowRegistration, 10) === 0) {
+			if(meta.config.allowRegistration !== undefined && parseInt(meta.config.allowRegistration, 10) === 0) {
 				return res.send(403);
 			}
 
diff --git a/src/webserver.js b/src/webserver.js
index f3ecce7ac4..bb795fbe04 100644
--- a/src/webserver.js
+++ b/src/webserver.js
@@ -390,7 +390,7 @@ var path = require('path'),
 							res.redirect('/user/' + userslug);
 						});
 						return;
-					} else if(route === 'register' && parseInt(meta.config.allowRegistration, 10) === 0) {
+					} else if(route === 'register' && meta.config.allowRegistration !== undefined && parseInt(meta.config.allowRegistration, 10) === 0) {
 						return res.redirect('/403');
 					} else if (loginRequired.indexOf(route) !== -1 && !req.user) {
 						return res.redirect('/403');