Как заставить представление Project Center на Project Server 2013?

Я хочу, чтобы всякий раз, когда пользователь посещает определенную страницу с веб-частью Project Center, у него должен быть установлен уже установленный вид (принудительно), например. «Сводка», «Освоенная стоимость» и т. д.

Я знаю, что представление привязано к последнему сеансу пользователя, поэтому, если во время своего последнего посещения пользователь изменил представление на «Заработанное значение», следующим будет «Заработанное значение».

Как сделать так, чтобы каждый раз, когда пользователь открывает страницу с веб-частью Project Center, он всегда открывал представление «Сводка»?

Спасибо.


person Gilang Bhagaskara    schedule 09.05.2016    source источник


Ответы (2)


Это решение JavaScript, которое я написал, использует параметр строки запроса "viewuid" (GUID для представления) для установки представления.

var projCenterExt;
var JsGridSatellite;

_spBodyOnLoadFunctionNames.push("projCenterChangeView")

function projCenterChangeView() 
{
   if (window.location.search.toLowerCase().indexOf("viewuid") >= 0)
   {
      var JsGridViewUid = window.location.search.toLowerCase().split("viewuid=")[1].split("&")[0];

      if (typeof projectCenterComponent !== 'undefined')
      {
         if (typeof JsGridSatellite === 'undefined') JsGridSatellite = projectCenterComponent.get_GridSatellite();

         JsGridSatellite.LoadNewView({uid: JsGridViewUid});
      }
   }
}
person PapaDaniel    schedule 03.11.2016

Спасибо, папа Даниэль. Вы нас начали, но это будет работать только в Chrome. Нам пришлось добавить туда паузу, и тогда это сработало в IE. Чтобы было ясно, вам нужно найти GUID представления, которое вы хотите отобразить, и использовать его в своей гиперссылке.

Вот мой пример http://projectserver/PWA/SitePages/ITDDash.aspx?idViewUID=38f25d41-2391-4ed4-b84e-2befec36b80b

var projCenterExt;
var JsGridSatellite;

_spBodyOnLoadFunctionNames.push("projCenterChangeView")
//console.debug("before projCenterChangeView");
function projCenterChangeView() 
{
//alert("in projCenterChangeView");
//console.debug("before 3 secs");
setTimeout(function(){ 
   //alert("in if:"+window.location.search.toLowerCase().indexOf("viewuid") );
   
if (document.location.search.toLowerCase().indexOf("viewuid") >= 0)
  
 {
      

    var JsGridViewUid = document.location.search.toLowerCase().split("viewuid=")[1].split("&")[0];
//alert("in if:"+JsGridViewUid );
      if (typeof projectCenterComponent !== 'undefined')
      {
         if (typeof JsGridSatellite === 'undefined'){
 	      //console.debug("JsGridSatellite  kis undefined");
        	 JsGridSatellite = projectCenterComponent.get_GridSatellite();
              //alert("jjc test");
         }
         JsGridSatellite.LoadNewView({uid: JsGridViewUid}); //orig
      }
//JsGridSatellite.LoadNewView({uid: JsGridViewUid});
     
   }

 //console.debug("after 3 secs");
 }, 1000);  
//alert("at end");
}

person Nick P    schedule 21.06.2017