0
votes

I have an XPages view with the first column as a link to launch the document for that row. I'm launching it in a dialog control and it works just fine, but it won't let me edit the document. I have an edit button on the dialog control to put it in edit mode, but it doesn't seem to work.

There are two datasources, one for the view and one for the document.

XPage:

<?xml version="1.0" encoding="UTF-8"?>

<xc:NewMainForm><xp:this.facets><xc:NewLogin xp:key="facet_Login "></xc:NewLogin>
<xc:FooterContent xp:key="facet_Footer"></xc:FooterContent>
<xc:HomeBodyContent xp:key="facet_Body"></xc:HomeBodyContent>
<xc:MenuContainer xp:key="facet_Menu"></xc:MenuContainer>
<xc:cc_headerRightContent xp:key="facet_HeaderRight"> 
</xc:cc_headerRightContent>
<xc:cc_headerCenterContent xp:key="facet_HeaderCenter"> 
</xc:cc_headerCenterContent>
<xc:cc_headerLeftContent xp:key="facet_HeaderLeft"> 
</xc:cc_headerLeftContent>
<xc:NewLogin xp:key="facet_Login"></xc:NewLogin></xp:this.facets> 
</xc:NewMainForm></xp:view>

Custom Control:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xe="http://www.ibm.com/xsp/coreex"
style="background-repeat:no-repeat;background-position:center center"
xmlns:xc="http://www.ibm.com/xsp/custom">

<xp:this.resources>
    <xp:script src="/xspDialog.js" clientSide="true"></xp:script>
    <xp:styleSheet href="/Style.css"></xp:styleSheet>
</xp:this.resources>
<xp:panel>
    <xp:inputText id="Search" value="#{viewScope.searchString}"> 
</xp:inputText>
    <xp:button value="Search" id="button1"
        style="background-color:rgb(57,88,137);color:rgb(255,255,255)">
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="partial" refreshId="viewPanel1">
        </xp:eventHandler>
    </xp:button>
</xp:panel>

<!--    VIEW PANEL -->

<xp:viewPanel id="viewPanel1" pageName="/ByAcronym.xsp"
    viewStyle="width:100%;background- 
