Add customizable information to a library page
Posted: 2012-01-23 Filed under: jQuery, Site templates | Tags: CEWP, jQuery, Library, Page, SharePoint Leave a commentHi everyone!
As you know when you add a web part to a library page, like Allitems.aspx or a page of a custom view that you’ve made, the ribbon gets wacky. That’s because it doesn’t know which web part it should have its focus on.
So what could we do if we really want some information, let’s say above the library web part?
And the information should be able to edit in an easy manner without using SharePoint Designer (SPD).
In this example I have a top site and underneath this I have some sub sites that are created from a site template I made. The things we are going to do now is made to that template so it could be reused.
First of all we have to edit the page’s code a bit, so bring up the page in your favorite editing tool SPD!
Find where the web part zone for the library begins and add two DIV’s right before it starts, like this:
PlaceHolderMain" runat="server"> <div id="success"></div> <div id="error"></div> <WebPartPages:WebPartZone runat="server" FrameType="None" ID="Main" Title="loc:Main">
As you can see I have added two DIV’s right after PlaceHolderMain with the ID’s of success and error. Don’t close this page, we are coming back here real soon.
What we are going to do now is to add some content to the success DIV.
First we need to have some content, right?
On the top site, let’s create a new Web Part Page, call it content.aspx and choose Full Page, Vertical.
Add a Content Editor to the page, click inside it, choose to Edit HTML Source…
…and paste this code:
</pre> <div id="<span class=">MyDiv"></div> <pre> The content within this DIV will be shown above the document library. <div> <ol> <li>To think about...</li> <li>And this as well...</li> </ol></div></div>
Ok, so now we have som content and as you can see the content is kept inside a DIV with the ID of MyDiv.
Now we are going back to the first page (where we have the library and added the two DIV’s) to add this information to the success DIV.
Let’s add som jQuery!
Find AdditionalPageHeader and add this code:
<asp:content contentplaceholderid="PlaceHolderAdditionalPageHead" runat="server"> <SharePoint:RssLink runat="server"/> <script type="text/<span class=">// <![CDATA[ javascript</span>" src="/sitename/Shared%20documents/jquery-1.6.2.min.js"> // ]]></script> <script type="text/javascript"> $(document).ready(function() { $("#success").load("/sitename/sitename/SitePages/content.aspx #MyDiv", function(response, status, xhr) { if (status == "error") { var msg = "Page is missing: "; $("#error").html(msg + xhr.status + " " + xhr.statusText); } }); }); </script> </asp:content>
As you can see, first I have a reference to my jQuery file, you should replace the URL so that it corresponds to your environment.
Then in the next section we are loading the content in MyDiv into the DIV with the ID of success.
Now we are done!
Save all pages and try it, it should look something like this:
This way you can create new sites from this site template and just by editing the Content Editors in the page content.aspx you could update the contents on all sites.
Isn’t that nice?
CU!
/Niax
Open an InfoPath form in a dialog
Posted: 2012-01-15 Filed under: InfoPath | Tags: Form web part, InfoPath, Modal dialog, Pop Up, SharePoint 2 CommentsHi everyone!
I would like to share with you how you could open a form in a dialog in SharePoint.
- Add a Form web part on a page of your choise.
- Replace the code with this:
<div> <a href="javascript:{ SP.UI.ModalDialog.OpenPopUpPage('/sitename/_layouts/FormServer.aspx?XsnLocation=/sitename/library/forms/template.xsn&OpenIn=browser&SaveLocation=/sitename/library', null, 1000); };">Open form</a></div>
- Replace sitename and library with the ones in your environment.
- Click Save and OK in the web part and try it out!
Thats it!
/Niax
Name of month in expense report
Posted: 2012-01-06 Filed under: InfoPath | Tags: InfoPath, Name of month, XML 1 CommentHi everyone,
Right now I am composing a form in InfoPath for an expense report. I thought that I would share a couple of things with you guys.
I will start of with this post and will probably follow up with one or two more.
In this post I will show you how I accomplished this:
-
Putting in the name of the month into the form
Ok, first of all you need to create a new data connection to get information from a XML-file.
Copy this code, put it in a Notepad and save it in UTF-8 format as Month.xml:
<?xml version="1.0" encoding="UTF-8"?> <months> <month id="1" name="Januari"/> <month id="2" name="Februari"/> <month id="3" name="Mars"/> <month id="4" name="April"/> <month id="5" name="Maj"/> <month id="6" name="Juni"/> <month id="7" name="Juli"/> <month id="8" name="Augusti"/> <month id="9" name="September"/> <month id="10" name="Oktober"/> <month id="11" name="November"/> <month id="12" name="December"/> </months>
Now create a data connection and choose to get data from another source such as a XML-file. Browse to the file Month.xml and choose to get data whenever the form is opened.
In the Main data source create a new field of the type string called TodaysDate.
Give this field the default value of Today() which will give you todays date.
Create another field of the type string called MonthNrText.
Give this field the default value of substring(TodaysDate, 6, 2) (that is when the date format is like 2012-01-06)
Now let’s create a new field and convert MonthNrText to an integer to take away the leading zeros.
Call this new field MonthNr and give it the value of number(MonthNrText)
Now we have the number of the current month, let’s make one more filed to get the name of this month.
Let’s create a field of the type string and name it MonthName. With this field we will compare the id in the secondary data source against our field MonthNr.
Give this filed the default value of @name[@id = MonthNr], this is how it is done.
Open up the properties of MonthName and click on the function-button to the right of the value field.
Click on the left button insert Field or Group... Choose the secondary data source Month and the field name. Then choose to add a filter to that data by clicking the button Filter data. A new dialog opens up where we choose to Add a new filter.
In the first drop down choose select a field or group and point to id in the secondary data source. In the second drop down choose is equals to and in the final drop down choose select a field or group and point to MonthNr. Here you have all the dialogs:
Ok, so there it is! Now we have the name of the current month.
In the next post I will show you how I made the form keep the name of the valid month, even if it is opened up later and how I made the form editable only until a certain date.
CU!
/Niax