16

I created a page in SharePoint 2010 and then made some edits to the page.

Then I went into the page Version History and restored a previous version of the page.

Now I have this message that does not want to go away even 2 days after....

The current page has been customized from its template. Revert to template.

enter image description here

How do I remove this message without making changes to my MasterPage or CSS? Or am I forced to find the correct class in the CSS and change it?

4 Answers 4

7

This is "by design" (for better or worse).

The only workaround at this stage is to use JavaScript that can target this particular message. Trying to hide it using CSS is a bad idea as it will apply to all status bar messages which are very important for end users to see.

There's an example script on Sohel's Blog:

<script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(hideWarning, "sp.js");
function hideWarning() {
    var statusbarContainer = document.getElementById('s4-statusbarcontainer');
    if (statusbarContainer != null) {    
        var messageSpan = document.getElementById('status_1_body');
        if (messageSpan != null) {
            if (messageSpan.innerHTML.indexOf('The current page has been customized from its template.') == -1)
                statusbarContainer.style.display = 'inline';
        }
    }
}
</script>

There's also a post worth reading about this on TechNet forums called How to hide Revert to Template Status on the SPD Customized Pages. Particularly the response from Dalibor MSFT shows options for dealing with this.

3
  • I've contacted Sohel to check that he's OK with me reproducing his script here.
    – Alex Angas
    Jun 22, 2011 at 2:56
  • Where exactly must this script be places in the page?
    – Etienne
    Jul 28, 2011 at 6:35
  • It doesn't really matter because the call to ExecuteOrDelayUntilScriptLoaded ensures that it won't run until the core SharePoint JavaScript files are loaded. You could try a delegate control or the master page. See what you can find on the web and if you have trouble please feel free to ask a new question here.
    – Alex Angas
    Jul 28, 2011 at 7:33
2

The best (and easiest) way that I've found to remove that notice was a workaround posted on this Consulting blog.

Using SPD, you are basically going to export a copy of the site to your local machine, re-upload it, and behold: the blue info icon is gone (which denotes that the site has deviated from the template). You can then delete the problematic page, and then rename the copy to take place of the old file.

I have also personally confirmed that this works. I modified a Home.aspx site which then produced the notification banner, and this solution did the trick. Best of all is that there's absolutely no coding (which can then produce additional problems if you don't know what you're doing. Or if SharePoint doesn't like what you're doing :D).

1

I've put together a CSS-Only way to remove this message, while keeping the status messages for other scenarios (like items or pages being checked out) visible.

For starters, the markup for a customized page that is also checked out looks something like this:

<div id="pageStatusBar">
    <span id="status_1">
        <span id="status_1_body">The current page has been customized from its template. [...]</span>
    </span>
    <span id="status_2">
        <span id="status_2_hiddenPriMsg" class="ms-hidden">Important Status</span>
    </span>
</div>

What we need to do is remove the CSS for the banner div and move it to the specific child span's classes. Luckily each type of message has its own unique ID, e.g. status_1, status_2, etc.

So we start with this to clear the necessary styles from the div container:

body #pageStatusBar {
    padding: 0px;
    border: none;
}

We don't have to worry about colors/background colors, since we only need to make the div box have no size in order to hide it. Then we add the necessary styles to all the spans except #status_1, which is the one we want to hide:

#pageStatusBar > span[id^=status_]:not(#status_1) {
    padding: 4px;
    display: block;
    border: 1px solid #CAAC09;
    border-left-width: 0px;
    border-right-width: 0px;
}

Note that the direct descendant combinator (>) is necessary, because some of the status_# spans have children spans (as you can see by looking at the markup above) that also have IDs beginning with status_. If you leave out the direct descendant combinator, you will add the border and padding to those children spans, as well, doubling or tripling your banner size.

(This answer has full browser support, including IE7+, and works even if users have disabled JavaScript)

0

I know I'm three or four years late but this worked for me like a charm.

Just insert this snippet on the page in SPD and you're done:

<style>
#DeltaPageStatusBar{
display: none;
}
</style>
4
  • Will this also remove other status bar messages such as "user has checked out a file" or "this page is checked out to another user" ?
    – TylerH
    Nov 16, 2015 at 15:12
  • I've implemented this solution a long time ago and nobody raised any complaints.
    – MahonyCZ13
    Nov 19, 2015 at 13:59
  • OK, I'm not sure how that's relevant to my question though. It's not a complaint, it's a request for more information about this implementation.
    – TylerH
    Nov 19, 2015 at 14:46
  • 1
    Sorry, I tested it again and check out/in notifications are displaying for me correctly. I will try it tomorrow with some low permission user.
    – MahonyCZ13
    Nov 19, 2015 at 18:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.