image:url(Music1+Big+twice+Faded.png);background-repeat:no- 
repeat;background-position:center center;border-width:thick"
    var="thisentry" rows="27">

    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager1">
        </xp:pager>
        <xp:viewTitle xp:key="viewTitle" id="viewTitle1"
            value="By Title" style="color:rgb(255,128,0);font-weight:bold">
        </xp:viewTitle>

        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="footerPager" id="pager2">
        </xp:pager>
    </xp:this.facets>

    <xp:this.data>
        <xp:dominoView viewName="Songs" var="dsSongs"
            ignoreRequestParams="true">
            <xp:this.search><![CDATA[#{javascript:return 
 viewScope.get("searchString")}]]></xp:this.search>
        </xp:dominoView>
    </xp:this.data>

    <!-- VIEWCOLUMN1 -->

    <xp:viewColumn columnName="Title" id="viewColumn1"
        displayAs="link" style="width: 750px">
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="partial" refreshId="dialog1" id="eventHandler1">
            <xp:this.action>
                <![CDATA[#{javascript:viewScope.UNID = 
 thisentry.getDocument().getUniversalID();
 getComponent('dialog1').show()}]]>
            </xp:this.action>
        </xp:eventHandler>

        <xp:viewColumnHeader value="Title" id="viewColumnHeader1">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="MusicType" id="viewColumn2">
        <xp:viewColumnHeader value="Music  Type"
            style="width: 250px" id="viewColumnHeader2">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="ComposedBy" id="viewColumn3">
        <xp:viewColumnHeader value="Composer"
            id="viewColumnHeader3">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="ArrangedBy"
        id="viewColumn4">
        <xp:viewColumnHeader value="Arranger"
            id="viewColumnHeader4">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="Jonra" id="viewColumn5">
        <xp:viewColumnHeader value="Jonra"
            id="viewColumnHeader5">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="Seasonal" id="viewColumn6">
        <xp:viewColumnHeader value="Seasonal"
            id="viewColumnHeader6">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn id="viewColumn7" columnName="Location"
        style="width:75px">
        <xp:this.facets>
            <xp:viewColumnHeader xp:key="header"
                id="viewColumnHeader7" value="Location" style="width:750px">
            </xp:viewColumnHeader>
        </xp:this.facets>
    </xp:viewColumn>
    <xp:viewColumn id="viewColumn8" columnName="NumberOfCopies"
        style="width:10.0px">
        <xp:this.facets>
            <xp:viewColumnHeader xp:key="header"
                id="viewColumnHeader8" value="Number Of Copies"
                style="width:750px">
            </xp:viewColumnHeader>
        </xp:this.facets>
    </xp:viewColumn>
 </xp:viewPanel>

 <!-- DIALOG1-->

 <xe:dialog id="dialog1" title="Details">
    <xe:dialogContent id="dialogContent1">
        <xp:panel
            style="width:698.0px;background- 
 image:url(Music1+Big+twice+Faded.png);background-repeat:no- 
 repeat;background-position:center center;border- 
 color:rgb(57,88,137);border-style:solid;border- 
 width:thin;color:rgb(33,51,80)">

            <xp:this.data>
                <xp:dominoDocument var="document1"
                    formName="MusicForm" action="editDocument"
                    documentId="#{javascript:viewScope.UNID}"
                    ignoreRequestParams="true">
                </xp:dominoDocument>
            </xp:this.data>
            <xp:table>
                <xp:tr>
                    <xp:td>
                        <xp:label value="Music Type:"
                            id="musicType_Label1" for="musicType1"
                            style="font-weight:bold">
                        </xp:label>
                        <xp:br></xp:br>
                        <xp:inputText value="#{document1.MusicType}"
                            id="musicType1">
                        </xp:inputText>
                    </xp:td>
                    <xp:td>

                        <xp:label value="Title:" id="title_Label1"
                            for="title1" style="font-weight:bold">
                        </xp:label>
                        <xp:br></xp:br>
                        <xp:inputText value="#{document1.Title}"
                            id="title1">
                        </xp:inputText>
                    </xp:td>
                    <xp:td>
                        <xp:label value="Composed By:"
                            id="composedBy_Label1" for="composedBy1"
                            style="font-weight:bold">
                        </xp:label>
                        <xp:br></xp:br>
                        <xp:inputText value="#{document1.ComposedBy}"
                            id="composedBy1">
                        </xp:inputText>
                    </xp:td>
                    <xp:td>
                        <xp:label value="Arranged By:"
                            id="arrangedBy_Label1" for="arrangedBy1"
                            style="font-weight:bold">
                        </xp:label>
                        <xp:br></xp:br>
                        <xp:inputText value="#{document1.ArrangedBy}"
                            id="arrangedBy1">
                        </xp:inputText>
                    </xp:td>
                </xp:tr>
                <xp:tr>
                    <xp:td>

                        <xp:label value="Jonra:" id="jonra_Label1"
                            for="jonra1" style="font-weight:bold">
                        </xp:label>
                        <xp:br></xp:br>
                        <xp:inputText value="#{document1.Jonra}"
                            id="jonra1">
                        </xp:inputText>
                    </xp:td>
                    <xp:td>

                        <xp:label value="Season:"
                            id="seasonal_Label1" for="seasonal1" 
 style="font-weight:bold">
                        </xp:label>
                        <xp:br></xp:br>
                        <xp:inputText value="#{document1.Seasonal}"
                            id="seasonal1">
                        </xp:inputText>
                    </xp:td>
                    <xp:td>
                        <xp:label value="Location:"
                            id="location_Label1" for="location1" 
 style="font-weight:bold">
                        </xp:label>
                        <xp:br></xp:br>
                        <xp:inputText value="#{document1.Location}"
                            id="location1">
                        </xp:inputText>
                    </xp:td>
                    <xp:td>
                        <xp:label value="Number Of Copies:"
                            id="numberOfCopies_Label1" for="numberOfCopies1"
                            style="font-weight:bold">
                        </xp:label>
                        <xp:br></xp:br>
                        <xp:inputText
                            value="#{document1.NumberOfCopies}" 
 id="numberOfCopies1">
                        </xp:inputText>
                    </xp:td>
                </xp:tr>
                <xp:tr>
                    <xp:td colspan="4">



                        <xp:messages layout="table"
                            style="color:red" id="messages1">
                        </xp:messages>
                    </xp:td>



                </xp:tr>
                <xp:tr>
                    <xp:td colspan="4">
                        <xp:button id="button5" value="Save">



                            <xp:this.rendered><![CDATA[# 
 {javascript:if(document1.isNewNote()){
 false
 }else{
 true
 }}]]></xp:this.rendered>
                            <xp:eventHandler event="onclick"
                                submit="true" refreshMode="complete" 
 id="eventHandler5">
                                <xp:this.action>

                                    <xp:actionGroup>
                                        <xp:executeScript
                                            script="# 
 {javascript:document1.save()}">
                                        </xp:executeScript>
                                        <xp:openPage
                                            name="/Main.xsp">
                                        </xp:openPage>
                                    </xp:actionGroup>
                                </xp:this.action>
                            </xp:eventHandler>
                        </xp:button>
                        <xp:button id="button4" value="Submit">
                            <xp:this.rendered><![CDATA[# 
 {javascript:if(document1.isNewNote()){
 true
 }else{
 false
}}]]></xp:this.rendered>
                            <xp:eventHandler event="onclick"
                                submit="true" refreshMode="complete" 
immediate="false"
                                save="true" id="eventHandler2">
                                <xp:this.action>
                                    <xp:actionGroup>
                                        <xp:openPage
                                            name="/Main.xsp">
                                        </xp:openPage>
                                    </xp:actionGroup>
                                </xp:this.action>
                            </xp:eventHandler>
                        </xp:button>
                        <xp:button value="Edit" id="button2"
                            rendered="# 
 {javascript:!document1.isEditable()}">
                            <xp:eventHandler event="onclick"
                                submit="true" refreshMode="complete" 
id="eventHandler3">
                                <xp:this.action>
                                    <xp:changeDocumentMode
                                        mode="edit" var="document1">
                                    </xp:changeDocumentMode>
                                </xp:this.action>
                            </xp:eventHandler>
                        </xp:button>
                        <xp:button id="button3">
                            <xp:this.value><![CDATA[# 
 {javascript:if(document1.isEditable()){
 "Cancel"
 }else{
 "Close"
 }}]]></xp:this.value>
                            <xp:eventHandler event="onclick"
                                submit="true" refreshMode="complete" 
immediate="true"
                                save="false" id="eventHandler4">
                                <xp:this.action>
                                    <xp:openPage name="/Main.xsp">
                                    </xp:openPage>
                                </xp:this.action>
                            </xp:eventHandler>
                        </xp:button>
                    </xp:td>
                </xp:tr>
            </xp:table>
        </xp:panel>
    </xe:dialogContent>
</xe:dialog>
</xp:view>

What am I doing wrong?

MJ

1

1 Answers

2
votes

"Maximum Internet name and password" on the ACL's Advanced tab can limit access. If that's set to e.g. Reader, the highest access permitted for the application on the web will be Reader access, regardless of the individual's ACL settings. Author would only allow them to create, not edit existing documents that do not have an Authors field etc.