10/29/2012

SharePoint: Web Part Page Caption and Description

 

There's always one more thing to discover about SharePoint…

Web Part Pages have optional Caption, Description and Image properties that are not available on normal home pages (default.aspx) or Wiki pages.The caption can be quite useful as a description of the page. The description is kind of useless as the user had to "discover" it as a mouse over tip. In 2013 the caption and the description both seem to be ignored in the "2013 experience".

2010:

In 2010 the caption is displayed below the site tile and the description is displayed as a mouse over tip when the mouse is moved over the site crumb trail, the web part page name or the caption. (Your users will probably never find the description!)

image   image

The replaceable image:
    image

 

2013:

2013 web part pages have the the same ribbon button as 2010, and while you can change the image and the title, the caption and description are not displayed in the new style UI.

The replaceable image:

image

 

2007:

In 2007 the caption is displayed above the web part page title and the description is displayed as a mouse over tip when the mouse is moved over the page title or the caption.

imageimage

The replaceable image:
    image

 

To set the 2010 caption, description and icon or the 2013 image:

Edit the Web Part Page, click the Page tab of the ribbon and click Title Bar Properties.

image

    image

To set the 2010 caption, description and icon:

    image

 

.

10/28/2012

Finding your way around SharePoint 2013

 

Microsoft giveth and Microsoft taketh away.

SharePoint 2013 is full of new and cool features. But if you are a SharePoint 2010 user you may have a hard time finding even the basics in the new 2013 interface. Below is a start of a list of the more confusing changes with navigation tips and workarounds. I'll add to this as I find more.

Here's the official "changes" document: http://technet.microsoft.com/en-us/library/ff607742(v=office.15).aspx

And an official list of "discontinued features": http://office.microsoft.com/en-us/sharepoint-help/discontinued-features-and-modified-functionality-in-microsoft-sharepoint-2013-preview-HA102892827.aspx

 

The Site Action menu In 2007 it was on the right, in 2010 it was on the left, in 2013 it's back on the right! But now it disguised as a gear!

Note that this is a different "gear" than the one just above it in Internet Explorer!
image

Which "gear"?
image
 
