| /* |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you 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. |
| * |
| */ |
| define(["qpid/common/util", |
| "dojo/query", |
| "dojo/number", |
| "dojo/_base/lang", |
| "dojo/_base/connect", |
| "dojox/html/entities", |
| "dojo/text!logger/file/fileBrowser.html", |
| "dojox/grid/EnhancedGrid", |
| "qpid/common/UpdatableStore", |
| "dijit/registry", |
| "dojo/domReady!"], |
| function (util, query, number, lang, connect, entities, template, EnhancedGrid, UpdatableStore, registry) |
| { |
| function FileBrowser(params) |
| { |
| var that = this; |
| this.management = params.management; |
| this.modelObj = params.modelObj; |
| util.parse(params.containerNode, template, function () |
| { |
| that.postParse(params); |
| }); |
| } |
| |
| FileBrowser.prototype.postParse = function (params) |
| { |
| var that = this; |
| var gridProperties = { |
| height: 400, |
| selectionMode: "extended", |
| plugins: { |
| indirectSelection: true, |
| pagination: { |
| pageSizes: [10, 25, 50, 100], |
| description: true, |
| sizeSwitch: true, |
| pageStepper: true, |
| gotoButton: true, |
| maxPageStep: 4, |
| position: "bottom" |
| } |
| } |
| }; |
| |
| this.downloadButton = registry.byNode(query(".downloadButton", params.containerNode)[0]); |
| this.downloadButton.on("click", function (e) |
| { |
| that.downloadSelectedFiles() |
| }); |
| |
| this.downloadAllButton = registry.byNode(query(".downloadAllButton", params.containerNode)[0]); |
| this.downloadAllButton.on("click", function (e) |
| { |
| that.downloadAllFiles() |
| }); |
| |
| this.logFiles = this.addIdToFileObjects(params.data); |
| this.logFileGrid = new UpdatableStore(this.logFiles, query(".logFilesGrid", params.containerNode)[0], [{ |
| name: "Name", |
| field: "name", |
| width: "40%" |
| }, { |
| name: "Size", |
| field: "size", |
| width: "20%", |
| formatter: function (val) |
| { |
| return val > 1024 ? (val > 1048576 ? number.round(val / 1048576) + " MB" : number.round(val / 1024) |
| + " KB") : val + " B"; |
| } |
| }, { |
| name: "Last Modified", |
| field: "lastModified", |
| width: "40%", |
| formatter: function (val) |
| { |
| return that.management.userPreferences.formatDateTime(val, { |
| addOffset: true, |
| appendTimeZone: true |
| }); |
| } |
| }], function (obj) |
| { |
| obj.grid.on("rowDblClick", function (evt) |
| { |
| var idx = evt.rowIndex; |
| var theItem = this.getItem(idx); |
| that.download(theItem); |
| }); |
| }, gridProperties, EnhancedGrid); |
| } |
| |
| FileBrowser.prototype.download = function (item) |
| { |
| var parentModelObj = this.modelObj; |
| var modelObj = { |
| type: parentModelObj.type, |
| name: "getFile", |
| parent: parentModelObj |
| } |
| this.management.download(modelObj, {fileName: item.name}); |
| } |
| |
| FileBrowser.prototype.addIdToFileObjects = function (data) |
| { |
| var fileItems = []; |
| var logFiles = data.logFiles; |
| for (var idx in logFiles) |
| { |
| var item = lang.mixin(logFiles[idx], {id: logFiles[idx].name}); |
| fileItems.push(item); |
| } |
| return fileItems; |
| } |
| |
| FileBrowser.prototype.downloadSelectedFiles = function () |
| { |
| var data = this.logFileGrid.grid.selection.getSelected(); |
| this.downloadFiles(data); |
| } |
| |
| FileBrowser.prototype.downloadAllFiles = function () |
| { |
| var parentModelObj = this.modelObj; |
| var modelObj = { |
| type: parentModelObj.type, |
| name: "getAllFiles", |
| parent: parentModelObj |
| } |
| this.management.download(modelObj, {}); |
| } |
| |
| FileBrowser.prototype.downloadFiles = function (fileItems) |
| { |
| if (fileItems.length) |
| { |
| var parentModelObj = this.modelObj; |
| var modelObj = { |
| type: parentModelObj.type, |
| name: "getFiles", |
| parent: parentModelObj |
| } |
| var items = []; |
| for (var i = 0; i < fileItems.length; i++) |
| { |
| items.push(fileItems[i].id); |
| } |
| this.management.download(modelObj, {fileName: items}); |
| } |
| } |
| |
| FileBrowser.prototype.update = function (restData) |
| { |
| if (this.logFileGrid) |
| { |
| this.logFiles = this.addIdToFileObjects(restData); |
| if (this.logFileGrid.update(this.logFiles)) |
| { |
| //this.logFileGrid.grid._refresh(); |
| } |
| } |
| } |
| |
| return FileBrowser; |
| }); |