123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /**
- * 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.
- */
- module.exports = {
- fileTypeMap: {
- csv: 'text/csv',
- json: 'application/json'
- },
- /**
- * download text file
- * @param data {String}
- * @param fileType {String}
- * @param fileName {String}
- */
- downloadTextFile: function (data, fileType, fileName) {
- if ($.browser.msie && $.browser.version < 10) {
- this.openInfoInNewTab(data);
- } else if (typeof safari !== 'undefined') {
- this.safariDownload(data, fileType, fileName);
- } else {
- try {
- var blob = new Blob([data], {
- type: (this.fileTypeMap[fileType] || 'text/' + fileType) + ';charset=utf-8;'
- });
- saveAs(blob, fileName);
- } catch (e) {
- this.openInfoInNewTab(data);
- }
- }
- },
- /**
- * open content of text file in new window
- * @param data {String}
- */
- openInfoInNewTab: function (data) {
- var newWindow = window.open('');
- var newDocument = newWindow.document;
- newDocument.write(data);
- newWindow.focus();
- },
- /**
- * Hack to dowload text data in Safari
- * @param data {String}
- * @param fileType {String}
- * @param fileName {String}
- */
- safariDownload: function (data, fileType, fileName) {
- var file = 'data:attachment/' + fileType + ';charset=utf-8,' + encodeURI(data);
- var linkEl = document.createElement("a");
- linkEl.href = file;
- linkEl.download = fileName;
- document.body.appendChild(linkEl);
- linkEl.click();
- document.body.removeChild(linkEl);
- },
- fileNameFromPath: function(path) {
- return path.split('/').slice(-1);
- }
- };
|