Пример #1
0
 var buildDefaultLeftNav = function(page, util) {
     var id = page.assets.id;
     var navList = util.navList();
     var isLCViewEnabled = ctx.rxtManager.isLifecycleViewEnabled(ctx.assetType);
     if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_UPDATE, ctx.assetType, ctx.session)) {
         navList.push('Edit', 'btn-edit', util.buildUrl('update') + '/' + id);
     }
     navList.push('Overview', 'btn-overview', util.buildUrl('details') + '/' + id);
     //Only render the view if the asset has a 
     if ((isLCViewEnabled) && (isAssetWithLifecycle(page.assets))) {
         if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_LIFECYCLE, ctx.assetType, ctx.session)) {
             navList.push('Life Cycle', 'btn-lifecycle', util.buildUrl('lifecycle') + '/' + id);
         }
     }
     return navList.list();
 };
Пример #2
0
 ribbon: function(page) {
     var ribbon = page.ribbon = {};
     var DEFAULT_ICON = 'icon-cog';
     var assetTypes = [];
     var assetType;
     var assetList = ctx.rxtManager.listRxtTypeDetails();
     for (var index in assetList) {
         assetType = assetList[index];
         //Only populate the link if the asset type is activated and the logged in user has permission to that asset
         if ((isActivatedAsset(assetType.shortName)) && (permissionAPI.hasAssetPermission(permissionAPI.ASSET_LIST, assetType.shortName, ctx.session))) {
             assetTypes.push({
                 url: this.buildBaseUrl(assetType.shortName) + '/list',
                 assetIcon: assetType.ui.icon || DEFAULT_ICON,
                 assetTitle: assetType.singularLabel
             });
         }
     }
     ribbon.currentType = page.rxt.singularLabel;
     ribbon.currentTitle = page.rxt.singularLabel;
     ribbon.currentUrl = this.buildBaseUrl(type) + '/list'; //page.meta.currentPage;
     ribbon.shortName = page.rxt.singularLabel;
     ribbon.query = 'Query';
     ribbon.breadcrumb = assetTypes;
     return page;
 },
Пример #3
0
 var buildListLeftNav = function(page, util) {
     var navList = util.navList();
     if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_CREATE, ctx.assetType, ctx.session)) {
         navList.push('Add ', 'btn-add-new', util.buildUrl('create'));
     }
     return navList.list();
 };
Пример #4
0
 pageDecorators.navigationBar = function(ctx, page, utils) {
     var permissionAPI = require('rxt').permissions;
     var ribbon = page.ribbon = {};
     var DEFAULT_ICON = 'icon-cog';
     var assetTypes = [];
     var assetType;
     var assetList = ctx.rxtManager.listRxtTypeDetails();
     for (var index in assetList) {
         assetType = assetList[index];
         //Only populate the link if the asset type is activated and the logged in user has permission to that asset
         if ((isActivatedAsset(assetType.shortName, ctx.tenantId)) && (permissionAPI.hasAssetPermission(permissionAPI.ASSET_LIST, assetType.shortName, ctx.session))) {
             assetTypes.push({
                 url: utils.buildAssetPageUrl(assetType.shortName, '/list'),
                 assetIcon: assetType.ui.icon || DEFAULT_ICON,
                 assetTitle: assetType.pluralLabel
             });
         }
     }
     ribbon.currentType = page.rxt.singularLabel;
     ribbon.currentTitle = page.rxt.singularLabel;
     ribbon.currentUrl = utils.buildAssetPageUrl(assetType.shortName, '/list'); //page.meta.currentPage;
     ribbon.shortName = page.rxt.singularLabel;
     ribbon.query = 'Query';
     ribbon.breadcrumb = assetTypes;
     return page;
 };
