Index: LamsSharePointIntegration/LamsSharePointIntegration/FeatureReceiver.cs =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/FeatureReceiver.cs (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/FeatureReceiver.cs (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,115 @@ +/**************************************************************** + * Copyright (C) 2008 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +using System; +using System.Web.UI.WebControls.WebParts; +using System.Xml; +using Microsoft.SharePoint; +using Microsoft.SharePoint.WebControls; +using Microsoft.SharePoint.WebPartPages; +using Microsoft.SharePoint.Navigation; +using System.Diagnostics; +using System.Collections.Generic; +using Microsoft.SharePoint.Administration; + +namespace LamsSharePointIntegration +{ + /// + /// The feature activator for the LAMSSharePointIntegration + /// + public class FeatureReceiver : SPFeatureReceiver + { + /// + /// Activates the LAMS feature for a site + /// + /// + public override void FeatureActivated(SPFeatureReceiverProperties properties) + { + // Get a hold of the site + SPWeb site = (SPWeb)properties.Feature.Parent; + + // Create a name for the LAMS lesson list + string listName; + if (site.Name==null || site.Name== "" || site.IsRootWeb) + { + // root site of the site collection does not have a name + listName = "LAMS Lesson List"; + } + else + { + listName = "LAMS Lesson List - " + site.Name; + } + + // Create the default server settings for the integration + SPFarm myFarm = SPFarm.Local; + if (myFarm.Properties["LAMSServerID"] == null) + { + myFarm.Properties["LAMSServerID"] = "lamssharepoint"; + myFarm.Properties["LAMSServerKey"] = "lamsserverkey"; + myFarm.Properties["LAMSUrl"] = "http://localhost:8080/lams/"; + myFarm.Properties["LAMSRequestSource"] = "SharePoint"; + myFarm.Properties["LAMSUseProfiles"] = "false"; + myFarm.Update(); + } + + //Get a hold of LAMS lesson list instance (schema and instance created through CAML) + SPList lessons = null; + try + { + site.Lists.Add(listName, listName, site.ListTemplates["LAMS Lesson List"]); + lessons = site.Lists[listName]; + lessons.OnQuickLaunch = true; + lessons.Hidden = false; + lessons.Update(); + + } + catch (SPException) + { + // lessonList already exists, use existing list + try + { + lessons = site.Lists[listName]; + lessons.OnQuickLaunch = true; + lessons.Hidden = false; + lessons.Update(); + } + catch (ArgumentException ex) + { + + throw new ApplicationException("LAMS Activation Failed, Could not find template to make LAMS lesson List - check Feature.xml", ex); + } + } + + // Add an event reciever for the created lesson + lessons.EventReceivers.Add(SPEventReceiverType.ItemAdded, + "LamsSharePointIntegration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2c5da6fd93fafb88", + "LamsSharePointIntegration.LAMSLessonListEventHandler"); + + } + + + public override void FeatureDeactivating(SPFeatureReceiverProperties properties) { /* no op */ } + public override void FeatureInstalled(SPFeatureReceiverProperties properties) { /* no op */ } + public override void FeatureUninstalling(SPFeatureReceiverProperties properties) { /* no op */ } + + } +} Index: LamsSharePointIntegration/LamsSharePointIntegration/Install.bat =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/Install.bat (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/Install.bat (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,19 @@ + +@SET TEMPLATEDIR="c:\program files\common files\microsoft shared\web server extensions\12\Template" +@SET STSADM="c:\program files\common files\microsoft shared\web server extensions\12\bin\stsadm" +@SET GACUTIL="C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\gacutil.exe" + +Echo Installing LamsSharePointIntegration.dll in GAC +%GACUTIL% -u LamsSharePointIntegration +%GACUTIL% -i bin\debug\LamsSharePointIntegration.dll + +Echo Copying files to TEMPLATE directory +xcopy /e /y TEMPLATE\* %TEMPLATEDIR% + +Echo Installing feature +%STSADM% -o installfeature -filename LamsSharePointIntegration\feature.xml -force + +IISRESET +REM cscript c:\windows\system32\iisapp.vbs /a "SharePoint - 80" /r + +REM "c:\program files\common files\microsoft shared\web server extensions\12\bin\stsadm" -o uninstallfeature -filename LamsSharePointIntegration\feature.xml -force Index: LamsSharePointIntegration/LamsSharePointIntegration/LamsSharePointIntegration.csproj =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/LamsSharePointIntegration.csproj (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/LamsSharePointIntegration.csproj (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,135 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {AC4E1080-43F1-43A8-B2DC-C81D86803EBB} + Library + Properties + LamsSharePointIntegration + LamsSharePointIntegration + v2.0 + 512 + true + LamsSharePointIntegration.snk + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + ASPXCodeBehind + + + ASPXCodeBehind + + + ASPXCodeBehind + + + ASPXCodeBehind + + + + + ASPXCodeBehind + + + ASPXCodeBehind + + + + + + + + + + + + + + + + + + ASPXCodeBehind + + + ASPXCodeBehind + + + + ASPXCodeBehind + + + ASPXCodeBehind + + + + + + + + + + + + + + + + + + + + + cd $(ProjectDir) +Install.bat + + + \ No newline at end of file Index: LamsSharePointIntegration/LamsSharePointIntegration/LamsSharePointIntegration.sln =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/LamsSharePointIntegration.sln (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/LamsSharePointIntegration.sln (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LamsSharePointIntegration", "LamsSharePointIntegration.csproj", "{AC4E1080-43F1-43A8-B2DC-C81D86803EBB}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AC4E1080-43F1-43A8-B2DC-C81D86803EBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AC4E1080-43F1-43A8-B2DC-C81D86803EBB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AC4E1080-43F1-43A8-B2DC-C81D86803EBB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AC4E1080-43F1-43A8-B2DC-C81D86803EBB}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Index: LamsSharePointIntegration/LamsSharePointIntegration/LamsSharePointIntegration.snk =================================================================== diff -u Binary files differ Index: LamsSharePointIntegration/LamsSharePointIntegration/LamsSharePointIntegration.suo =================================================================== diff -u Binary files differ Index: LamsSharePointIntegration/LamsSharePointIntegration/Package/CreateSolutionPackage.cmd =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/Package/CreateSolutionPackage.cmd (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/Package/CreateSolutionPackage.cmd (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,12 @@ +@echo off +if EXIST LamsSharePointIntegration.wsp del LamsSharePointIntegration.wsp +cd .. +Echo Creating solution package for LamsSharePointIntegration +makecab /f Solution\cab.ddf + +Echo Package created. +cd package + +copy LamsSharePointIntegration.wsp Z:\Package + + Index: LamsSharePointIntegration/LamsSharePointIntegration/Package/DeleteSolutionPackage.cmd =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/Package/DeleteSolutionPackage.cmd (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/Package/DeleteSolutionPackage.cmd (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,6 @@ +@SET STSADM="c:\program files\common files\microsoft shared\web server extensions\12\bin\stsadm.exe" + +%STSADM% -o retractsolution -name CustomApplicationPages.wsp -immediate +%STSADM% -o execadmsvcjobs +%STSADM% -o deletesolution -name CustomApplicationPages.wsp + Index: LamsSharePointIntegration/LamsSharePointIntegration/Package/DeploySolutionPackage.cmd =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/Package/DeploySolutionPackage.cmd (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/Package/DeploySolutionPackage.cmd (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,29 @@ +REM DevInstall.cmd +REM @GOTO end + +@SET STSADM="c:\program files\common files\microsoft shared\web server extensions\12\bin\stsadm.exe" + +Echo Retracting Solution Package LamsSharePointIntegration.wsp +%STSADM% -o retractsolution -name LamsSharePointIntegration.wsp -immediate +%STSADM% -o execadmsvcjobs + +Echo Deleting Solution Package LamsSharePointIntegration.wsp +%STSADM% -o deletesolution -name LamsSharePointIntegration.wsp -override +%STSADM% -o execadmsvcjobs + +Echo Generating Solution Package LamsSharePointIntegration.wsp +if EXIST LamsSharePointIntegration.wsp del LamsSharePointIntegration.wsp +cd .. +makecab /f Solution\cab.ddf +cd package + +Echo Installing LamsSharePointIntegration.wsp in WSS Solution Package Store +%STSADM% -o addsolution -filename LamsSharePointIntegration.wsp +%STSADM% -o execadmsvcjobs + +Echo Deploying Solution Package LamsSharePointIntegration.wsp +%STSADM% -o deploysolution -name LamsSharePointIntegration.wsp -immediate -allowGacDeployment -force +%STSADM% -o execadmsvcjobs + +IISRESET +:end \ No newline at end of file Index: LamsSharePointIntegration/LamsSharePointIntegration/Package/DevInstall.cmd =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/Package/DevInstall.cmd (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/Package/DevInstall.cmd (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,19 @@ +cd .. + +@SET TEMPLATEDIR="c:\program files\common files\microsoft shared\web server extensions\12\Template" +@SET STSADM="c:\program files\common files\microsoft shared\web server extensions\12\bin\stsadm" +@SET GACUTIL="c:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" + +Echo Installing CustomApplicationPages.dll in GAC +%GACUTIL% -if bin\debug\CustomApplicationPages.dll + +Echo Copying files to TEMPLATE directory +xcopy /e /y TEMPLATE\* %TEMPLATEDIR% + +Echo Installing feature +%STSADM% -o installfeature -filename CustomApplicationPages\feature.xml -force + +IISRESET +REM cscript c:\windows\system32\iisapp.vbs /a "SharePointDefaultAppPool" /r + +cd Package \ No newline at end of file Index: LamsSharePointIntegration/LamsSharePointIntegration/Package/InstallSolutionPackage.cmd =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/Package/InstallSolutionPackage.cmd (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/Package/InstallSolutionPackage.cmd (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,15 @@ +REM @SET SPDIR="c:\program files\common files\microsoft shared\web server extensions\12" +REM %SPDIR%\bin\stsadm -o addsolution -filename CustomApplicationPages.wsp + +@SET STSADM="c:\program files\common files\microsoft shared\web server extensions\12\bin\stsadm.exe" + +Echo Installing LamsSharePointIntegration.wsp in WSS Solution Package Store +%STSADM% -o addsolution -filename LamsSharePointIntegration.wsp +%STSADM% -o execadmsvcjobs + +Echo Deploying Solution Package LamsSharePointIntegration.wsp +%STSADM% -o deploysolution -name LamsSharePointIntegration.wsp -immediate -allowGacDeployment -force +%STSADM% -o execadmsvcjobs + +IISRESET +:end \ No newline at end of file Index: LamsSharePointIntegration/LamsSharePointIntegration/Package/LamsSharePointIntegration.wsp =================================================================== diff -u Binary files differ Index: LamsSharePointIntegration/LamsSharePointIntegration/Properties/AssemblyInfo.cs =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/Properties/AssemblyInfo.cs (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/Properties/AssemblyInfo.cs (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Lams-SharePoint-Integration")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Lams-SharePoint-Integration")] +[assembly: AssemblyCopyright("Copyright © 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("16db6860-6c39-475f-8bed-dbd908821b72")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] Index: LamsSharePointIntegration/LamsSharePointIntegration/Solution/Cab.ddf =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/Solution/Cab.ddf (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/Solution/Cab.ddf (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,48 @@ +; +.OPTION EXPLICIT ; Generate errors +.Set CabinetNameTemplate=LamsSharePointIntegration.wsp +.set DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory +.Set CompressionType=MSZIP;** All files are compressed in cabinet files +.Set UniqueFiles="ON" +.Set Cabinet=on +.Set DiskDirectory1=Package + +Solution\manifest.xml manifest.xml +TEMPLATE\FEATURES\LamsSharePointIntegration\feature.xml LamsSharePointIntegration\feature.xml +TEMPLATE\FEATURES\LamsSharePointIntegration\elements.xml LamsSharePointIntegration\elements.xml +TEMPLATE\FEATURES\LamsSharePointIntegration\ListTemplates\LessonsList.xml LamsSharePointIntegration\ListTemplates\LessonsList.xml + +TEMPLATE\FEATURES\LamsSharePointIntegration\LessonsList\schema.xml FEATURES\LamsSharePointIntegration\LessonsList\schema.xml +TEMPLATE\FEATURES\LamsSharePointIntegration\LessonsList\AllItems.aspx FEATURES\LamsSharePointIntegration\LessonsList\AllItems.aspx +TEMPLATE\FEATURES\LamsSharePointIntegration\LessonsList\DispForm.aspx FEATURES\LamsSharePointIntegration\LessonsList\DispForm.aspx +TEMPLATE\FEATURES\LamsSharePointIntegration\LessonsList\EditForm.aspx FEATURES\LamsSharePointIntegration\LessonsList\EditForm.aspx +TEMPLATE\FEATURES\LamsSharePointIntegration\LessonsList\NewForm.aspx FEATURES\LamsSharePointIntegration\LessonsList\NewForm.aspx + +TEMPLATE\LAYOUTS\LamsSharePointIntegration\jquery\jquery-1.2.3.pack.js LAYOUTS\LamsSharePointIntegration\jquery\jquery-1.2.3.pack.js +TEMPLATE\LAYOUTS\LamsSharePointIntegration\tigra\tree.js LAYOUTS\LamsSharePointIntegration\tigra\tree.js +TEMPLATE\LAYOUTS\LamsSharePointIntegration\tigra\tree_tpl.js LAYOUTS\LamsSharePointIntegration\tigra\tree_tpl.js + +TEMPLATE\LAYOUTS\LamsSharePointIntegration\LAMSIntegrationSettings.aspx LAYOUTS\LamsSharePointIntegration\LAMSIntegrationSettings.aspx +TEMPLATE\LAYOUTS\LamsSharePointIntegration\LAMSSchedule.aspx LAYOUTS\LamsSharePointIntegration\LAMSSchedule.aspx +TEMPLATE\LAYOUTS\LamsSharePointIntegration\LAMSOpenPopup.aspx LAYOUTS\LamsSharePointIntegration\LAMSOpenPopup.aspx +TEMPLATE\LAYOUTS\LamsSharePointIntegration\LAMSAjaxServletRequester.ashx LAYOUTS\LamsSharePointIntegration\LAMSAjaxServletRequester.ashx + +TEMPLATE\IMAGES\LamsSharePointIntegration\favicon.ico IMAGES\LamsSharePointIntegration\favicon.ico +TEMPLATE\IMAGES\LamsSharePointIntegration\lams_logo.gif IMAGES\LamsSharePointIntegration\lams_logo.gif +TEMPLATE\IMAGES\LamsSharePointIntegration\treeicons\base.gif IMAGES\LamsSharePointIntegration\treeicons\base.gif +TEMPLATE\IMAGES\LamsSharePointIntegration\treeicons\empty.gif IMAGES\LamsSharePointIntegration\treeicons\empty.gif +TEMPLATE\IMAGES\LamsSharePointIntegration\treeicons\folder.gif IMAGES\LamsSharePointIntegration\treeicons\folder.gif +TEMPLATE\IMAGES\LamsSharePointIntegration\treeicons\folderopen.gif IMAGES\LamsSharePointIntegration\treeicons\folderopen.gif +TEMPLATE\IMAGES\LamsSharePointIntegration\treeicons\join.gif IMAGES\LamsSharePointIntegration\treeicons\join.gif +TEMPLATE\IMAGES\LamsSharePointIntegration\treeicons\joinbottom.gif IMAGES\LamsSharePointIntegration\treeicons\joinbottom.gif +TEMPLATE\IMAGES\LamsSharePointIntegration\treeicons\line.gif IMAGES\LamsSharePointIntegration\treeicons\line.gif +TEMPLATE\IMAGES\LamsSharePointIntegration\treeicons\minus.gif IMAGES\LamsSharePointIntegration\treeicons\minus.gif +TEMPLATE\IMAGES\LamsSharePointIntegration\treeicons\minusbottom.gif IMAGES\LamsSharePointIntegration\treeicons\minusbottom.gif +TEMPLATE\IMAGES\LamsSharePointIntegration\treeicons\page.gif IMAGES\LamsSharePointIntegration\treeicons\page.gif +TEMPLATE\IMAGES\LamsSharePointIntegration\treeicons\plus.gif IMAGES\LamsSharePointIntegration\treeicons\plus.gif +TEMPLATE\IMAGES\LamsSharePointIntegration\treeicons\plusbottom.gif IMAGES\LamsSharePointIntegration\treeicons\plusbottom.gif + + + +bin\Debug\LamsSharePointIntegration.dll LamsSharePointIntegration.dll +;*** Index: LamsSharePointIntegration/LamsSharePointIntegration/Solution/manifest.xml =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/Solution/manifest.xml (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/Solution/manifest.xml (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: LamsSharePointIntegration/LamsSharePointIntegration/Src/LAMSAjaxServletRequester.cs =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/Src/LAMSAjaxServletRequester.cs (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/Src/LAMSAjaxServletRequester.cs (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,82 @@ +/**************************************************************** + * Copyright (C) 2008 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + +using System; +using System.Web; +using System.Collections.Generic; +using System.Text; +using Microsoft.SharePoint; + +namespace LamsSharePointIntegration +{ + /// + /// This class handles ajax requests for author, preview and learningDesigneRepository + /// Requests are made from NewForm.aspx + /// Author: Luke Foxton + /// + class LAMSAjaxServletRequester : IHttpHandler + { + public bool IsReusable + { + get { return false; } + } + + public void ProcessRequest(HttpContext context) + { + context.Response.ContentType = "text/plain"; + + // Get the site context info + SPWeb site = new SPSite(context.Request.Params["siteUrl"]).OpenWeb(); + SPWeb root = SPContext.Current.Site.RootWeb; + SPUser user = site.CurrentUser; + + string responseStr = ""; // will return the result of ajax request + + string requestMethod = context.Request.QueryString["method"]; // the method of the request author/preview/learningDesignRepository + + if (requestMethod == "learningDesignRepository") + { + responseStr = LAMSSecurityUtil.getLearningDesigns(user, site); + } + else if (requestMethod == "preview") + { + responseStr = root.Url + "/_layouts/LamsSharePointIntegration/LAMSOpenPopup.aspx?method=preview&siteUrl=" + context.Request.Params["siteUrl"]; + } + else if (requestMethod == "author") + { + responseStr = LAMSSecurityUtil.generateLoginRequestUrl(user, site, requestMethod); + } + else + { + // invalid response + context.Response.StatusCode = 400; + context.Response.Write("Bad request, no parameter for method found."); + return; + } + + context.Response.Write(responseStr); + + } + } +} Index: LamsSharePointIntegration/LamsSharePointIntegration/Src/LAMSConstants.cs =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/Src/LAMSConstants.cs (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/Src/LAMSConstants.cs (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,61 @@ +/**************************************************************** + * Copyright (C) 2008 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +using System; +using System.Collections.Generic; +using System.Text; + +namespace LamsSharePointIntegration.Src +{ + /// + /// Constants to be used in the LamsSharePointIntegration Project + /// Author: Luke Foxton + /// + class LAMSConstants + { + public static string COLUMN_TITLE = "Title"; + public static string COLUMN_DESCRIPTION = "Description"; + public static string COLUMN_AVAILABLE = "LessonAvailable"; + public static string COLUMN_SCHEDULE = "ScheduleLesson"; + public static string COLUMN_START_DATE = "StartDate"; + public static string COLUMN_END_DATE = "EndDate"; + public static string COLUMN_SEQUENCE_ID= "SequenceID"; + public static string COLUMN_LESSON_ID = "LessonID"; + + public static string COLUMN_TITLE_DISPLAY = "Title"; + public static string COLUMN_DESCRIPTION_DISPLAY = "Description"; + public static string COLUMN_AVAILABLE_DISPLAY = "Hide Lesson"; + public static string COLUMN_SCHEDULE_DISPLAY = "Schedule Lesson"; + public static string COLUMN_START_DATE_DISPLAY = "Start Date"; + public static string COLUMN_END_DATE_DISPLAY = "End Date"; + public static string COLUMN_SEQUENCE_ID_DISPLAY = "Sequence ID"; + public static string COLUMN_LESSON_ID_DISPLAY = "Lesson ID"; + + + + + + + + } +} Index: LamsSharePointIntegration/LamsSharePointIntegration/Src/LAMSLanguageMap.cs =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/Src/LAMSLanguageMap.cs (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/Src/LAMSLanguageMap.cs (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,184 @@ +/**************************************************************** + * Copyright (C) 2008 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +using System; +using System.Collections.Generic; +using System.Text; + +namespace LamsSharePointIntegration +{ + /// + /// This class map the Microsoft LCIDs to the ISO standard language strings used by LAMS + /// Author: Luke Foxton + /// + class LAMSLanguageMap + { + //1025 Arabic + //2052 Chinese - Simplified + //1028 Chinese - Traditional + //1029 Czech + //1030 Danish + //1043 Dutch + //1033 English + //1035 Finnish + //1036 French + //1031 German + //1032 Greek + //1037 Hebrew + //1038 Hungarian + //1040 Italian + //1041 Japanese + //1042 Korean + //1044 Norwegian + //1045 Polish + //2070 Portuguese + //1046 Portuguese - Brazilian + //1049 Russian + //1034 Spanish + //1053 Swedish + //1054 Thai + //1055 Turkish + + public const uint ARABIC = 1025; + public const uint CHINESE_SIMPLIFIED = 2052; + public const uint DANISH = 1030; + public const uint DUTCH = 1043; + public const uint ENGLISH = 1033; + public const uint FINNISH = 1035; + public const uint FRENCH = 1036; + public const uint GERMAN = 1031; + public const uint GREEK = 1032; + public const uint ITALIAN = 1040; + public const uint JAPANESE = 1041; + public const uint KOREAN = 1042; + public const uint NORWEGAN = 1044; + public const uint POLISH = 1045; + public const uint PORTUGUESE_BRAZIL = 1046; + public const uint RUSSIAN = 1049; + public const uint SPANISH = 1034; + public const uint SWEDISH = 1053; + public const uint THAI = 1054; + + public static string[] getLanguageMap(uint lcid) + { + string[] ret = new string[2]; + switch (lcid) + { + case ARABIC: + ret[0] = "ar"; + ret[1] = "JO"; + return ret; + + case CHINESE_SIMPLIFIED: + ret[0] = "zh"; + ret[1] = "CN"; + return ret; + + case DANISH: + ret[0] = "da"; + ret[1] = "DK"; + return ret; + + case DUTCH: + ret[0] = "nl"; + ret[1] = "BE"; + return ret; + + case ENGLISH: + ret[0] = "en"; + ret[1] = "AU"; + return ret; + + case FRENCH: + ret[0] = "fr"; + ret[1] = "FR"; + return ret; + + case GERMAN: + ret[0] = "de"; + ret[1] = "DE"; + return ret; + + case GREEK: + ret[0] = "el"; + ret[1] = "GR"; + return ret; + + case ITALIAN: + ret[0] = "ar"; + ret[1] = "JO"; + return ret; + + case JAPANESE: + ret[0] = "it"; + ret[1] = "IT"; + return ret; + + case KOREAN: + ret[0] = "ko"; + ret[1] = "KR"; + return ret; + + case NORWEGAN: + ret[0] = "no"; + ret[1] = "NO"; + return ret; + + case PORTUGUESE_BRAZIL: + ret[0] = "pt"; + ret[1] = "BR"; + return ret; + + case POLISH: + ret[0] = "pl"; + ret[1] = "PL"; + return ret; + break; + case RUSSIAN: + ret[0] = "ru"; + ret[1] = "RU"; + return ret; + + case SPANISH: + ret[0] = "es"; + ret[1] = "ES"; + return ret; + break; + case SWEDISH: + ret[0] = "sv"; + ret[1] = "SE"; + return ret; + + case THAI: + ret[0] = "th"; + ret[1] = "TH"; + return ret; + + default: + ret[0] = "en"; + ret[1] = "AU"; + return ret; + } + } + } +} Index: LamsSharePointIntegration/LamsSharePointIntegration/Src/LAMSLessonListEventHandler.cs =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/Src/LAMSLessonListEventHandler.cs (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/Src/LAMSLessonListEventHandler.cs (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,96 @@ +/**************************************************************** + * Copyright (C) 2008 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.SharePoint; + +namespace LamsSharePointIntegration +{ + /// + /// This class handles events to do with the site's LAMS lesson table + /// + class LAMSLessonListEventHandler : SPItemEventReceiver + { + private string FormatCompanyName(string value) + { + return value.ToUpper(); + } + + public override void ItemAdding(SPItemEventProperties properties) + { + // Validation handled by SharePoint + } + + /// + /// Handles the event when a new lesson is added to the LAMS lesson table for the site + /// + /// Properties of the item to be added + public override void ItemAdded(SPItemEventProperties properties) + { + // Get the site context information + SPEventContext context = properties.Context; + SPSite site = new SPSite(properties.SiteId); + SPWeb siteWeb = site.OpenWeb(properties.RelativeWebUrl); + SPUser user = siteWeb.CurrentUser; + DisableEventFiring(); + + // Get the title for the lesson, not null + string title = properties.ListItem["Title"].ToString(); + + // Get the description for the leson + string description = ""; + if (properties.ListItem["Description"] != null) + { + description = properties.ListItem["Description"].ToString(); + } + + // Get the sequence id for the lesson, not null + string sequenceId = properties.ListItem["SequenceID"].ToString(); + + // The lesson id of the started lesson, if successful + string lessonId; + try + { + lessonId = LAMSSecurityUtil.startLesson(user, siteWeb, sequenceId, title, description, "start"); + } + catch (System.Net.WebException e) + { + properties.ErrorMessage = "Request to LAMS server to start lesson failed. Please Contact System Administrator"; + properties.Cancel = true; + properties.Status = SPEventReceiverStatus.CancelWithError; + properties.ListItem.Delete(); + return; + } + + // Set the LessonID param for the item and the start and end date to null + properties.ListItem["LessonID"] = lessonId; + properties.ListItem["Start Date"] = null; + properties.ListItem["End Date"] = null; + + properties.ListItem.Update(); + EnableEventFiring(); + } + } +} Index: LamsSharePointIntegration/LamsSharePointIntegration/Src/LAMSSecurityUtil.cs =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/Src/LAMSSecurityUtil.cs (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/Src/LAMSSecurityUtil.cs (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,428 @@ +/**************************************************************** + * Copyright (C) 2008 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +using System; +using System.Web.UI.WebControls.WebParts; +using System.Web; +using System.Net; +using System.IO; +using System.Xml; +using System.Text; +using System.Security.Cryptography; +using Microsoft.SharePoint; +using Microsoft.SharePoint.WebControls; +using Microsoft.SharePoint.WebPartPages; +using Microsoft.SharePoint.Navigation; +using System.Diagnostics; +using System.Collections.Generic; +using Microsoft.SharePoint.Administration; +using System.Web.Security; +using System.Text.RegularExpressions; +//using Microsoft.Office.Server; +//using Microsoft.Office.Server.UserProfiles; + +using System.Threading; + + +namespace LamsSharePointIntegration +{ + /// + /// This class handles all requests to the LAMS server + /// There are three types of requests + /// 1) Login requests for learner/monitor/preview + /// 2) Starting lessons through the lesson manager + /// 3) Getting the learning design repository + /// + /// Author: Luke Foxton + /// + public class LAMSSecurityUtil + { + // Request paths for the three different types of requests to the LAMS server + public static string LOGIN_REQUEST = "/LoginRequest?"; + public static string LEARNING_DESIGN_REPOSITORY = "/services/xml/LearningDesignRepository?"; + public static string LESSON_MANAGER = "/services/xml/LessonManager?"; + + + /// + /// Generates the base requests with parameters for all three request types + /// + /// The type of request LOGIN_REQUEST/LEARNING_DESIGN_REPOSITORY/LESSON_MANAGER + /// The user who is making the request to LAMS + /// The site teh request is made from + /// The method (Only used for LOGIN_REQUEST) author/monitor/learner + /// The base url for a request to the LAMS server + public static string generateBaseRequestURL(string requestType, SPUser user, SPWeb site, string method) + { + // getting config settings + SPFarm myFarm = SPFarm.Local; + + // Generating the timestamp (must be the same as a java timestamp, ie milliseconds since 1/1/1970 + DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0); + DateTime now = DateTime.UtcNow; + TimeSpan diff = now - origin; + long millis = System.Convert.ToInt64(diff.TotalMilliseconds); + string timestamp = millis.ToString(); + + // Getting rid of the SERVERNAME//USERNAME format + string username = splitUsername(user.LoginName); + + // Getting the language and locale strings + string[] langLocale = LAMSLanguageMap.getLanguageMap(site.Language); + + // Creating a meaninful and unique courseName from the site name + string courseId = site.Name != null && site.Name != "" ? site.Name + "_" + site.ID.ToString() : site.ID.ToString(); + + // fixing up the parameter name mappings and setting up the hash + string hash; + string userParamName; + string timestampParamName; + string serverIdParamName; + string courseIdParamName; + string hashParamName; + if (requestType == (string)LAMSSecurityUtil.LOGIN_REQUEST) + { + userParamName = "&uid="; + timestampParamName = "&ts="; + serverIdParamName = "&sid="; + courseIdParamName = "&courseid="; + hashParamName = "&hash="; + + // sha1 hash of timestamp, login, method, serverid, secret key + hash = hashForLoginRequest(timestamp, username, method, (string)myFarm.Properties["LAMSServerId"], (string)myFarm.Properties["LAMSServerKey"]); + } + else + { + userParamName = "&username="; + timestampParamName = "&datetime="; + serverIdParamName = "&serverId="; + courseIdParamName = "&courseId="; + hashParamName = "&hashValue="; + + // sha1 hash of timestamp, login, serverid, secret key + hash = hashLearningDesingsAndLessons(timestamp, username, (string)myFarm.Properties["LAMSServerId"], (string)myFarm.Properties["LAMSServerKey"]); + } + + // This is the base url for the LAMS server request + string url = (string)myFarm.Properties["LAMSUrl"] + requestType + + serverIdParamName + (string)myFarm.Properties["LAMSServerId"] + + courseIdParamName + HttpUtility.UrlEncode(courseId, System.Text.Encoding.UTF8) + + userParamName + HttpUtility.UrlEncode(username, System.Text.Encoding.UTF8) + + timestampParamName + HttpUtility.UrlEncode(timestamp, System.Text.Encoding.UTF8) + + hashParamName + HttpUtility.UrlEncode(hash, System.Text.Encoding.UTF8) + + "&lang=" + langLocale[0] + + "&country=" + langLocale[1]; + + + // Check what sort of user information the server is using + if ((string)myFarm.Properties["LAMSUseProfiles"] == "False" && requestType != LAMSSecurityUtil.LESSON_MANAGER) + { + string firstname = ""; + string lastname = ""; + string email = ""; + + // if this was unselected in the settings, get the user information implicitly + if (user.Name == null || user.Name == "") + { + // No records found for the user at all on sharepoint, use login name as default + firstname = username; + lastname = " "; + } + else + { + char[] splitter = { ' ' }; + string[] fullname = splitUsername(user.Name).Split(splitter); + if (fullname.Length < 2) + { + firstname = fullname[0]; + lastname = " "; + } + else + { + firstname = fullname[0]; + lastname = splitUsername(fullname[fullname.Length - 1]); + } + } + + if (user.Email == null || user.Email == "") + { + email = username + "@" + username + ".com"; + email = email.Replace(" ", ""); + } + else + { + email = user.Email; + + } + + url += "&firstName=" + HttpUtility.UrlEncode(firstname, System.Text.Encoding.UTF8) + + "&lastName=" + HttpUtility.UrlEncode(lastname, System.Text.Encoding.UTF8) + + "&email=" + HttpUtility.UrlEncode(email, System.Text.Encoding.UTF8); + + } + else if (requestType != LAMSSecurityUtil.LESSON_MANAGER) + { + + + + //SPSecurity.RunWithElevatedPrivileges(delegate() + //{ + // ServerContext sContext = ServerContext.GetContext(SPContext.Current.Site); + // UserProfileManager profileMgr = new UserProfileManager(sContext, false); + + // if (profileMgr.UserExists(user.LoginName)) + // { + // UserProfile prof = profileMgr.GetUserProfile(user.LoginName); + + // string firstNameProf = prof["FirstName"] != null ? (string)prof["FirstName"].Value : ""; + // string lastNameProf = prof["LastName"] != null ? (string)prof["LastName"].Value : " "; + // string emailProf = prof["WorkEmail"] != null ? (string)prof["WorkEmail"].Value : ""; + + // if (firstNameProf == null || firstNameProf == "") + // { + // url = ""; + // } + // else + // { + // url += "&firstName=" + HttpUtility.UrlEncode(firstNameProf, System.Text.Encoding.UTF8) + // + "&lastName=" + HttpUtility.UrlEncode(lastNameProf, System.Text.Encoding.UTF8) + // + "&email=" + HttpUtility.UrlEncode(emailProf, System.Text.Encoding.UTF8); + // } + // } + // else + // { + // url = ""; + // } + //}); + + + } + + return url; + } + + /// + /// Creates the url for the login request monitor/learner/author + /// + /// The user making the request + /// The site the request is made from + /// The method of the request monitor/learner/author + /// A url that requests teh loginRequestServlet on the LAMS server + public static string generateLoginRequestUrl(SPUser user, SPWeb site, string method) + { + // Getting config settings + SPFarm myFarm = SPFarm.Local; + + // Get the base url + string url = generateBaseRequestURL(LOGIN_REQUEST, user, site, method); + + if (url == null || url == "") { return ""; } + + return url + "&requestSrc=" + HttpUtility.UrlEncode((string)myFarm.Properties["LAMSRequestSource"], System.Text.Encoding.UTF8) + + "&method=" + HttpUtility.UrlEncode(method, System.Text.Encoding.UTF8) + "&siteLang=" + site.Language; + } + + /// + /// Gets the LAMS learning design repository for the user and prints it in tigra format + /// + /// The user makingthe request + /// The site the request is made from + /// A string in tigra format that represents the user's workspace of learning designs + public static string getLearningDesigns(SPUser user, SPWeb site) + { + + // Get the base url + string url = generateBaseRequestURL(LEARNING_DESIGN_REPOSITORY, user, site, "") + "&mode=2"; + + // If there was an error, return an empty string + if (url == null || url == "") { return ""; } + + // Requesting the LAMS server for the learning design repository and getting the response + HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); + WebResponse resp = req.GetResponse(); + System.IO.Stream inStream = resp.GetResponseStream(); + System.IO.StreamReader respStream = new System.IO.StreamReader(resp.GetResponseStream()); + string response = respStream.ReadToEnd(); + + // Create a DOM parser from the response from the LAMS server (the learning design repository) + XmlDocument document = new XmlDocument(); + document.Load(new StringReader(response)); + + // Convert the string to tigra format + string learningDesignsTigraFormat = "[" + convertToTigraFormat(document.DocumentElement) + "]"; + + // Place the javascript methods in the tigra-formatted string + learningDesignsTigraFormat = Regex.Replace(learningDesignsTigraFormat, @"'(\d+)'", "'javascript:selectSequence($1)'"); + + return learningDesignsTigraFormat; + + } + + /// + /// Starts lessons on the LAMS server and returns the lesson ID + /// + /// The user who is making the request + /// This site the request was made from + /// The ID of the learning design that will be used to start the lesson + /// The title of the lesson + /// The description of the lesson + /// The method to start the lesson preview/start + /// The lesson ID if the lesson started successfully + public static string startLesson(SPUser user, SPWeb site, string learningDesignId, string title, string description, string method) + { + // Create the base url + string url = generateBaseRequestURL(LESSON_MANAGER, user, site, ""); + + if (url == null || url == "") { return ""; } + + // Add more parameters to the url + url += "&method=" + method + "&title=" + + HttpUtility.UrlEncode(title, System.Text.Encoding.UTF8) + + "&desc=" + HttpUtility.UrlEncode(description, System.Text.Encoding.UTF8) + + "&ldId=" + learningDesignId; + + // Request the LAMS server to start the lesson and get the response + HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); + WebResponse resp = req.GetResponse(); + System.IO.Stream inStream = resp.GetResponseStream(); + System.IO.StreamReader respStream = new System.IO.StreamReader(resp.GetResponseStream()); + string response = respStream.ReadToEnd(); + + // Create and xml DOM parser to get the reponse data + XmlDocument document = new XmlDocument(); + document.Load(new StringReader(response)); + + // return the lesson id if the lesson started correctly + return document.GetElementsByTagName("Lesson")[0].Attributes["lessonId"].Value; ; + } + + /// + /// Generates the hash used for talking between the servers for learning designs and lessons + /// + /// The currnent time + /// The user's login + /// Server ID from the server settings + /// Server Key from the server settings + /// A sha1 hash of the strings + public static string hashLearningDesingsAndLessons(string timestamp, string login, string serverId, string serverKey) + { + string plaintext = timestamp.ToLower().Trim() + login.ToLower().Trim() + serverId.ToLower().Trim() + serverKey.ToLower().Trim(); + return sha1(plaintext); + } + + /// + /// Generates the hash used for talking between the servers for login requests + /// + /// The currnent time + /// The user's login + /// Server ID from the server settings + /// Server Key from the server settings + /// The method of the login request + /// A sha1 hash of the strings + public static string hashForLoginRequest(string timestamp, string login, string method, string serverId, string serverKey) + { + string plaintext = timestamp.ToLower().Trim() + login.ToLower().Trim() + method.ToLower().Trim() + serverId.ToLower().Trim() + serverKey.ToLower().Trim(); + return sha1(plaintext); + } + + + /// + /// Splits the username so it is not in the form SERVERNAME\\USERNAME + /// + /// The username to be prettied up + /// A prettied up user name + public static string splitUsername(String username) + { + char[] split = { '/', '\\' }; + string[] splitUsername = username.Split(split); + return splitUsername[splitUsername.Length - 1]; + } + + /// + /// Hashes the given string in sha1 + /// + /// The string to be hashed + /// A sha1 hash of the string + public static string sha1(string text) + { + Byte[] clearBytes; + Byte[] hashedBytes; + + clearBytes = Encoding.UTF8.GetBytes(text); + SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider(); + sha1.ComputeHash(clearBytes); + hashedBytes = sha1.Hash; + sha1.Clear(); + return BitConverter.ToString(hashedBytes).Replace("-", "").ToLower(); + + } + + + /// + /// Convets a DOM node into a tigra formatted string + /// + /// A DOM node + /// A tigra formatted representaion of the DOM + public static string convertToTigraFormat(XmlNode node) + { + StringBuilder sb = new StringBuilder(); + + if (node.Name == "Folder") + { + sb.Append("['"); + StringBuilder attribute = new StringBuilder(node.Attributes["name"].Value.Replace("'", "\\'")); + sb.Append(attribute.Append("',").Append("null").Append(',')); + XmlNodeList children = node.ChildNodes; + if (children.Count == 0) + { + sb.Append("['',null]"); + } + else + { + sb.Append(convertToTigraFormat(children[0])); + for (int i = 1; i < children.Count; i++) + { + sb.Append(',').Append(convertToTigraFormat(children[i])); + } + } + sb.Append(']'); + } + else if (node.Name=="LearningDesign") + { + sb.Append('['); + StringBuilder attrName = new StringBuilder(node.Attributes["name"].Value.Replace("'", "\\'")); + StringBuilder attrResId = new StringBuilder(node.Attributes["resourceId"].Value.Replace("'", "\\'")); + sb.Append('\'') + .Append(attrName + .Append('\'') + .Append(',') + .Append('\'') + .Append(attrResId.Append('\''))); + + sb.Append(']'); + } + return sb.ToString(); + } + + + } +} Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/LessonsList/AllItems.aspx =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/LessonsList/AllItems.aspx (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/LessonsList/AllItems.aspx (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,35 @@ +<%@ Page language="C#" MasterPageFile="~masterurl/default.master" Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,Microsoft.SharePoint,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Import Namespace="Microsoft.SharePoint" %> <%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/LessonsList/DispForm.aspx =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/LessonsList/DispForm.aspx (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/LessonsList/DispForm.aspx (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,53 @@ +<%@ Page language="C#" MasterPageFile="~masterurl/default.master" Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,Microsoft.SharePoint,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" %> +<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> +<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> +<%@ Import Namespace="Microsoft.SharePoint" %> +<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> + + + + + : + + + + + + + + + + +
+ + +
+
+ + + +
+
+ + + + + + + +
+
+ +
+
+ +
+
+ Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/LessonsList/EditForm.aspx =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/LessonsList/EditForm.aspx (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/LessonsList/EditForm.aspx (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,49 @@ +<%@ Page language="C#" MasterPageFile="~masterurl/default.master" Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,Microsoft.SharePoint,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Import Namespace="Microsoft.SharePoint" %> <%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> + + + + + : + + + + + + + + + + +
+ + +
+
+ + + +
+
+ + + + + + + +
+
+ +
+
+ +
+
+ Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/LessonsList/NewForm.aspx =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/LessonsList/NewForm.aspx (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/LessonsList/NewForm.aspx (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,326 @@ +<%@ Page language="C#" Debug="true" MasterPageFile="~masterurl/default.master" Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,Microsoft.SharePoint,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" %> +<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%> +<%@ Assembly Name="LamsSharePointIntegration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2c5da6fd93fafb88" %> +<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> +<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> +<%@ Import Namespace="Microsoft.SharePoint" %> +<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> +<%@ Import Namespace="LamsSharePointIntegration" %> + + + + + + : + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + + +

Select Sequence

+ + + +
+

+ + + + + + + + + + +
+ + +
+ + + + +
+ + + + +
+ + + + +
+
+ + + + + + + + + + +
+
+ + +
+
+ + +
+
+ + Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/LessonsList/schema.xml =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/LessonsList/schema.xml (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/LessonsList/schema.xml (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,2139 @@ + + + + + + + + + + + + + + + + + + + + + + + 100 + + + + + + + + + + + + + + + + + + + + + + + + + Expand/Collapse +  ]]> + + + + + ]]> + + : ]]> + + ]]> + + + + + + + + + + ]]> + + + + + + + + + ExpCollGroup(']]> + + + + ]]> + + + + + + ]]> + +ctx = new ContextInfo(); +ctx.listBaseType = ]]> + + + + + + + + + + + + + + + + + + + + + + + + + /_layouts/images/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 0 + + + + + + + + + + + + + + + + + +ctx.isModerated = true; + + + + + + + +ctx.isForceCheckout = true; + + + + + + + +ctx.EnableMinorVersions = true; + + + + + + + +ctx.verEnabled = 1; + + + + + + + +ctx.recursiveView = true; + + + + + + + +ctx.WorkflowsAssociated = true; + + + + + + + +ctx.ContentTypesEnabled = true; + + + + + ]]> + + + + + + FixTextAlignForBidi("left");]]> + + + FixTextAlignForBidi("right");]]> + + + ]]> + + + + + + + + + ]]> + + + + + + Hidden frame to filter list + + + ]]> + + + + + + + ]]> + + + + + TRUE + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + ]]> + + +
]]> + + ]]> + + + + + +
]]> +
+
+ ]]> +
+ + + + + + + ]]> + + ]]> + + + + + + + + + + + + + + + + + + ]]> + + ]]> + + + + + + + + + + ]]> + + ]]> + + + ]]> + + ]]> + + + ]]> + + ]]> + + + + + + + + + + + + ]]> + + ]]> + + + ]]> + + + + + TRUE + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + ]]> + + +
]]> + + ]]> + + + + + +
]]> +
+
+ ]]> +
+
+
+
+
+ + + + + + + + + ]]> + + + + + TRUE + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + ]]> + + +
]]> + + ]]> + + + + + +
]]> +
+
+ ]]> +
+ + ]]> + + + + + TRUE + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + ]]> + + +
]]> + + ]]> + + + + + +
]]> +
+
+ ]]> +
+ + + + + + + ]]> + + + + + TRUE + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + ]]> + + +
]]> + + ]]> + + + + + +
]]> +
+
+ ]]> +
+ + ]]> + + + + + TRUE + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + ]]> + + +
]]> + + ]]> + + + + + +
]]> +
+
+ ]]> +
+
+
+
+
+
+
+
+
+
+
+ ]]> +
+ + + + ]]> + + + + + ms-alternating + + + + + ms-alternating + + + + + + + + + + + + ms-vb-icon + + + + + + + ms-vb-user + ms-vb-user + ms-vb2 + + + + ]]> + + ]]> + + ]]> + + + ]]> + + + + + + + + It may take several minutes for recent items to appear in the search results.]]> + + + ]]> + + + + + + + ]]> + + + + + + + ]]> + ]]> + + + ]]> + + + - + + + ]]> + + + + + + + + ]]> + ]]> + + +
+ +]]> + + var topPagingCell = document.getElementById("topPagingCell]]> + + + + +]]> +
+ + ]]> + + + + + + + + + ? + + + + + ? + + + ]]> + +  ]]> + + + ]]> + + + ]]> + + + + + + + + + + ? + + + Previous + ]]> + Previous + ]]> + + + ]]> + + + + + + + + + + + ? + + + ]]> + Next + + Next ]]> + + + ]]> + + + +ctx = new ContextInfo(); +ctx.listBaseType = ]]> + + + + + + + + + + + + + + + + + + + + + + + + + /_layouts/images/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 0 + + + + + + + + + + + + + + + + + +ctx.isModerated = true; + + + + + + + +ctx.isForceCheckout = true; + + + + + + + +ctx.EnableMinorVersions = true; + + + + + + + +ctx.verEnabled = 1; + + + + + + + +ctx.recursiveView = true; + + + + + + + +ctx.WorkflowsAssociated = true; + + + + + + + +ctx.ContentTypesEnabled = true; + + + + + ]]> + + + + + + FixTextAlignForBidi("left");]]> + + + FixTextAlignForBidi("right");]]> + + + + + ]]> + + + + ]]> + + + + + + Hidden frame to filter list + + + ]]> + + + + + + + ]]> + + + + + TRUE + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + ]]> + + +
]]> + + ]]> + + + + + +
]]> +
+
+ ]]> +
+ + + + + + + ]]> + + ]]> + + + + + + + + + + + + + + + + + + ]]> + + ]]> + + + + + + + + + + ]]> + + ]]> + + + ]]> + + ]]> + + + ]]> + + ]]> + + + + + + + + + + + + ]]> + + ]]> + + + ]]> + + + + + TRUE + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + ]]> + + +
]]> + + ]]> + + + + + +
]]> +
+
+ ]]> +
+
+
+
+
+ + + + + + + + + ]]> + + + + + TRUE + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + ]]> + + +
]]> + + ]]> + + + + + +
]]> +
+
+ ]]> +
+ + ]]> + + + + + TRUE + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + ]]> + + +
]]> + + ]]> + + + + + +
]]> +
+
+ ]]> +
+ + + + + + + ]]> + + + + + TRUE + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + ]]> + + +
]]> + + ]]> + + + + + +
]]> +
+
+ ]]> +
+ + ]]> + + + + + TRUE + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + ]]> + + +
]]> + + ]]> + + + + + +
]]> +
+
+ ]]> +
+
+
+
+
+
+
+
+
+
+
+ ]]> + ]]> + ]]> + ]]> + + + ]]> + + + + + + + ]]> + + There are no items to show in this view of the " + + " list. + + + + + + + To create a new item, click "New" above. + + + ]]> + + + ]]> + No records were found matching your query. + ]]> + + + + + TRUE + + Please see the + Search Tips + page for help creating your query.]]> + + + It may take several minutes for recent items to appear in the search results.]]> + + + + + ]]> + ]]> +
+ +
+ +
+ + + + + 1 + + + 0 + + + [today] + + + + + + + + + + + + + + + + + + + + ListForm + ListForm + ListForm + + + + + + + + + +
+ + + + + 1 + 1 + 0 + + + + \ No newline at end of file Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/ListTemplates/LessonsList.xml =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/ListTemplates/LessonsList.xml (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/ListTemplates/LessonsList.xml (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,17 @@ + + + + Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/elements.xml =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/elements.xml (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/elements.xml (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/feature.xml =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/feature.xml (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/FEATURES/LamsSharePointIntegration/feature.xml (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,17 @@ + Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/IMAGES/LamsSharePointIntegration/favicon.ico =================================================================== diff -u Binary files differ Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/IMAGES/LamsSharePointIntegration/lams_logo.gif =================================================================== diff -u Binary files differ Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/IMAGES/LamsSharePointIntegration/treeicons/base.gif =================================================================== diff -u Binary files differ Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/IMAGES/LamsSharePointIntegration/treeicons/empty.gif =================================================================== diff -u Binary files differ Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/IMAGES/LamsSharePointIntegration/treeicons/folder.gif =================================================================== diff -u Binary files differ Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/IMAGES/LamsSharePointIntegration/treeicons/folderopen.gif =================================================================== diff -u Binary files differ Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/IMAGES/LamsSharePointIntegration/treeicons/join.gif =================================================================== diff -u Binary files differ Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/IMAGES/LamsSharePointIntegration/treeicons/joinbottom.gif =================================================================== diff -u Binary files differ Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/IMAGES/LamsSharePointIntegration/treeicons/line.gif =================================================================== diff -u Binary files differ Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/IMAGES/LamsSharePointIntegration/treeicons/minus.gif =================================================================== diff -u Binary files differ Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/IMAGES/LamsSharePointIntegration/treeicons/minusbottom.gif =================================================================== diff -u Binary files differ Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/IMAGES/LamsSharePointIntegration/treeicons/page.gif =================================================================== diff -u Binary files differ Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/IMAGES/LamsSharePointIntegration/treeicons/plus.gif =================================================================== diff -u Binary files differ Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/IMAGES/LamsSharePointIntegration/treeicons/plusbottom.gif =================================================================== diff -u Binary files differ Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/LAMSAjaxServletRequester.ashx =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/LAMSAjaxServletRequester.ashx (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/LAMSAjaxServletRequester.ashx (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,3 @@ +<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> +<%@ Assembly Name="LamsSharePointIntegration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2c5da6fd93fafb88" %> +<%@ WebHandler Language="C#" Class="LamsSharePointIntegration.LAMSAjaxServletRequester" %> \ No newline at end of file Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/LAMSIntegrationSettings.aspx =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/LAMSIntegrationSettings.aspx (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/LAMSIntegrationSettings.aspx (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,179 @@ +<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%> +<%@ Page Language="C#" MasterPageFile="~/_layouts/application.master" Inherits="Microsoft.SharePoint.WebControls.LayoutsPageBase" %> +<%@ Register TagPrefix="wssuc" TagName="InputFormSection" Src="~/_controltemplates/InputFormSection.ascx" %> +<%@ Register TagPrefix="wssuc" TagName="InputFormControl" Src="~/_controltemplates/InputFormControl.ascx" %> +<%@ Register TagPrefix="wssuc" TagName="ButtonSection" Src="~/_controltemplates/ButtonSection.ascx" %> +<%@ Register TagPrefix="wssawc" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> +<%--<%@ Register TagPrefix="SPSWC" Namespace="Microsoft.SharePoint.Portal.WebControls" Assembly="Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>--%> +<%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> +<%@ Register TagPrefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> + + +<%@ Import Namespace="Microsoft.SharePoint" %> +<%@ Import Namespace="Microsoft.SharePoint.Administration" %> + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + +
+ +

+ +

+
+
+ : + + <% SPHttpUtility.HtmlEncode(Web.Url + "/", Response.Output); %> +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + + + + + + --%> + + + +
+
+ + +
+ + + +
+ + + LAMS Integration Settings + + + + LAMS Integration Settings + \ No newline at end of file Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/LAMSOpenPopup.aspx =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/LAMSOpenPopup.aspx (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/LAMSOpenPopup.aspx (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,237 @@ +<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%> +<%@ Assembly Name="LamsSharePointIntegration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2c5da6fd93fafb88" %> +<%@ Page Language="C#" MasterPageFile="~/_layouts/application.master" + Inherits="Microsoft.SharePoint.WebControls.LayoutsPageBase" %> + +<%@ Import Namespace="Microsoft.SharePoint" %> +<%@ Import Namespace="LamsSharePointIntegration" %> +<%@ Import Namespace="Microsoft.SharePoint.Administration" %> + + + + + + + + + + +

+ +

+ +
+ +
+ + + LAMS Lesson + + + + LAMS Lesson + + + + Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/LAMSSchedule.aspx =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/LAMSSchedule.aspx (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/LAMSSchedule.aspx (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,490 @@ +<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%> +<%@ Page Language="C#" MasterPageFile="~/_layouts/application.master" + Inherits="Microsoft.SharePoint.WebControls.LayoutsPageBase" %> +<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> +<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> +<%@ Register TagPrefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> +<%@ Import Namespace="Microsoft.SharePoint" %> +<%@ Import Namespace="System" %> + + + + + + + + + + + +
+ + + + + + + + + + +
+ +

Start Date:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Start date and time for the lesson (dd/mm/yyyy). +
+ +

End Date:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Optional end date and time for the lessson (dd/mm/yyyy). +
+
+ + + +
+
+ +
+ + + + +
+ + + LAMS Schedule Lesson + + + + LAMS Schedule Lesson + \ No newline at end of file Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/jquery/jquery-1.2.3.pack.js =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/jquery/jquery-1.2.3.pack.js (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/jquery/jquery-1.2.3.pack.js (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,11 @@ +/* + * jQuery 1.2.3 - New Wave Javascript + * + * Copyright (c) 2008 John Resig (jquery.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * $Date$ + * $Rev: 4663 $ + */ +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(J(){7(1e.3N)L w=1e.3N;L E=1e.3N=J(a,b){K 1B E.2l.4T(a,b)};7(1e.$)L D=1e.$;1e.$=E;L u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/;L G=/^.[^:#\\[\\.]*$/;E.1n=E.2l={4T:J(d,b){d=d||T;7(d.15){6[0]=d;6.M=1;K 6}N 7(1o d=="25"){L c=u.2O(d);7(c&&(c[1]||!b)){7(c[1])d=E.4a([c[1]],b);N{L a=T.5J(c[3]);7(a)7(a.2w!=c[3])K E().2s(d);N{6[0]=a;6.M=1;K 6}N d=[]}}N K 1B E(b).2s(d)}N 7(E.1q(d))K 1B E(T)[E.1n.21?"21":"3U"](d);K 6.6E(d.1k==1M&&d||(d.5h||d.M&&d!=1e&&!d.15&&d[0]!=10&&d[0].15)&&E.2I(d)||[d])},5h:"1.2.3",87:J(){K 6.M},M:0,22:J(a){K a==10?E.2I(6):6[a]},2F:J(b){L a=E(b);a.54=6;K a},6E:J(a){6.M=0;1M.2l.1g.1i(6,a);K 6},R:J(a,b){K E.R(6,a,b)},4X:J(b){L a=-1;6.R(J(i){7(6==b)a=i});K a},1J:J(c,a,b){L d=c;7(c.1k==4e)7(a==10)K 6.M&&E[b||"1J"](6[0],c)||10;N{d={};d[c]=a}K 6.R(J(i){Q(c 1p d)E.1J(b?6.W:6,c,E.1l(6,d[c],b,i,c))})},1j:J(b,a){7((b==\'27\'||b==\'1R\')&&2M(a)<0)a=10;K 6.1J(b,a,"2o")},1u:J(b){7(1o b!="3V"&&b!=V)K 6.4x().3t((6[0]&&6[0].2i||T).5r(b));L a="";E.R(b||6,J(){E.R(6.3p,J(){7(6.15!=8)a+=6.15!=1?6.6K:E.1n.1u([6])})});K a},5m:J(b){7(6[0])E(b,6[0].2i).5k().3o(6[0]).2c(J(){L a=6;2b(a.1C)a=a.1C;K a}).3t(6);K 6},8w:J(a){K 6.R(J(){E(6).6z().5m(a)})},8p:J(a){K 6.R(J(){E(6).5m(a)})},3t:J(){K 6.3O(18,P,S,J(a){7(6.15==1)6.38(a)})},6q:J(){K 6.3O(18,P,P,J(a){7(6.15==1)6.3o(a,6.1C)})},6o:J(){K 6.3O(18,S,S,J(a){6.1a.3o(a,6)})},5a:J(){K 6.3O(18,S,P,J(a){6.1a.3o(a,6.2B)})},3h:J(){K 6.54||E([])},2s:J(b){L c=E.2c(6,J(a){K E.2s(b,a)});K 6.2F(/[^+>] [^+>]/.17(b)||b.1f("..")>-1?E.57(c):c)},5k:J(e){L f=6.2c(J(){7(E.14.1d&&!E.3E(6)){L a=6.69(P),4Y=T.3s("1x");4Y.38(a);K E.4a([4Y.3d])[0]}N K 6.69(P)});L d=f.2s("*").4R().R(J(){7(6[F]!=10)6[F]=V});7(e===P)6.2s("*").4R().R(J(i){7(6.15==3)K;L c=E.O(6,"2R");Q(L a 1p c)Q(L b 1p c[a])E.16.1b(d[i],a,c[a][b],c[a][b].O)});K f},1E:J(b){K 6.2F(E.1q(b)&&E.3y(6,J(a,i){K b.1P(a,i)})||E.3e(b,6))},56:J(b){7(b.1k==4e)7(G.17(b))K 6.2F(E.3e(b,6,P));N b=E.3e(b,6);L a=b.M&&b[b.M-1]!==10&&!b.15;K 6.1E(J(){K a?E.33(6,b)<0:6!=b})},1b:J(a){K!a?6:6.2F(E.37(6.22(),a.1k==4e?E(a).22():a.M!=10&&(!a.12||E.12(a,"3u"))?a:[a]))},3H:J(a){K a?E.3e(a,6).M>0:S},7j:J(a){K 6.3H("."+a)},5O:J(b){7(b==10){7(6.M){L c=6[0];7(E.12(c,"2k")){L e=c.3T,5I=[],11=c.11,2X=c.U=="2k-2X";7(e<0)K V;Q(L i=2X?e:0,2f=2X?e+1:11.M;i<2f;i++){L d=11[i];7(d.2p){b=E.14.1d&&!d.9J.1A.9y?d.1u:d.1A;7(2X)K b;5I.1g(b)}}K 5I}N K(6[0].1A||"").1r(/\\r/g,"")}K 10}K 6.R(J(){7(6.15!=1)K;7(b.1k==1M&&/5u|5t/.17(6.U))6.3k=(E.33(6.1A,b)>=0||E.33(6.31,b)>=0);N 7(E.12(6,"2k")){L a=b.1k==1M?b:[b];E("98",6).R(J(){6.2p=(E.33(6.1A,a)>=0||E.33(6.1u,a)>=0)});7(!a.M)6.3T=-1}N 6.1A=b})},3q:J(a){K a==10?(6.M?6[0].3d:V):6.4x().3t(a)},6S:J(a){K 6.5a(a).1V()},6Z:J(i){K 6.2K(i,i+1)},2K:J(){K 6.2F(1M.2l.2K.1i(6,18))},2c:J(b){K 6.2F(E.2c(6,J(a,i){K b.1P(a,i,a)}))},4R:J(){K 6.1b(6.54)},O:J(d,b){L a=d.23(".");a[1]=a[1]?"."+a[1]:"";7(b==V){L c=6.5n("8P"+a[1]+"!",[a[0]]);7(c==10&&6.M)c=E.O(6[0],d);K c==V&&a[1]?6.O(a[0]):c}N K 6.1N("8K"+a[1]+"!",[a[0],b]).R(J(){E.O(6,d,b)})},35:J(a){K 6.R(J(){E.35(6,a)})},3O:J(g,f,h,d){L e=6.M>1,3n;K 6.R(J(){7(!3n){3n=E.4a(g,6.2i);7(h)3n.8D()}L b=6;7(f&&E.12(6,"1O")&&E.12(3n[0],"4v"))b=6.3S("1U")[0]||6.38(6.2i.3s("1U"));L c=E([]);E.R(3n,J(){L a=e?E(6).5k(P)[0]:6;7(E.12(a,"1m")){c=c.1b(a)}N{7(a.15==1)c=c.1b(E("1m",a).1V());d.1P(b,a)}});c.R(6A)})}};E.2l.4T.2l=E.2l;J 6A(i,a){7(a.3Q)E.3P({1c:a.3Q,3l:S,1H:"1m"});N E.5g(a.1u||a.6x||a.3d||"");7(a.1a)a.1a.34(a)}E.1s=E.1n.1s=J(){L b=18[0]||{},i=1,M=18.M,5c=S,11;7(b.1k==8d){5c=b;b=18[1]||{};i=2}7(1o b!="3V"&&1o b!="J")b={};7(M==1){b=6;i=0}Q(;i-1}},68:J(b,c,a){L e={};Q(L d 1p c){e[d]=b.W[d];b.W[d]=c[d]}a.1P(b);Q(L d 1p c)b.W[d]=e[d]},1j:J(d,e,c){7(e=="27"||e=="1R"){L b,46={43:"4W",4U:"1Z",19:"3D"},3c=e=="27"?["7O","7M"]:["7J","7I"];J 5E(){b=e=="27"?d.7H:d.7F;L a=0,2N=0;E.R(3c,J(){a+=2M(E.2o(d,"7E"+6,P))||0;2N+=2M(E.2o(d,"2N"+6+"5X",P))||0});b-=24.7C(a+2N)}7(E(d).3H(":4d"))5E();N E.68(d,46,5E);K 24.2f(0,b)}K E.2o(d,e,c)},2o:J(e,k,j){L d;J 3x(b){7(!E.14.2d)K S;L a=T.4c.4K(b,V);K!a||a.4M("3x")==""}7(k=="1w"&&E.14.1d){d=E.1J(e.W,"1w");K d==""?"1":d}7(E.14.2z&&k=="19"){L c=e.W.50;e.W.50="0 7r 7o";e.W.50=c}7(k.1D(/4g/i))k=y;7(!j&&e.W&&e.W[k])d=e.W[k];N 7(T.4c&&T.4c.4K){7(k.1D(/4g/i))k="4g";k=k.1r(/([A-Z])/g,"-$1").2h();L h=T.4c.4K(e,V);7(h&&!3x(e))d=h.4M(k);N{L f=[],2C=[];Q(L a=e;a&&3x(a);a=a.1a)2C.4J(a);Q(L i=0;i<2C.M;i++)7(3x(2C[i])){f[i]=2C[i].W.19;2C[i].W.19="3D"}d=k=="19"&&f[2C.M-1]!=V?"2H":(h&&h.4M(k))||"";Q(L i=0;i]*?)\\/>/g,J(b,a,c){K c.1D(/^(aa|a6|7e|a5|4D|7a|a0|3m|9W|9U|9S)$/i)?b:a+">"});L f=E.3g(d).2h(),1x=h.3s("1x");L e=!f.1f("<9P")&&[1,"<2k 74=\'74\'>",""]||!f.1f("<9M")&&[1,"<73>",""]||f.1D(/^<(9G|1U|9E|9B|9x)/)&&[1,"<1O>",""]||!f.1f("<4v")&&[2,"<1O><1U>",""]||(!f.1f("<9w")||!f.1f("<9v"))&&[3,"<1O><1U><4v>",""]||!f.1f("<7e")&&[2,"<1O><1U><6V>",""]||E.14.1d&&[1,"1x<1x>",""]||[0,"",""];1x.3d=e[1]+d+e[2];2b(e[0]--)1x=1x.5o;7(E.14.1d){L g=!f.1f("<1O")&&f.1f("<1U")<0?1x.1C&&1x.1C.3p:e[1]=="<1O>"&&f.1f("<1U")<0?1x.3p:[];Q(L j=g.M-1;j>=0;--j)7(E.12(g[j],"1U")&&!g[j].3p.M)g[j].1a.34(g[j]);7(/^\\s/.17(d))1x.3o(h.5r(d.1D(/^\\s*/)[0]),1x.1C)}d=E.2I(1x.3p)}7(d.M===0&&(!E.12(d,"3u")&&!E.12(d,"2k")))K;7(d[0]==10||E.12(d,"3u")||d.11)k.1g(d);N k=E.37(k,d)});K k},1J:J(d,e,c){7(!d||d.15==3||d.15==8)K 10;L f=E.3E(d)?{}:E.46;7(e=="2p"&&E.14.2d)d.1a.3T;7(f[e]){7(c!=10)d[f[e]]=c;K d[f[e]]}N 7(E.14.1d&&e=="W")K E.1J(d.W,"9u",c);N 7(c==10&&E.14.1d&&E.12(d,"3u")&&(e=="9r"||e=="9o"))K d.9m(e).6K;N 7(d.28){7(c!=10){7(e=="U"&&E.12(d,"4D")&&d.1a)6Q"U 9i 9h\'t 9g 9e";d.9b(e,""+c)}7(E.14.1d&&/6O|3Q/.17(e)&&!E.3E(d))K d.4z(e,2);K d.4z(e)}N{7(e=="1w"&&E.14.1d){7(c!=10){d.6k=1;d.1E=(d.1E||"").1r(/6M\\([^)]*\\)/,"")+(2M(c).3X()=="96"?"":"6M(1w="+c*6L+")")}K d.1E&&d.1E.1f("1w=")>=0?(2M(d.1E.1D(/1w=([^)]*)/)[1])/6L).3X():""}e=e.1r(/-([a-z])/95,J(a,b){K b.2E()});7(c!=10)d[e]=c;K d[e]}},3g:J(a){K(a||"").1r(/^\\s+|\\s+$/g,"")},2I:J(b){L a=[];7(1o b!="93")Q(L i=0,M=b.M;i*",6).1V();2b(6.1C)6.34(6.1C)}},J(a,b){E.1n[a]=J(){K 6.R(b,18)}});E.R(["8f","5X"],J(i,c){L b=c.2h();E.1n[b]=J(a){K 6[0]==1e?E.14.2z&&T.1h["5e"+c]||E.14.2d&&1e["8e"+c]||T.6F=="79"&&T.1F["5e"+c]||T.1h["5e"+c]:6[0]==T?24.2f(24.2f(T.1h["5d"+c],T.1F["5d"+c]),24.2f(T.1h["5L"+c],T.1F["5L"+c])):a==10?(6.M?E.1j(6[0],b):V):6.1j(b,a.1k==4e?a:a+"2S")}});L C=E.14.2d&&4s(E.14.5K)<8c?"(?:[\\\\w*4r-]|\\\\\\\\.)":"(?:[\\\\w\\8b-\\8a*4r-]|\\\\\\\\.)",6v=1B 4q("^>\\\\s*("+C+"+)"),6u=1B 4q("^("+C+"+)(#)("+C+"+)"),6s=1B 4q("^([#.]?)("+C+"*)");E.1s({6r:{"":J(a,i,m){K m[2]=="*"||E.12(a,m[2])},"#":J(a,i,m){K a.4z("2w")==m[2]},":":{89:J(a,i,m){K im[3]-0},2Z:J(a,i,m){K m[3]-0==i},6Z:J(a,i,m){K m[3]-0==i},3j:J(a,i){K i==0},3J:J(a,i,m,r){K i==r.M-1},6n:J(a,i){K i%2==0},6l:J(a,i){K i%2},"3j-4p":J(a){K a.1a.3S("*")[0]==a},"3J-4p":J(a){K E.2Z(a.1a.5o,1,"4t")==a},"83-4p":J(a){K!E.2Z(a.1a.5o,2,"4t")},6B:J(a){K a.1C},4x:J(a){K!a.1C},82:J(a,i,m){K(a.6x||a.81||E(a).1u()||"").1f(m[3])>=0},4d:J(a){K"1Z"!=a.U&&E.1j(a,"19")!="2H"&&E.1j(a,"4U")!="1Z"},1Z:J(a){K"1Z"==a.U||E.1j(a,"19")=="2H"||E.1j(a,"4U")=="1Z"},80:J(a){K!a.2Y},2Y:J(a){K a.2Y},3k:J(a){K a.3k},2p:J(a){K a.2p||E.1J(a,"2p")},1u:J(a){K"1u"==a.U},5u:J(a){K"5u"==a.U},5t:J(a){K"5t"==a.U},59:J(a){K"59"==a.U},3I:J(a){K"3I"==a.U},58:J(a){K"58"==a.U},6j:J(a){K"6j"==a.U},6i:J(a){K"6i"==a.U},2G:J(a){K"2G"==a.U||E.12(a,"2G")},4D:J(a){K/4D|2k|6h|2G/i.17(a.12)},3Y:J(a,i,m){K E.2s(m[3],a).M},7X:J(a){K/h\\d/i.17(a.12)},7W:J(a){K E.3y(E.3G,J(b){K a==b.Y}).M}}},6g:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,1B 4q("^([:.#]*)("+C+"+)")],3e:J(a,c,b){L d,2m=[];2b(a&&a!=d){d=a;L f=E.1E(a,c,b);a=f.t.1r(/^\\s*,\\s*/,"");2m=b?c=f.r:E.37(2m,f.r)}K 2m},2s:J(t,p){7(1o t!="25")K[t];7(p&&p.15!=1&&p.15!=9)K[];p=p||T;L d=[p],2r=[],3J,12;2b(t&&3J!=t){L r=[];3J=t;t=E.3g(t);L o=S;L g=6v;L m=g.2O(t);7(m){12=m[1].2E();Q(L i=0;d[i];i++)Q(L c=d[i].1C;c;c=c.2B)7(c.15==1&&(12=="*"||c.12.2E()==12))r.1g(c);d=r;t=t.1r(g,"");7(t.1f(" ")==0)6w;o=P}N{g=/^([>+~])\\s*(\\w*)/i;7((m=g.2O(t))!=V){r=[];L l={};12=m[2].2E();m=m[1];Q(L j=0,3f=d.M;j<3f;j++){L n=m=="~"||m=="+"?d[j].2B:d[j].1C;Q(;n;n=n.2B)7(n.15==1){L h=E.O(n);7(m=="~"&&l[h])1Q;7(!12||n.12.2E()==12){7(m=="~")l[h]=P;r.1g(n)}7(m=="+")1Q}}d=r;t=E.3g(t.1r(g,""));o=P}}7(t&&!o){7(!t.1f(",")){7(p==d[0])d.4l();2r=E.37(2r,d);r=d=[p];t=" "+t.6e(1,t.M)}N{L k=6u;L m=k.2O(t);7(m){m=[0,m[2],m[3],m[1]]}N{k=6s;m=k.2O(t)}m[2]=m[2].1r(/\\\\/g,"");L f=d[d.M-1];7(m[1]=="#"&&f&&f.5J&&!E.3E(f)){L q=f.5J(m[2]);7((E.14.1d||E.14.2z)&&q&&1o q.2w=="25"&&q.2w!=m[2])q=E(\'[@2w="\'+m[2]+\'"]\',f)[0];d=r=q&&(!m[3]||E.12(q,m[3]))?[q]:[]}N{Q(L i=0;d[i];i++){L a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];7(a=="*"&&d[i].12.2h()=="3V")a="3m";r=E.37(r,d[i].3S(a))}7(m[1]==".")r=E.55(r,m[2]);7(m[1]=="#"){L e=[];Q(L i=0;r[i];i++)7(r[i].4z("2w")==m[2]){e=[r[i]];1Q}r=e}d=r}t=t.1r(k,"")}}7(t){L b=E.1E(t,r);d=r=b.r;t=E.3g(b.t)}}7(t)d=[];7(d&&p==d[0])d.4l();2r=E.37(2r,d);K 2r},55:J(r,m,a){m=" "+m+" ";L c=[];Q(L i=0;r[i];i++){L b=(" "+r[i].1t+" ").1f(m)>=0;7(!a&&b||a&&!b)c.1g(r[i])}K c},1E:J(t,r,h){L d;2b(t&&t!=d){d=t;L p=E.6g,m;Q(L i=0;p[i];i++){m=p[i].2O(t);7(m){t=t.7V(m[0].M);m[2]=m[2].1r(/\\\\/g,"");1Q}}7(!m)1Q;7(m[1]==":"&&m[2]=="56")r=G.17(m[3])?E.1E(m[3],r,P).r:E(r).56(m[3]);N 7(m[1]==".")r=E.55(r,m[2],h);N 7(m[1]=="["){L g=[],U=m[3];Q(L i=0,3f=r.M;i<3f;i++){L a=r[i],z=a[E.46[m[2]]||m[2]];7(z==V||/6O|3Q|2p/.17(m[2]))z=E.1J(a,m[2])||\'\';7((U==""&&!!z||U=="="&&z==m[5]||U=="!="&&z!=m[5]||U=="^="&&z&&!z.1f(m[5])||U=="$="&&z.6e(z.M-m[5].M)==m[5]||(U=="*="||U=="~=")&&z.1f(m[5])>=0)^h)g.1g(a)}r=g}N 7(m[1]==":"&&m[2]=="2Z-4p"){L e={},g=[],17=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.2O(m[3]=="6n"&&"2n"||m[3]=="6l"&&"2n+1"||!/\\D/.17(m[3])&&"7U+"+m[3]||m[3]),3j=(17[1]+(17[2]||1))-0,d=17[3]-0;Q(L i=0,3f=r.M;i<3f;i++){L j=r[i],1a=j.1a,2w=E.O(1a);7(!e[2w]){L c=1;Q(L n=1a.1C;n;n=n.2B)7(n.15==1)n.4k=c++;e[2w]=P}L b=S;7(3j==0){7(j.4k==d)b=P}N 7((j.4k-d)%3j==0&&(j.4k-d)/3j>=0)b=P;7(b^h)g.1g(j)}r=g}N{L f=E.6r[m[1]];7(1o f=="3V")f=f[m[2]];7(1o f=="25")f=6c("S||J(a,i){K "+f+";}");r=E.3y(r,J(a,i){K f(a,i,m,r)},h)}}K{r:r,t:t}},4u:J(b,c){L d=[];L a=b[c];2b(a&&a!=T){7(a.15==1)d.1g(a);a=a[c]}K d},2Z:J(a,e,c,b){e=e||1;L d=0;Q(;a;a=a[c])7(a.15==1&&++d==e)1Q;K a},5i:J(n,a){L r=[];Q(;n;n=n.2B){7(n.15==1&&(!a||n!=a))r.1g(n)}K r}});E.16={1b:J(f,i,g,e){7(f.15==3||f.15==8)K;7(E.14.1d&&f.53!=10)f=1e;7(!g.2D)g.2D=6.2D++;7(e!=10){L h=g;g=J(){K h.1i(6,18)};g.O=e;g.2D=h.2D}L j=E.O(f,"2R")||E.O(f,"2R",{}),1v=E.O(f,"1v")||E.O(f,"1v",J(){L a;7(1o E=="10"||E.16.5f)K a;a=E.16.1v.1i(18.3R.Y,18);K a});1v.Y=f;E.R(i.23(/\\s+/),J(c,b){L a=b.23(".");b=a[0];g.U=a[1];L d=j[b];7(!d){d=j[b]={};7(!E.16.2y[b]||E.16.2y[b].4j.1P(f)===S){7(f.3F)f.3F(b,1v,S);N 7(f.6b)f.6b("4i"+b,1v)}}d[g.2D]=g;E.16.2a[b]=P});f=V},2D:1,2a:{},1V:J(e,h,f){7(e.15==3||e.15==8)K;L i=E.O(e,"2R"),29,4X;7(i){7(h==10||(1o h=="25"&&h.7T(0)=="."))Q(L g 1p i)6.1V(e,g+(h||""));N{7(h.U){f=h.2q;h=h.U}E.R(h.23(/\\s+/),J(b,a){L c=a.23(".");a=c[0];7(i[a]){7(f)2V i[a][f.2D];N Q(f 1p i[a])7(!c[1]||i[a][f].U==c[1])2V i[a][f];Q(29 1p i[a])1Q;7(!29){7(!E.16.2y[a]||E.16.2y[a].4h.1P(e)===S){7(e.67)e.67(a,E.O(e,"1v"),S);N 7(e.66)e.66("4i"+a,E.O(e,"1v"))}29=V;2V i[a]}}})}Q(29 1p i)1Q;7(!29){L d=E.O(e,"1v");7(d)d.Y=V;E.35(e,"2R");E.35(e,"1v")}}},1N:J(g,c,d,f,h){c=E.2I(c||[]);7(g.1f("!")>=0){g=g.2K(0,-1);L a=P}7(!d){7(6.2a[g])E("*").1b([1e,T]).1N(g,c)}N{7(d.15==3||d.15==8)K 10;L b,29,1n=E.1q(d[g]||V),16=!c[0]||!c[0].36;7(16)c.4J(6.4Z({U:g,2L:d}));c[0].U=g;7(a)c[0].65=P;7(E.1q(E.O(d,"1v")))b=E.O(d,"1v").1i(d,c);7(!1n&&d["4i"+g]&&d["4i"+g].1i(d,c)===S)b=S;7(16)c.4l();7(h&&E.1q(h)){29=h.1i(d,b==V?c:c.71(b));7(29!==10)b=29}7(1n&&f!==S&&b!==S&&!(E.12(d,\'a\')&&g=="4V")){6.5f=P;1S{d[g]()}1X(e){}}6.5f=S}K b},1v:J(c){L a;c=E.16.4Z(c||1e.16||{});L b=c.U.23(".");c.U=b[0];L f=E.O(6,"2R")&&E.O(6,"2R")[c.U],42=1M.2l.2K.1P(18,1);42.4J(c);Q(L j 1p f){L d=f[j];42[0].2q=d;42[0].O=d.O;7(!b[1]&&!c.65||d.U==b[1]){L e=d.1i(6,42);7(a!==S)a=e;7(e===S){c.36();c.44()}}}7(E.14.1d)c.2L=c.36=c.44=c.2q=c.O=V;K a},4Z:J(c){L a=c;c=E.1s({},a);c.36=J(){7(a.36)a.36();a.7S=S};c.44=J(){7(a.44)a.44();a.7R=P};7(!c.2L)c.2L=c.7Q||T;7(c.2L.15==3)c.2L=a.2L.1a;7(!c.4S&&c.5w)c.4S=c.5w==c.2L?c.7P:c.5w;7(c.64==V&&c.63!=V){L b=T.1F,1h=T.1h;c.64=c.63+(b&&b.2v||1h&&1h.2v||0)-(b.62||0);c.7N=c.7L+(b&&b.2x||1h&&1h.2x||0)-(b.60||0)}7(!c.3c&&((c.4f||c.4f===0)?c.4f:c.5Z))c.3c=c.4f||c.5Z;7(!c.7b&&c.5Y)c.7b=c.5Y;7(!c.3c&&c.2G)c.3c=(c.2G&1?1:(c.2G&2?3:(c.2G&4?2:0)));K c},2y:{21:{4j:J(){5M();K},4h:J(){K}},3C:{4j:J(){7(E.14.1d)K S;E(6).2j("4P",E.16.2y.3C.2q);K P},4h:J(){7(E.14.1d)K S;E(6).3w("4P",E.16.2y.3C.2q);K P},2q:J(a){7(I(a,6))K P;18[0].U="3C";K E.16.1v.1i(6,18)}},3B:{4j:J(){7(E.14.1d)K S;E(6).2j("4O",E.16.2y.3B.2q);K P},4h:J(){7(E.14.1d)K S;E(6).3w("4O",E.16.2y.3B.2q);K P},2q:J(a){7(I(a,6))K P;18[0].U="3B";K E.16.1v.1i(6,18)}}}};E.1n.1s({2j:J(c,a,b){K c=="4H"?6.2X(c,a,b):6.R(J(){E.16.1b(6,c,b||a,b&&a)})},2X:J(d,b,c){K 6.R(J(){E.16.1b(6,d,J(a){E(6).3w(a);K(c||b).1i(6,18)},c&&b)})},3w:J(a,b){K 6.R(J(){E.16.1V(6,a,b)})},1N:J(c,a,b){K 6.R(J(){E.16.1N(c,a,6,P,b)})},5n:J(c,a,b){7(6[0])K E.16.1N(c,a,6[0],S,b);K 10},2g:J(){L b=18;K 6.4V(J(a){6.4N=0==6.4N?1:0;a.36();K b[6.4N].1i(6,18)||S})},7D:J(a,b){K 6.2j(\'3C\',a).2j(\'3B\',b)},21:J(a){5M();7(E.2Q)a.1P(T,E);N E.3A.1g(J(){K a.1P(6,E)});K 6}});E.1s({2Q:S,3A:[],21:J(){7(!E.2Q){E.2Q=P;7(E.3A){E.R(E.3A,J(){6.1i(T)});E.3A=V}E(T).5n("21")}}});L x=S;J 5M(){7(x)K;x=P;7(T.3F&&!E.14.2z)T.3F("5W",E.21,S);7(E.14.1d&&1e==3b)(J(){7(E.2Q)K;1S{T.1F.7B("26")}1X(3a){3z(18.3R,0);K}E.21()})();7(E.14.2z)T.3F("5W",J(){7(E.2Q)K;Q(L i=0;i=0){L i=g.2K(e,g.M);g=g.2K(0,e)}c=c||J(){};L f="4Q";7(d)7(E.1q(d)){c=d;d=V}N{d=E.3m(d);f="61"}L h=6;E.3P({1c:g,U:f,1H:"3q",O:d,1y:J(a,b){7(b=="1W"||b=="5U")h.3q(i?E("<1x/>").3t(a.4b.1r(/<1m(.|\\s)*?\\/1m>/g,"")).2s(i):a.4b);h.R(c,[a.4b,b,a])}});K 6},7n:J(){K E.3m(6.5T())},5T:J(){K 6.2c(J(){K E.12(6,"3u")?E.2I(6.7m):6}).1E(J(){K 6.31&&!6.2Y&&(6.3k||/2k|6h/i.17(6.12)||/1u|1Z|3I/i.17(6.U))}).2c(J(i,c){L b=E(6).5O();K b==V?V:b.1k==1M?E.2c(b,J(a,i){K{31:c.31,1A:a}}):{31:c.31,1A:b}}).22()}});E.R("5S,6d,5R,6D,5Q,6m".23(","),J(i,o){E.1n[o]=J(f){K 6.2j(o,f)}});L B=(1B 3v).3L();E.1s({22:J(d,b,a,c){7(E.1q(b)){a=b;b=V}K E.3P({U:"4Q",1c:d,O:b,1W:a,1H:c})},7l:J(b,a){K E.22(b,V,a,"1m")},7k:J(c,b,a){K E.22(c,b,a,"3i")},7i:J(d,b,a,c){7(E.1q(b)){a=b;b={}}K E.3P({U:"61",1c:d,O:b,1W:a,1H:c})},85:J(a){E.1s(E.4I,a)},4I:{2a:P,U:"4Q",2U:0,5P:"4o/x-7h-3u-7g",5N:P,3l:P,O:V,6p:V,3I:V,49:{3M:"4o/3M, 1u/3M",3q:"1u/3q",1m:"1u/4m, 4o/4m",3i:"4o/3i, 1u/4m",1u:"1u/a7",4G:"*/*"}},4F:{},3P:J(s){L f,2W=/=\\?(&|$)/g,1z,O;s=E.1s(P,s,E.1s(P,{},E.4I,s));7(s.O&&s.5N&&1o s.O!="25")s.O=E.3m(s.O);7(s.1H=="4E"){7(s.U.2h()=="22"){7(!s.1c.1D(2W))s.1c+=(s.1c.1D(/\\?/)?"&":"?")+(s.4E||"7d")+"=?"}N 7(!s.O||!s.O.1D(2W))s.O=(s.O?s.O+"&":"")+(s.4E||"7d")+"=?";s.1H="3i"}7(s.1H=="3i"&&(s.O&&s.O.1D(2W)||s.1c.1D(2W))){f="4E"+B++;7(s.O)s.O=(s.O+"").1r(2W,"="+f+"$1");s.1c=s.1c.1r(2W,"="+f+"$1");s.1H="1m";1e[f]=J(a){O=a;1W();1y();1e[f]=10;1S{2V 1e[f]}1X(e){}7(h)h.34(g)}}7(s.1H=="1m"&&s.1T==V)s.1T=S;7(s.1T===S&&s.U.2h()=="22"){L i=(1B 3v()).3L();L j=s.1c.1r(/(\\?|&)4r=.*?(&|$)/,"$a4="+i+"$2");s.1c=j+((j==s.1c)?(s.1c.1D(/\\?/)?"&":"?")+"4r="+i:"")}7(s.O&&s.U.2h()=="22"){s.1c+=(s.1c.1D(/\\?/)?"&":"?")+s.O;s.O=V}7(s.2a&&!E.5H++)E.16.1N("5S");7((!s.1c.1f("a3")||!s.1c.1f("//"))&&s.1H=="1m"&&s.U.2h()=="22"){L h=T.3S("6f")[0];L g=T.3s("1m");g.3Q=s.1c;7(s.7c)g.a2=s.7c;7(!f){L l=S;g.9Z=g.9Y=J(){7(!l&&(!6.39||6.39=="5V"||6.39=="1y")){l=P;1W();1y();h.34(g)}}}h.38(g);K 10}L m=S;L k=1e.78?1B 78("9X.9V"):1B 76();k.9T(s.U,s.1c,s.3l,s.6p,s.3I);1S{7(s.O)k.4C("9R-9Q",s.5P);7(s.5C)k.4C("9O-5A-9N",E.4F[s.1c]||"9L, 9K 9I 9H 5z:5z:5z 9F");k.4C("X-9C-9A","76");k.4C("9z",s.1H&&s.49[s.1H]?s.49[s.1H]+", */*":s.49.4G)}1X(e){}7(s.6Y)s.6Y(k);7(s.2a)E.16.1N("6m",[k,s]);L c=J(a){7(!m&&k&&(k.39==4||a=="2U")){m=P;7(d){6I(d);d=V}1z=a=="2U"&&"2U"||!E.6X(k)&&"3a"||s.5C&&E.6J(k,s.1c)&&"5U"||"1W";7(1z=="1W"){1S{O=E.6W(k,s.1H)}1X(e){1z="5x"}}7(1z=="1W"){L b;1S{b=k.5q("6U-5A")}1X(e){}7(s.5C&&b)E.4F[s.1c]=b;7(!f)1W()}N E.5v(s,k,1z);1y();7(s.3l)k=V}};7(s.3l){L d=53(c,13);7(s.2U>0)3z(J(){7(k){k.9t();7(!m)c("2U")}},s.2U)}1S{k.9s(s.O)}1X(e){E.5v(s,k,V,e)}7(!s.3l)c();J 1W(){7(s.1W)s.1W(O,1z);7(s.2a)E.16.1N("5Q",[k,s])}J 1y(){7(s.1y)s.1y(k,1z);7(s.2a)E.16.1N("5R",[k,s]);7(s.2a&&!--E.5H)E.16.1N("6d")}K k},5v:J(s,a,b,e){7(s.3a)s.3a(a,b,e);7(s.2a)E.16.1N("6D",[a,s,e])},5H:0,6X:J(r){1S{K!r.1z&&9q.9p=="59:"||(r.1z>=6T&&r.1z<9n)||r.1z==6R||r.1z==9l||E.14.2d&&r.1z==10}1X(e){}K S},6J:J(a,c){1S{L b=a.5q("6U-5A");K a.1z==6R||b==E.4F[c]||E.14.2d&&a.1z==10}1X(e){}K S},6W:J(r,b){L c=r.5q("9k-U");L d=b=="3M"||!b&&c&&c.1f("3M")>=0;L a=d?r.9j:r.4b;7(d&&a.1F.28=="5x")6Q"5x";7(b=="1m")E.5g(a);7(b=="3i")a=6c("("+a+")");K a},3m:J(a){L s=[];7(a.1k==1M||a.5h)E.R(a,J(){s.1g(3r(6.31)+"="+3r(6.1A))});N Q(L j 1p a)7(a[j]&&a[j].1k==1M)E.R(a[j],J(){s.1g(3r(j)+"="+3r(6))});N s.1g(3r(j)+"="+3r(a[j]));K s.6a("&").1r(/%20/g,"+")}});E.1n.1s({1G:J(c,b){K c?6.2e({1R:"1G",27:"1G",1w:"1G"},c,b):6.1E(":1Z").R(J(){6.W.19=6.5s||"";7(E.1j(6,"19")=="2H"){L a=E("<"+6.28+" />").6y("1h");6.W.19=a.1j("19");7(6.W.19=="2H")6.W.19="3D";a.1V()}}).3h()},1I:J(b,a){K b?6.2e({1R:"1I",27:"1I",1w:"1I"},b,a):6.1E(":4d").R(J(){6.5s=6.5s||E.1j(6,"19");6.W.19="2H"}).3h()},6N:E.1n.2g,2g:J(a,b){K E.1q(a)&&E.1q(b)?6.6N(a,b):a?6.2e({1R:"2g",27:"2g",1w:"2g"},a,b):6.R(J(){E(6)[E(6).3H(":1Z")?"1G":"1I"]()})},9f:J(b,a){K 6.2e({1R:"1G"},b,a)},9d:J(b,a){K 6.2e({1R:"1I"},b,a)},9c:J(b,a){K 6.2e({1R:"2g"},b,a)},9a:J(b,a){K 6.2e({1w:"1G"},b,a)},99:J(b,a){K 6.2e({1w:"1I"},b,a)},97:J(c,a,b){K 6.2e({1w:a},c,b)},2e:J(l,k,j,h){L i=E.6P(k,j,h);K 6[i.2P===S?"R":"2P"](J(){7(6.15!=1)K S;L g=E.1s({},i);L f=E(6).3H(":1Z"),4A=6;Q(L p 1p l){7(l[p]=="1I"&&f||l[p]=="1G"&&!f)K E.1q(g.1y)&&g.1y.1i(6);7(p=="1R"||p=="27"){g.19=E.1j(6,"19");g.32=6.W.32}}7(g.32!=V)6.W.32="1Z";g.40=E.1s({},l);E.R(l,J(c,a){L e=1B E.2t(4A,g,c);7(/2g|1G|1I/.17(a))e[a=="2g"?f?"1G":"1I":a](l);N{L b=a.3X().1D(/^([+-]=)?([\\d+-.]+)(.*)$/),1Y=e.2m(P)||0;7(b){L d=2M(b[2]),2A=b[3]||"2S";7(2A!="2S"){4A.W[c]=(d||1)+2A;1Y=((d||1)/e.2m(P))*1Y;4A.W[c]=1Y+2A}7(b[1])d=((b[1]=="-="?-1:1)*d)+1Y;e.45(1Y,d,2A)}N e.45(1Y,a,"")}});K P})},2P:J(a,b){7(E.1q(a)||(a&&a.1k==1M)){b=a;a="2t"}7(!a||(1o a=="25"&&!b))K A(6[0],a);K 6.R(J(){7(b.1k==1M)A(6,a,b);N{A(6,a).1g(b);7(A(6,a).M==1)b.1i(6)}})},94:J(b,c){L a=E.3G;7(b)6.2P([]);6.R(J(){Q(L i=a.M-1;i>=0;i--)7(a[i].Y==6){7(c)a[i](P);a.72(i,1)}});7(!c)6.5p();K 6}});L A=J(b,c,a){7(!b)K 10;c=c||"2t";L q=E.O(b,c+"2P");7(!q||a)q=E.O(b,c+"2P",a?E.2I(a):[]);K q};E.1n.5p=J(a){a=a||"2t";K 6.R(J(){L q=A(6,a);q.4l();7(q.M)q[0].1i(6)})};E.1s({6P:J(b,a,c){L d=b&&b.1k==92?b:{1y:c||!c&&a||E.1q(b)&&b,2u:b,3Z:c&&a||a&&a.1k!=91&&a};d.2u=(d.2u&&d.2u.1k==51?d.2u:{90:8Z,9D:6T}[d.2u])||8X;d.5y=d.1y;d.1y=J(){7(d.2P!==S)E(6).5p();7(E.1q(d.5y))d.5y.1i(6)};K d},3Z:{70:J(p,n,b,a){K b+a*p},5j:J(p,n,b,a){K((-24.8V(p*24.8U)/2)+0.5)*a+b}},3G:[],3W:V,2t:J(b,c,a){6.11=c;6.Y=b;6.1l=a;7(!c.47)c.47={}}});E.2t.2l={4y:J(){7(6.11.30)6.11.30.1i(6.Y,[6.2J,6]);(E.2t.30[6.1l]||E.2t.30.4G)(6);7(6.1l=="1R"||6.1l=="27")6.Y.W.19="3D"},2m:J(a){7(6.Y[6.1l]!=V&&6.Y.W[6.1l]==V)K 6.Y[6.1l];L r=2M(E.1j(6.Y,6.1l,a));K r&&r>-8Q?r:2M(E.2o(6.Y,6.1l))||0},45:J(c,b,d){6.5B=(1B 3v()).3L();6.1Y=c;6.3h=b;6.2A=d||6.2A||"2S";6.2J=6.1Y;6.4B=6.4w=0;6.4y();L e=6;J t(a){K e.30(a)}t.Y=6.Y;E.3G.1g(t);7(E.3W==V){E.3W=53(J(){L a=E.3G;Q(L i=0;i6.11.2u+6.5B){6.2J=6.3h;6.4B=6.4w=1;6.4y();6.11.40[6.1l]=P;L b=P;Q(L i 1p 6.11.40)7(6.11.40[i]!==P)b=S;7(b){7(6.11.19!=V){6.Y.W.32=6.11.32;6.Y.W.19=6.11.19;7(E.1j(6.Y,"19")=="2H")6.Y.W.19="3D"}7(6.11.1I)6.Y.W.19="2H";7(6.11.1I||6.11.1G)Q(L p 1p 6.11.40)E.1J(6.Y.W,p,6.11.47[p])}7(b&&E.1q(6.11.1y))6.11.1y.1i(6.Y);K S}N{L n=t-6.5B;6.4w=n/6.11.2u;6.4B=E.3Z[6.11.3Z||(E.3Z.5j?"5j":"70")](6.4w,n,0,1,6.11.2u);6.2J=6.1Y+((6.3h-6.1Y)*6.4B);6.4y()}K P}};E.2t.30={2v:J(a){a.Y.2v=a.2J},2x:J(a){a.Y.2x=a.2J},1w:J(a){E.1J(a.Y.W,"1w",a.2J)},4G:J(a){a.Y.W[a.1l]=a.2J+a.2A}};E.1n.5L=J(){L b=0,3b=0,Y=6[0],5l;7(Y)8M(E.14){L d=Y.1a,41=Y,1K=Y.1K,1L=Y.2i,5D=2d&&4s(5K)<8J&&!/a1/i.17(v),2T=E.1j(Y,"43")=="2T";7(Y.6G){L c=Y.6G();1b(c.26+24.2f(1L.1F.2v,1L.1h.2v),c.3b+24.2f(1L.1F.2x,1L.1h.2x));1b(-1L.1F.62,-1L.1F.60)}N{1b(Y.5G,Y.5F);2b(1K){1b(1K.5G,1K.5F);7(48&&!/^t(8H|d|h)$/i.17(1K.28)||2d&&!5D)2N(1K);7(!2T&&E.1j(1K,"43")=="2T")2T=P;41=/^1h$/i.17(1K.28)?41:1K;1K=1K.1K}2b(d&&d.28&&!/^1h|3q$/i.17(d.28)){7(!/^8G|1O.*$/i.17(E.1j(d,"19")))1b(-d.2v,-d.2x);7(48&&E.1j(d,"32")!="4d")2N(d);d=d.1a}7((5D&&(2T||E.1j(41,"43")=="4W"))||(48&&E.1j(41,"43")!="4W"))1b(-1L.1h.5G,-1L.1h.5F);7(2T)1b(24.2f(1L.1F.2v,1L.1h.2v),24.2f(1L.1F.2x,1L.1h.2x))}5l={3b:3b,26:b}}J 2N(a){1b(E.2o(a,"a8",P),E.2o(a,"a9",P))}J 1b(l,t){b+=4s(l)||0;3b+=4s(t)||0}K 5l}})();',62,631,'||||||this|if||||||||||||||||||||||||||||||||||||||function|return|var|length|else|data|true|for|each|false|document|type|null|style||elem||undefined|options|nodeName||browser|nodeType|event|test|arguments|display|parentNode|add|url|msie|window|indexOf|push|body|apply|css|constructor|prop|script|fn|typeof|in|isFunction|replace|extend|className|text|handle|opacity|div|complete|status|value|new|firstChild|match|filter|documentElement|show|dataType|hide|attr|offsetParent|doc|Array|trigger|table|call|break|height|try|cache|tbody|remove|success|catch|start|hidden||ready|get|split|Math|string|left|width|tagName|ret|global|while|map|safari|animate|max|toggle|toLowerCase|ownerDocument|bind|select|prototype|cur||curCSS|selected|handler|done|find|fx|duration|scrollLeft|id|scrollTop|special|opera|unit|nextSibling|stack|guid|toUpperCase|pushStack|button|none|makeArray|now|slice|target|parseFloat|border|exec|queue|isReady|events|px|fixed|timeout|delete|jsre|one|disabled|nth|step|name|overflow|inArray|removeChild|removeData|preventDefault|merge|appendChild|readyState|error|top|which|innerHTML|multiFilter|rl|trim|end|json|first|checked|async|param|elems|insertBefore|childNodes|html|encodeURIComponent|createElement|append|form|Date|unbind|color|grep|setTimeout|readyList|mouseleave|mouseenter|block|isXMLDoc|addEventListener|timers|is|password|last|runtimeStyle|getTime|xml|jQuery|domManip|ajax|src|callee|getElementsByTagName|selectedIndex|load|object|timerId|toString|has|easing|curAnim|offsetChild|args|position|stopPropagation|custom|props|orig|mozilla|accepts|clean|responseText|defaultView|visible|String|charCode|float|teardown|on|setup|nodeIndex|shift|javascript|currentStyle|application|child|RegExp|_|parseInt|previousSibling|dir|tr|state|empty|update|getAttribute|self|pos|setRequestHeader|input|jsonp|lastModified|_default|unload|ajaxSettings|unshift|getComputedStyle|styleSheets|getPropertyValue|lastToggle|mouseout|mouseover|GET|andSelf|relatedTarget|init|visibility|click|absolute|index|container|fix|outline|Number|removeAttribute|setInterval|prevObject|classFilter|not|unique|submit|file|after|windowData|deep|scroll|client|triggered|globalEval|jquery|sibling|swing|clone|results|wrapAll|triggerHandler|lastChild|dequeue|getResponseHeader|createTextNode|oldblock|checkbox|radio|handleError|fromElement|parsererror|old|00|Modified|startTime|ifModified|safari2|getWH|offsetTop|offsetLeft|active|values|getElementById|version|offset|bindReady|processData|val|contentType|ajaxSuccess|ajaxComplete|ajaxStart|serializeArray|notmodified|loaded|DOMContentLoaded|Width|ctrlKey|keyCode|clientTop|POST|clientLeft|clientX|pageX|exclusive|detachEvent|removeEventListener|swap|cloneNode|join|attachEvent|eval|ajaxStop|substr|head|parse|textarea|reset|image|zoom|odd|ajaxSend|even|before|username|prepend|expr|quickClass|uuid|quickID|quickChild|continue|textContent|appendTo|contents|evalScript|parent|defaultValue|ajaxError|setArray|compatMode|getBoundingClientRect|styleFloat|clearInterval|httpNotModified|nodeValue|100|alpha|_toggle|href|speed|throw|304|replaceWith|200|Last|colgroup|httpData|httpSuccess|beforeSend|eq|linear|concat|splice|fieldset|multiple|cssFloat|XMLHttpRequest|webkit|ActiveXObject|CSS1Compat|link|metaKey|scriptCharset|callback|col|pixelLeft|urlencoded|www|post|hasClass|getJSON|getScript|elements|serialize|black|keyup|keypress|solid|change|mousemove|mouseup|dblclick|resize|focus|blur|stylesheet|rel|doScroll|round|hover|padding|offsetHeight|mousedown|offsetWidth|Bottom|Top|keydown|clientY|Right|pageY|Left|toElement|srcElement|cancelBubble|returnValue|charAt|0n|substring|animated|header|noConflict|line|enabled|innerText|contains|only|weight|ajaxSetup|font|size|gt|lt|uFFFF|u0128|417|Boolean|inner|Height|toggleClass|removeClass|addClass|removeAttr|replaceAll|insertAfter|prependTo|contentWindow|contentDocument|wrap|iframe|children|siblings|prevAll|nextAll|prev|wrapInner|next|parents|maxLength|maxlength|readOnly|readonly|reverse|class|htmlFor|inline|able|boxModel|522|setData|compatible|with|1px|ie|getData|10000|ra|it|rv|PI|cos|userAgent|400|navigator|600|slow|Function|Object|array|stop|ig|NaN|fadeTo|option|fadeOut|fadeIn|setAttribute|slideToggle|slideUp|changed|slideDown|be|can|property|responseXML|content|1223|getAttributeNode|300|method|protocol|location|action|send|abort|cssText|th|td|cap|specified|Accept|With|colg|Requested|fast|tfoot|GMT|thead|1970|Jan|attributes|01|Thu|leg|Since|If|opt|Type|Content|embed|open|area|XMLHTTP|hr|Microsoft|onreadystatechange|onload|meta|adobeair|charset|http|1_|img|br|plain|borderLeftWidth|borderTopWidth|abbr'.split('|'),0,{})) \ No newline at end of file Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/tigra/tree.js =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/tigra/tree.js (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/tigra/tree.js (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,14 @@ +// Title: Tigra Tree +// Description: See the demo at url +// URL: http://www.softcomplex.com/products/tigra_menu_tree/ +// Version: 1.1 (size optimized) +// Date: 11-12-2002 (mm-dd-yyyy) +// Notes: This script is free. Visit official site for further details. + +function tree(tm0,tm1) +{ + this.tm2=tm1;this.tm3=tm0;this.tm4=this;this.tm5=[];this.tm6=null;this.tm7=-1;var tm8=new Image(),tm9=new Image();tm8.src=tm1['icon_e'];tm9.src=tm1['icon_l'];tm1['im_e']=tm8;tm1['im_l']=tm9;for(var i=0;i<64;i++)if(tm1['icon_'+i]){var tmA=new Image();tm1['im_'+i]=tmA;tmA.src=tm1['icon_'+i]} + + this.tmB=function(tmC){var tmD=this.tm5[tmC];tmD.tmE(tmD.tmF)}; + this.tmG=function(tmC){return this.tm5[tmC].tmG()}; + this.tmH=function(tmC){this.tm5[tmC].tmI(true)};this.tmJ=function(tmC){this.tm5[tmC].tmI()};this.tmK=[];for(var i=0;i1;i--){tme[i]='';tmf=tmf.tmN}return '
'+(this.tm7?tme.join('')+(this.tmK.length?'':''):'')+''+this.tm3[0]+'
'+(this.tmK.length?'':'')}function tmQ(tmg){return this.tm4.tm2['icon_'+((this.tm7?0:32)+(this.tmK.length?16:0)+(this.tmK.length&&this.tmF?8:0)+(!tmg&&this.tm4.tm6==this?4:0)+(tmg?2:0)+(tmg&&this.tmV()?1:0))]}var trees=[];tmY=document.all?function(tmh){return document.all[tmh]}:function(tmh){return document.getElementById(tmh)}; \ No newline at end of file Index: LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/tigra/tree_tpl.js =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/tigra/tree_tpl.js (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/TEMPLATE/LAYOUTS/LamsSharePointIntegration/tigra/tree_tpl.js (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,36 @@ +/* + Feel free to use your custom treeicons for the tree. Make sure they are all of the same size. + User treeicons collections are welcome, we'll publish them giving all regards. +*/ + +var TREE_TPL = { + 'target' : '_self', // name of the frame links will be opened in + // other possible values are: _blank, _parent, _search, _self and _top + + 'icon_e' : '/_layouts/images/LamsSharePointIntegration/treeicons/empty.gif', // empty image + 'icon_l' : '/_layouts/images/LamsSharePointIntegration/treeicons/line.gif', // vertical line + + 'icon_32' : '/_layouts/images/LamsSharePointIntegration/treeicons/base.gif', // root leaf icon normal + 'icon_36' : '/_layouts/images/LamsSharePointIntegration/treeicons/base.gif', // root leaf icon selected + + 'icon_48' : '/_layouts/images/LamsSharePointIntegration/treeicons/base.gif', // root icon normal + 'icon_52' : '/_layouts/images/LamsSharePointIntegration/treeicons/base.gif', // root icon selected + 'icon_56' : '/_layouts/images/LamsSharePointIntegration/treeicons/base.gif', // root icon opened + 'icon_60' : '/_layouts/images/LamsSharePointIntegration/treeicons/base.gif', // root icon selected + + 'icon_16' : '/_layouts/images/LamsSharePointIntegration/treeicons/folder.gif', // node icon normal + 'icon_20' : '/_layouts/images/LamsSharePointIntegration/treeicons/folderopen.gif', // node icon selected + 'icon_24' : '/_layouts/images/LamsSharePointIntegration/treeicons/folderopen.gif', // node icon opened + 'icon_28' : '/_layouts/images/LamsSharePointIntegration/treeicons/folderopen.gif', // node icon selected opened + + 'icon_0' : '/_layouts/images/LamsSharePointIntegration/treeicons/page.gif', // leaf icon normal + 'icon_4' : '/_layouts/images/LamsSharePointIntegration/treeicons/page.gif', // leaf icon selected + + 'icon_2' : '/_layouts/images/LamsSharePointIntegration/treeicons/joinbottom.gif', // junction for leaf + 'icon_3' : '/_layouts/images/LamsSharePointIntegration/treeicons/join.gif', // junction for last leaf + 'icon_18' : '/_layouts/images/LamsSharePointIntegration/treeicons/plusbottom.gif', // junction for closed node + 'icon_19' : '/_layouts/images/LamsSharePointIntegration/treeicons/plus.gif', // junctioin for last closed node + 'icon_26' : '/_layouts/images/LamsSharePointIntegration/treeicons/minusbottom.gif',// junction for opened node + 'icon_27' : '/_layouts/images/LamsSharePointIntegration/treeicons/minus.gif' // junctioin for last opended node +}; + Index: LamsSharePointIntegration/LamsSharePointIntegration/setup.inf =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/setup.inf (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/setup.inf (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,48 @@ +;*** BEGIN ********************************************************** +;** ** +;** Automatically generated on: Thu Mar 27 14:17:18 2008 ** +;** ** +;** MakeCAB Version: 6.0.6001.18000 ** +;** ** +;*** BEGIN ********************************************************** +[disk list] +1,Disk 1 +[cabinet list] +1,1,LamsSharePointIntegration.wsp +[file list] +1,1,manifest.xml,2929 +1,1,LamsSharePointIntegration\feature.xml,701 +1,1,LamsSharePointIntegration\elements.xml,1888 +1,1,LamsSharePointIntegration\ListTemplates\LessonsList.xml,494 +1,1,FEATURES\LamsSharePointIntegration\LessonsList\schema.xml,120511 +1,1,FEATURES\LamsSharePointIntegration\LessonsList\AllItems.aspx,2646 +1,1,FEATURES\LamsSharePointIntegration\LessonsList\DispForm.aspx,3192 +1,1,FEATURES\LamsSharePointIntegration\LessonsList\EditForm.aspx,3185 +1,1,FEATURES\LamsSharePointIntegration\LessonsList\NewForm.aspx,14326 +1,1,LAYOUTS\LamsSharePointIntegration\jquery\jquery-1.2.3.pack.js,29846 +1,1,LAYOUTS\LamsSharePointIntegration\tigra\tree.js,3824 +1,1,LAYOUTS\LamsSharePointIntegration\tigra\tree_tpl.js,2502 +1,1,LAYOUTS\LamsSharePointIntegration\LAMSIntegrationSettings.aspx,8840 +1,1,LAYOUTS\LamsSharePointIntegration\LAMSSchedule.aspx,16609 +1,1,LAYOUTS\LamsSharePointIntegration\LAMSOpenPopup.aspx,8374 +1,1,LAYOUTS\LamsSharePointIntegration\LAMSAjaxServletRequester.ashx,324 +1,1,IMAGES\LamsSharePointIntegration\favicon.ico,3638 +1,1,IMAGES\LamsSharePointIntegration\lams_logo.gif,2082 +1,1,IMAGES\LamsSharePointIntegration\treeicons\base.gif,151 +1,1,IMAGES\LamsSharePointIntegration\treeicons\empty.gif,62 +1,1,IMAGES\LamsSharePointIntegration\treeicons\folder.gif,163 +1,1,IMAGES\LamsSharePointIntegration\treeicons\folderopen.gif,139 +1,1,IMAGES\LamsSharePointIntegration\treeicons\join.gif,70 +1,1,IMAGES\LamsSharePointIntegration\treeicons\joinbottom.gif,73 +1,1,IMAGES\LamsSharePointIntegration\treeicons\line.gif,70 +1,1,IMAGES\LamsSharePointIntegration\treeicons\minus.gif,85 +1,1,IMAGES\LamsSharePointIntegration\treeicons\minusbottom.gif,85 +1,1,IMAGES\LamsSharePointIntegration\treeicons\page.gif,169 +1,1,IMAGES\LamsSharePointIntegration\treeicons\plus.gif,89 +1,1,IMAGES\LamsSharePointIntegration\treeicons\plusbottom.gif,90 +1,1,LamsSharePointIntegration.dll,20992 +;*** END ************************************************************ +;** ** +;** Automatically generated on: Thu Mar 27 14:17:18 2008 ** +;** ** +;*** END ************************************************************ Index: LamsSharePointIntegration/LamsSharePointIntegration/setup.rpt =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/setup.rpt (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/setup.rpt (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1,8 @@ +MakeCAB Report: Thu Mar 27 14:17:18 2008 + +Total files: 31 +Bytes before: 248,149 +Bytes after: 55,626 +After/Before: 22.42% compression +Time: 2.48 seconds ( 0 hr 0 min 2.48 sec) +Throughput: 97.60 Kb/second Index: LamsSharePointIntegration/LamsSharePointIntegration/solutionid.txt =================================================================== diff -u --- LamsSharePointIntegration/LamsSharePointIntegration/solutionid.txt (revision 0) +++ LamsSharePointIntegration/LamsSharePointIntegration/solutionid.txt (revision 5f3849898f9d77c022066dc244265c806586f91b) @@ -0,0 +1 @@ +0edc8ca4-46f8-49f0-9fbc-3d8c61ca9503