Friday, May 30, 2014

#SP2013 The server was unable to save the form at this time.

A user can't edit  and save properties of the document.
In my case it turned out to be a permission issue.
The document library uses a document set which in turn uses a custom content type that were defined on the site collection level.
The lib was created under some site (spweb) , the lib has unique permissions
The user doesn't have access to the site, but has access to the lib.
The user can upload and check in  the document to the document set, but can't edit and save the properties of the custom document content type (which is used in the document set).
Every time the user hits the save button he gets the client-side error -
"The server was unable to save the form at this time.Please try again."
I have traced the issue when the user attempted to create a document set item. He got an error: "Access denied".
It happens because SharePoint uses the link ~site/_layouts/15/NewDocSet.aspx that is not accessible by the user since he doesn't have access to the site.
The obvious fix in my case to give access to the site to the user.

Thursday, May 29, 2014

@project SP1 for #Project2013 introduces the old bug with missing resources

‘Lost Resources’ bug has came back after re-relased SP1 for PS2013 has been applied.
To fix it - you need to manually re-add the missing resources in the project.
Plus, you need to run the SQL to fix 2 PS procedures, as it was recommended in http://support.microsoft.com/kb/2933444
draft.MSP_WINPROJ_DELETE_OLD_PROJECT_RESOURCES
pub.MSP_WINPROJ_DELETE_OLD_PROJECT_RESOURCES

I have run the sql before SP1, then I have applied SP1 and compare procedures before and after:
1. [draft].[MSP_WINPROJ_DELETE_OLD_PROJECT_RESOURCES]
The procedure was re-created by SP1 (the service packed was installed on 5/21/2014)
and the SQL delete statement lacks filter by PROJ_UID
 WHERE RES_UID IN (SELECT RES_UID FROM @resUids)

2. [pub].[MSP_WINPROJ_DELETE_OLD_PROJECT_RESOURCES]
The procedure was re-created by SP1  (the service packed was installed on 5/21/2014)
and the SQL delete statement lacks filter by PROJ_UID
 WHERE RES_UID IN (SELECT RES_UID FROM @resUids)

Thursday, May 22, 2014

@project Confusing UI in #Project2013 Assignments scenario

TaskDetails.aspx -  This Web part was unable to load.
The user :
1. Creates a task from tasks.aspx

2. Just a minute or couple later he refreshes TaskDetails.aspx and see the error

 3. The user goes back to Tasks.aspx and doesn't see the task that he just created.

Most of the time that is the hint that task or assignment were removed.

It's worth to mention that in the context of Project Server:
The task is ,simply, a task.
The assignment is a task that assigned to a resource.

In this specific scenario, I have checked the project and I saw the task still exists.So, my theory that the task\assignment was removed is not true in this specific scenario.

Important: The resource name is the same user who has just created a task and now he can't see that task in the tasks list.
That's weird.
As it turned out that is the confusing UI in Project Server.

Even though the resource name in the project page (Project%20Detail%20Pages/Schedule.aspx)  is the user who created a task , the assignment has been assigned to a different user.

The reason: The default assignment owner is not the resource himself

To fix it:
/_layouts/15/pwa/Admin/AddModifyUser.aspx
Set the resource's name is specified in the Default Assignment Owner field

My suggestion to MS: Please set in Project%20Detail%20Pages/Schedule.aspx in the column Resource - the Assignee, not a task creator
Additional reference:
Team Members cannot see their assigned tasks on the Timesheet page or Task page in PWA

Monday, May 19, 2014

@SPC_ORG SP2013 Search by @bniaulin

Continuous crawl:
 - only works on SP Content sources;
 - by default every 15 min;

Use continuous crawl diligently, only on the content source that they need it.

NO XSLT, use html, css, js

SP2013 SP1 has ability to turn the Optimistic overwrite for title - MetadataExtractorTitle

2 web parts for Search:
SearchResult web part - you have to have a custom display template
Content Search web part - you can re-map the properties

2 types of templates:
1. Control (a container for item display template)
2. Item Display

! Don't touch automatically created js file out from content template

Result types helps to vary item templates based on the rule (conditions)

Resources:
http://tympanus.net/codrops/


@SPC_ORG Go mobile with responsive design by @kyleschaeffer

1. Why Mobile
30% audience are on mobile already for a general content

2. What is responsive design
Future-friendly approach to handle different screen resolution.
The inventor of the term - Ethan Marcotte

3. How does it work?
HTML+CSS+JavaScript
Flexibility & Adaptation

  • Stop using fixed width, use %;
  • CSS Media query
@media screen and (max-width:800px) {} - basically, a rule when to use this CSS in {}


"Mobile first" is better since the client won't need to download extra artifacts

4. How SharePoint do it?
 this is a tricky question. It takes more effort.
We don't have full control on SP OTB html and css.

Much easier if you start with your own master page.

  • Disable "Mobile browser view"
  • Activate SP server publishing
(team site don't have master pages, you have to activate the publishing feature, and you need to create a new page for layouts)
Use only Publishing template!

When you create a mobile portal - keep only: publishing site template, custom master page and layouts

  • Create responsive templates:
    • Master pages
    • Page layouts
    • Item styles
    • Display templates (2013)
  • Create responsive content
ListView is still a problem to make it responsible
A kind of workaround: Put a div wrapper.

Resources:
http://spblueprint.codeplex.com/  - a blank blunt template for Sp2013 OTTB Responsive
http://responsivesharepoint.codeplex.com/






@SPC_ORG @DougHemminger on #SharePointApp development

No more authohosted app!
MS announced that the Office 365 Autohosted Apps Preview program will end on June 30, 2014.
So now we have 2 left: SharePoint-hosted, provider-hosted.

App model to solve security issues of full trust solutions.

When to use the App Model
 -SPOnline
 -Strong JavaScript\Client side developers

Other recommended read: 

Note:
On Anonymous access for App - How to: Create apps for SharePoint that can be used by anonymous users


@SPC_ORG @helloitsliam on SP2013 Authentication & Authorization

 Claims mentality: there is no user, there is an attribute by Liam Cleary

Authentication = Verification of Claim (login, pwd) - is not on SP
Authorization = Verification of Permission (access verification) - going on SP

Authentication precedes authorization (except anonymous access)

Often mistake: "Too often we focus on Authentication and not Authorization"

Authentication Claims
 - wide support;
 - WF-Trust 1.4
 - SAML Token 1.1 AuthN
 - It was developed for Sign On
 - Federation
Already many providers
-Microsoft standard approach
- before we needed to write custom code to authenticaion

Claim =
1. Identity (AD, Google, Windows Live) +
2. Claim (Attibutes of the Identity) +
3. Token (binary Representation of Idenity) +
4. Relying Party (aka RP) +
5. Secure Token Service (STS)

What is Claims Augmentation:

  • Ability to intercept the incoming claims and transform to different outgoing claims
  • Add additional attributes
Why to use Claims Augmentation: - retrieve user attributes to LOB

Authentication methods:

1. AD is a classical method authentication.

2. Membership and Role Providers - a custom mechanism for authentication

3. Custom Identity Provider.
Requires Trusted Certificate for communication

4. Azure Control Service (Azure Windows AD)
for O365 - ADFS Type cloud based service

Oauth - is a mechanism based on "Trust"
You trust the app, the app has permissions assigned.
So you can access data that you (as user) don't have access, but app has.