Write Project Bid Documents

  1. Decide which General Condition (GC) to use (e.g. AIA, EJCDC)
  2. prepare “Supplementary Condition” (SC) that tweak (revise) General Condition
  3. Prepare “Tech Specification”, decide which Divisions to use
  4. Prepare “Special Provision” that tweak Tech Specification,
  5. Prepare “Agreement”,
  6. Prepare “Instruction to Bidders”
Posted in Uncategorized | Leave a comment

SharePoint Team Site vs. OneDrive for Business

This post give an answer:

OneDrive for Business is meant to be your “me” place at the office. Basically, if you’re trying to compare it to your File Shares, it could be thought as the new “Home Folders” for users or the new “My Documents”.

SharePoint Team Site is meant to be the “We” part of the work for you and your team. In this location, the file isn’t owned or associated to one user, but rather the team itself or the Team Site if you will.

Posted in Office365, SharePoint | Tagged | Leave a comment

SharePoint Online: NT Authority\Authenticated Users

This answer comes from this post:

All Users (windows) and All Users (membership) are not valid for use in SharePoint Online?
Yes, in SharePoint Online, we use Everyone or Everyone except external users.

Does Everyone except external users include users who are present in Office 365 but do not have a license?
No. The Everyone except external users group includes the users who have been assigned SharePoint Online licenses. The Everyone group includes internal licensed users or external users from external sharing.
Note: External users are the users outside of your tenant. They may from other Office 365 tenants or just the users with Microsoft accounts.

Posted in Office365, SharePoint | Leave a comment

How to paste code at WordPress blog

  1. Use Notepad++ (32 bit), add plugin Convert2HTML
  2. covert code to html inline CSS,
  3. switch post edit mode to HTML, and paste, like below.
 <Item MenuEntryName="Edit" MenuItemName="Cut"/>
 <Item MenuEntryName="Edit" MenuItemName="Copy"/>
 <Item MenuEntryName="Edit" MenuItemName="Paste"/>
 <Item MenuEntryName="Edit" MenuItemName="Delete"/>
 <Item MenuEntryName="Edit" MenuItemName="Select all"/>
 <Item MenuEntryName="Edit" MenuItemName="Begin/End Select"/>
Posted in Uncategorized | Leave a comment

SharePoint 2010 Compatibility View mode for Internet Explorer

  • IE “Compatibility View Setting”

IE -> “Tools” menu -> “Compatibility View Settings”: add/remove site.


  • Enterprise Mode for Internet Explorer 11

Stay up to date with Enterprise Mode for Internet Explorer 11

How to Enable and Use Internet Explorer 11’s Enterprise Mode


  • <meta http-equiv=”x-ua-compatible” content=”IE=8″ >

SharePoint 2010 aspx webpage is only compatible with IE8.

This post provide some bug list, if you break this compatible mode. I copy here for myself reference:

  • Change IE meta tag from “IE=8” (or IE=edge) to “IE=9”Please note these bugs only show up in IE!
    • In a document library, the “Send To” option in the context menu doesn’t doesn’t display the secondary menu (thanks to Brian for discovering this).
    • Rich text editor fields in dialog boxes do not allow text entry.
    • Save button in dialog boxes do not work.
    • The people picker save button is disabled (thanks to Shane Perran).
    • Web Parts cannot be moved from zone to zone, they go back to their default location when you stop editing the page (thanks to Shane Perran).
    • Site Permissions > Create a New Group (newgrp.aspx) page wont submit. The Rich Text entry box for the new group ‘About Me’ is greyed out. The page errors out in Office365 (thanks to John Mongell).
    • Instant Messaging presence pawn is broken (thanks to Sig Weber).
    • Event in calendar view can’t postback/create an item (thanks to @CStahl).
    • The mini calendars within the Modal Popup Dialog Box when the Week Day is enabled (“Show week numbers”…); the design for the calendar crashes (thanks to @CStahl).
    • Lookup fields with 20+ items will not display the dropdown list (thanks to @CStahl).
    • People Picker is broken (thanks to Sig Weber).