Create a new web part page Web part pages may be deprecated in 2013! (I'm checking…) Otherwise they are well hidden. You can still create them if you know the URL to the 2007 or 2010 create page.
 
http://yourserver/sites/yoursite/_layouts/create.aspx

Update: Several people, including Wing-Leung Chan in his comment below, have pointed out that you can still add a web part page by going to the Site pages library and clicking the New Document button's dropdown arrow.
    image
Create a new list or library Everything is now called an App! Click the Site Action "gear" and click Add an App.

For a discussion about why everything is now an "app" see here.
image
 
Create a new subsite Creating a subsite takes a few more steps now… Click the Site Action "gear" and click Site contents (used to be called View All Site Content), scroll to the bottom of the page and click "new subsite".. image

image

 
View All Site Content It's now just called Site contents and is no longer a clean simple list. image
 
Create – the old style Navigate to your home page and edit the URL to go to the create page:
http://yourserver/sites/yoursite/_layouts/create.aspx
image
 
Crumb trail It's gone! Both the 2010 Navigate Up folder icon ant the Title are crumb trails are gone. I guess you just have to add all of your sites to your favorites!
 
I'll put together an article to show how to put these back.
Where's my Task list and Announcements list? A Team Site template only previsions a document library. All of the other lists and libraries we had in 2010 are missing: Announcements, Tasks, Team Discussions, Calendar, etc. Add them manually (Site Actions, Add an app)

The "Project Functionality" feature (Site Actions, Site Settings, Site Features) adds a Task list and the calendar, but not the rest of the 2010 Team Site template lists. ("This feature adds project management functionality to a site. It includes tasks, a calendar and web parts on the home page of the site.")
 
Where is the "xyz" template? Many of the site templates found in 2010 are now gone.

Document workspace
Meeting workspaces (all of them)
Group work
Visio Process Repository

Not listed in the official document:
PowerPivot Site
Microsoft Project Site
Web Databases (all of them)
FAST Search Center
 
Details about the missing templates:
http://technet.microsoft.com/en-us/library/ff607742(v=office.15).aspx

These are gone, but most can still be created using code or PowerShell.



I'm checking to see if the unlisted ones can be enabled with a feature.
Missing Libraries in the create page (in a default Team Site)
 
Data Feed Library
Slide Library
PowerPivot Gallery
I'm checking to see if these can be enabled with a feature.
Missing Lists in the create page (in a default Team Site)
 
Project Tasks

Status List
Project Tasks is just a task list with a Gantt chart as the default view.
Where is the "xyz" web part? These appear to be missing:
Chart
Web Analytics
Outlook Web App web parts
But... there are new web parts!
Where is "Sign in a s different user?" Missing, but not gone. Either start the browser using "Run as different user" or follow the steps in this article to add it back to the Welcome menu.
Where is "My Settings"? Buried, but not gone.

Click your name (the Welcome menu), About Me, Edit Your Profile, … (additional options), Language and Region

Where is "Upload Multiple Documents"? The Upload Multiple Documents option is deprecated in SharePoint Server 2013. Use the new Drag and Drop features or use Windows Explorer View.

.

10/24/2012

SharePoint 2013 released on MSDN?

 

I'm downloading some files today from MSDN and see that there are a number of "2013" items just added today for MSDN subscribers!

  • SharePoint 2013
  • Office Web Apps 2013
  • Office 2013
  • Exchange 2013
  • and more!

I'm hoping these are all the RTMs! 

Waiting for an official word from somewhere…

but still downloading… will have installed shortly!

10/18/2012

SharePoint Saturday Cincinnati 2012–Oct. 27th

 

Are you registered yet?

SharePoint Saturday Cincinnati

Saturday, October 27, 2012

Event details, including speakers and topics have been posted!
Go here for details: http://www.sharepointsaturday.org/cincinnati

Register here: http://spscincinnati2012.eventbrite.com/

Twitter: #SPSCincinnati

sps-cincinnati-speaker-badge_thumb

My topic will be "Exploring and Auditing SharePoint Using PowerShell"

This session shows how to use PowerShell in both SharePoint 2007 and 2010 to find and extract all kinds of information not easily found using built-in features. In this session you will see how to use PowerShell to:

• Find all documents in any site, or the entire farm, that matches a pattern (example: *.avi)
• Find all users who have access to a particular file (or folder, or library or site)
• Find sites with no recent activity
• Find all content a single user has access to
• Find all libraries that use a selected Content Type
• Find all customized (un-ghosted) pages
• Find all pages that use a selected web part
• How to collect the results into reports
• and more…

10/17/2012

Cincinnati PowerShell Events

 

Cincinnati PowerShell User Group

The next meeting of the Cincinnati PowerShell User Group is Thursday October 18th at MAX Technical Training. I'll be speaking on "How to use PowerShell to use, filter and merge data from multiple systems". I'll be showing how to work across three systems, AD, SharePoint and SQL to collect data about a subset of employees and post the results to a SharePoint list.

Go here to resister (not required to attend) http://www.meetup.com/TechLife-Cincinnati/events/84008152/

 

SharePoint Saturday Cincinnati

It's a SharePoint event, but there will be PowerShell content there! At least four sessions include PowerShell.

Go here for info and to register: http://www.sharepointsaturday.org/cincinnati
October 27th, 2010

.

10/14/2012

SharePoint - Filtering a View by Group Membership

 

I use this blog to both share things I have discovered about SharePoint and as a place to store "stuff" so I can find it later. Kind of like personal notes…  The following is not an original discovery, just a step by step set of notes for a solution from tips I have found elsewhere. The core XML that led to this article where found here:
http://spboom.com/sharepoint-development/how-to-filter-sharepoint-list-by-membership-in-sharepoint-group/
and here:
http://sympmarc.com/2010/06/16/caml-filter-for-current-group-membership/

Filtering a View by Group Membership

There are a number of possible solutions to this problem:

 

Filtering a View by Group Membership

Notes:

  • This is not security! Other views of the list will still display all of the items.
  • The XML query can be much, much more complicated with the addition of ANDs and ORs. For example, you might add an OR section to always show all items for site owners.
  • The following works on a view (XsltListViewWebPart), but will also work with a Data View (DataFormWebPart). For the DataFormWebPart you will have a little more work to do as the WHERE is embedded in the "selectcommand" string and all of the brackets are "escaped". Example:
    image
    You will need to write the WHERE as a single line of text and replace each "<" with "&lt;" and each ">" with "&gt;".

The following is for SharePoint 2010 and Office 365 (2010)…

  1. If you don't have a convenient group for testing, go create a SharePoint group with a few people who can help you test this.
  2. In your list add a new column:
    Name: "VisibleToGroup"  (any name will do as long as you know how to deal with spaces and special characters in the name)
  3. Add a few items to the list with a few "VisibleToGroup" blank, a few with your test group and one or two for say Site Owners or Members.
  4. Create a view for a list:
    1. Give it a name (maybe "Filtered by Group Membership")
    2. Add a Filter. Anything will do. This is just to add the <Where> section to the web part's XML.  Example: Created By equals [Me]
    3. Configure the rest of the view as usual and save it
  5. Open your site in SharePoint Designer 2010
  6. In the Site Object pane click Lists and Libraries
  7. Click your list and then click the view you just created
  8. In the Code pane search for <Where>
  9. Delete everything between <Where> and </Where>  (but leave these tags)
  10. Add the following bolded code inside of the Where tags:
      <Where>
        <Membership Type="CurrentUserGroups">
          <FieldRef Name="VisibleToGroup"/>
        </Membership>
      </Where>

    The above for a DataFormWebPart (Data View):
    &lt;Where&gt;&lt;Membership Type="CurrentUserGroups"&gt;&lt;FieldRef Name="VisibleToGroup"/&gt;&lt;/Membership&gt;&lt;/Where&gt;
  11. Change "VisibleToGroup" to your column name (remember if you used spaces in the name then see: how to deal with spaces and special characters in the name)
  12. Save the view and go test in the browser

 

The results…

Here's a view showing all tasks in a list, including the People Picker column for a selected group displayed:

  image

Here's the filtered view for a user who is in the Training Members and Training Friends groups:

  image

Here's the filtered view for a user who is in the Training Friends and Training Members groups:

  image

The first user only saw tasks 2 and 4. The second user saw only tasks 2 and 3. Neither user saw task 1 as it was not assigned to any group.

 

Got a better solution?

Post a comment to this article and share it!

.

10/10/2012

SharePoint–Finding Column Display and Internal Names

 

Many customizer and developer projects require knowing the "internal names" for list and library fields. For example the task list field "% Complete" is internally named "PercentComplete".

Here are a few ways to find the internal name:

  • From the browser
  • From SharePoint Designer
  • Using PowerShell
  • Using a C# Console Application
  • Using the Client Side Object Model
  • Using JavaScript Client Side Object Model and a Content Editor Web Part

    Pretty much something for everyone!

 

From the browser

Permissions needed: Must have Site Owner (Full Control) or Design permissions

This could be a bit tedious if you wanted to check all of the fields, but for just one it's quick.

  1. Display the list or library and click the List or Library Ribbon
  2. Click List or Library Settings
  3. Scroll down to the list of columns and click the column name
  4. Note the URL for the page… the internal name is listed at the end: 
        http://………&Field=Author

 

From SharePoint Designer

Permissions needed: Must have Site Owner (Full Control) or Design permissions (may only need edit permissions in the library holding the web part page… To Do for Mike: need to test this!)

  1. In SharePoint Designer 2010 open your site and edit a web part page
  2. Click in a web part zone, click the Insert ribbon tab, click Data View and Empty Data View
  3. Click "Click here to select a data source" and pick your list
  4. In the Data Source Details pane mouse over the sample data (or the blank area below the field name) and the XSLT path the field will be displayed. The value after the "@" is the internal name.
    image

 

Using PowerShell

Permissions needed: Administrator access to the server and permissions to the site (PowerShell is an administrator's tool)

$web = Get-SPWeb http://sharepoint/sites/training/salestraining
$list = $web.Lists["Announcements"]
$list.fields | select Title, InternalName, Hidden, CanBeDeleted | sort title | ft -AutoSize

As you will most often be interested in the non-hidden fields, you can add a Where to filter them:

$list.fields | select Title, InternalName, Hidden, Sealed, CanBeDeleted | where {$_.Hidden -eq $false} | sort title | ft –AutoSize
 

Using a C# Console Application

Permissions needed: Administrator access to the server and permissions to the site (the code must run on the server)

using System;
using Microsoft.SharePoint;  // add a reference to Microsoft.SharePoint

// remember to change the Build Platform Target to x64!
namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            SPSite site = new SPSite("http://sharepoint/sites/Training/");
            SPWeb web = site.AllWebs["salestraining"];
            SPList list = web.Lists["Announcements"];

            Console.WriteLine("Title - Internal Name - Hidden - CanBeDeleted");
            foreach (SPField f in list.Fields)
            {
                Console.WriteLine("{0} - {1} - {2} - {3}", f.Title, f.InternalName, f.Hidden, f.CanBeDeleted);
            }
            site.Dispose();
            Console.ReadLine();
        }
    }
}

 

