Microsoft Dynamics CRM - JavaSript - základní operace

Pár zajímavých odkazu pro práci s JavaScriptem.

SharePoint 2013 - změna odkazu pro editaci ContentTypu

Problém

Potřebuji při editaci obsahu v listu editovat data ve vlastní (custom) stránce.

Řešení

Je potřeba změnit URL v Content Typu na požavanou stránku. Lze to udělat minimálně 2 způsoby (viz níže):

  • V XML definici pro Content Typ
  • programově kodem

XML definice

Lze to provést XML definici pro zaklani custom listu v souboru Schema.xml.

<ContentTypes>
  <ContentType ID="0x0100DD4C86551351479685D17668C23A9883" Name="OdeslanaDatovaZprava" Group="Moje" Description="" Inherits="TRUE" Version="0">
    <FieldRefs>
      <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" DisplayName="Zpráva ID" Name="Title" Required="TRUE" />
        <FieldRef ID="{67bda4af-695a-4649-8e70-e0f97b556e1e}" DisplayName="Čas doručení" Required="FALSE" Name="DeliveryTime" Format="DateTime" />
        ....
        ....
    </FieldRefs>
    <XmlDocuments>
      <XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
        <FormUrls xmlns="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
          <Display>_layouts/15/PROJEKT/dispform.aspx</Display>
          <Edit>_layouts/15/PROJEKT/editform.aspx</Edit>
          <New>_layouts/15/PROJEKT/newform.aspx</New>
        </FormUrls>
      </XmlDocument>
    </XmlDocuments>
  </ContentType>
</ContentTypes>

Programově

Lze to udělat následujícím kódem. Využití např. v konzolové aplikaci pro jednorázové nasazení.

SPWeb web = SPContext.Current.Web;
 
web.AllowUnsafeUpdates = true;
 
SPContentType ct = web.ContentTypes["Muj Your Content Type"];
 
ct.EditFormUrl = "_layouts/editform.aspx";
ct.NewFormUrl = "_layouts/newform.aspx";
ct.DisplayFormUrl = "_layouts/dispform.aspx";
 
ct.Update();

Odkazy

http://blog.qumsieh.ca/2009/05/15/how-to-change-the-default-editform-newform-and-dispform/

SharePoint 2013 - modalní okno

Při volání v javascriptové funkce openMyPage (zobrazení modálního okna) se modální okno neotevře a v javascriptu je následující chyba:

Unable to get property 'showmodaldialog' of undefined or null reference

Volaná funkce

function openMyPage(pageName, pageTitle) {
    var options = {
        url: '/_layouts/15/project.folder/' + pageName,
        title: pageTitle,
        allowMaximize: false,
        showClose: true,
        width: 600,
        height: 500,
        dialogReturnValueCallback: RefreshOnDialogClose
    };
    SP.UI.ModalDialog.showModalDialog(options);
}

Je potřeba upravit načítání SP.UI.ModalDialog.

Upravená funkce

function openMyPage(pageName, pageTitle) {
    var options = {
        url: '/_layouts/15/project.folder/' + pageName,
        title: pageTitle,
        allowMaximize: false,
        showClose: true,
        width: 600,
        height: 500,
        dialogReturnValueCallback: RefreshOnDialogClose
    };

    SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options);
}

Odkazy
http://sharepoint.stackexchange.com/questions/122812/unable-to-get-property-showmodaldialog-of-undefined-or-null-reference

SharePoint 2013 - Fix Memory

Pro SharePoint Foundation je cesta k NodeRunner.exe.config zde:

C:\Program Files\Windows SharePoint Services\15.0\Search\Runtime\1.0\

URL Routing

Zde je jednoduchý příklad (bez dalšího komentáře) jak použít URL routing.

Global.asax

void Application_Start(object sender, EventArgs e)
{
    addRoute(RouteTable.Routes);
}

public static void addRoute(RouteCollection routes)
{
    routes.MapPageRoute("Home", "home", "~/default.aspx");// RoutName,RoutedLink,page link
    routes.MapPageRoute("Products", "product/{prdc_id}/{prdc_name}", "~/product.aspx");
}

Default.aspx

protected void Page_Load(object sender, EventArgs e)
{
    RouteValueDictionary prm = new RouteValueDictionary();
    prm.Add("prdc_name", UrlCleaner("produkt 1")); // add route data values which is procduct name
    prm.Add("prdc_id", 1);  // add route data values which is product ID

    VirtualPathData path = RouteTable.Routes.GetVirtualPath(null, "Products", prm); // Add route name and route data

    HyperLink1.NavigateUrl = path.VirtualPath; // give hyperlink to virtual path
}

public static string UrlCleaner(string myText)
{
    string text = myText;

    text = textReplace(".", "");
    text = textReplace("'", "");
    text = textReplace(" ", "-");
    text = textReplace("<", "");
    text = textReplace(">", "");
    text = textReplace("&", "");
    text = textReplace("[", "");
    text = textReplace("]", "");

    return text;
}

Product.aspx

protected void Page_Load(object sender, EventArgs e)
{
    if (RouteData.Values["prdc_name"] != null && RouteData.Values["prdc_id"] != null)
    {
        lbl_productID.Text = RouteData.Values["prdc_id"].ToString();
        lbl_productname.Text = UrlCleaner(RouteData.Values["prdc_name"].ToString());
    }
    else
    {
        Response.Redirect("~/Home");
    }
}

public static string UrlCleaner(string MyText)
{
    string text = MyText;
    text = text.Replace("-", " ");
    return text;
}

Odkazy

Office 2013 / Sharepoint Online - odkazy

 Vývoj

 

SharePoint - životní cyklu podpory produktů

 

Windows 8.1 - instalace

Jak jednoduše nainstalovat Windows 8.1?

Zde je způsob pro vytvoření instalačního media na flash disku. Podmínkou je mít 4GB flash disk a product key pro aktivaci.

Fotografie zdarma

Knihy zdarma

O blogu

Tento blog je místem, kde sdílím své zkušenosti, části zdrojových kódů, odkazy apod. Zdroje jsou zaměřeny převážně na problematiku portálového řešení SharePoint a vývoj webů v prostředí Microsoft. Mým cílem není úplně obsahnout konkrétní řešení, ale pouze tu část, kterou potřebuji. Pokud se problematika obsáhlejší, jsou pod článkem odkazy na související informace.

O autorovi

Oldřich Zátopek
Zabývám se vývojem webových aplikací internet/intranet na Microsoft technologiích. Hlavní specializace je SharePoint. LinkedIn