[PORTAL-7] Rebase
[portal.git] / 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 (file)
index 90c88c5..0000000
+++ /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);
-                    }
-
-                }
-            }
-        }
-    }
-});