Using the Client Side Object Model

Permissions needed: May only need view permissions in the library holding the web part page… (To Do for Mike: need to test this!)

You can write and run Client Side Object Model (CSOM) code from your local PC and not need access to the SharePoint Servers. The following is a little console application with references added for Microsoft.SharePoint.Client and Microsoft.SharePoint.Client.Runtime.

using System;

using Microsoft.SharePoint.Client;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            string url = "http://sharepoint/sites/training";
            ClientContext context = new ClientContext(url);
            Web web = context.Web;
            var list = web.Lists.GetByTitle("Announcements");

            context.Load(list.Fields);
            context.ExecuteQuery();

            Console.WriteLine(list.Fields.Count);
            foreach (Field f in list.Fields)
            {
                Console.WriteLine("{0} - {1} - {2} - {3}", f.Title, f.InternalName, f.Hidden, f.CanBeDeleted);
            }
            Console.ReadLine();
        }
    }
}

 

Using JavaScript Client Side Object Model and a Content Editor Web Part

Permissions needed: May only need view permissions to view the page… (To Do for Mike: need to test this!)

image

Steps:

  1. Open Notepad and copy and paste the code below
  2. Save the file as GetFieldName.htm
  3. Upload the file to a library (SiteAssets, Shared Documents, etc.)
  4. Right-click the uploaded file and copy the shortcut (the URL)
  5. Go to a web part page or the home page and add a Content Editor Web Part
  6. Edit the web part and set the Content Link to the URL of the file you just uploaded
  7. Save your changes and test!

                  image

