Some refactoring and documentation
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var TextButton = require('./TextButton');
|
var TextButton = require('./TextButton');
|
||||||
var config = require('../config');
|
var config = require('./config');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates the menu with text-buttons settings provided. Settings will override
|
* Creates the menu with text-buttons settings provided. Settings will override
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
var config = require('../config');
|
var config = require('./config');
|
||||||
var util = require('../util');
|
var util = require('./util');
|
||||||
var ApertureHandler = require('./ApertureHandler');
|
var ApertureHandler = require('./ApertureHandler');
|
||||||
var ButtonMenu = require('./ButtonMenu');
|
var ButtonMenu = require('./ButtonMenu');
|
||||||
var DragbarHandler = require('./DragbarHandler');
|
var DragbarHandler = require('./DragbarHandler');
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var config = require('../config');
|
var config = require('./config');
|
||||||
|
|
||||||
var DragHandle = function (handler) {
|
var DragHandle = function (handler) {
|
||||||
var _currentAxis;
|
var _currentAxis;
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var DragHandle = require('./DragHandle');
|
var DragHandle = require('./DragHandle');
|
||||||
var config = require('../config');
|
var config = require('./config');
|
||||||
|
|
||||||
function DragbarHandler(canvas) {
|
function DragbarHandler(canvas) {
|
||||||
var _dragbars = {
|
var _dragbars = {
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var util = require('../util');
|
var util = require('./util');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {fabric.Image} img
|
* @param {fabric.Image} img
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var config = require('../config');
|
var config = require('./config');
|
||||||
|
|
||||||
function FrameHandler(viewport) {
|
function FrameHandler(viewport) {
|
||||||
var _frames;
|
var _frames;
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var Canvas = require('./Canvas');
|
var Canvas = require('./Canvas');
|
||||||
var util = require('../util');
|
var util = require('./util');
|
||||||
|
|
||||||
function ImageEditor(canvasId, args) {
|
function ImageEditor(canvasId, args) {
|
||||||
var _canvas;
|
var _canvas;
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var util = require('../util');
|
var util = require('./util');
|
||||||
var TextButton = require('./TextButton');
|
var TextButton = require('./TextButton');
|
||||||
var config = require('../config');
|
var config = require('./config');
|
||||||
|
|
||||||
function RulerHandler(viewport) {
|
function RulerHandler(viewport) {
|
||||||
var _enabled = false;
|
var _enabled = false;
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var config = require('../config');
|
var config = require('./config');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a text-button with text/settings provided.
|
* Creates a text-button with text/settings provided.
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
var FrameHandler = require('./FrameHandler');
|
var FrameHandler = require('./FrameHandler');
|
||||||
var GoreHandler = require('./GoreHandler');
|
var GoreHandler = require('./GoreHandler');
|
||||||
var RulerHandler = require('./RulerHandler');
|
var RulerHandler = require('./RulerHandler');
|
||||||
var util = require('../util');
|
var util = require('./util');
|
||||||
|
|
||||||
function Viewport(canvas) {
|
function Viewport(canvas) {
|
||||||
var _beams = [];
|
var _beams = [];
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var Draggable = require('./ImageEditor/Draggable');
|
var Draggable = require('./Draggable');
|
||||||
var ImageTransformationHandler = require('./ImageEditor/ImageTransformationHandler');
|
var ImageTransformationHandler = require('./ImageTransformationHandler');
|
||||||
var util = require('./util');
|
var util = require('./util');
|
||||||
|
|
||||||
function ExtendFabricFunctionality() {
|
function ExtendFabricFunctionality() {
|
||||||
+52
-33
@@ -1,30 +1,29 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is just an example usage of the image editor. Also this is used for testing.
|
||||||
|
* This code can be pretty messy, but that is fine because nothing of this will come to
|
||||||
|
* production.
|
||||||
|
*/
|
||||||
(function() {
|
(function() {
|
||||||
var $document = $(document);
|
var $document = $(document);
|
||||||
var $window = $(window);
|
var $window = $(window);
|
||||||
var $wrapper = $('#wrapper');
|
var $wrapper = $('#wrapper');
|
||||||
|
var $formControl = $('#form-control');
|
||||||
|
var editor = null;
|
||||||
|
|
||||||
// Inputs for the editor
|
// Inputs for the editor
|
||||||
var $input = {
|
var $input = {
|
||||||
w: $('#form-control input[name="w"]'),
|
w: $formControl.find('input[name="w"]'),
|
||||||
h: $('#form-control input[name="h"]'),
|
h: $formControl.find('input[name="h"]'),
|
||||||
image_id: $('#form-control input[name="image_id"]'),
|
image_id: $formControl.find('input[name="image_id"]'),
|
||||||
mirror: $('#form-control input[name="mirror"]'),
|
mirror: $formControl.find('input[name="mirror"]'),
|
||||||
noCrop: $('#form-control input[name="no-crop"]'),
|
noCrop: $formControl.find('input[name="no-crop"]'),
|
||||||
border: $('#form-control select[name="canvas-border"]'),
|
border: $formControl.find('select[name="canvas-border"]'),
|
||||||
};
|
};
|
||||||
|
|
||||||
var imageUrl = '//images.photowall.com/products/' + $input.image_id.val() + '.jpg?h=450';
|
var imageUrl = '//images.photowall.com/products/' + $input.image_id.val() + '.jpg?h=450';
|
||||||
|
|
||||||
var editor = new ImageEditor('canvas-editor', {
|
|
||||||
type: 'canvas',
|
|
||||||
})
|
|
||||||
.loadImage(imageUrl, function() {
|
|
||||||
$input.w.trigger('input');
|
|
||||||
Event.handleResize();
|
|
||||||
});
|
|
||||||
|
|
||||||
function getOptimalDimension(values, currentDimension, ratio) {
|
function getOptimalDimension(values, currentDimension, ratio) {
|
||||||
if (currentDimension === 'h') {
|
if (currentDimension === 'h') {
|
||||||
values.width = Math.round(values.height * ratio);
|
values.width = Math.round(values.height * ratio);
|
||||||
@@ -35,8 +34,7 @@
|
|||||||
return values;
|
return values;
|
||||||
}
|
}
|
||||||
|
|
||||||
var Event = {
|
function handleDimensionChange() {
|
||||||
DimensionChange: function() {
|
|
||||||
var noCropIsChecked = $input.noCrop.is(':checked');
|
var noCropIsChecked = $input.noCrop.is(':checked');
|
||||||
var currentDimension = $(this).attr('name') === 'h' ? 'h' : 'w';
|
var currentDimension = $(this).attr('name') === 'h' ? 'h' : 'w';
|
||||||
var data = editor.canvas.getViewport().getData();
|
var data = editor.canvas.getViewport().getData();
|
||||||
@@ -53,29 +51,34 @@
|
|||||||
$input.h.val(values.height);
|
$input.h.val(values.height);
|
||||||
|
|
||||||
editor.crop(values.width, values.height);
|
editor.crop(values.width, values.height);
|
||||||
},
|
}
|
||||||
Mirror: function() {
|
|
||||||
|
function handleMirrorChange() {
|
||||||
editor.canvas.getImage().transformation.set('mirror', this.checked);
|
editor.canvas.getImage().transformation.set('mirror', this.checked);
|
||||||
},
|
}
|
||||||
NoCrop: function() {
|
|
||||||
|
function handleNoCropChange() {
|
||||||
$input.w.trigger('input');
|
$input.w.trigger('input');
|
||||||
},
|
}
|
||||||
SetBorder: function () {
|
|
||||||
|
function handleFrameChange() {
|
||||||
editor.canvas.getViewport().setFrame($(this).val());
|
editor.canvas.getViewport().setFrame($(this).val());
|
||||||
},
|
}
|
||||||
handleResize: function() {
|
|
||||||
|
function handleResize() {
|
||||||
var isFullScreen = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement;
|
var isFullScreen = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement;
|
||||||
var width = $wrapper.width();
|
var width = $wrapper.width();
|
||||||
var height = isFullScreen ? ($window.height() < 800 ? $window.height() : 800) : $wrapper.height();
|
var height = isFullScreen ? $window.height() : $wrapper.height();
|
||||||
editor.canvas.resize({width: width, height: height});
|
editor.canvas.resize({width: width, height: height});
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
|
||||||
$input.w.on('input', Event.DimensionChange);
|
function eventHandlers() {
|
||||||
$input.h.on('input', Event.DimensionChange);
|
$input.w.on('input', handleDimensionChange);
|
||||||
$input.mirror.on('change', Event.Mirror);
|
$input.h.on('input', handleDimensionChange);
|
||||||
$input.noCrop.on('change', Event.NoCrop);
|
$input.mirror.on('change', handleMirrorChange);
|
||||||
$input.border.on('change', Event.SetBorder);
|
$input.noCrop.on('change', handleNoCropChange);
|
||||||
|
$input.border.on('change', handleFrameChange);
|
||||||
|
|
||||||
$document
|
$document
|
||||||
.on('PIE:dragged', function() {
|
.on('PIE:dragged', function() {
|
||||||
console.log('Dragged the image/dragbar!');
|
console.log('Dragged the image/dragbar!');
|
||||||
@@ -92,6 +95,22 @@
|
|||||||
.on('PIE:image-end-load', function() {
|
.on('PIE:image-end-load', function() {
|
||||||
console.log('Image loaded');
|
console.log('Image loaded');
|
||||||
});
|
});
|
||||||
$window.on('resize', Event.handleResize);
|
|
||||||
|
$window.on('resize', handleResize);
|
||||||
|
}
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
editor = new ImageEditor('canvas-editor', {
|
||||||
|
type: 'canvas',
|
||||||
|
})
|
||||||
|
.loadImage(imageUrl, function() {
|
||||||
|
$input.w.trigger('input');
|
||||||
|
handleResize();
|
||||||
|
});
|
||||||
|
|
||||||
|
eventHandlers();
|
||||||
|
}
|
||||||
|
|
||||||
|
init();
|
||||||
|
|
||||||
}());
|
}());
|
||||||
|
|||||||
+11
-4
@@ -2,10 +2,17 @@
|
|||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
|
|
||||||
var ExtendFabricFunctionality = require('./components/extend-fabric-functionality');
|
/**
|
||||||
var ImageEditor = require('./components/ImageEditor/ImageEditor');
|
* Fabric functionality is extended with some custom functionality. This is done before
|
||||||
|
* we do anything else.
|
||||||
|
*/
|
||||||
|
require('./includes/extend-fabric-functionality')();
|
||||||
|
|
||||||
ExtendFabricFunctionality();
|
/**
|
||||||
window.ImageEditor = ImageEditor;
|
* ImageEditor is the starting point of all files. Here the image editor is created and
|
||||||
|
* it receives attributes from the initialisation. As this is done from outside of this file,
|
||||||
|
* the ImageEditor should be available on globally.
|
||||||
|
*/
|
||||||
|
window.ImageEditor = require('./includes/ImageEditor');
|
||||||
|
|
||||||
}());
|
}());
|
||||||
|
|||||||
Reference in New Issue
Block a user