Пример #5
0
 pageDecorators.navigationBar = function(ctx, page, utils) {
     var app = require('rxt').app;
     //Change the context to support cross tenant views
     var tenantAppResources = tenantApi.createTenantAwareAppResources(ctx.session);
     //Support for cross tenant views
     ctx = tenantAppResources.context;
     var rxtManager = ctx.rxtManager;
     //Obtain all of the available rxt types
     var availableTypes = app.getUIActivatedAssets(ctx.tenantId);
     var types = [];
     var type;
     var currentType;
     page.isUserDomainAndUrlDomainDifferent = tenantAppResources.isUserDomainAndUrlDomainDifferent;
     page.navigationBar = {};
     var isLandingPage = true;
     for (var index in availableTypes) {
         type = availableTypes[index];
         if (permissionsAPI.hasAssetPermission(permissionsAPI.ASSET_LIST, type, ctx.tenantId, ctx.username)) {
             currentType = rxtManager.getRxtTypeDetails(type);
             currentType.selected = false;
             currentType.style = "all-item";
             currentType.listingUrl = utils.buildAssetPageUrl(currentType.shortName, '/list');
             if (currentType.shortName == page.rxt.shortName) {
                 currentType.selected = true;
                 currentType.style = "active home top-item";
                 isLandingPage = false;
             }
             types.push(currentType);
         }
     }
     page.navigationBar.types = types;
     page.navigationBar.landingPage = isLandingPage;
     return page;
 };
Пример #6
0
 var buildListLeftNav = function(page, util) {
     var navList = util.navList();
     if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_CREATE, ctx.assetType, ctx.session)) {
         navList.push('Add ' + type, 'btn-add-new', util.buildUrl('create'));
         navList.push('Statistics', 'btn-stats', '/asts/' + type + '/statistics');
     }
     //navList.push('Configuration', 'icon-dashboard', util.buildUrl('configuration'));
     return navList.list();
 };
Пример #7
0
 var importProcessLeftNav = function(page, util) {
     var navList = util.navList();
     if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_CREATE, ctx.assetType, ctx.session)) {
         navList.push('Add ', 'btn-add-new', util.buildUrl('create'));
         navList.push('Import Process', 'btn-import', util.buildUrl('import_process'));
         navList.push('Audit Log', 'btn-overview', util.buildUrl('log'));
     }
     return navList.list();
 };
Пример #8
0
 pageDecorators.recentAssetsOfActivatedTypes = function(ctx, page) {
     var app = require('rxt').app;
     var asset = require('rxt').asset;
     var assets = {};
     var items = [];
     var assetsByType = [];
     var am;
     var type;
     var rxtDetails;
     var tenantAppResources = tenantApi.createTenantAwareAppResources(ctx.session);
     var tenantAssetResources;
     // Supporting cross tenant views
     ctx = tenantAppResources.context;
     types = app.getActivatedAssets(ctx.tenantId);
     var typeDetails;
     var ratingApi = require('/modules/rating-api.js').api;
     var q = page.assetMeta.q;
     var query = buildRecentAssetQuery(q);
     for (var index in types) {
         typeDetails = ctx.rxtManager.getRxtTypeDetails(types[index]);
         type = typeDetails.shortName;
         tenantAssetResources = tenantApi.createTenantAwareAssetResources(ctx.session, {
             type: type
         });
         am = tenantAssetResources.am;
         // if (ctx.isAnonContext) {
         //     am = asset.createAnonAssetManager(ctx.session, type, ctx.tenantId);
         // } else {
         //     am = asset.createUserAssetManager(ctx.session, type);
         // }
         if (permissionsAPI.hasAssetPermission(permissionsAPI.ASSET_LIST, type, ctx.tenantId, ctx.username)) {
             if (query) {
                 query = replaceNameQuery(query, ctx.rxtManager, type);
                 query = replaceCategoryQuery(query, ctx.rxtManager, type);
                 assets = am.recentAssets({
                     q: query
                 });
             } else {
                 assets = am.recentAssets();
             }
             if (assets.length > 0) {
                 //Add subscription details if this is not an anon context
                 if (!ctx.isAnonContext) {
                     addSubscriptionDetails(assets, am, ctx.session);
                 }
                 ratingApi.addRatings(assets, am, ctx.tenantId, ctx.username);
                 items = items.concat(assets);
                 assetsByType.push({
                     assets: assets,
                     rxt: typeDetails
                 });
             }
         }
     }
     page.recentAssets = items;
     page.recentAssetsByType = assetsByType;
 };
Пример #9
0
 var buildListLeftNav = function(page, util) {
     var navList = util.navList();
     if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_CREATE, ctx.assetType, ctx.session)) {
         navList.push('Add ', 'btn-add-new', util.buildUrl('create'));
         navList.push('Import Process', 'btn-import', util.buildUrl('import_process'));
         navList.push('Audit Log', 'btn-auditlog', util.buildUrl('log'));
     }
     //navList.push('Configuration', 'icon-dashboard', util.buildUrl('configuration'));
     return navList.list();
 };
