123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- /*
- * Licensed Materials - Property of IBM
- *
- * IBM Cognos Products: Modeling UI
- *
- * Copyright IBM Corp. 2017, 2021
- *
- * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- */
- define(
- ['bi/glass/core/Class', '../StringResourcesBridge', '../FileUploadBridge'],
- function (BaseClass, Resources, FileUploader) {
- var fileUploader;
- var APPEND_ITEM_ID = 'com.ibm.bi.ca-uploadModeller.ca-modeller-glass-upload-append' ;
- var UploadActionHandler = BaseClass.extend({
- init: function () {
- UploadActionHandler.inherited('init', this, arguments);
- },
-
- initialize: function(context) {
- var providers = context.controllerConfig && context.controllerConfig.providers;
- if (!fileUploader) {
- fileUploader = new FileUploader(context.glassContext);
- fileUploader.render({ providers: providers });
- }
- },
- _isSupported: function (application) {
- if (!window.File) {
- application.showErrorMessage(Resources.get('errorHTML5Support') + '(1)');
- return false;
- } else if (!window.FileReader) {
- application.showErrorMessage(Resources.get('errorHTML5Support') + '(2)');
- return false;
- } else if (!window.FileList) {
- application.showErrorMessage(Resources.get('errorHTML5Support') + '(3)');
- return false;
- } else if (!window.Blob) {
- application.showErrorMessage(Resources.get('errorHTML5Support') + '(4)');
- return false;
- } else if (/^((?!chrome).)*safari\/537/i.test(navigator.userAgent)) {
- // safari 8 not good
- application.showErrorMessage(Resources.get('errorUploadSupport'));
- return false;
- }
- return true;
- },
- // #onSelectItem for Upload or refresh button
- onSelectItem: function (context) {
- if (this._isSupported(context.glassContext)) {
- // fileUploadId
- var fileUploadId = null;
- var isAppend = false;
- // moser needs destination to be undefined as default
- var folderName = undefined;
- if (context.target.activeObject) {
- fileUploadId = context.target.activeObject.aSelectedContext[0].id;
- ancestors = context.target.activeObject.aSelectedContext[0].ancestors
- // https://jsw.ibm.com/browse/MUI-1256
- folderName = (ancestors && ancestors.length > 0) ? ancestors[ancestors.length -1].defaultName : undefined;
- if (context.target.itemId === APPEND_ITEM_ID) {
- isAppend = true;
- }
- }
- fileUploader.showFilePicker(fileUploadId, null, isAppend, { destination: folderName });
- }
- },
- isItemVisible: function (context) {
- if (!context.target.activeObject) {
- // Show in the Create New menu
- return true;
- }
- var obj = context.target.activeObject.aSelectedContext[0];
- var singleSelect = context.target.activeObject.aSelectedContext.length === 1;
- var visible =
- singleSelect &&
- obj.type === 'uploadedFile' &&
- _.indexOf(obj.permissions, 'write') > -1;
- if (obj.extensions && obj.extensions.refresh === false) {
- visible = false;
- }
- return visible;
- }
- });
- return UploadActionHandler;
- }
- );
|