From 6d8aff7b3657332020ef215eb1b2fc16017e4cc8 Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Sun, 26 Jan 2014 13:34:03 +0000
Subject: [PATCH] #395 feature - Added license history entity and new angular directive to load file content
---
securis/src/main/resources/static/js/licenses.js | 108 +++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 74 insertions(+), 34 deletions(-)
diff --git a/securis/src/main/resources/static/js/licenses.js b/securis/src/main/resources/static/js/licenses.js
index 67bf7b4..fb5dd85 100644
--- a/securis/src/main/resources/static/js/licenses.js
+++ b/securis/src/main/resources/static/js/licenses.js
@@ -9,6 +9,44 @@
}
var app = angular.module('securis');
+
+ app.directive('fileLoader',
+ function($timeout, $parse) {
+ return {
+ restrict : 'A', // only activate on element attribute
+ require : '',
+ link : function(scope, element, attrs) {
+ console.log('scope.license: ' + scope.$parent.license);
+ var setter = $parse(attrs.fileLoader).assign;
+ element.bind('change', function(evt) {
+ console.log('scope.license: ' + scope.$parent.license);
+ var field = $parse(attrs.fileLoader);
+ console.log('field: ' + field);
+ var fileList = evt.target.files;
+ if (fileList != null && fileList[0]) {
+ var reader = new FileReader();
+ reader.onerror = function(data) {
+ setter(scope.$parent, 'ERROR');
+ scope.$apply();
+ }
+ reader.onload = function(data) {
+ setter(scope.$parent, reader.result);
+ scope.$apply();
+ }
+
+ reader.readAsText(fileList[0]);
+ } else {
+ console.log('NO FILE: ');
+ field = '';
+ scope.$apply();
+ }
+ });
+
+ }
+ };
+ });
+
+ console.log(' OK ????? ');
app.controller('PackAndLicensesCtrl', [
'$scope',
@@ -17,38 +55,6 @@
'$store',
'$L',
function($scope, $http, toaster, $store, $L) {
- $scope.licenses = [
- {id: 1,
- "code": "BP-SA-001-AKSJMS234",
- "user_fullname": "Johnny Belmonte",
- "user_email": "jb@curisit.net",
- "status": 3},
- {id: 2,
- "code": "BP-SA-001-KAJSDHAJS",
- "user_fullname": "Walter Simons",
- "user_email": "ws@curisit.net",
- "status": 1},
- {id: 3,
- "code": "BP-SA-001-ASKDGHKA",
- "user_fullname": "Frank Belmonte",
- "user_email": "fb@curisit.net",
- "status": 2},
- {id: 4,
- "code": "BP-SA-001-BBBGGGG",
- "user_fullname": "John Dalton",
- "user_email": "jd@curisit.net",
- "status": 3},
- {id: 5,
- "code": "BP-SA-001-AKADNAJANA",
- "user_fullname": "Walter Martins",
- "user_email": "wm@curisit.net",
- "status": 3},
- {id: 6,
- "code": "BP-SA-001-AKANDAKS",
- "user_fullname": "Joe Bolton",
- "user_email": "jbol@curisit.net",
- "status": 2}
- ];
$scope.maxLengthErrorMsg = function(displayname, fieldMaxlength) {
return $L.get("{0} length is too long (max: {1}).", $L.get(displayname), fieldMaxlength);
@@ -171,7 +177,6 @@
function($scope, $http, $resource, toaster, $store, $L) {
$scope.$on('pack_changed', function(evt, message) {
$scope.licenses = licenseResource.query({packId: $scope.currentPack.id});
- console.log('on pack_changed');
if ($scope.showForm) {
if ($scope.isNew) {
$scope.license.pack_id = $scope.currentPack.id
@@ -183,6 +188,25 @@
var licenseResource = $resource('/license/:licenseId', {
licenseId : '@id'
+ }, {
+ save_w_upload: {
+ method: "POST",
+ transformRequest: function(data, headersGetter) {
+ // To use an object without FormData, follow: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest?redirectlocale=en-US&redirectslug=DOM%2FXMLHttpRequest%2FUsing_XMLHttpRequest#Submitting_forms_and_uploading_files
+ var formData = new FormData();
+ angular.forEach(data, function(value, key) {
+ if (key !== 'request_data')
+ formData.append(key, value)
+ else
+ formData.append(key, $('input#request_data_file').get(0).files[0]);
+ })
+
+ return formData;
+ },
+ headers: {
+ 'Content-Type': undefined
+ }
+ }
});
$scope.mandatory = {
code: true
@@ -202,12 +226,28 @@
if ($scope.currentPack)
$scope.licenses = licenseResource.query({packId: $scope.currentPack.id});
+// $(document).on('change', '#request_data_file', function(newValue, oldValue) {
+// console.log('File changed!!!!');
+// var reader = new FileReader();
+// reader.onload = function(data) {
+// console.log('LOAD complete: ' + data);
+// console.log('LOAD reader.result: ' + reader.result);
+// $('input#request_data').val(reader.result)
+// }
+// console.log('file: ' + $('input#request_data_file').get(0).files[0]);
+// console.log('file2: ' + $scope.request_data_file);
+// reader.readAsText($('input#request_data_file').get(0).files[0]);
+// });
+
$scope.save = function() {
+ $( "form#licenseForm" )
+ .attr( "enctype", "multipart/form-data" )
+ .attr( "encoding", "multipart/form-data" );
var _success = function() {
if (!$scope.isNew) $scope.showForm = false;
$scope.licenses = licenseResource.query({packId: $scope.currentPack.id});
}
- licenseResource.save($scope.license, _success)
+ licenseResource.save_w_upload($scope.license, _success)
}
$scope.newLicense = function() {
--
Gitblit v1.3.2