Пример #10
0
    var buildDefaultLeftNav = function(page, util) {
        var id = page.assets.id;
        var path = page.assets.path;
        var navList = util.navList();
        var isLCViewEnabled = ctx.rxtManager.isLifecycleViewEnabled(ctx.assetType);
        var user = require('store').server.current(session);
        var username = user? user.username : null;

        navList.push('Overview', 'btn-overview', util.buildUrl('details') + '/' + id);
        if ((isLCViewEnabled) && (isAssetWithLifecycle(page.assets))) {
            if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_LIFECYCLE, ctx.assetType, ctx.session)) {
                navList.push('Life Cycle', 'btn-lifecycle', util.buildUrl('lifecycle') + '/' + id);
            }
        }
        if (permissionAPI.hasActionPermissionforPath(path, 'delete', ctx.session)) {
            navList.push('Delete', 'btn-delete', util.buildUrl('delete') + '/' + id);
        }
        return navList.list();
    };
Пример #11
0
    var buildDefaultLeftNav = function(page, util) {
        var id = page.assets.id;
        var path = page.assets.path;
        var navList = util.navList();
        var isLCViewEnabled = ctx.rxtManager.isLifecycleViewEnabled(ctx.assetType);
        var user = require('store').server.current(session);
        var username = user? user.username : null;
        if (permissionAPI.hasActionPermissionforPath(path, 'write', ctx.session) && permissionAPI.hasAssetPagePermission(type,'update',user.tenantId,username)) {
            navList.push('Edit', 'btn-edit', util.buildUrl('update') + '/' + id);
        }
        if (permissionAPI.hasActionPermissionforPath(path, 'delete', ctx.session)) {
                    navList.push('Delete', 'btn-delete', util.buildUrl('delete') + '/' + id);
        }
        //Only render the view if the asset has a
        if ((isLCViewEnabled) && (isAssetWithLifecycle(page.assets))) {
            if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_LIFECYCLE, ctx.assetType, ctx.session)) {
                navList.push('Lifecycle', 'btn-lifecycle', util.buildUrl('lifecycle') + '/' + id);
            }
        }
        if (permissionAPI.hasActionPermissionforPath(path, 'write', ctx.session)
            && permissionAPI.hasAssetPagePermission(type, 'update', user.tenantId, username) && ctx.rxtManager.getVersionAttribute(type)) {
            navList.push('Version', 'btn-copy', util.buildUrl('copy') + '/' + id);
        }

        return navList.list();
    };
Пример #12
0
    var buildDefaultLeftNav = function(page, util) {
        var id = page.assets.id;
        var path = page.assets.path;
        var navList = util.navList();
        var isLCViewEnabled = ctx.rxtManager.isLifecycleViewEnabled(ctx.assetType);
        var user = require('store').server.current(session);
        var username = user? user.username : null;
        //navList.push('Overview', 'btn-overview', util.buildUrl('details') + '/' + id);
        if (permissionAPI.hasActionPermissionforPath(path, 'write', ctx.session) && permissionAPI.hasAssetPagePermission(type,'update',user.tenantId,username)) {
            navList.push('Edit', 'btn-edit', util.buildUrl('update') + '/' + id);
        }

        //Only render the view if the asset has a
        if ((isLCViewEnabled) && (isAssetWithLifecycle(page.assets))) {
            if (permissionAPI.hasAssetPermission(permissionAPI.ASSET_LIFECYCLE, ctx.assetType, ctx.session)) {
                navList.push('Lifecycle', 'btn-lifecycle', util.buildUrl('lifecycle') + '/' + id);
            }
        }

        if (permissionAPI.hasActionPermissionforPath(path, 'delete', ctx.session)) {
            navList.push('Delete', 'btn-delete', util.buildUrl('delete') + '/' + id);
        }

        importPackage(org.wso2.carbon.pc.core.assets);
        var process = new Process(page.processName, page.processVersion, user.username);
        var deploymentID = process.getProcessDeployedID();

        if(deploymentID != null) {
                 page.processDeploymentID = deploymentID;
       		 navList.push('Config Analytics', 'btn-configAnalytics', util.buildUrl('config_analytics') + '/' + id);
        }
        navList.push('Audit Log', 'btn-auditlog', util.buildUrl('log') + '/' + id);
        //if (permissionAPI.hasActionPermissionforPath(path, 'write', ctx.session) && permissionAPI.hasAssetPagePermission(type,'update',user.tenantId,username)) {
        //navList.push('Version', 'btn-copy', util.buildUrl('copy') + '/' + id);
        //}

        return navList.list();
    };