Posted in SharePoint | Leave a comment

SharePoint List View add document (PDF) preview button

First, you need to read this post: SharePoint 2010 and PDF Integration Series
This post will explain why you could not open PDF at browser. Here are some other posts about it:
Unable to open PDF directly from SharePoint 2010
Manage permissions for a Web application (SharePoint Server 2010)

Also, for IE, you need to disable “Adobe Acrobat Sharepoint OpenDocuments Component” addon. Otherwise, PDF document will open at Adobe reader, rather than at browser itself.

Name: Adobe Acrobat Sharepoint OpenDocuments Component
Publisher: Adobe Systems, Incorporated
Type: ActiveX Control

Second, add a new Calculated Column at List View web part. You could refer to this webpage: Using calculated columns to write HTML

Our preview button actually is an img  as below. We set a unique class name. Also, its onclick event will call our javascript function “previewPDF“.

"<DIV><img title='click to preview' 
border=0 />DIV>"

Third, we add a “Content Editor” web part at bottom of our ListView webpage. You could refer to this link to see how to insert a web part. This “Content Editor” will link our customized “PreviewPage.html” webpage, which is stored at our ScriptLibrary.


Here is our customized “PreviewPage.html“. We use JQuery UI dialog.

<p>Our customized javascript is here</p>
<script src="https://code.jquery.com/jquery-1.12.4.js" type="text/javascript" />
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js" type="text/javascript" />
<link href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<div id='PreviewDialog' title='Document Preview' width='100%' height='100%'>
  <iframe id='PreviewFrame' width='100%' height='100%' />
<script type="text/javascript">
var $j = jQuery.noConflict();
$j(document).ready(function() {
	//initialize dialog
		autoOpen: false, 
		modal: true,
		dialogClass: 'ddDialog',
		height: ($j(window).height() * 0.8),
		width: ($j(window).width() * 0.7),
		//when close dialog, we need to release PDF source
		close: function( event, ui ) {$j("#PreviewFrame").attr("src","");},  
		show: {effect: "blind", duration: 300}
	//we store pdf hyerlink at each preview button ()
	$j("img.ddcPrevview").each (function(){
		//find table row that contains this preview button.
		var etr = $j(this).closest('tr'); 
		//and then, we search the pdf hyperlink at this row
		var eA = $j("td.ms-vb-title a[href$='.pdf']", $j(etr)); 
		//and then, we store this pdf hyperlink at our preview button.
		$j(this).attr( "href", $j(eA).attr('href') );	

//when preview button clicked, we open dialog, and show pdf hyperlink
function previewPDF(img){
	var fileURL= $j(img).attr("href");
	$j("#PreviewDialog").dialog( "open" );	
	$j("#PreviewFrame").attr("src", fileURL);

Now, if you click the “cPreview” image, a popup window will show PDF document:


Posted in JQuery, SharePoint | Tagged , , , , | Leave a comment

JQuery Ajax, Deferred, and Promise

I recently use SharePoint REST to create customized webpage. I post here something I learned about JQuery promise:

Good reference posts:
Deferred objects in jQuery

When an AJAX call is executed it will be executed asynchronously by the browser. Once the AJAX call completes some callback function is called by the browser.

Deferredis an Object,  Promiseis one of its properties.
JQuery $. ajax method internally return Promise property of a $.Deferred() object’s .

A promise is an immutable object, meaning clients can listen to it but they can’t really do anything to change it. Client could hook onto Promise done and fail callbacks, but doesn’t have access to the internal deferred .resolve & .reject function. So instead of returning the Deferred object, JQuery only return its promise property.

var dPromise = $.ajax({
    url: "/echo/json/",
    data: {json: JSON.stringify({firstName: "Jose", lastName: "Romaniello"})} ,
    type: "POST"
//dPromise is a Promise object.
dPromise.done(function(p){alert(p.firstName +  " saved.");})
Posted in JQuery, Uncategorized | Leave a comment