+ Start a Discussion

Salesforce1 publisher subscribe method

I have a publisher action of type "custom visualforce".

I am using Sfdc.canvas.publisher.subscribe method to know when the "submit" button on publisher is clicked.
I also want to know when the "cancel" button on the publisher is clicked.

I have below script in my VF page,

<script type='text/javascript'>
            Sfdc.canvas.publisher.subscribe({name: "publisher.post", onData:function(e) {
                console.log("Submit clicked");

            Sfdc.canvas.publisher.subscribe({name: "publisher.close", onData:function(e) {
                console.log("Cancel clicked");

When I click the submit button, I see successful log - "Submit Clicked"
But when I click the Cancel button nothing is logged.

Any idea how can I do this ?
There doesn't seem to be any documentation on different events that you can subscribe to.

AmitAmit (Salesforce Developers) 

Following sample code can be used to override standard buttons.

<script type='text/javascript' src='/canvas/sdk/js/publisher.js'></script>
    Sfdc.canvas.publisher.subscribe({name: "publisher.showPanel",
        onData:function(e) {
            Sfdc.canvas.publisher.publish({name:"publisher.setValidForSubmit", payload:"true"});
    Sfdc.canvas.publisher.subscribe({ name: "publisher.post",
        onData: function(e) {
            alert("call some remote action here");
            Sfdc.canvas.publisher.publish({ name: "publisher.close",
                payload:{ refresh:"true" }});
khillan bhardwajkhillan bhardwaj
Hi Amit,

Can we hide or rename submit button from public action.

Eric Kendi ShiraishiEric Kendi Shiraishi
Try using this:
Sfdc.canvas.publisher.subscribe({ name : "publisher.clearPanelState", 
    onData:function(e) {
        // Your code here
        alert('Fire ClearPanelState'); 
This will run when the close event fires.