Пример #13
0
        create: function(page) {
            var tables = page.assets.tables;
            var providerAttribute = 'provider'; //TODO: Provider should be picked up from the provider attribute
            var processTextPathAttribute = 'processtextpath';
            var bpmnPathAttribute = 'bpmnpath';
            for (var index in tables) {
                var table = tables[index];
                if ((table.name == 'overview') && (table.fields.hasOwnProperty(providerAttribute))) {
                    table.fields[providerAttribute].value = page.cuser.cleanedUsername;
                }

                if ((table.name == 'properties') && (table.fields.hasOwnProperty(processTextPathAttribute))) {
                    var processTextField = table.fields[processTextPathAttribute].value;
                    var bpmnPathField = table.fields[bpmnPathAttribute].value;
                    page.isProcessTextAvailable = false;
                    page.isBpmnAvailable = false;

                    if(processTextField == 'NA') {
                        page.isProcessTextAvailable = false;
                    } else if(processTextField != null) {
                        page.isProcessTextAvailable = true;
                    }

                    if(bpmnPathField == 'NA') {
                        page.isBpmnAvailable = false;
                    } else if(processTextField != null) {
                        page.isBpmnAvailable = true;
                    }
                }

                var resourcePath = page.assets.path;
                var permissionAPI = require('rxt').permissions;
                if (permissionAPI.hasActionPermissionforPath(resourcePath , 'write', ctx.session)){
                    page.permission=true;
                }
                else{
                    page.permission=false;
                }
            }
        },
Пример #14
0
 Handlebars.registerHelper('hasAppPermission',function(context,options){
     var rxtAPI  = require('rxt');
     var key = options.hash.key;
     var type = options.hash.type;
     var tenantId = options.hash.tenantId;
     var username = options.hash.username;
     var isAuthorized =options.hash.auth ? options.hash.auth : false; 
     var missingParams = (!key) || (!tenantId) || (!username);
     //If the user is forcing the view to render 
     if(isAuthorized){
         return options.fn(context);
     }
     if(missingParams){
         log.error('[hasAppPermission] Helper not executed since insufficient number of parameters were provided (required parameters: key,type,tenantId,username)');
         return ;
     }
     isAuthorized = rxtAPI.permissions.hasAppPermission(key,tenantId,username);
     if(isAuthorized){
         return options.fn(context);
     }
     log.error('[hasAppPermission] User ' + username + ' does not have permission: ' + key + ' to see ui area');
     return ;
 });
