Sitecore: Programmatically Exit Edit Mode in Page Editor - sitecore

When in Sitecore's Page Editor mode clicks the Edit button, I have a DIV's style set to
top: 0;
so that it appears on top of the Page Editor buttons (Save, Save and Close, Insert, etc..). This div prevents the content editor from using the normal Page Editor buttons and forces them to use the custom Save, Save and Close, and Close buttons that I have added to the DIV.
Is there a way to programmatically exit Edit mode whenever they click on my custom Close or Save and Close button? I do not want to log them out of the Page Editor (just exit them out of edit mode). I only have 1 page where I am doing this, so I would rather not get into changing configurations in Sitecore to achieve this.

Check out this post: In Sitecore, how to change or set PageMode
It looks like you can do:
Context.Site.SetDisplayMode(Sitecore.Sites.DisplayMode.Normal, Sitecore.Sites.DisplayModeDuration.ResetAfterRequest);
Or, you can add sc_mode=normal or sc_mode=preview to the URL's query string.

Related

Oracle-Apex modal dialog display last inserted row

I made page for editing and adding clients, when I click on button, I get a modal dialog with filled fields..
Also I have link on ID column which opens same dialog, where I can edit existing row.
I want to get empty fields when I click on "ADD" button.
On the ADD button set the attribute to clear cache of the modal dialog page nr.
In your report, navigate to the ADD button definition. In the Property Editor, click Target to verify Page and Clear Cache are both set to the dialog page number.

Sitecore 8, MVC, Experience Editor: How to make a rendering refresh after a Field Editor Button has been used