<input type="text" id="ListName" value="Tasks"></input>
<button onclick='GetFieldList()'>Get Field List</button>

<script type="text/javascript">

function GetFieldList()
{
  var listname = document.getElementById("ListName").value;
  var ctx = SP.ClientContext.get_current();
  this.web = ctx.get_web();
  ctx.load(this.web);
  this.list = web.get_lists().getByTitle(listname);
  ctx.load(this.list);
  this.fields = this.list.get_fields();
  ctx.load(this.fields); 

  ctx.executeQueryAsync(Function.createDelegate(this, this.getListInfoSuccess), Function.createDelegate(this, this.getListInfoFail));
}

function getListInfoSuccess(sender, args) 
{
        var fieldEnumerator = this.fields.getEnumerator(); 
        var results="";
        while (fieldEnumerator.moveNext()) { 
            var oField = fieldEnumerator.get_current(); 
            if (!oField.get_hidden())
            results+= oField.get_title()
                + " - " + oField.get_internalName()
                + " - " + oField.get_hidden()
                + "\n";
        }
        alert(results);
}    
function getListInfoFail(sender, args) 
{
 alert('Something failed. Error:'+args.get_message());    
}

</script>

10/08/2012

End of support for Internet Explorer 7 in Office 365

 

Just got the latest service alert for Office 365…

End of support for Internet Explorer 7
Internet Explorer 7 is not compatible with the updates to Office Web Apps. For the best user experience, Office 365 users should continue to use a modern web browser.

Safari 4.x is also no longer supported. (But newer versions are.)