Пример #15
0
 pageDecorators.recentAssetsOfActivatedTypes = function(ctx, page) {
     var app = require('rxt').app;
     var asset = require('rxt').asset;
     var permissions = require('rxt').permissions;
     var assetAPI = require('/modules/asset-api.js').api;
     var assets = {};
     var items = [];
     var pcItems = [];
     var pcTypeDetails = [];
     var pcAssets = [];
     var assetsByType = [];
     var am;
     var type;
     var rxtDetails;
     var assetMap = {};
     var bookmarkable;
     var tenantAppResources = tenantApi.createTenantAwareAppResources(ctx.session);
     var tenantAssetResources;
     // Supporting cross tenant views
     ctx = tenantAppResources.context;
     types = app.getUIActivatedAssets(ctx.tenantId);
     var typeDetails;
     var ratingApi = require('/modules/rating-api.js').api;
     var q = page.assetMeta.q;
     var query = buildRecentAssetQuery(q);
     var username = ctx.username || null;
     var tenantId = ctx.tenantId;
     var canBookmark = function(type) {
         return permissions.hasAssetPermission(permissions.ASSET_BOOKMARK, type, tenantId, username);
     };
     var bookmarkPerms = {};
     if (query) {
         items = asset.advanceSearch(query, null, session, ctx.tenantId)||[];
         ratingApi.addRatings(items, am, ctx.tenantId, ctx.username);
         assetMap = {};
         var template;
         //Sort the results by type
         items.forEach(function(item){
             var type = item.type;
             if(!assetMap[type]){
                 assetMap[type] = [];
             }
             bookmarkable = bookmarkPerms[type];
             if (bookmarkable === undefined) {
                 bookmarkable = (bookmarkPerms[type] = canBookmark(type));
             }
             item.bookmarkable = bookmarkable;
             assetMap[type].push(item);
         });
         //Collect the asset result set along with the rxt definition
         for(var key in assetMap){
             template = ctx.rxtManager.getRxtTypeDetails(key);
             assetsByType.push({
                 assets:assetMap[key],
                 rxt:template
             });
         }
     } else {
         for (var index in types) {
             typeDetails = ctx.rxtManager.getRxtTypeDetails(types[index]);
             type = typeDetails.shortName;
             tenantAssetResources = tenantApi.createTenantAwareAssetResources(ctx.session, {
                 type: type
             });
             bookmarkable = bookmarkPerms[type];
             if(bookmarkable === undefined) {
                 bookmarkable = (bookmarkPerms[type] = canBookmark(type));
             }
             am = tenantAssetResources.am;
             if (permissionsAPI.hasAssetPermission(permissionsAPI.ASSET_LIST, type, ctx.tenantId, ctx.username)) {
                 assets = am.recentAssets();
                 if (assets.length > 0) {
                     //Add subscription details if this is not an anon context
                     if (!ctx.isAnonContext) {
                         addSubscriptionDetails(assets, am, ctx.session, bookmarkable);
                     }
                     ratingApi.addRatings(assets, am, ctx.tenantId, ctx.username);
                     items = items.concat(assets);
                     assetsByType.push({
                         assets: assets,
                         rxt: typeDetails
                     });
                 }
             }
         }
     }
     // Display only process type assets for recent assets
     for(var i = 0; i <items.length; i++){
          if(items[i].type == "process"){
             log.debug("Found Process type assets"+ i); 
            var pcCurrentType =ctx.rxtManager.getRxtTypeDetails(items[i].type);
            pcTypeDetails = pcCurrentType ;
            pcItems.push(items[i]);
          }
     }
     
     pcAssets.push({
      assets:pcItems,
      rxt:pcTypeDetails
     });
     
     page.recentAssets = pcItems;
     page.recentAssetsByType = pcAssets;
 };
Пример #16
0
        details: function(page) {
            var tables = page.assets.tables;
            //TODO:This cannot be hardcoded
            var timestampAttribute = 'createdtime'; //ctx.rxtManager.getTimeStampAttribute(this.assetType);
            for (var index in tables) {
                var table = tables[index];
                if ((table.name == 'overview') && (table.fields.hasOwnProperty(timestampAttribute))) {
                    var value = table.fields[timestampAttribute].value || '';
                    var date = new Date();
                    date.setTime(value);
                    table.fields[timestampAttribute].value = date.toUTCString();
                }
            }
            var log = new Log();
            var resourcePath = page.assets.path;
            if (log.isDebugEnabled()) {
                log.debug(resourcePath);
            }
            if (page.assets.tables[1].fields.processtextpath.value == "NA") {
                page.processTextAvaliable = false;
            } else {
                page.processTextAvaliable = true;
            }

            if (page.assets.tables[1].fields.bpmnid.value == "NA") {
                page.bpmnAvaliable = false;
            } else {
                page.bpmnAvaliable = true;
            }

            importPackage(org.wso2.carbon.pc.core);
            var ps = new ProcessStore();
            var isDocumentAvailableStr = ps.isDocumentAvailable(resourcePath);
            var isDocumentAvailable = JSON.parse(isDocumentAvailableStr);

            if (isDocumentAvailable == true) {
                page.documentAvailable = true;
            } else {
                page.documentAvailable = false;
            }

            var conData = ps.getSucessorPredecessorSubprocessList(resourcePath);
            var conObject = JSON.parse(conData);
            if (log.isDebugEnabled()) {
                log.debug(conObject);
            }
            page.involveProcessList = conObject;
            if (log.isDebugEnabled()) {
                log.debug(page);
            }

            var flowchartPath = page.assets.tables[8].fields.path.value;
            if(flowchartPath != "NA"){
                page.flowchartAvailable = true;
                page.flowchartPath = flowchartPath;
            }else{
                page.flowchartAvailable = false;
            }

            var permissionAPI = require('rxt').permissions;
            if (permissionAPI.hasActionPermissionforPath(resourcePath , 'write', ctx.session)){
                page.permission=true;
            }
            else{
                page.permission=false;
            }

            var thumbnail = page.assets.tables[7].fields.thumbnail.value;
            if (thumbnail === "images_thumbnail") {
                page.customThumbnailAvailable = true;
            } else {
                page.customThumbnailAvailable = false;
            }

            var processName = page.assets.tables[0].fields.name.value; //tables[0].fields["Name"].value;
            var processVersion = page.assets.tables[0].fields.version.value;
            page.processName = processName;
            page.processVersion = processVersion;

            try {

                var processTags = ps.getProcessTags(processName, processVersion);
                var ps = new ProcessStore();
                page.processTagsArray = processTags.split("###");
            } catch (e) {
                log.error("Error in retrieving process tags. Exception:" + e);
            }

            importPackage(org.wso2.carbon.pc.analytics.core.generic.utils);
            page.DASAnalyticsEnabled = AnalyticsUtils.isDASAnalyticsActivated();
            importPackage(org.wso2.carbon.pc.analytics.core.kpi.utils);
            page.DASAnalyticsConfigured = DASConfigurationUtils.isDASAnalyticsConfigured(processName, processVersion);

            if (page.DASAnalyticsConfigured) {
                var processVariablesJObArrStr = ps.getProcessVariablesList(resourcePath);
                var processVariablesJObArr = JSON.parse(processVariablesJObArrStr);
                page.processVariableList = processVariablesJObArr;
                var streamAndReceiverInfo = JSON.parse(ps.getStreamAndReceiverInfo(resourcePath));

                page.eventStreamName = streamAndReceiverInfo["eventStreamName"];
                page.eventStreamVersion = streamAndReceiverInfo["eventStreamVersion"];
                page.eventStreamDescription = streamAndReceiverInfo["eventStreamDescription"];
                page.eventStreamNickName = streamAndReceiverInfo["eventStreamNickName"];
                page.eventReceiverName = streamAndReceiverInfo["eventReceiverName"];
                page.processDefinitionId = streamAndReceiverInfo["processDefinitionId"];
            }

        },