We have a rendering listing the selected items in a TreeSelect in the current item. In our case we call them "Tags" (1)
We have added a Field Editor Button to the component to let the editor change selected items. (2) (As described on for example Adding a custom component)
When an editor clicks (2) the editor window (3) it is opened in a dialog. The editor may select different items(called tags in our case) using the TreeSelect.
When the editor presses the ok-button (4) the values are set.
Now to the problem:
The values are actually set as they get stored when the editor presses the Save button but we want our list on the page (1) to immediately reflect the set items when the editor presses the ok-button (4), i.e. before having to actually save the whole item.
How do we achieve that?
(I am in contacts with Sitecore support but so far I have not gotten any answers...)
Update
After a lot of conversation with the support we still have no useful solution.
We tried turning it into a field renderer displaying the links.
What worked was:
The field do get updated when you have edited it in the popup field editor. (but...)
It looks good the first time when page is loaded.
You can make a WebEdit button with commands to edit the field and add it as Custom button to the field (register <command name="webedit:fieldeditor" type="Sitecore.Shell.Applications.WebEdit.Commands.FieldEditor, Sitecore.Client"/> and set Click on the button to webedit:fieldeditor(command={3473DDA1-2983-493C-AF7A-054C75AA7AD3},fields=NameOfField where the guid points to itelf and an "Icon" is set on it.)
What didn't work was:
The field get updated by the raw value, not what I want to display. Server code is involved, but not in the rendering of html-code.
When I want to edit the value in the field editor, the value sent to the field editor is not the raw value but what actually is displayed on the page. (I guess this can be solved somehow)
The issue to the support turned into a feature request to let the server be involved in rendering the field, not just sending a new value to the JavaScript updating it. The server does the first rendering so when it already is involved in updating, it should be allowed to do the rendering the following times too.
We have decided to not spend more time on this right now (we have other things to do too.) and have a bad editor experience as the field not get updated until the editor actually saves the item.
Still we have no suitable solution for this issue. If you want to keep working on it and want a reference to my issue it is 439059.
This may not be useful here. I've done this in normal sites, but not in Sitecore. But, here's one possibility....
This is a situation where you would pass a callback function to the child popup window. This callback will cause the caller / parent window to re-read/re-load the information that was just updated by the child.
Example:
User presses (2) to open Editor Window(3) (Editor window is opened and the Callback function is passed as a parameter)
User presses "OK" button (4). The "OK" button event handler updates the changes, then calls the Callback function which re-loads the now updated information, and closes the popup window.
Once the popup closes, the parent window now displays the information that the popup/editor just updated.
This takes some client side javascript (jquery) development but it is quite do-able normally.

Sitecore Remove Button

I have a "Slide Show" control and I'd like to remove the first "X" button in the tool bar of the control. I have checked .ascx and .ascx.cs file to see if there is any related code, but nothing.
I think these buttons are from Core DB and I don't know where I can remove or hide this "X" button in Sitecore.
Could you help me, please?
Find Slide Show sublayout in your Sitecore tree.
Scroll to Editor Options section and remove Delete from the Page Editor Buttons field.

how to set the rights for placeholder ribbon

beginner question for sitecore about settings the right.
So I have an item is open in the page editor.
The renderings on the page has bunch of icons on the ribbon. One of them called 'select the parent element (element name)'.
In my case when I click on it, I am presented with the placeholder with button 'add here' and the ribbon with some component buttons that a user can use to add the controls.
So, QUESTION:
"how I add access to the button on that ribbon for certain role? Where do I set it up? "
For some certain role that placeholder's ribbon is completely empty, including there is no button 'select the parent element' even though
i know there is a parent element.
thank you very much for help,
HF
Here are the screenshots (no icons on the placeholder ribbon, and the user's rights:
enter image description here
And here is how that looks for the admin:
All the settings for the Page Editor are held in the Core database. So in the Sitecore Desktop, switch to the core database and open up the Content Editor.
Navigate to : /sitecore/content/Applications/WebEdit
This item holds the items that make up the page editor. To edit the ribbon menues, go to:
/sitecore/content/Applications/WebEdit/Ribbons
I don't remember seeing that particular button in the Core database, so this is likely a built-in feature that requires the user to have one of the built-in permissions.
The first thing I would check is that Designing is turned on. Have the user go to the 'View' tab in Page Editor and make sure they have checked the 'Designing' checkbox.
If that doesn't work, it sounds like the user you have does not have design access to the page. I would examine the inherited roles using the User Manager and check if they have the Sitecore Designer role inherited.
It is possible they just need to be provided the correct role in the system so that they can access the buttons.
Have you tried the "Sitecore Client developing role"?
Also, for the blue arrow drop list location, in order for the rendering button to show up in that location, you have to check whether the button in the webedit folder under core database(/sitecore/content/Applications/WebEdit/Default Rendering Buttons). The Type field needs to be "Common" in order to show up in the blue arrow droplist.
Example can be the "Edit related item" (/sitecore/content/Applications/WebEdit/Default Rendering Buttons/Edit related item) shows up in the blue arrow droplist.

Sitecore: Programmatically remove the Page Editor Tool bar on top

I am loading a page (item rendering e.g. /sitecore/content/.../Page) inside an IFrame. It shows the Page Editor ribbon as well. I want to hide that tool bar, it is not required in my scenario.
But if I set the source URL for IFrame like http://mysite/somefolder/page.aspx it does not display the Page Editor controls.
That means Page Editor controls gets loaded on demand.
Need to know how to stop loading Page Editor controls on the page.
Please let me know if you know how to stop those controls being loaded to the page.
This is because the page is in Edit mode. Will this page never need to loaded in the page editor? If not then you can add the following to the Page_Load event:
Sitecore.Context.Site.SetDisplayMode(Sitecore.Sites.DisplayMode.Normal, Sitecore.Sites.DisplayModeDuration.ResetAfterRequest);
Otherwise you can append ?sc_mode=normal to the URL when setting the src of the iFrame to achieve the same thing. This way if you want to edit the page outside the iFrame you can use the standard Sitecore Page Editor features.
What were/are you setting the URL of the IFrame to currently (when you get the controls)?
I found a solution, I am hiding this ribbon with CSS, it's a very simple solution,
<style>
/*Hide the edit mode ribbon panel appears in the iframes. Originally added this to Price strategy control.*/
#scWebEditRibbon, #scCrossPiece
{
display: none;
}
</style>