summaryrefslogtreecommitdiff
path: root/client/js/services/Image.js
blob: 795f85e55dc239763d6249d4dea1973b2aae731f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114

mainApp.factory('Image', ['$http', 'Identity', function ($http, Identity) {

        // Data object
        var data = {};
        data.images = null; // Images

        /**
         *  Parse uploadImage anwser
         * @param {type} response
         * @param {type} failedToSendRequest
         * @returns {Image_L2.parseUploadImageAnswer.requestParserResult}
         */
        var parseUploadImageAnswer = function (response, failedToSendRequest) {

            // Defined return object
            var requestParserResult = {};
            requestParserResult.status = 1;
            requestParserResult.failReason = null;


            if (typeof response.data.Images !== 'undefined') {
                // Set status code
                requestParserResult.status = 0;
                data.images = response.data.Images;

            } else if (failedToSendRequest) {
                requestParserResult.failReason = "Failed to send request";
            } else {
                requestParserResult.failReason = "Error";
            }
            return requestParserResult;
        };


        /**
         *  Get images
         * @param {type} callback
         * @returns {undefined}
         */
        var getImages = function (callback) {

            var result = $http.post('../server/index.php',
                    $.param({"token": Identity.getToken(), "task": "image", 'action': 'listImage'}));

            // Wait and handle the response
            result.then(function (response) {
                callback(parseUploadImageAnswer(response, false));
            }, function (response) {
                callback(parseUploadImageAnswer(response, true));
            });


        };

        /**
         * Upload an image
         * @param {type} fileToUpload
         * @param {type} callback
         * @returns {undefined}
         */
        var uploadImage = function (fileToUpload, callback) {
            var form_data = new FormData();
            form_data.append('file', fileToUpload);
            console.log(fileToUpload);
            form_data.append("task", "image");
            form_data.append("token", Identity.getToken());
            form_data.append('action', "uploadImage");
            form_data.append('id', '6564');
            form_data.append('file_name', fileToUpload);

            $.ajax({
                url: "../server/index.php", // Url to which the request is send
                type: "POST", // Type of request to be send, called as method
                data: form_data, // Data sent to server, a set of key/value pairs (i.e. form fields and values)
                file_name: fileToUpload,
                token: Identity.getToken(),
                task: "image",
                action: 'uploadImage',
                id: '6564',
                contentType: false, // The content type used when sending data to the server.
                cache: false, // To unable request pages to be cached
                processData: false, // To send DOMDocument or non processed data file it is set to false
                success: function (data)   // A function to be called if request succeeds
                {
                    alert("success");
                }
            });

            //var result=$http.post('../server/index.php',
            //				  $.param({"token" : Identity.getToken(), "task" : "image", 'action':'uploadImage', 'file_name':form_data, 'id':'6564'}));  

            // Wait and handle the response
            /*   result.then(function (response){
             callback(parseUploadImageAnswer(response, false));
             },function(response){
             callback(parseUploadImageAnswer(response, true));
             });*/
        };


        var getData = function (response) {
            return data;
        };

        // Return services objects
        return {
            getImages: getImages,
            getData: getData,
            uploadImage: uploadImage
        };


    }]);