Пример #17
0
 var canBookmark = function(type) {
     return permissions.hasAssetPermission(permissions.ASSET_BOOKMARK, type, tenantId, username);
 };
Пример #18
0
 pageDecorators.recentAssetsOfActivatedTypes = function(ctx, page) {
     var app = require('rxt').app;
     var asset = require('rxt').asset;
     var permissions = require('rxt').permissions;
     var assetAPI = require('/modules/asset-api.js').api;
     var assets = {};
     var items = [];
     var assetsByType = [];
     var am;
     var type;
     var rxtDetails;
     var assetMap = {};
     var bookmarkable;
     var tenantAppResources = tenantApi.createTenantAwareAppResources(ctx.session);
     var tenantAssetResources;
     // Supporting cross tenant views
     ctx = tenantAppResources.context;
     types = app.getUIActivatedAssets(ctx.tenantId);
     var typeDetails;
     var ratingApi = require('/modules/rating-api.js').api;
     var q = page.assetMeta.q;
     var query = buildRecentAssetQuery(q);
     var username = ctx.username || null;
     var tenantId = ctx.tenantId;
     var canBookmark = function(type) {
         return permissions.hasAssetPermission(permissions.ASSET_BOOKMARK, type, tenantId, username);
     };
     var bookmarkPerms = {};
     
     // check whether the given query is a mediaType search query. Due to REGISTRY-3379.
     // case 1 : Search query provided with mediaType search
     if(isMediaType(query,types)){
         var paging = {'start': 0,
                     'count': 7,
                     'sortOrder': 'desc',
                     'sortBy': 'createdDate',
                     'paginationLimit': 7 };
         tenantAssetResources = tenantApi.createTenantAwareAssetResources(ctx.session, {
             type: query.mediaType
         });
         assets = tenantAssetResources.am.advanceSearch(query, paging);
         page.recentAssets = [];
         page.recentAssetsByType = [];
         typeDetails = ctx.rxtManager.getRxtTypeDetails(query.mediaType);
         page.recentAssetsByType.push({
             assets:assets,
             rxt:typeDetails
         });
         return;
     }
     // case 2 : Search query provided without a mediaType search
         for (var index in types) {
             typeDetails = ctx.rxtManager.getRxtTypeDetails(types[index]);
             type = typeDetails.shortName;
             tenantAssetResources = tenantApi.createTenantAwareAssetResources(ctx.session, {
                 type: type
             });
             bookmarkable = bookmarkPerms[type];
             if(bookmarkable === undefined) {
                 bookmarkable = (bookmarkPerms[type] = canBookmark(type));
             }
             am = tenantAssetResources.am;
             if (permissionsAPI.hasAssetPermission(permissionsAPI.ASSET_LIST, type, ctx.tenantId, ctx.username)) {
                 if (query) {
                     var paging = {'start': 0,
                                 'count': 7,
                                 'sortOrder': 'desc',
                                 'sortBy': 'createdDate',
                                 'paginationLimit': 7 };
                     assets = am.advanceSearch(query, paging);
                 } else {
                     assets = am.recentAssets();
                 }
                 if (assets.length > 0) {
                     //Add subscription details if this is not an anon context
                     if (!ctx.isAnonContext) {
                         addSubscriptionDetails(assets, am, ctx.session, bookmarkable);
                     }
                     ratingApi.addRatings(assets, am, ctx.tenantId, ctx.username);
                     items = items.concat(assets);
                     assetsByType.push({
                         assets: assets,
                         rxt: typeDetails
                     });
                 }
             }
         }
     page.recentAssets = items;
     page.recentAssetsByType = assetsByType;
 };
