Wednesday, December 15, 2010
Moved to new location...sudhirke.wordpress.com
I have shifted my blog onto new address...
http://sudhirke.wordpress.com/
Thanks for all your support...
Sudhir Kesharwani
Friday, August 6, 2010
jQuery : Enhancing List View web part rendering
Contents
jQuery : Enhancing List View web part rendering 1
Overview
I hope this helps someone in need.
Requirements
The requirement was to display following table in a web part.Topic | Presenter | Link to Presentation | Link to Video |
Some topic | Some presenter | [ICON to download ppt] | [Icon to download video] |
Solution
When I add the list view web part I could see following view.
Note: Video column was getting rendered as the plain hyperlink.
jQuery – the lightweight magic
<TR><TD Class="ms-vb2"><A HREF="URL of Video">Text to Display</A></TD></TR>
So it was a TD that contained class "ms-vb2" and contained a child node as <a>.
Regards, Sudhir Kesharwani MCTS - MOSS 2007 | MCTS - WSS 3.0 | MCPD-EA | MCSD.NET
Wednesday, June 9, 2010
Using LinQ to query xml
Updating URL field using Lists.asmx
Field Name | Type | Description |
Title | Text | This field is used to record the login name of logged in user |
URL | URL | This field is used to store the link of a text file hosted on server. |
Sudhir Kesharwani
MCTS - MOSS 2007 | MCTS - WSS 3.0 | MCPD-EA | MCSD.NET
Saturday, May 15, 2010
Fwd: Hard Work Redefined
From: MG's Desk! <desk.mg@chrysalis.net.in>
Date: Sat, May 15, 2010 at 5:56 PM
Subject: Hard Work Redefined
Dear Chrysalian,
Working Hard is considered as one of the most important pathways to achieving success. Since centuries sages, masters, wise men, elders, consultants have been advocating, endorsing and supporting the above statement. I too am in alignment with these folks. (Should I miss out on an opportunity of being linked to the wise ones? )
New age generation wants to stick on to Smart Work but I believe even Smart Work involves some "Work".( and many a time ends up with lots of Hard Work) There is no substitute for Hard work.
I want you to read the above statement one more time and focus on the fact of Hard work leading to success, which implies that if our understanding of Hard work is not what it should be then chances are high that we may not be anywhere near our desired goal. Lets understand Hard work from a different perspective. Lets understand the difference between hard Work and working hard for success.
When in office an executive works as per his schedule and finishes what he had planned to do , this is called hard work, but when the same executive over and above his daily tough schedule goes for an evening course for technical up gradation – this is called working hard for success . At home when a home maker after a tough morning grind of the daily chores takes out time to learn sitar which she so dearly wanted since childhood- that's called working hard for success. A father on coming home tired and exhausted after a long days haul plays with his children with the same vibrancy and freshness which he had at the start of a new day, then it is called working hard for success. A cycle rickshaw puller works real hard for more than 12 hours a day, but he'll be working hard for success when you spot him talking to a co-operative bank for the loan of his second rickshaw. An Entrepreneur when working hard to set his business in motion also thinks and acts on succession planning then it is said he's working hard for success. ( I wonder how Dhirubhai Ambani missed out on that one)
The concept of working hard for success is the same whether you are a student, a businessman, a sports person or a spouse. Other than our regular work (where we have really worked hard) what are we doing extra to maximise our output is called working hard for success.
Its almost midnight and I feel I have been working hard for success for the day..
Love you lots and wish you a "Hard Working" Life …
MG
Friday, May 14, 2010
jQuery - Announcement carousel for SharePoint
Your web part should look like following image (announcements.jpg). You will see all the announcements scrolling one by one, Announcement items are linked to the actual announcement page. When you hover the mouse pointer over a news item, the scrolling will stop automatically.
https://docs.google.com/leaf?id=0B1XvO-SvpjhGYWEyYzNhYTYtZTQ5MS00MGRkLTk2ZmYtYTkwZmNlZDAxNmE2&hl=en.
Code is pasted in the email body for reference.
- Shared Documents o BIN § JQLIB – this folder contains all the JavaScript files · jQuery-latest.js · jcarousellite_1.0.1.hoverPause.js · news-ticker-source.js § CSS - this folder contains folder for the style sheet and required images · News-ticker : Folder for the style sheet. o Images: folder for images § News1.jpg § Mic1.jpg o News-ticker.css : CSS filefor styling. |
$(document).ready(function() { //Call the method to read data from annoucements list and display it as carousel. GetAnnoucementData(); }); /* This function reads the data from annoucement list and passes the control to processResults method This makes and ajax call to lists.asmx web service. Make sure to replace {Site URL} with your SharePoint site url. */ function GetAnnoucementData() { //Prepare the SOAP envelop for calling GetListItems method from lists.asmx web service var soapEnv = "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'> \ <soapenv:Body> \ <GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \ <listName>Announcements</listName> \ <viewFields> \ <ViewFields> \ <FieldRef Name='ows_ID' /> \ <FieldRef Name='LinkTitleNoMenu' /> \ <FieldRef Name='Body' /> \ <FieldRef Name='Expires' /> \ <FieldRef Name='Author' /> \ </ViewFields> \ </viewFields> \ </GetListItems> \ </soapenv:Body> \ </soapenv:Envelope>"; /*Post the request envelop to web service thorugh ajax request and pass the results to processResults method*/ $.ajax({ url: "{SITE URL}/_vti_bin/lists.asmx", type: "POST", dataType: "xml", data: soapEnv, complete: processResult, contentType: "text/xml; charset=\"utf-8\"" }); } /* This method parses the resultant xml and prepares the display. Please replace {Site Url} with your sharepont site url. */ function processResult(xData, status) { //Select the root element. var newnews =$("#newsItems"); var rows; //Check if query returns no rows if (xData.responseXML.getElementsByTagName("z:row").length==0) { //Prepare the display for 0 rows. var url = "{SITE URL}/Lists/Announcements/"; var head = "<li><div class='thumbnail'> <img src='{SITE URL}/Shared%20Documents/BIN/css/news-ticker/images/news1.jpg'></div>"; var body = "<div class='info'>No news items<a href=" + url + "> Read all</a> <span class='cat'> no items found</span></div>"; var tail = "<div class='clear'></div></li>"; var liHtml = head + body + tail; //Append the HTML element to newNews element newnews.append(liHtml); } else { //Read all the rows from responseXml rows = xData.responseXML.getElementsByTagName("z:row"); jQuery(rows).each(function() { //Read the information from returned rows var url = "{SITE URL}/Lists/Announcements/DispForm.aspx?ID=" + $(this).attr("ows_ID"); var title = $(this).attr("Title"); var news = $(this).attr("ows_Body"); var author = $(this).attr("ows_Author"); author = author.split('#')[1]; //Prepare the div element var head = "<li><div class='thumbnail'><img src='{SITE URL}/Shared%20Documents/BIN/css/news-ticker/images/news1.jpg'></div>"; var body = "<div class='info'><a href=" + url + ">" + $(this).attr("ows_Title")+ "</a> <span class='cat'>by " + author + "</span></div>"; var tail = "<div class='clear'></div></li>"; var liHtml = head + body + tail; //Append the resultant element onto newNews element newnews.append(liHtml); }); } //Append entire newNews element to root Div newnews.appendTo(".newsticker-jcarousellite"); //Prepare the Carousel of all the returned items $(".newsticker-jcarousellite").jCarouselLite({ vertical: true, hoverPause: true, visible: 4, auto:500, speed:1000 }); } |
<link rel="stylesheet" href="{SITE URL}/Shared%20Documents/BIN/css/news-ticker/news-ticker.css" type="text/css" media="screen" /> <script src="{SITE URL}/Shared%20Documents/BIN/jqlib/jquery-latest.min.js" type="text/javascript"></script> <script src="{SITE URL}/Shared%20Documents/BIN/jqlib/jcarousellite_1.0.1.hoverPause.js" type="text/javascript"></script> <script src ="{SITE URL}/Shared%20Documents/BIN/jqlib/news-ticker-source.js" type="text/javascript"></script> <div id="newsticker-demo"> <div class="newsticker-jcarousellite"> <ul id="newsItems"> </ul> </div> </div> <div id='status'></div> |
Thursday, January 7, 2010
Creating default Security Groups for new site collection
Al though it is a very small issue and most of us might be knowing this but still thought of sharing with community. In my current assignment we are provisioning SharePoint sites using Workflows and Workflow activities.
I have a list that is used to record a request for new site collection, i have also developed a custom Visual Studio workflow that contains one custom workflow activity to create a new site collection. My list contains a field that accepts Site Template based on which the new site collection gets created.
Till now everything looks good, but when i create a site based on Team Site through code my new site collection looked different then when it is created using central admin.
It just had one security group where as when we create site using same site template using central admin we can see three groups
1. Site Members
2. Site Owners
3. Site Viewers
After googling around i came to know that apart from provisioning site, SharePoint central admin makes some method calls to provision default security group.
SPSite.CreateDefaultAssociatedGroup(string PrimaryOwnerLogin, string SecondaryOwnerLogin, string GropuPrefix)
This method call will make default security groups (Members, Owners, Visitors) for your new site collection with all the required permissions.
This method is called automatically by SharePoint central admin.
Regards,
Sudhir Kesharwani