Tuesday, December 11, 2012

" 'Model': object is null " error in Telerik RadSchedular

Recently I was using RadSchedular on an application page for SharePoint. I came across this weird problem on the navigation of the RadSchedular. i.e "Day", "Week", "Month" etc. I can switch it once, but afterwards I cannot switch it back. I noticed an script error shown in the browser as.

" Scriptresource.axd of the property 'Model': object is null "

So I googled and found a similar problem in the Telerik forum

http://www.telerik.com/community/forums/aspnet-ajax/scheduler/asp-updatepanel-and-radscheduler-issues.aspx

The Fix :

Add this tag to the telerik control.
EnableEmbeddedScripts="false"

Then in the OnInit function of the page, do this...
protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            ScriptManager scriptManager = ScriptManager.GetCurrent(Page);
            scriptManager.ScriptMode = ScriptMode.Debug;
            string telerikAssembly = typeof(RadScheduler).Assembly.FullName;
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Common.Core.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Common.jQuery.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Common.jQueryPlugins.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Common.Popup.PopupScripts.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Common.Navigation.NavigationScripts.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Menu.RadMenuScripts.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Menu.ContextMenu.RadContextMenuScripts.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Input.TextBox.RadInputScript.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Input.DateInput.RadDateInputScript.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Input.NumericTextBox.RadNumericInputScript.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Calendar.RadTimeViewScripts.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Calendar.RadCalendarCommonScript.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Calendar.RadCalendarScript.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Calendar.RadDatePicker.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Calendar.RadDateTimePickerScript.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.ComboBox.RadComboBoxScripts.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.Helpers.DateTime.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.RadSchedulerScripts.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.RecurrenceEditor.RecurrenceEditor.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.ContextMenu.RadScheduler.ContextMenu.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.Views.Week.Model.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.Views.Week.GroupedByResource.Model.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.Views.Week.GroupedByDate.Model.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.Views.MultiDay.Model.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.Views.MultiDay.GroupedByResource.Model.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.Views.MultiDay.GroupedByResource.Model.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.Views.Day.Model.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.Views.Day.GroupedByResource.Model.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.Views.Month.Model.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.Views.Month.GroupedByResource.Model.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.Views.Month.GroupedByDate.Model.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.Views.Timeline.Model.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.Views.Timeline.GroupedByResource.Model.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.Views.Timeline.GroupedByDate.Model.js", telerikAssembly));
            scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.Scheduling.AdvancedTemplate.js", telerikAssembly));
        }

For some reason I had to comment this line, It gave an error on the page load.
scriptManager.Scripts.Add(new ScriptReference("Telerik.Web.UI.Scheduler.ContextMenu.RadScheduler.ContextMenu.js", telerikAssembly));

Afterwards the navigation worked like a charm.


Updates : This issue was also solved by Update Sharepoint 2010.

Thursday, December 6, 2012

Honey_Bunny

I dont know how I came across this video. But seemed to cheer up my mood. Enjoy!


Lyrics at hello-honey-bunny-lyrics
Keeping this video for someone special.

Tuesday, December 4, 2012

E-Sports in Sri Lanka


This video was made by one of my clan mate (clan : n00b Alliance). The clips were taken at SLCG (Sri Lanka Cyber Games) 2012.

SLCG had lots of sponsors and a lot of competitors participating for games such as COD4, CS, NFS Most Wanted, Dota and some other console games. In Sri Lanka, COD4 is much more popular these days. There are plenty of clans that are into COD4.

For more information about Sri Lankan E-Sports, Surf to http://gamer.lk/

I am not in the gaming scene anymore though... But I do have all the gaming gear i'll ever need ;-) .
n00b!

Create Site Permission Groups and Add Users for SharePoint - Powershell

The following post is a PowerShell script to create or remove site level permission groups and add users to those group for SharePoint.
Function to create a permission group...

function Create-SPGroupInWeb  
{  
    param ($url, $groupName, $permissionLevel, $description)  
    try{
        $web = Get-SPWeb -Identity $url 
        if($web -ne $null){
            if ($web.SiteGroups[$groupName] -ne $null)  
            {  
                write-Host -f red "Group $groupName already exists!"
            }  
            else  
            {  
                $web.SiteGroups.Add($groupName, $web.Site.Owner, $web.Site.Owner, $description)  
                $group = $web.SiteGroups[$groupName]  
                $roleAssignment = new-object Microsoft.SharePoint.SPRoleAssignment($group)  
                $roleDefinition = $web.Site.RootWeb.RoleDefinitions[$permissionLevel]  
                $roleAssignment.RoleDefinitionBindings.Add($roleDefinition)  
                $web.RoleAssignments.Add($roleAssignment)  
                $web.Update()  
                write-Host "Group $groupName created successfully" 
            }  

            $web.Dispose() 
        }
    }
    catch [System.Exception]
    {
        write-host -f red $_.Exception.ToString()
    }
}

Function to remove permission groups by name...
function Remove-SPGroupInWeb  
{  
    param ([string]$url, [string]$groupName)  
    try{
        $web = Get-SPWeb -Identity $url 
        if($web -ne $null){
            if($web.SiteGroups[$groupName] -ne $null){
                write-Host -f yellow "Removing site group $groupName"
                $web.SiteGroups.Remove($groupName)
            }
            $web.Update()
            $web.Dispose() 
        }
    }
    catch [System.Exception]
    {
        write-host -f red $_.Exception.ToString()
    }
}

Function to add users to the group...
function Add-User
{
    param ($url, $groupName, $userName) 
    try{
        $web = Get-SPWeb $url
        if($web -ne $null){
            $MyGrp = $web.SiteGroups[$groupName]
            $user = $web.Site.RootWeb.EnsureUser($userName)
            $MyGrp.AddUser($user)
            write-Host "$userName added to $groupName" 
            $web.Update()
            $web.Dispose()
        }
    }
    catch [System.Exception]
    {
        write-host -f red $_.Exception.ToString()
    }
}

How to call the functions...
Remove-SPGroupInWeb -url "http://my-webApp:port/" -groupName "New Group"

Create-SPGroupInWeb -url "http://my-webApp:port/" -groupName "New Group" -permissionLevel "Read" -description "My New Group Description"

Add-User -url "http://my-webApp:port/" -groupName "New Group"-userName "domain\myUserName" 


As for the permission level of the group your going to create, For full control, send "Full Control" as the permissionLevel parameter. Running this code directly in SharePoint Management Shell wont be a problem.
Incase you are running it on Windows PowerShell, run this command as well... "Add-PSSnapin "Microsoft.SharePoint.PowerShell"


If you have any questions. I'll be glad to reply with what ever I know :) .

Something Worth Watching



For some reason, This made my day. Was wondering what I am doing with my life after watching this. The song played here is by "Roger Hodgson" with the title "Give a little bit". Chilling song....

Enjoy