Пример #19
0
        update: function(page) {
            var tables = page.assets.tables;
            var timestampAttribute = 'createdtime';
            var processTextPathAttribute = 'processtextpath';
            var bpmnPathAttribute = 'bpmnpath';
            var documentPathNameAttribute = 'name';
            var flowchartPathAttribute = 'path';
            for (var index in tables) {
                var table = tables[index];
                if ((table.name == 'overview') && (table.fields.hasOwnProperty(timestampAttribute))) {
                    var value = table.fields[timestampAttribute].value;
                    var date = new Date();
                    date.setTime(value);
                    table.fields[timestampAttribute].value = date.toUTCString();
                }
                if ((table.name == 'properties') && (table.fields.hasOwnProperty(processTextPathAttribute))) {
                    var processTextField = table.fields[processTextPathAttribute].value;
                    var bpmnPathField = table.fields[bpmnPathAttribute].value;
                    page.isProcessTextAvailable = false;
                    page.isBpmnAvailable = false;

                    if(processTextField == 'NA') {
                        page.isProcessTextAvailable = false;
                    } else if(processTextField != null) {
                        page.isProcessTextAvailable = true;
                    }

                    if(bpmnPathField == 'NA') {
                        page.isBpmnAvailable = false;
                    } else if(processTextField != null) {
                        page.isBpmnAvailable = true;
                    }
                }
                if((table.name == 'document') && (table.fields["path"].hasOwnProperty("value"))) {
                    var documetName = table.fields["path"].value;
                    if(documetName == null) {
                        page.isDocumentAvailable = false;
                    } else {
                        page.isDocumentAvailable = true;
                    }
                }

                if((table.name == 'flowchart') && (table.fields.hasOwnProperty(flowchartPathAttribute))) {
                    var flowchartPath = table.fields[flowchartPathAttribute].value;
                    if(flowchartPath == 'NA') {
                        page.isFlowChartAvailable = false;
                    } else {
                        page.isFlowChartAvailable = true;
                        page.flowchartPath = flowchartPath;
                    }
                }
            }

            var thumbnail = page.assets.tables[7].fields.thumbnail.value;
            if (thumbnail === "images_thumbnail") {
                page.customThumbnailAvailable = true;
            } else {
                page.customThumbnailAvailable = false;
            }

            importPackage(org.wso2.carbon.pc.core);
            var ps = new ProcessStore();
            var resourcePath = page.assets.path;
            var conData = ps.getSucessorPredecessorSubprocessList(resourcePath);
            var conObject = JSON.parse(conData);
            if (log.isDebugEnabled()) {
                log.debug(conObject);
            }
            page.involveProcessList = conObject;
            if (log.isDebugEnabled()) {
                log.debug(page);
            }

            var permissionAPI = require('rxt').permissions;
            if (permissionAPI.hasActionPermissionforPath(resourcePath , 'write', ctx.session)){
                page.permission=true;
            }
            else{
                page.permission=false;
            }
            page.isUpdateView = true;
        },
Пример #20
0
 var isLCActionsPermitted = function(resourcePath, session) {
 	//log.info('###Checking permissions ###');
     var permissionAPI = require('rxt').permissions;
     var isAuthorized =   permissionAPI.hasActionPermissionforPath(resourcePath, 'authorize', session);
     return isAuthorized;
 };