More here: http://community.office365.com/en-us/wikis/office_365_service_updates/update-to-office-web-apps-with-sharepoint-su4.aspx

9/23/2012

SharePoint Saturday Cincinnati 2012–Oct. 27th

 

SharePoint Saturday Cincinnati

Saturday, October 27, 2012

Event details, including speakers and topics have been posted!
Go here for details: http://www.sharepointsaturday.org/cincinnati

Register here:  http://spscincinnati2012.eventbrite.com/

Twitter: #SPSCincinnati

sps-cincinnati-speaker-badge

My topic will be "Exploring and Auditing SharePoint Using PowerShell"

This session shows how to use PowerShell in both SharePoint 2007 and 2010 to find and extract all kinds of information not easily found using built-in features.  In this session you will see how to use PowerShell to:
 
• Find all documents in any site, or the entire farm, that matches a pattern (example: *.avi)
• Find all users who have access to a particular file (or folder, or library or site)
• Find sites with no recent activity
• Find all content a single user has access to
• Find all libraries that use a selected Content Type
• Find all customized (un-ghosted) pages
• Find all pages that use a selected web part
• How to collect the results into reports
• and more…

8/26/2012

Final Reminder! First Ever Cincinnati PowerShell User Group Meeting 8/28!

 

Tuesday, August 28, 2012, 6:00 PM to 8:00 PM (add it to your calendar NOW!)

It's free! Go here and register NOW!
http://www.meetup.com/TechLife-Cincinnati/events/75092962/
(Registration is not required, but will help us plan for the event, order pizza and spread the word.)

Speaker is scheduled, SWAG is being acquired, people are signing up.

Ed Wilson, the Microsoft Scripting Guy and a well-known scripting expert, will be the kick off speaker for the new Cincinnati PowerShell user group. His topic will be "Using Windows PowerShell 3.0 to manage the remote Windows 8 workstation".

Goodies are on the way from Microsoft Press, O'Reilly, APress and others! Free books, discounts, and other stuff, all to be given away as door prizes. (But I know you are coming to hear Ed speak, not to win door prizes!)

Come prepared to network, talk PowerShell and even volunteer to support this new user group!

Spread the word!

Let your coworkers know. Blog and Tweet about it. (#cincypowershell should work)

Ed's Topic "Using Windows PowerShell 3.0 to manage the remote Windows 8 workstation"

There are four different ways to manage a remote Windows 8 workstation. The first is to use WMI remoting, the second is to use the computername cmdlets, the third is to use WinRm and Windows PowerShell native remoting, the last way is to use the CIM cmdlets. Each approach has advantages and disadvantages for the network administrator. In this session, I will examine each approach, and provide a checklist of criteria to aid the enterprise network administrator in choosing the appropriate technology for a variety of real world scenarios. This presentation combines live demo’s and interactive discussion to heighten learning.

About the presenter:

Ed Wilson is the Microsoft Scripting Guy and a well-known scripting expert. He writes the daily Hey Scripting Guy! blog. He has also spoken multiple times at TechEd as well as at the Microsoft internal Tech Ready and Geek Ready conferences. He has also spoken at the first SQL Rally conference in Orlando, as well as at numerous SQL Saturday events. He is a Microsoft-certified trainer who has delivered a popular Windows PowerShell workshop to Microsoft Premier Customers worldwide. He has written 9 books including 6 on Windows scripting that were published by Microsoft Press. He has also contributed to nearly a dozen other books. His Windows PowerShell 2.0 Best Practices book for Microsoft Press is currently a best seller. Ed holds more than 20 industry certifications, including Microsoft Certified Systems Engineer (MCSE), the Microsoft Certified Data Base Administrator (MCDBA) and Certified Information Systems Security Professional (CISSP). Prior to coming to work for Microsoft, he was a senior consultant for a Microsoft Gold Certified Partner where he specialized in Active Directory design and Exchange implementation. In his spare time, he enjoys woodworking, underwater photography, and scuba diving.

.

Note to spammers!

Spammers, don't waste your time... all posts are moderated. If your comment includes unrelated links, is advertising, or just pure spam, it will never be seen.