1 (function (GCN) { 2 3 'use strict'; 4 5 /** 6 * @private 7 * @const 8 * @type {number} 9 */ 10 var TYPE_ID = 10008; 11 12 /** 13 * @private 14 * @const 15 * @type {object.<string, boolean>} Default file settings. 16 */ 17 var DEFAULT_SETTINGS = { 18 // Load file for updating 19 update: true 20 }; 21 22 /** 23 * @class 24 * @name FileAPI 25 * @extends ContentObjectAPI 26 * @extends TagContainerAPI 27 */ 28 var FileAPI = GCN.defineChainback({ 29 /** @lends FileAPI */ 30 31 __chainbacktype__: 'FileAPI', 32 33 _extends: [ GCN.ContentObjectAPI, GCN.TagContainerAPI ], 34 35 _type: 'file', 36 37 /** 38 * @type {Array.string} Writable properties for the page object. 39 */ 40 WRITEABLE_PROPS: [ 'cdate', 41 'description', 42 'folderId', // @TODO Check if moving is implemented 43 // correctly. 44 'name' ], 45 46 /** 47 * Retrieve the URL of this file's binary contents. You can use this to 48 * download the file from the server or to display an image. 49 * <b>WARNING!</b> Never ever store this URL in a page for users to 50 * load an image or to provide a download link. You should always refer 51 * to published files from the backend. Referencing a file directly 52 * using this link will put heavy load on you Gentics Content.Node CMS 53 * Server. 54 * 55 * @function 56 * @name binURL 57 * @memberOf FileAPI 58 * @return {string} Source URL of this file. 59 */ 60 '!binURL': function () { 61 return GCN.settings.BACKEND_PATH + '/rest/file/content/load/' + 62 this.id() + '?sid=' + GCN.sid; 63 }, 64 65 /** 66 * @see ContentObjectAPI.!_loadParams 67 */ 68 '!_loadParams': function () { 69 return jQuery.extend(DEFAULT_SETTINGS, this._settings); 70 } 71 }); 72 73 GCN.file = GCN.exposeAPI(FileAPI); 74 GCN.FileAPI = FileAPI; 75 76 }(GCN)); 77