123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: ps
- (C) Copyright IBM Corp. 2005, 2014
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- -->
- <!--
- Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
- Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
- -->
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/"
- xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
- xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
- xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/"
- xmlns:utml="http://developer.cognos.com/schemas/xts/logicsheet/xslt/formlogic/"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:op="http://developer.cognos.com/schemas/xts/op"
- xmlns:dv="http://developer.cognos.com/schemas/xts/dv"
- xmlns:xts="http://developer.cognos.com/schemas/xts/" exclude-result-prefixes="xsl pf xts xtsext lyt dp df cp utml op dv">
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
- <pf:variables/>
- <dv:variables/>
- <xsl:variable name="lang-filter" select="key('env-param', 'cur_lang')"/>
- <xsl:variable name="mname" select="'outputs.xts'"/>
- <!-- Need to honour reportVersionPath if outputs is called from view/view_details, and m_obj is not correct when viewing a 'save report as reportView' -->
- <xsl:variable name="isReportVersionPath" select="string(/root/env/param[@name= 'reportVersionPath']) != ''"/>
- <xsl:variable name="objectName">
- <xsl:choose>
- <xsl:when test="$isReportVersionPath"><xsl:value-of select="/root/cm:queryResponse/cm:queryReply/*/cm:parent/*/cm:defaultName"/></xsl:when>
- <xsl:otherwise><xsl:value-of select="/root/cm:queryResponse/cm:queryReply/*/cm:defaultName"/></xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="dialogDescription">
- <xsl:choose>
- <xsl:when test="/root/cm:queryResponse/cm:queryReply/*/cm:objectClass = 'document'">
- <xts:string id="IDS_DOCUMENT_PREVIOUS_VERSION_INTRO"/>
- </xsl:when>
- <xsl:otherwise>
- <xts:string id="IDS_PREVIOUS_VERSION_INTRO"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="browserTitle">
- <xsl:choose>
- <xsl:when test="/root/cm:queryResponse/cm:queryReply/*/cm:objectClass = 'document'">
- <xts:string id="IDS_DOCUMENT_PREVIOUS_VERSION_TITLE">
- <xts:param name="objectName">
- <span lang="{$contentLocale}"><xsl:value-of select="xtsext:enforceBTD($objectName, $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/></span>
- </xts:param>
- </xts:string>
- </xsl:when>
- <xsl:otherwise>
- <xts:string id="IDS_PREVIOUS_VERSION_TITLE">
- <xts:param name="objectName">
- <span lang="{$contentLocale}"><xsl:value-of select="xtsext:enforceBTD($objectName, $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/></span>
- </xts:param>
- </xts:string>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="objectID">
- <xsl:choose>
- <xsl:when test="$isReportVersionPath"><xsl:value-of select="/root/cm:queryResponse/cm:queryReply/*/cm:parent/*/cm:storeID"/></xsl:when>
- <xsl:otherwise><xsl:value-of select="/root/cm:queryResponse/cm:queryReply/*/cm:storeID"/></xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="portal.render.outputpage.asoftime" select="/root/configuration/property[@name='portal.render.outputpage.asoftime'] = 'true'"/>
-
- <xsl:template match="/root">
- <xsl:text disable-output-escaping='yes'><!DOCTYPE html></xsl:text><dp:page longTitle="$browserTitle" dp:kbA11y="true" >
- <dp:meta>
- <pf:meta/>
- <link rel="stylesheet" type="text/css" href="{$webRoot}/dojo16/dijit/themes/tundra/pstundra.css" />
- <link rel="stylesheet" type="text/css" href="{$webRoot}/dojo16/dojox/grid/resources/pstundraGrid.css" />
- <link rel="stylesheet" type="text/css" href="{$webRoot}/skins/{$user_skin}/portal/pager.css" />
- </dp:meta>
- <dp:script>
- <pf:help context="HID_VIEW_REPORT_VERSION"/>
- <xsl:variable name="startingVersionsPagerURL">
- <xsl:value-of select="$gateway"/>
- <xsl:text>/atom/cm/id/</xsl:text>
- <xsl:value-of select="$objectID"/>
- <xsl:text>?filter=content-version</xsl:text>
- <xsl:text>&containingClass=</xsl:text>
- <xsl:value-of select="key('env-param', 'm_class')"/>
- <xsl:text>&json</xsl:text>
- </xsl:variable>
- <script type="text/javascript">
- <xsl:value-of select="xtsext:cafaction( 'get_jsconfig','' )"/>
-
- var versionsPager, outputsPager;
- var versionsPagerURL = '<xsl:value-of select="xtsext:javascriptencode($startingVersionsPagerURL)"/>';
- var productLocale = '<xsl:value-of select="xtsext:javascriptencode($productLocale)"/>';
- var contentLocale = '<xsl:value-of select="xtsext:javascriptencode($contentLocale)"/>';
-
- var pagerWebcontent = '<xsl:value-of select="xtsext:javascriptencode($webRoot)"/>';
- var pagerGateway = '<xsl:value-of select="xtsext:javascriptencode($gateway)"/>';
- var pagerSkin = '<xsl:value-of select="xtsext:javascriptencode($user_skin)"/>';
- var delFormSubmit = "<xsl:value-of select="concat($app, '/submit.xts')"/>";
- var sDelNoSel = '<xts:string id="IDS_ERR_DELETE_NO_SELECTION" encode="javascript"/>';
- var sDelAllObj = '<xts:string id="IDS_PREVIOUS_VERSION_DOCUMENT_DELETE_ERROR" encode="javascript"/>';
- var sDelConfirm = '<xts:string id="IDS_CONF_DELETE_MULTI" encode="javascript"/>';
- var sVersionsPagerName = '<xts:string id="IDS_PREVIOUS_VERSION_VERSIONS" encode="javascript"/>';
- var sVersionsReportFormat = '<xts:string id="IDS_PERS_TAB_GENERAL_FORMAT" encode="javascript"/>';
- var sAsOfTime = '<xts:string id="IDS_PREVIOUS_VERSION_ASOFTIME" encode="javascript"/>';
- var sAllLangs = '<xts:string id="IDS_PREVIOUS_VERSION_ALL_LANGUAGES" encode="javascript"/>';
- var sHeadingFormats = '<xts:string id="IDS_PREVIOUS_VERSION_FORMATS" encode="javascript"/>';
- var sHeadingLangs = '<xts:string id="IDS_PREVIOUS_VERSION_LANGUAGES" encode="javascript"/>';
- var sHeadingActions = '<xts:string id="IDS_HEADING_ACTIONS" encode="javascript"/>';
- var sActionDelete = '<xts:string id="IDS_ACT_DELETE" encode="javascript"/>';
- var renderAsOfTime = '<xsl:value-of select="$portal.render.outputpage.asoftime"/>';
- //need to setup a javascript object to map locale translated names to locale shortforms
- var locales = {
- '': sAllLangs
- <xsl:for-each select="/root/config/param[@name='locale']/locale[@type='contentLocale']">
- ,'<xsl:value-of select="id"/>': '<xsl:value-of select="xtsext:javascriptencode(displayName)"/>'
- </xsl:for-each>
- };
- var djConfig = {
- locale: productLocale
- };
- </script>
- <script type="text/javascript" src="{$webRoot}/dojo16/dojo/dojo.js"></script>
- <script type="text/javascript" src="{$webRoot}/dojo16/dojo/psdojo.js"></script>
- <script type="text/javascript">
- var reportsOutputPagerLabel = "<xts:string id="IDS_PROP_A11Y_REPORT_OUTPUT_LABEL" encode="javascript"/>";
- var reportsVersionsPagerLabel = "<xts:string id="IDS_PROP_A11Y_REPORT_VERSION_LABEL" encode="javascript"/>";
-
- <![CDATA[
- dojo.registerModulePath('ps', '../../ps/portal/js/dojo/ps');
- dojo.require('ps.i18n');
- dojo.require('ps.pager');
- dojo.addOnLoad(function() {
- ps.i18n.setLocale(productLocale);
- var isDropdownSelected = false;
- var versionsPagerLayout = [];
- versionsPagerLayout[0] =
- {
- field: 'title',
- name: sVersionsPagerName,
- width: '50%',
- sortable: true,
- sortField: 'name',
- formatter: function(data) {
- return (isBidiEnabled ? bidi.btdInjectUCCIntoStr(data._text, "auto") : data._text);
- }
- };
-
- if (renderAsOfTime == 'true') {
- versionsPagerLayout[1] =
- {
- field: 'cm$asOfDate',
- name: sAsOfTime,
- width: '50%',
- formatter: function(data) {
- return (isBidiEnabled ? bidi.btdInjectUCCIntoStr(data, "auto") : data);
- }
- };
- }
- var outputsPagerLayout = [
- {
- field: 'title',
- name: sHeadingFormats,
- width: '45%',
- formatter: function(data, index) {
- var entry = outputsPager.getEntry(index);
- var downloadLink = outputsPager.getEntryLink(entry, 'alternate').href;
- var iconLink = outputsPager.getEntryLink(entry, 'icon').href;
- var tooltip = data._text;
- if (tooltip == 'XHTML') {
- var storeIDPath = entry.cm$storeID;
- var storeIDAsString = ''+storeIDPath;
- var outputID = storeIDAsString.substring(9,42);
- downloadLink = pagerGateway + '/repository/sid/cm/oid/'+outputID+'/content/mht/content';
- }
- var burstKey = entry.cm$burstKeyDisplayString[0];
- var alignStyle;
- if(document.body.dir=="rtl"){
- alignStyle= "float:right";
- } else {
- alignStyle= "float:left";
- }
- var markup = '<div style="'+ alignStyle +';white-space:nowrap;';
- if (burstKey !== ""){
- markup += 'width: 40%';
- }
- markup += '">'
- markup += '<a href="#" onclick="retrieveOutputFor(event, ';
- markup += "'" + downloadLink + "'";
- markup += ')" onkeypress="javascript:if (event.keyCode==13 || event.keyCode==32 || event.charCode==32){retrieveOutputFor(event, ';
- markup += "'" + downloadLink + "'";
- markup += ');return false;} return true;">';
- markup += '<img height="16" width="16" src="' + iconLink + '" title="' + tooltip + '" alt="' + sVersionsReportFormat + ' ' + tooltip +'" style="vertical-align:middle;margin-right: 4px;" />';
- markup += '</a>';
- markup += '<a href="#" onclick="retrieveOutputFor(event, ';
- markup += "'" + downloadLink + "'";
- markup += ')" onkeypress="javascript:if (event.keyCode==13 || event.keyCode==32 || event.charCode==32){retrieveOutputFor(event, ';
- markup += "'" + downloadLink + "'";
- markup += ');return false;} return true;">' + tooltip + '</a></div>';
- if (burstKey !== ""){
- markup += "<div style='float: left;width: 60%'>" + burstKey + "</div>";
- }
- return markup;
- }
- },
- {
- field: 'cm$locale',
- name: sHeadingLangs,
- width: '35%',
- filterRel: 'localeselection',
- filterSet: locales,
- filterTokens: ['locale'],
- filterUIHook: function(value) {
- contentLocale = value;
- isDropdownSelected = true;
- },
- formatter: function(data, index) {
- return locales[data];
- }
- },
- {
- field: 'id',
- name: sHeadingActions,
- width: '20%',
- formatter: function(data, index) {
- var entry = outputsPager.getEntry(index);
- var link = outputsPager.getEntryLink(entry, 'action.download');
- var markup = '';
- if (link) {
- var downloadLink = link.href;
- var iconLink = link.ps$link.href;
- var tooltip = link.ps$tooltip._text;
- markup = '<a href="' + downloadLink + '"';
- markup += ' onkeypress="javascript:if (event.keyCode==13 || event.keyCode==32 || event.charCode==32){window.location = ';
- markup += "'" + downloadLink + "'";
- markup += ';return false;} return true;">';
- markup += '<img height="16" width="16" src="' + iconLink + '" title="' + tooltip + '" alt="' + tooltip + '" style="margin-right: 4px;float:left;" />'
- markup += '</a>';
- }
- return markup;
- }
- }
- ];
- var actions = [
- {
- text: sActionDelete,
- onclick: function(entries) {
- // ask user to select an entry first before clicking delete
- if (entries.length === 0) {
- alert(sDelNoSel);
- return;
- }
- // for document versions: disallow deletion of every single version
- // otherwise the document object becomes useless
- if (entries[0].cm$objectClass && entries[0].cm$objectClass[0] === 'documentVersion') {
- if (versionsPager.isOnlyPage() && versionsPager.getRowCount() === entries.length) {
- alert(sDelAllObj);
- return;
- }
- }
- if (confirm(sDelConfirm) === true) {
- var inputs = [];
- // create input elements for each checked entry with the appropriate value
- for (var i = 0, len = entries.length; i < len; i++) {
- inputs[i] = dojo.create('input', {
- id: 'checkbox_' + i,
- name: 'checkbox_' + i,
- value: encodeURIComponent(entries[i].cm$searchPath),
- type: 'hidden'
- });
- dojo.place(inputs[i], document.pform, 'last');
- }
- document.pform.ifrmcmd.value = 'delete';
- document.pform.vrsn_del.value = 'true';
- document.pform.m.value = delFormSubmit;
- dojo.xhrPost({
- form: document.pform,
- load: function(data) {
- var errorMatch = data.match(/\<ERROR_MSG\>([^>]*)\<\/ERROR_MSG\>/);
- if (errorMatch) {
- //If multi-byte language js alert displays in utf-8 so grab innerHTML
- var d = document.createElement('div');
- d.innerHTML=errorMatch[1];
- alert(d.innerHTML);
- } else {
- versionsPager.getData(versionsPager.currentURL);
- }
- },
- handle: function() {
- // delete the inputs and restore the form
- for (var i = 0, len = inputs.length; i < len; i++) {
- dojo.destroy(inputs[i]);
- }
- document.pform.ifrmcmd.value = '';
- document.pform.vrsn_del.value = '';
- }
- });
- }
- }
- }
- ];
- versionsPager = new ps.pager({
- pagerLabel: reportsVersionsPagerLabel,
- id: 'versionsPager',
- webcontent: pagerWebcontent,
- gateway: pagerGateway,
- skin: pagerSkin,
- url: versionsPagerURL,
- layoutSpec: versionsPagerLayout,
- initialRowSelect: true,
- checkable: true,
- actions: actions,
- rowAction: function(entry) {
- if (entry) {
- var outputLink = this.getEntryLink(entry, 'alternate').href + '&locale=' + contentLocale;
- outputsPager.getData(outputLink);
- }
- },
- postLoad: function(totalResults) {
- if (totalResults === 0) {
- outputsPager.clearData();
- }
- }
- }, 'versionsPager');
- outputsPager = new ps.pager({
- pagerLabel: reportsOutputPagerLabel,
- menuLabel: 'languagesLabel',
- id: 'outputsPager',
- webcontent: pagerWebcontent,
- gateway: pagerGateway,
- skin: pagerSkin,
- layoutSpec: outputsPagerLayout,
- rowSelectable: false,
- rowHighlightable: false,
- focusFirstCell: true,
- postLoad: function(totalResults) {
- var locale = this.getFilter('cm$locale')[0];
- if (totalResults === 0 && locale !== '' && isDropdownSelected === false) {
- this.filter('cm$locale', '');
- }
- }
- }, 'outputsPager');
- });
- ]]>
- </script>
- <script type="text/javascript">
- function changeTab(tab) {
- var form = document.pform;
- form.m.value = '<xsl:value-of select="$app"/>/outputs.xts';
- if (tab === 'recentVersions') {
- form.output_tab.value = '';
- form.submit();
- } else if (tab === 'oldVersions') {
- form.cur_lang.value = 'all';
- form.ps_nav_op.value = 'maintain';
- form.output_tab.value = 'arch';
- form.submit();
- }
- }
- function retrieveOutputFor(event, url) {
- var outputWindow = window.open(url, 'outputWindow', 'toolbar=no,location=yes,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=750,height=600');
- event.cancelBubble = 'true';
- if (event.stopPropagation) {
- event.stopPropagation();
- event.preventDefault();
- }
- return false;
- }
- </script>
- </dp:script>
- <utml:form name="pform" method="post" action="{$gateway}">
- <utml:input name="output_tab" type="hidden" value=""/>
- <utml:input name="cur_lang" type="hidden" value=""/>
- <xsl:if test="key('system-param', 'useReportLocaleInRVUI') = 'true'">
- <input name="lang" type="hidden" value=""/>
- </xsl:if>
- <utml:input name="ifrmcmd" type="hidden" value=""/>
- <utml:input name="ui.hide" type="hidden" value=""/>
- <utml:input name="ui.format" type="hidden" value=""/>
- <utml:input name="ui.action" type="hidden" value=""/>
- <utml:input name="ui.postBack" type="hidden" value=""/>
- <utml:input name="ui.object" type="hidden" value=""/>
- <utml:input name="ui.backURL" type="hidden" value=""/>
- <utml:input name="ui.name" type="hidden" value=""/>
- <utml:input name="run.outputLocale" type="hidden" value=""/>
- <utml:input name="s_recentversion" type="hidden" value=""/>
- <utml:input name="m_return" type="hidden" value=""/>
- <utml:input name="vrsn_del" type="hidden" value=""/>
- <utml:input name="recentvrsn_sel" type="hidden" value=""/>
- <utml:input name="method" type="hidden" value=""/>
- <utml:input name="reportVersionPath" type="hidden">
- <xsl:attribute name="value">
- <xsl:value-of select="string(key('env-param','reportVersionPath'))"/>
- </xsl:attribute>
- </utml:input>
- <utml:input name="recentActiveRow" type="hidden">
- <xsl:attribute name="value">
- <xsl:value-of select="string(key('env-param','recentActiveRow'))"/>
- </xsl:attribute>
- </utml:input>
- <dp:header dp:kbA11y="true">
- <dp:title>
- <xsl:copy-of select="$browserTitle"/>
- </dp:title>
- </dp:header>
- <dp:tabs>
- <cp:tabset>
- <cp:select>recentVersions</cp:select>
- <cp:tab name="recentVersions" position="start">
- <a href="#" onclick="javascript:changeTab('recentVersions');">
- <xsl:attribute name="onkeypress">javascript:if (event.keyCode==13 || event.keyCode==32 || event.charCode==32){this.onclick(); return false;}return true;</xsl:attribute>
- <xsl:text/><cp:label><xts:string id="IDS_PREVIOUS_VERSION_CURRENT_TAB"/></cp:label><xsl:text/>
- </a>
- </cp:tab>
- </cp:tabset>
-
- </dp:tabs>
- <dp:description>
- <xsl:value-of select="$dialogDescription"/>
- </dp:description>
- <lyt:layout style="2" lyt:kbA11y="true">
- <lyt:section>
- <xsl:variable name="verGroupLab"><xts:string id="IDS_PROP_A11Y_REPORT_VERSION_LABEL" encode="html"/></xsl:variable>
- <div style="padding: 3px" role="group" aria-label="{$verGroupLab}">
- <div role="application">
- <xsl:attribute name="aria-label"><xts:string id="IDS_PREVIOUS_VERSION_CURRENT_TAB_VERSIONS_GRID" encode="html"/></xsl:attribute>
- <div id="versionsPager"/>
- </div>
- </div>
- </lyt:section>
- <lyt:section>
- <xsl:variable name="outGroupLab"><xts:string id="IDS_PROP_A11Y_REPORT_OUTPUT_LABEL" encode="html"/></xsl:variable>
- <div style="padding: 3px" role="group" aria-label="{$outGroupLab}">
- <div role="application">
- <xsl:attribute name="aria-label"><xts:string id="IDS_PREVIOUS_VERSION_CURRENT_TAB_OUTPUTS_GRID" encode="html"/></xsl:attribute>
- <div id="outputsPager"/>
- </div>
- </div>
- </lyt:section>
- </lyt:layout>
- <dp:footer>
- <df:button df:id="IDS_CLOSE" df:style="back-url" df:kbA11y="true"/>
- </dp:footer>
- </utml:form>
- </dp:page>
- </xsl:template>
- </xsl:stylesheet>
|