From b54df0ddd0c6a0372327c5aa3668e5a6458fcd64 Mon Sep 17 00:00:00 2001 From: st782s Date: Thu, 4 May 2017 07:48:42 -0400 Subject: [PORTAL-7] Rebase This rebasing includes common libraries and common overlays projects abstraction of components Change-Id: I9a24a338665c7cd058978e8636bc412d9e2fdce8 Signed-off-by: st782s --- .../image-upload/image-upload.directive.js | 222 --------------------- 1 file changed, 222 deletions(-) delete mode 100644 ecomp-portal-FE/client/app/directives/image-upload/image-upload.directive.js (limited to 'ecomp-portal-FE/client/app/directives/image-upload/image-upload.directive.js') diff --git a/ecomp-portal-FE/client/app/directives/image-upload/image-upload.directive.js b/ecomp-portal-FE/client/app/directives/image-upload/image-upload.directive.js deleted file mode 100644 index 90c88c50..00000000 --- a/ecomp-portal-FE/client/app/directives/image-upload/image-upload.directive.js +++ /dev/null @@ -1,222 +0,0 @@ -/*- - * ================================================================================ - * eCOMP Portal - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ - -'use strict'; - -angular.module('ecompApp').directive('imageUpload', function factory($q) { - var imageMimeRgx = /^image\/[a-zA-Z0-9]*$/; - - var URL = window.URL || window.webkitURL; - - var getResizeArea = function () { - var resizeAreaId = 'fileupload-resize-area'; - - var resizeArea = document.getElementById(resizeAreaId); - - if (!resizeArea) { - resizeArea = document.createElement('canvas'); - resizeArea.id = resizeAreaId; - resizeArea.style.visibility = 'hidden'; - document.body.appendChild(resizeArea); - } - - return resizeArea; - }; - - var resizeImage = function (origImage, options) { - var maxHeight = options.resizeMaxHeight || 300; - var maxWidth = options.resizeMaxWidth || 250; - var quality = options.resizeQuality || 0.7; - var type = options.resizeType || 'image/jpg'; - - var canvas = getResizeArea(); - - var height = origImage.height; - var width = origImage.width; - - //image redraw starting points - var x0, y0; - - // calculate the width and height, constraining the proportions - if (width > height) { - if (width > maxWidth) { - height = Math.round(height *= maxWidth / width); - width = maxWidth; - - x0 = 0; - y0 = Math.round((maxHeight - height)/2); - }else{ - maxHeight = height; - maxWidth = width; - x0 = 0; - y0 = 0; - } - } else { - if (height > maxHeight) { - width = Math.round(width *= maxHeight / height); - height = maxHeight; - - x0 = Math.round((maxWidth - width)/2); - y0 = 0; - }else{ - maxHeight = height; - maxWidth = width; - x0 = 0; - y0 = 0; - } - } - - canvas.width = maxWidth; - canvas.height = maxHeight; - - //draw image on canvas - var ctx = canvas.getContext("2d"); - - //set background color - if(options.backgroundColor){ - ctx.fillStyle = options.backgroundColor; - ctx.fillRect(0,0,maxWidth,maxHeight); - } - - - ctx.drawImage(origImage, x0, y0, width, height); - - // get the data from canvas as 70% jpg (or specified type). - return canvas.toDataURL(type, quality); - }; - - var createImage = function(url, callback) { - var image = new Image(); - image.onload = function() { - callback(image); - }; - image.src = url; - }; - - var fileToDataURL = function (file) { - var deferred = $q.defer(); - var reader = new FileReader(); - reader.onload = function (e) { - deferred.resolve(e.target.result); - }; - reader.readAsDataURL(file); - return deferred.promise; - }; - - return { - restrict: 'A', - require: '^form', - scope: { - image: '=imageUpload', - resizeMaxHeight: '@?imageUploadResizeMaxHeight', - resizeMaxWidth: '@?imageUploadResizeMaxWidth', - resizeQuality: '@?imageUploadResizeQuality', - resizeType: '@?imageUploadResizeType', - imageApi: '=?imageUploadApi', - backgroundColor: '@?imageUploadBackgroundColor' - }, - compile: function compile(tElement, tAttrs, transclude) { - return function postLink(scope, iElement, iAttrs, formCtrl) { - var doResizing = function(imageResult, callback) { - createImage(imageResult.url, function(image) { - var dataURL = resizeImage(image, scope); - imageResult.resized = { - dataURL: dataURL, - type: dataURL.match(/:(.+\/.+);/)[1] - }; - callback(imageResult); - }); - }; - - var applyScope = function(imageResult) { - scope.$apply(function() { - //console.log(imageResult); - if(iAttrs.multiple) - scope.image.push(imageResult); - else - scope.image = imageResult; - }); - }; - - iElement.bind('change', function (evt) { - //when multiple always return an array of images - if(iAttrs.multiple) - scope.image = []; - - var files = evt.target.files; - for(var i = 0; i < files.length; i++) { - setInputValidity(files[i]); - - //create a result object for each file in files - var imageResult = { - file: files[i], - url: URL.createObjectURL(files[i]) - }; - - fileToDataURL(files[i]).then(function (dataURL) { - imageResult.dataURL = dataURL; - }); - - if(scope.resizeMaxHeight || scope.resizeMaxWidth) { //resize image - doResizing(imageResult, function(imageResult) { - applyScope(imageResult); - }); - } - else { //no resizing - applyScope(imageResult); - } - } - }); - - //API for otter actions - scope.imageApi = scope.imageApi || {}; - scope.imageApi.clearFile = () => { - iElement[0].value = ""; - setInputValidity(); - }; - - - let setInputValidity = file => { - //if form validation supported - - if(formCtrl && iAttrs.name && formCtrl[iAttrs.name]){ - formCtrl[iAttrs.name].$setDirty(); - if(file && file.type && !imageMimeRgx.test(file.type)){ - //set form invalid - formCtrl[iAttrs.name].$setValidity('mimeType', false); - applyScope(); - return; - } - if(file && file.size && file.size > 1000000){ - //set form invalid - formCtrl[iAttrs.name].$setValidity('imageSize', false); - applyScope(); - return; - } - //set valid - formCtrl[iAttrs.name].$setValidity('mimeType', true); - formCtrl[iAttrs.name].$setValidity('imageSize', true); - } - - } - } - } - } -}); -- cgit 1.2.3-korg