Commit bac6ea47 authored by Madhur's avatar Madhur

some part completed

parent 1dde516f
<!DOCTYPE html>
<html ng-app="emojiApp"> <html ng-app="emojiApp">
<head> <head>
...@@ -5,6 +6,7 @@ ...@@ -5,6 +6,7 @@
<link type="text/stylesheet" rel="stylesheet" href="css/nanoscroller.css" /> <link type="text/stylesheet" rel="stylesheet" href="css/nanoscroller.css" />
<link type="text/stylesheet" rel="stylesheet" href="css/emoji.css" /> <link type="text/stylesheet" rel="stylesheet" href="css/emoji.css" />
<link type="text/stylesheet" rel="stylesheet" href="css/style.css" /> <link type="text/stylesheet" rel="stylesheet" href="css/style.css" />
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
</head> </head>
<body ng-controller="emojiController"> <body ng-controller="emojiController">
...@@ -12,8 +14,8 @@ ...@@ -12,8 +14,8 @@
<div class="myform"> <div class="myform">
<div my-form> <div my-form emoji-message="emojiMessage">
<textarea id="messageInput" ng-enter="replyToUser()" ng-model="messagetext" placeholder="Write a message..." class="ng-untouched ng-valid ng-dirty ng-valid-parse" style="display: none;"></textarea> <textarea id="messageInput" ng-enter="replyToUser()" ng-model="emojiMessage.messagetext" placeholder="Write a message..."></textarea>
<div style="margin-right:10px;margin-top:5px;" class="im_emoji_btn" id="emojibtn" style="cursor:pointer"> <div style="margin-right:10px;margin-top:5px;" class="im_emoji_btn" id="emojibtn" style="cursor:pointer">
...@@ -23,12 +25,12 @@ ...@@ -23,12 +25,12 @@
<div style="text-align:left;height:50px;width:500px"> String with Colons: </div> <div style="text-align:left;height:50px;width:500px"> String with Colons: </div>
<div> <div>
<div class="form-control" style="height:50px;width:500px" ng-bind-html="messagetext"></div> <div class="form-control" style="height:50px;width:500px" ng-bind="emojiMessage.messagetext"></div>
</div> </div>
<div> String with UTF Chars: (Will not display fine in input box) </div> <div> String with UTF Chars: (Will not display fine in input box) </div>
<div> <div>
<input class="form-control" ng-model="messagetext"> </div> <input class="form-control" ng-model="emojiMessage.messagetext"> </div>
</div> </div>
...@@ -37,14 +39,16 @@ ...@@ -37,14 +39,16 @@
<script type="text/javascript" src="js/angular.min.js"></script> <script type="text/javascript" src="js/angular.min.js"></script>
<script type="text/javascript" src="js/angular-sanitize.js"></script> <script type="text/javascript" src="js/angular-sanitize.js"></script>
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="js/emoji.js"></script>
<script type="text/javascript" src="js/jquery.emojiarea.js"></script>
<script type="text/javascript" src="js/app.js"></script> <script type="text/javascript" src="js/app.js"></script>
<script type="text/javascript" src="js/config.js"></script> <script type="text/javascript" src="js/config.js"></script>
<script type="text/javascript" src="js/jquery.emojiarea.js"></script>
<script type="text/javascript" src="js/emoji.js"></script>
<script type="text/javascript" src="js/emojiController.js"></script> <script type="text/javascript" src="js/emojiController.js"></script>
<script type="text/javascript" src="js/emojiDirectives.js"></script> <script type="text/javascript" src="js/emojiDirectives.js"></script>
......
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -2,11 +2,9 @@ ...@@ -2,11 +2,9 @@
var emojiApp = angular.module("emojiApp", ['ngSanitize']); var emojiApp = angular.module("emojiApp", ['ngSanitize']);
emojiApp.config(function(ConfigProvider) emojiApp.config(function()
{ {
var Config = ConfigProvider.$get();
var icons = {}, var icons = {},
reverseIcons = {}, reverseIcons = {},
i, j, hex, name, dataItem, row, column, totalColumns; i, j, hex, name, dataItem, row, column, totalColumns;
......
This diff is collapsed.
'use strict'; 'use strict';
emojiApp.controller('emojiController', ['$scope', function($scope) { emojiApp.controller('emojiController', ['$scope', '$log', function($scope, $log) {
$scope.emoji = {};
$scope.emojiMessage={};
$scope.emoji.replyToUser = function()
{
alert('You typed' + $scope.messagetext);
}
}]); }]);
'use strict'; 'use strict';
emojiApp.directive('myForm', ['$http', '$interpolate', function($http, $interpolate) emojiApp.directive('myForm', ['$timeout', '$http', '$interpolate', function($timeout, $http, $interpolate)
{ {
// Runs during compile // Runs during compile
return { return {
...@@ -9,10 +9,11 @@ emojiApp.directive('myForm', ['$http', '$interpolate', function($http, $interpol ...@@ -9,10 +9,11 @@ emojiApp.directive('myForm', ['$http', '$interpolate', function($http, $interpol
// priority: 1, // priority: 1,
// terminal: true, // terminal: true,
scope: scope:
{}, // {} = isolate, true = child, false/undefined = no change {
emojiMessage: '='
},
// controller: function($scope, $element, $attrs, $transclude) {}, // controller: function($scope, $element, $attrs, $transclude) {},
// require: 'ngModel', // Array = multiple requires, ? = optional, ^ = check parent elements // require: 'ngModel', // Array = multiple requires, ? = optional, ^ = check parent elements
restrict: 'AE', // E = Element, A = Attribute, C = Class, M = Comment
// template: '', // template: '',
// templateUrl: '', // templateUrl: '',
// replace: true, // replace: true,
...@@ -54,6 +55,7 @@ emojiApp.directive('myForm', ['$http', '$interpolate', function($http, $interpol ...@@ -54,6 +55,7 @@ emojiApp.directive('myForm', ['$http', '$interpolate', function($http, $interpol
var updatePromise; var updatePromise;
$(richTextarea) $(richTextarea)
.on('DOMNodeInserted', onPastedImageEvent)
.on( .on(
'keyup', 'keyup',
function(e) function(e)
...@@ -65,10 +67,14 @@ emojiApp.directive('myForm', ['$http', '$interpolate', function($http, $interpol ...@@ -65,10 +67,14 @@ emojiApp.directive('myForm', ['$http', '$interpolate', function($http, $interpol
$scope $scope
.$apply(function() .$apply(function()
{ {
$scope.messagetext = richTextarea.textContent; $scope.emojiMessage.messagetext = richTextarea.textContent;
}); });
} }
$timeout.cancel(updatePromise);
updatePromise = $timeout(
updateValue, 1000);
}); });
} }
...@@ -160,6 +166,72 @@ emojiApp.directive('myForm', ['$http', '$interpolate', function($http, $interpol ...@@ -160,6 +166,72 @@ emojiApp.directive('myForm', ['$http', '$interpolate', function($http, $interpol
} }
}; };
function onPastedImageEvent(e)
{
var element = (e.originalEvent || e).target,
src = (element ||
{}).src || '',
remove = false;
if (src.substr(0, 5) == 'data:')
{
remove = true;
var blob = dataUrlToBlob(src);
ErrorService.confirm(
{
type: 'FILE_CLIPBOARD_PASTE'
}).then(function()
{
$scope.draftMessage.files = [blob];
$scope.draftMessage.isMedia = true;
});
setZeroTimeout(function()
{
element.parentNode.removeChild(element);
})
}
else if (src && !src.match(/img\/blank\.gif/))
{
var replacementNode = document.createTextNode(' ' + src + ' ');
setTimeout(function()
{
element.parentNode.replaceChild(replacementNode, element);
}, 100);
}
};
function onPasteEvent(e)
{
console.log("onPasteEvent");
var cData = (e.originalEvent || e).clipboardData,
items = cData && cData.items || [],
files = [],
file, i;
for (i = 0; i < items.length; i++)
{
if (items[i].kind == 'file')
{
file = items[i].getAsFile();
files.push(file);
}
}
if (files.length > 0)
{
ErrorService.confirm(
{
type: 'FILES_CLIPBOARD_PASTE',
files: files
}).then(function()
{
$scope.draftMessage.files = files;
$scope.draftMessage.isMedia = true;
});
}
}
function onKeyDown(e) function onKeyDown(e)
{ {
if (e.keyCode == 9 && !e.shiftKey && !e.ctrlKey && !e.metaKey && !$modalStack.getTop()) if (e.keyCode == 9 && !e.shiftKey && !e.ctrlKey && !e.metaKey && !$modalStack.getTop())
...@@ -169,8 +241,10 @@ emojiApp.directive('myForm', ['$http', '$interpolate', function($http, $interpol ...@@ -169,8 +241,10 @@ emojiApp.directive('myForm', ['$http', '$interpolate', function($http, $interpol
} }
} }
$(document).on('keydown', onKeyDown); $(document).on('keydown', onKeyDown);
$(document).on('paste', onPasteEvent);
var sendAwaiting = false; var sendAwaiting = false;
function focusField() function focusField()
{ {
onContentLoaded(function() onContentLoaded(function()
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -26,8 +26,6 @@ ...@@ -26,8 +26,6 @@
var TAGS_BLOCK = [ 'p', 'div', 'pre', 'form' ]; var TAGS_BLOCK = [ 'p', 'div', 'pre', 'form' ];
var KEY_ESC = 27; var KEY_ESC = 27;
var KEY_TAB = 9; var KEY_TAB = 9;
var Config = {};
Config.Mobile = false;
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
...@@ -497,10 +495,11 @@ ...@@ -497,10 +495,11 @@
var alt = node.getAttribute('alt') || ''; var alt = node.getAttribute('alt') || '';
if (alt) { if (alt) {
var code = alt.substring(1, alt.length - 1); var code = alt.substring(1, alt.length - 1);
var smileyCode = Config.map[code]; //var smileyCode = Config.map[code];
//if (smileyCode)
line.push(code);
if (smileyCode)
line.push(smileyCode);
} }
return; return;
} else if (tagName === 'br') { } else if (tagName === 'br') {
...@@ -509,7 +508,7 @@ ...@@ -509,7 +508,7 @@
var children = node.childNodes; var children = node.childNodes;
for (var i = 0; i < children.length; i++) { for (var i = 0; i < children.length; i++) {
// sanitizeNode(children[i]); sanitizeNode(children[i]);
} }
if (isBlock && line.length) if (isBlock && line.length)
......
...@@ -6,7 +6,7 @@ var util = require('util'), ...@@ -6,7 +6,7 @@ var util = require('util'),
url = require('url'), url = require('url'),
events = require('events'); events = require('events');
var DEFAULT_PORT = 8000; var DEFAULT_PORT = 8001;
var DEFAULT_HOST = 'localhost'; var DEFAULT_HOST = 'localhost';
function main(argv) { function main(argv) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment