From ccdece14ae8f7cd140e737208858be7660c777d7 Mon Sep 17 00:00:00 2001 From: Dmitri Akatov Date: Mon, 29 Jul 2013 21:59:00 -0700 Subject: [PATCH] i don't like semicolons any more --- Gruntfile.coffee | 5 ++- angular-contenteditable.js | 76 +++++++++++++++++++------------------- 2 files changed, 42 insertions(+), 39 deletions(-) diff --git a/Gruntfile.coffee b/Gruntfile.coffee index d7cadc5..d4a1ddd 100644 --- a/Gruntfile.coffee +++ b/Gruntfile.coffee @@ -17,7 +17,10 @@ module.exports = (grunt) -> configFile: 'test/e2e.karma.coffee' singleRun: true browsers: ['PhantomJS'] - jshint: src: ['angular-contenteditable.js'] + jshint: + src: ['angular-contenteditable.js'] + options: + asi: true require('matchdep').filterDev('grunt-*').forEach grunt.loadNpmTasks diff --git a/angular-contenteditable.js b/angular-contenteditable.js index 57653e4..20ab9d6 100644 --- a/angular-contenteditable.js +++ b/angular-contenteditable.js @@ -2,71 +2,71 @@ angular.module('contenteditable', []) .directive('contenteditable', function() { return { require: 'ngModel', link: function($scope, $element, attrs, ngModel) { - var old_render; + var old_render // view -> model $element.bind('input', function(e) { $scope.$apply(function() { - var html, html2, rerender; - html = $element.html(); - rerender = false; + var html, html2, rerender + html = $element.html() + rerender = false if (attrs.stripBr && attrs.stripBr !== "false") { - html = html.replace(/
$/, ''); + html = html.replace(/
$/, '') } if (attrs.noLineBreaks && attrs.noLineBreaks !== "false") { - html2 = html.replace(/
/g, '').replace(/
/g, '').replace(/<\/div>/g, ''); + html2 = html.replace(/
/g, '').replace(/
/g, '').replace(/<\/div>/g, '') if (html2 !== html) { - rerender = true; - html = html2; + rerender = true + html = html2 } } - ngModel.$setViewValue(html); + ngModel.$setViewValue(html) if (rerender) { - ngModel.$render(); + ngModel.$render() } if (html === '') { // the cursor disappears if the contents is empty // so we need to refocus - $element.blur(); - $element.focus(); + $element.blur() + $element.focus() } - }); - }); + }) + }) // model -> view - old_render = ngModel.$render; + old_render = ngModel.$render ngModel.$render = function() { - var el, el2, range, sel; + var el, el2, range, sel if (!!old_render) { - old_render(); + old_render() } - $element.html(ngModel.$viewValue || ''); - el = $element.get(0); - range = document.createRange(); - sel = window.getSelection(); + $element.html(ngModel.$viewValue || '') + el = $element.get(0) + range = document.createRange() + sel = window.getSelection() if (el.childNodes.length > 0) { - el2 = el.childNodes[el.childNodes.length - 1]; - range.setStartAfter(el2); + el2 = el.childNodes[el.childNodes.length - 1] + range.setStartAfter(el2) } else { - range.setStartAfter(el); + range.setStartAfter(el) } - range.collapse(true); - sel.removeAllRanges(); - sel.addRange(range); - }; + range.collapse(true) + sel.removeAllRanges() + sel.addRange(range) + } if (attrs.selectNonEditable && attrs.selectNonEditable !== "false") { $element.click(function(e) { - var range, sel, target; - target = e.toElement; + var range, sel, target + target = e.toElement if (target !== this && angular.element(target).attr('contenteditable') === 'false') { - range = document.createRange(); - sel = window.getSelection(); - range.setStartBefore(target); - range.setEndAfter(target); - sel.removeAllRanges(); - sel.addRange(range); + range = document.createRange() + sel = window.getSelection() + range.setStartBefore(target) + range.setEndAfter(target) + sel.removeAllRanges() + sel.addRange(range) } - }); + }) } } - };}); + }})