Merge branch 'master' of https://github.com/dotnet/eShopOnContainers
38
src/Web/Catalog.WebForms/Catalog.WebForms.sln
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio 15
|
||||||
|
VisualStudioVersion = 15.0.26228.0
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Catalog.WebForms", "Catalog.WebForms\Catalog.WebForms.csproj", "{07B42E24-32F8-4C10-99A8-0FB5AC6BFEBB}"
|
||||||
|
EndProject
|
||||||
|
Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{7816BBB6-20B9-4D5A-864D-47B7C6E3D3D5}"
|
||||||
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
|
{07B42E24-32F8-4C10-99A8-0FB5AC6BFEBB} = {07B42E24-32F8-4C10-99A8-0FB5AC6BFEBB}
|
||||||
|
{9B92B9F2-0DB5-4294-8DBF-DE2F87AEADDD} = {9B92B9F2-0DB5-4294-8DBF-DE2F87AEADDD}
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Catalog.API", "..\..\Services\Catalog\Catalog.API\Catalog.API.csproj", "{9B92B9F2-0DB5-4294-8DBF-DE2F87AEADDD}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{07B42E24-32F8-4C10-99A8-0FB5AC6BFEBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{07B42E24-32F8-4C10-99A8-0FB5AC6BFEBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{07B42E24-32F8-4C10-99A8-0FB5AC6BFEBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{07B42E24-32F8-4C10-99A8-0FB5AC6BFEBB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{7816BBB6-20B9-4D5A-864D-47B7C6E3D3D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{7816BBB6-20B9-4D5A-864D-47B7C6E3D3D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{7816BBB6-20B9-4D5A-864D-47B7C6E3D3D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{7816BBB6-20B9-4D5A-864D-47B7C6E3D3D5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{9B92B9F2-0DB5-4294-8DBF-DE2F87AEADDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{9B92B9F2-0DB5-4294-8DBF-DE2F87AEADDD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{9B92B9F2-0DB5-4294-8DBF-DE2F87AEADDD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{9B92B9F2-0DB5-4294-8DBF-DE2F87AEADDD}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
3
src/Web/Catalog.WebForms/Catalog.WebForms/.dockerignore
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
*
|
||||||
|
!obj\Docker\publish\*
|
||||||
|
!obj\Docker\empty\
|
7
src/Web/Catalog.WebForms/Catalog.WebForms/About.aspx
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<%@ Page Title="About" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="About.aspx.cs" Inherits="Microsoft.eShopOnContainers.Catalog.WebForms.About" %>
|
||||||
|
|
||||||
|
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
|
||||||
|
<h2><%: Title %>.</h2>
|
||||||
|
<h3>Your application description page.</h3>
|
||||||
|
<p>Use this area to provide additional information.</p>
|
||||||
|
</asp:Content>
|
17
src/Web/Catalog.WebForms/Catalog.WebForms/About.aspx.cs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
|
||||||
|
namespace Microsoft.eShopOnContainers.Catalog.WebForms
|
||||||
|
{
|
||||||
|
public partial class About : Page
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
15
src/Web/Catalog.WebForms/Catalog.WebForms/About.aspx.designer.cs
generated
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace Microsoft.eShopOnContainers.Catalog.WebForms {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class About {
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,46 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.Optimization;
|
||||||
|
using System.Web.UI;
|
||||||
|
|
||||||
|
namespace Microsoft.eShopOnContainers.Catalog.WebForms
|
||||||
|
{
|
||||||
|
public class BundleConfig
|
||||||
|
{
|
||||||
|
// For more information on Bundling, visit https://go.microsoft.com/fwlink/?LinkID=303951
|
||||||
|
public static void RegisterBundles(BundleCollection bundles)
|
||||||
|
{
|
||||||
|
bundles.Add(new ScriptBundle("~/bundles/WebFormsJs").Include(
|
||||||
|
"~/Scripts/WebForms/WebForms.js",
|
||||||
|
"~/Scripts/WebForms/WebUIValidation.js",
|
||||||
|
"~/Scripts/WebForms/MenuStandards.js",
|
||||||
|
"~/Scripts/WebForms/Focus.js",
|
||||||
|
"~/Scripts/WebForms/GridView.js",
|
||||||
|
"~/Scripts/WebForms/DetailsView.js",
|
||||||
|
"~/Scripts/WebForms/TreeView.js",
|
||||||
|
"~/Scripts/WebForms/WebParts.js"));
|
||||||
|
|
||||||
|
// Order is very important for these files to work, they have explicit dependencies
|
||||||
|
bundles.Add(new ScriptBundle("~/bundles/MsAjaxJs").Include(
|
||||||
|
"~/Scripts/WebForms/MsAjax/MicrosoftAjax.js",
|
||||||
|
"~/Scripts/WebForms/MsAjax/MicrosoftAjaxApplicationServices.js",
|
||||||
|
"~/Scripts/WebForms/MsAjax/MicrosoftAjaxTimer.js",
|
||||||
|
"~/Scripts/WebForms/MsAjax/MicrosoftAjaxWebForms.js"));
|
||||||
|
|
||||||
|
// Use the Development version of Modernizr to develop with and learn from. Then, when you’re
|
||||||
|
// ready for production, use the build tool at https://modernizr.com to pick only the tests you need
|
||||||
|
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
|
||||||
|
"~/Scripts/modernizr-*"));
|
||||||
|
|
||||||
|
System.Web.UI.ScriptManager.ScriptResourceMapping.AddDefinition(
|
||||||
|
"respond",
|
||||||
|
new ScriptResourceDefinition
|
||||||
|
{
|
||||||
|
Path = "~/Scripts/respond.min.js",
|
||||||
|
DebugPath = "~/Scripts/respond.js",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.Routing;
|
||||||
|
using Microsoft.AspNet.FriendlyUrls;
|
||||||
|
|
||||||
|
namespace Microsoft.eShopOnContainers.Catalog.WebForms
|
||||||
|
{
|
||||||
|
public static class RouteConfig
|
||||||
|
{
|
||||||
|
public static void RegisterRoutes(RouteCollection routes)
|
||||||
|
{
|
||||||
|
var settings = new FriendlyUrlSettings();
|
||||||
|
settings.AutoRedirectMode = RedirectMode.Permanent;
|
||||||
|
routes.EnableFriendlyUrls(settings);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,79 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
|
||||||
|
<TelemetryInitializers>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.DependencyCollector.HttpDependenciesParsingTelemetryInitializer, Microsoft.AI.DependencyCollector"/>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer"/>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureWebAppRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer"/>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer, Microsoft.AI.WindowsServer"/>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.Web.WebTestTelemetryInitializer, Microsoft.AI.Web"/>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.Web.SyntheticUserAgentTelemetryInitializer, Microsoft.AI.Web">
|
||||||
|
<!-- Extended list of bots:
|
||||||
|
search|spider|crawl|Bot|Monitor|BrowserMob|BingPreview|PagePeeker|WebThumb|URL2PNG|ZooShot|GomezA|Google SketchUp|Read Later|KTXN|KHTE|Keynote|Pingdom|AlwaysOn|zao|borg|oegp|silk|Xenu|zeal|NING|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|Java|JNLP|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|vortex|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|voyager|archiver|Icarus6j|mogimogi|Netvibes|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|wsr-agent|http client|Python-urllib|AppEngine-Google|semanticdiscovery|facebookexternalhit|web/snippet|Google-HTTP-Java-Client-->
|
||||||
|
<Filters>search|spider|crawl|Bot|Monitor|AlwaysOn</Filters>
|
||||||
|
</Add>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer, Microsoft.AI.Web"/>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.Web.OperationNameTelemetryInitializer, Microsoft.AI.Web"/>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer, Microsoft.AI.Web"/>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.Web.UserTelemetryInitializer, Microsoft.AI.Web"/>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.Web.AuthenticatedUserIdTelemetryInitializer, Microsoft.AI.Web"/>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.Web.AccountIdTelemetryInitializer, Microsoft.AI.Web"/>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.Web.SessionTelemetryInitializer, Microsoft.AI.Web"/>
|
||||||
|
</TelemetryInitializers>
|
||||||
|
<TelemetryModules>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector"/>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector">
|
||||||
|
<!--
|
||||||
|
Use the following syntax here to collect additional performance counters:
|
||||||
|
|
||||||
|
<Counters>
|
||||||
|
<Add PerformanceCounter="\Process(??APP_WIN32_PROC??)\Handle Count" ReportAs="Process handle count" />
|
||||||
|
...
|
||||||
|
</Counters>
|
||||||
|
|
||||||
|
PerformanceCounter must be either \CategoryName(InstanceName)\CounterName or \CategoryName\CounterName
|
||||||
|
|
||||||
|
NOTE: performance counters configuration will be lost upon NuGet upgrade.
|
||||||
|
|
||||||
|
The following placeholders are supported as InstanceName:
|
||||||
|
??APP_WIN32_PROC?? - instance name of the application process for Win32 counters.
|
||||||
|
??APP_W3SVC_PROC?? - instance name of the application IIS worker process for IIS/ASP.NET counters.
|
||||||
|
??APP_CLR_PROC?? - instance name of the application CLR process for .NET counters.
|
||||||
|
-->
|
||||||
|
</Add>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector"/>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule, Microsoft.AI.WindowsServer"/>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule, Microsoft.AI.WindowsServer"/>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule, Microsoft.AI.WindowsServer"/>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule, Microsoft.AI.Web">
|
||||||
|
<Handlers>
|
||||||
|
<!--
|
||||||
|
Add entries here to filter out additional handlers:
|
||||||
|
|
||||||
|
NOTE: handler configuration will be lost upon NuGet upgrade.
|
||||||
|
-->
|
||||||
|
<Add>System.Web.Handlers.TransferRequestHandler</Add>
|
||||||
|
<Add>Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler</Add>
|
||||||
|
<Add>System.Web.StaticFileHandler</Add>
|
||||||
|
<Add>System.Web.Handlers.AssemblyResourceLoader</Add>
|
||||||
|
<Add>System.Web.Optimization.BundleHandler</Add>
|
||||||
|
<Add>System.Web.Script.Services.ScriptHandlerFactory</Add>
|
||||||
|
<Add>System.Web.Handlers.TraceHandler</Add>
|
||||||
|
<Add>System.Web.Services.Discovery.DiscoveryRequestHandler</Add>
|
||||||
|
<Add>System.Web.HttpDebugHandler</Add>
|
||||||
|
</Handlers>
|
||||||
|
</Add>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule, Microsoft.AI.Web"/>
|
||||||
|
</TelemetryModules>
|
||||||
|
<TelemetryProcessors>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector"/>
|
||||||
|
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
|
||||||
|
<MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
|
||||||
|
</Add>
|
||||||
|
</TelemetryProcessors>
|
||||||
|
<TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel"/>
|
||||||
|
<!--
|
||||||
|
Learn more about Application Insights configuration with ApplicationInsights.config here:
|
||||||
|
http://go.microsoft.com/fwlink/?LinkID=513840
|
||||||
|
|
||||||
|
Note: If not present, please add <InstrumentationKey>Your Key</InstrumentationKey> to the top of this file.
|
||||||
|
--></ApplicationInsights>
|
7
src/Web/Catalog.WebForms/Catalog.WebForms/Bundle.config
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<bundles version="1.0">
|
||||||
|
<styleBundle path="~/Content/css">
|
||||||
|
<include path="~/Content/bootstrap.css" />
|
||||||
|
<include path="~/Content/Site.css" />
|
||||||
|
</styleBundle>
|
||||||
|
</bundles>
|
@ -0,0 +1,304 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
|
||||||
|
<Import Project="..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" />
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProductVersion>
|
||||||
|
</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{07B42E24-32F8-4C10-99A8-0FB5AC6BFEBB}</ProjectGuid>
|
||||||
|
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>Microsoft.eShopOnContainers.Catalog.WebForms</RootNamespace>
|
||||||
|
<AssemblyName>Catalog.WebForms</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||||
|
<UseIISExpress>true</UseIISExpress>
|
||||||
|
<IISExpressSSLPort />
|
||||||
|
<IISExpressAnonymousAuthentication />
|
||||||
|
<IISExpressWindowsAuthentication />
|
||||||
|
<IISExpressUseClassicPipelineMode />
|
||||||
|
<UseGlobalApplicationHostFile />
|
||||||
|
<NuGetPackageImportStamp>
|
||||||
|
</NuGetPackageImportStamp>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Autofac, Version=4.3.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Autofac.4.3.0\lib\net45\Autofac.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="System.Web.Extensions" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Web" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="System.Configuration" />
|
||||||
|
<Reference Include="System.Web.Services" />
|
||||||
|
<Reference Include="System.EnterpriseServices" />
|
||||||
|
<Reference Include="System.Web.DynamicData" />
|
||||||
|
<Reference Include="System.Web.Entity" />
|
||||||
|
<Reference Include="System.Web.ApplicationServices" />
|
||||||
|
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
|
<Private>True</Private>
|
||||||
|
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="AspNet.ScriptManager.bootstrap">
|
||||||
|
<HintPath>..\packages\AspNet.ScriptManager.bootstrap.3.0.0\lib\net45\AspNet.ScriptManager.bootstrap.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="AspNet.ScriptManager.jQuery">
|
||||||
|
<HintPath>..\packages\AspNet.ScriptManager.jQuery.1.10.2\lib\net45\AspNet.ScriptManager.jQuery.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.ScriptManager.MSAjax">
|
||||||
|
<HintPath>..\packages\Microsoft.AspNet.ScriptManager.MSAjax.5.0.0\lib\net45\Microsoft.ScriptManager.MSAjax.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.ScriptManager.WebForms">
|
||||||
|
<HintPath>..\packages\Microsoft.AspNet.ScriptManager.WebForms.5.0.0\lib\net45\Microsoft.ScriptManager.WebForms.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Web.Optimization, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
|
||||||
|
<HintPath>..\packages\Microsoft.AspNet.Web.Optimization.1.1.3\lib\net40\System.Web.Optimization.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="WebGrease">
|
||||||
|
<Private>True</Private>
|
||||||
|
<HintPath>..\packages\WebGrease.1.5.2\lib\WebGrease.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Antlr3.Runtime">
|
||||||
|
<Private>True</Private>
|
||||||
|
<HintPath>..\packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.AspNet.Web.Optimization.WebForms">
|
||||||
|
<Private>True</Private>
|
||||||
|
<HintPath>..\packages\Microsoft.AspNet.Web.Optimization.WebForms.1.1.3\lib\net45\Microsoft.AspNet.Web.Optimization.WebForms.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.AspNet.FriendlyUrls">
|
||||||
|
<HintPath>..\packages\Microsoft.AspNet.FriendlyUrls.Core.1.0.2\lib\net45\Microsoft.AspNet.FriendlyUrls.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Newtonsoft.Json">
|
||||||
|
<HintPath>..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.ApplicationInsights">
|
||||||
|
<HintPath>..\packages\Microsoft.ApplicationInsights.2.2.0\lib\net45\Microsoft.ApplicationInsights.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.AI.Agent.Intercept">
|
||||||
|
<HintPath>..\packages\Microsoft.ApplicationInsights.Agent.Intercept.2.0.6\lib\net45\Microsoft.AI.Agent.Intercept.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.AI.DependencyCollector">
|
||||||
|
<HintPath>..\packages\Microsoft.ApplicationInsights.DependencyCollector.2.2.0\lib\net45\Microsoft.AI.DependencyCollector.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.AI.PerfCounterCollector">
|
||||||
|
<HintPath>..\packages\Microsoft.ApplicationInsights.PerfCounterCollector.2.2.0\lib\net45\Microsoft.AI.PerfCounterCollector.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.AI.ServerTelemetryChannel">
|
||||||
|
<HintPath>..\packages\Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.2.0\lib\net45\Microsoft.AI.ServerTelemetryChannel.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.AI.WindowsServer">
|
||||||
|
<HintPath>..\packages\Microsoft.ApplicationInsights.WindowsServer.2.2.0\lib\net45\Microsoft.AI.WindowsServer.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.AI.Web">
|
||||||
|
<HintPath>..\packages\Microsoft.ApplicationInsights.Web.2.2.0\lib\net45\Microsoft.AI.Web.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="About.aspx" />
|
||||||
|
<Content Include="Contact.aspx" />
|
||||||
|
<Content Include="Content\bootstrap.css" />
|
||||||
|
<Content Include="Content\bootstrap.min.css" />
|
||||||
|
<Content Include="Content\fake_product_01.png" />
|
||||||
|
<Content Include="Content\fake_product_02.png" />
|
||||||
|
<Content Include="Content\fake_product_03.png" />
|
||||||
|
<Content Include="Content\fake_product_04.png" />
|
||||||
|
<Content Include="Content\fake_product_05.png" />
|
||||||
|
<Content Include="Content\Site.css" />
|
||||||
|
<Content Include="Default.aspx" />
|
||||||
|
<Content Include="favicon.ico" />
|
||||||
|
<Content Include="fonts\glyphicons-halflings-regular.svg" />
|
||||||
|
<Content Include="Global.asax" />
|
||||||
|
<Content Include="fonts\glyphicons-halflings-regular.woff" />
|
||||||
|
<Content Include="fonts\glyphicons-halflings-regular.ttf" />
|
||||||
|
<Content Include="fonts\glyphicons-halflings-regular.eot" />
|
||||||
|
<Content Include="ApplicationInsights.config">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<None Include="Dockerfile" />
|
||||||
|
<None Include=".dockerignore">
|
||||||
|
<DependentUpon>Dockerfile</DependentUpon>
|
||||||
|
</None>
|
||||||
|
<None Include="Properties\PublishProfiles\FolderProfile.pubxml" />
|
||||||
|
<None Include="Scripts\jquery-1.10.2.intellisense.js" />
|
||||||
|
<Content Include="Scripts\bootstrap.js" />
|
||||||
|
<Content Include="Scripts\bootstrap.min.js" />
|
||||||
|
<Content Include="Scripts\jquery-1.10.2.js" />
|
||||||
|
<Content Include="Scripts\jquery-1.10.2.min.js" />
|
||||||
|
<Content Include="Scripts\modernizr-2.6.2.js" />
|
||||||
|
<Content Include="Scripts\respond.js" />
|
||||||
|
<Content Include="Scripts\respond.min.js" />
|
||||||
|
<Content Include="Scripts\WebForms\DetailsView.js" />
|
||||||
|
<Content Include="Scripts\WebForms\Focus.js" />
|
||||||
|
<Content Include="Scripts\WebForms\GridView.js" />
|
||||||
|
<Content Include="Scripts\WebForms\Menu.js" />
|
||||||
|
<Content Include="Scripts\WebForms\MenuStandards.js" />
|
||||||
|
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjax.js" />
|
||||||
|
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxApplicationServices.js" />
|
||||||
|
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxComponentModel.js" />
|
||||||
|
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxCore.js" />
|
||||||
|
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxGlobalization.js" />
|
||||||
|
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxHistory.js" />
|
||||||
|
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxNetwork.js" />
|
||||||
|
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxSerialization.js" />
|
||||||
|
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxTimer.js" />
|
||||||
|
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxWebForms.js" />
|
||||||
|
<Content Include="Scripts\WebForms\MSAjax\MicrosoftAjaxWebServices.js" />
|
||||||
|
<Content Include="Scripts\WebForms\SmartNav.js" />
|
||||||
|
<Content Include="Scripts\WebForms\TreeView.js" />
|
||||||
|
<Content Include="Scripts\WebForms\WebForms.js" />
|
||||||
|
<Content Include="Scripts\WebForms\WebParts.js" />
|
||||||
|
<Content Include="Scripts\WebForms\WebUIValidation.js" />
|
||||||
|
<Content Include="Site.Master" />
|
||||||
|
<Content Include="ViewSwitcher.ascx" />
|
||||||
|
<Content Include="Web.config" />
|
||||||
|
<Content Include="Bundle.config" />
|
||||||
|
<Content Include="Site.Mobile.Master" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="App_Start\BundleConfig.cs" />
|
||||||
|
<Compile Include="About.aspx.cs">
|
||||||
|
<DependentUpon>About.aspx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="About.aspx.designer.cs">
|
||||||
|
<DependentUpon>About.aspx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="App_Start\RouteConfig.cs" />
|
||||||
|
<Compile Include="Contact.aspx.cs">
|
||||||
|
<DependentUpon>Contact.aspx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Contact.aspx.designer.cs">
|
||||||
|
<DependentUpon>Contact.aspx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Default.aspx.cs">
|
||||||
|
<DependentUpon>Default.aspx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Default.aspx.designer.cs">
|
||||||
|
<DependentUpon>Default.aspx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Extensions\ObservableExtensions.cs" />
|
||||||
|
<Compile Include="Global.asax.cs">
|
||||||
|
<DependentUpon>Global.asax</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Models\CatalogBrand.cs" />
|
||||||
|
<Compile Include="Models\CatalogItem.cs" />
|
||||||
|
<Compile Include="Models\CatalogRoot.cs" />
|
||||||
|
<Compile Include="Models\CatalogType.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Services\CatalogMockService.cs" />
|
||||||
|
<Compile Include="Services\CatalogService.cs" />
|
||||||
|
<Compile Include="Services\Common.cs" />
|
||||||
|
<Compile Include="Services\ICatalogService.cs" />
|
||||||
|
<Compile Include="Services\IRouteProvider.cs" />
|
||||||
|
<Compile Include="Site.Master.cs">
|
||||||
|
<DependentUpon>Site.Master</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Site.Master.designer.cs">
|
||||||
|
<DependentUpon>Site.Master</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Site.Mobile.Master.cs">
|
||||||
|
<DependentUpon>Site.Mobile.Master</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Site.Mobile.Master.designer.cs">
|
||||||
|
<DependentUpon>Site.Mobile.Master</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ViewSwitcher.ascx.cs">
|
||||||
|
<DependentUpon>ViewSwitcher.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ViewSwitcher.ascx.designer.cs">
|
||||||
|
<DependentUpon>ViewSwitcher.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="App_Data\" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="packages.config" />
|
||||||
|
<Content Include="Scripts\jquery-1.10.2.min.map" />
|
||||||
|
<None Include="Web.Debug.config">
|
||||||
|
<DependentUpon>Web.config</DependentUpon>
|
||||||
|
</None>
|
||||||
|
<None Include="Web.Release.config">
|
||||||
|
<DependentUpon>Web.config</DependentUpon>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||||
|
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
|
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
|
||||||
|
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
|
||||||
|
<ProjectExtensions>
|
||||||
|
<VisualStudio>
|
||||||
|
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
|
||||||
|
<WebProjectProperties>
|
||||||
|
<UseIIS>True</UseIIS>
|
||||||
|
<AutoAssignPort>True</AutoAssignPort>
|
||||||
|
<DevelopmentServerPort>58178</DevelopmentServerPort>
|
||||||
|
<DevelopmentServerVPath>/</DevelopmentServerVPath>
|
||||||
|
<IISUrl>http://localhost:58178/</IISUrl>
|
||||||
|
<NTLMAuthentication>False</NTLMAuthentication>
|
||||||
|
<UseCustomServer>False</UseCustomServer>
|
||||||
|
<CustomServerUrl>
|
||||||
|
</CustomServerUrl>
|
||||||
|
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
|
||||||
|
</WebProjectProperties>
|
||||||
|
</FlavorProperties>
|
||||||
|
</VisualStudio>
|
||||||
|
</ProjectExtensions>
|
||||||
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
|
||||||
|
</Target>
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
17
src/Web/Catalog.WebForms/Catalog.WebForms/Contact.aspx
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<%@ Page Title="Contact" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Contact.aspx.cs" Inherits="Microsoft.eShopOnContainers.Catalog.WebForms.Contact" %>
|
||||||
|
|
||||||
|
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
|
||||||
|
<h2><%: Title %>.</h2>
|
||||||
|
<h3>Your contact page.</h3>
|
||||||
|
<address>
|
||||||
|
One Microsoft Way<br />
|
||||||
|
Redmond, WA 98052-6399<br />
|
||||||
|
<abbr title="Phone">P:</abbr>
|
||||||
|
425.555.0100
|
||||||
|
</address>
|
||||||
|
|
||||||
|
<address>
|
||||||
|
<strong>Support:</strong> <a href="mailto:Support@example.com">Support@example.com</a><br />
|
||||||
|
<strong>Marketing:</strong> <a href="mailto:Marketing@example.com">Marketing@example.com</a>
|
||||||
|
</address>
|
||||||
|
</asp:Content>
|
17
src/Web/Catalog.WebForms/Catalog.WebForms/Contact.aspx.cs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
|
||||||
|
namespace Microsoft.eShopOnContainers.Catalog.WebForms
|
||||||
|
{
|
||||||
|
public partial class Contact : Page
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
15
src/Web/Catalog.WebForms/Catalog.WebForms/Contact.aspx.designer.cs
generated
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace Microsoft.eShopOnContainers.Catalog.WebForms {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class Contact {
|
||||||
|
}
|
||||||
|
}
|
31
src/Web/Catalog.WebForms/Catalog.WebForms/Content/Site.css
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/* Move down content because we have a fixed navbar that is 50px tall */
|
||||||
|
body {
|
||||||
|
padding-top: 50px;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Wrapping element */
|
||||||
|
/* Set some basic padding to keep content from hitting the edges */
|
||||||
|
.body-content {
|
||||||
|
padding-left: 15px;
|
||||||
|
padding-right: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set widths on the form inputs since otherwise they're 100% wide */
|
||||||
|
input,
|
||||||
|
select,
|
||||||
|
textarea {
|
||||||
|
max-width: 280px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Responsive: Portrait tablets and up */
|
||||||
|
@media screen and (min-width: 768px) {
|
||||||
|
.jumbotron {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.body-content {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
}
|
6816
src/Web/Catalog.WebForms/Catalog.WebForms/Content/bootstrap.css
vendored
Normal file
20
src/Web/Catalog.WebForms/Catalog.WebForms/Content/bootstrap.min.css
vendored
Normal file
After Width: | Height: | Size: 595 KiB |
After Width: | Height: | Size: 560 KiB |
After Width: | Height: | Size: 504 KiB |
After Width: | Height: | Size: 81 KiB |
After Width: | Height: | Size: 498 KiB |
73
src/Web/Catalog.WebForms/Catalog.WebForms/Default.aspx
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Microsoft.eShopOnContainers.Catalog.WebForms._Default" Async="true" %>
|
||||||
|
|
||||||
|
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
|
||||||
|
<div class="row">
|
||||||
|
<asp:ListView ID="catalogList" runat="server"
|
||||||
|
DataKeyNames="Id" GroupItemCount="4"
|
||||||
|
ItemType="eShopOnContainers.Core.Models.Catalog.CatalogItem">
|
||||||
|
<EmptyDataTemplate>
|
||||||
|
<table >
|
||||||
|
<tr>
|
||||||
|
<td>Well, there's nothing in the catalog.</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</EmptyDataTemplate>
|
||||||
|
<EmptyItemTemplate>
|
||||||
|
<td/>
|
||||||
|
</EmptyItemTemplate>
|
||||||
|
<GroupTemplate>
|
||||||
|
<tr id="itemPlaceholderContainer" runat="server">
|
||||||
|
<td id="itemPlaceholder" runat="server"></td>
|
||||||
|
</tr>
|
||||||
|
</GroupTemplate>
|
||||||
|
<ItemTemplate>
|
||||||
|
<td runat="server">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<a href="ProductDetails.aspx?productID=<%#:Item.Id%>">
|
||||||
|
<img src="<%#:Item.PictureUri%>"
|
||||||
|
style="border: solid" /></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<a href="ProductDetails.aspx?productID=<%#:Item.Id%>">
|
||||||
|
<span>
|
||||||
|
<%#:Item.Name%>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<br />
|
||||||
|
<span>
|
||||||
|
<b>Price: </b><%#:String.Format("{0:c}", Item.Price)%>
|
||||||
|
</span>
|
||||||
|
<br />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</ItemTemplate>
|
||||||
|
<LayoutTemplate>
|
||||||
|
<table style="width:100%;">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<table id="groupPlaceholderContainer" runat="server" style="width:100%">
|
||||||
|
<tr id="groupPlaceholder"></tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
<tr></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</LayoutTemplate>
|
||||||
|
</asp:ListView>
|
||||||
|
</div>
|
||||||
|
</asp:Content>
|
45
src/Web/Catalog.WebForms/Catalog.WebForms/Default.aspx.cs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
using Autofac;
|
||||||
|
using Autofac.Core;
|
||||||
|
using eShopOnContainers.Core.Models.Catalog;
|
||||||
|
using eShopOnContainers.Core.Services.Catalog;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
|
||||||
|
namespace Microsoft.eShopOnContainers.Catalog.WebForms
|
||||||
|
{
|
||||||
|
public partial class _Default : Page
|
||||||
|
{
|
||||||
|
private ILifetimeScope scope;
|
||||||
|
|
||||||
|
private ICatalogService catalog;
|
||||||
|
|
||||||
|
protected override void OnLoad(EventArgs e)
|
||||||
|
{
|
||||||
|
RegisterAsyncTask(new PageAsyncTask(LoadCatalogDataAsync));
|
||||||
|
|
||||||
|
base.OnLoad(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task LoadCatalogDataAsync()
|
||||||
|
{
|
||||||
|
var container = Application.Get("container") as IContainer;
|
||||||
|
using (scope = container?.BeginLifetimeScope())
|
||||||
|
{
|
||||||
|
catalog = container?.Resolve<ICatalogService>();
|
||||||
|
var collection = await catalog?.GetCatalogAsync();
|
||||||
|
catalogList.DataSource = collection;
|
||||||
|
catalogList.DataBind();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
24
src/Web/Catalog.WebForms/Catalog.WebForms/Default.aspx.designer.cs
generated
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace Microsoft.eShopOnContainers.Catalog.WebForms {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class _Default {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// catalogList control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.ListView catalogList;
|
||||||
|
}
|
||||||
|
}
|
4
src/Web/Catalog.WebForms/Catalog.WebForms/Dockerfile
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
FROM microsoft/aspnet
|
||||||
|
ARG source
|
||||||
|
WORKDIR /inetpub/wwwroot
|
||||||
|
COPY ${source:-obj/Docker/publish} .
|
@ -0,0 +1,28 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
|
||||||
|
namespace eShopOnContainers.Core.Extensions
|
||||||
|
{
|
||||||
|
public static class ObservableExtension
|
||||||
|
{
|
||||||
|
public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> source)
|
||||||
|
{
|
||||||
|
ObservableCollection<T> collection = new ObservableCollection<T>();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
foreach (T item in source)
|
||||||
|
{
|
||||||
|
collection.Add(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
return collection;
|
||||||
|
}
|
||||||
|
// Really?
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return collection;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1
src/Web/Catalog.WebForms/Catalog.WebForms/Global.asax
Normal file
@ -0,0 +1 @@
|
|||||||
|
<%@ Application Codebehind="Global.asax.cs" Inherits="Microsoft.eShopOnContainers.Catalog.WebForms.Global" Language="C#" %>
|
41
src/Web/Catalog.WebForms/Catalog.WebForms/Global.asax.cs
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
using Autofac;
|
||||||
|
using eShopOnContainers.Core.Services.Catalog;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.Configuration;
|
||||||
|
using System.Web.Optimization;
|
||||||
|
using System.Web.Routing;
|
||||||
|
using System.Web.Security;
|
||||||
|
using System.Web.SessionState;
|
||||||
|
|
||||||
|
namespace Microsoft.eShopOnContainers.Catalog.WebForms
|
||||||
|
{
|
||||||
|
public class Global : HttpApplication
|
||||||
|
{
|
||||||
|
|
||||||
|
void Application_Start(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// Code that runs on application startup
|
||||||
|
RouteConfig.RegisterRoutes(RouteTable.Routes);
|
||||||
|
BundleConfig.RegisterBundles(BundleTable.Bundles);
|
||||||
|
|
||||||
|
// Register Containers:
|
||||||
|
var settings= WebConfigurationManager.AppSettings;
|
||||||
|
var useFake = settings["usefake"];
|
||||||
|
bool fake = useFake == "true";
|
||||||
|
var builder = new ContainerBuilder();
|
||||||
|
if (fake)
|
||||||
|
{
|
||||||
|
builder.RegisterType<CatalogMockService>()
|
||||||
|
.As<ICatalogService>();
|
||||||
|
} else {
|
||||||
|
builder.RegisterType<CatalogMockService>()
|
||||||
|
.As<ICatalogService>();
|
||||||
|
}
|
||||||
|
var container = builder.Build();
|
||||||
|
Application.Add("container", container);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
// Taken from https://github.com/dotnet/eShopOnContainers/blob/vs2017/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Catalog/CatalogBrand.cs
|
||||||
|
// Issue: How to make this DRY and still support the monolithic lift and shift scenario?
|
||||||
|
|
||||||
|
namespace eShopOnContainers.Core.Models.Catalog
|
||||||
|
{
|
||||||
|
public class CatalogBrand
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string Brand { get; set; }
|
||||||
|
|
||||||
|
public override string ToString() => Brand;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
// Taken from https://github.com/dotnet/eShopOnContainers/blob/vs2017/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Catalog/CatalogItem.cs
|
||||||
|
// Issue: How to make this DRY and still support the monolithic lift and shift scenario?
|
||||||
|
namespace eShopOnContainers.Core.Models.Catalog
|
||||||
|
{
|
||||||
|
public class CatalogItem
|
||||||
|
{
|
||||||
|
public string Id { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Description { get; set; }
|
||||||
|
public decimal Price { get; set; }
|
||||||
|
public string PictureUri { get; set; }
|
||||||
|
public int CatalogBrandId { get; set; }
|
||||||
|
public string CatalogBrand { get; set; }
|
||||||
|
public int CatalogTypeId { get; set; }
|
||||||
|
public string CatalogType { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace eShopOnContainers.Core.Models.Catalog
|
||||||
|
{
|
||||||
|
public class CatalogRoot
|
||||||
|
{
|
||||||
|
public int PageIndex { get; set; }
|
||||||
|
public int PageSize { get; set; }
|
||||||
|
public int Count { get; set; }
|
||||||
|
public List<CatalogItem> Data { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
// Taken from https://github.com/dotnet/eShopOnContainers/blob/vs2017/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Catalog/CatalogType.cs
|
||||||
|
// Issue: How to make this DRY and still support the monolithic lift and shift scenario?
|
||||||
|
namespace eShopOnContainers.Core.Models.Catalog
|
||||||
|
{
|
||||||
|
public class CatalogType
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string Type { get; set; }
|
||||||
|
|
||||||
|
public override string ToString() => Type;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
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("Catalog.WebForms")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("Catalog.WebForms")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2017")]
|
||||||
|
[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("07b42e24-32f8-4c10-99a8-0fb5ac6bfebb")]
|
||||||
|
|
||||||
|
// 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 Revision and Build Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
@ -0,0 +1,34 @@
|
|||||||
|
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/DetailsView.js
|
||||||
|
function DetailsView() {
|
||||||
|
this.pageIndex = null;
|
||||||
|
this.dataKeys = null;
|
||||||
|
this.createPropertyString = DetailsView_createPropertyString;
|
||||||
|
this.setStateField = DetailsView_setStateValue;
|
||||||
|
this.getHiddenFieldContents = DetailsView_getHiddenFieldContents;
|
||||||
|
this.stateField = null;
|
||||||
|
this.panelElement = null;
|
||||||
|
this.callback = null;
|
||||||
|
}
|
||||||
|
function DetailsView_createPropertyString() {
|
||||||
|
return createPropertyStringFromValues_DetailsView(this.pageIndex, this.dataKeys);
|
||||||
|
}
|
||||||
|
function DetailsView_setStateValue() {
|
||||||
|
this.stateField.value = this.createPropertyString();
|
||||||
|
}
|
||||||
|
function DetailsView_OnCallback (result, context) {
|
||||||
|
var value = new String(result);
|
||||||
|
var valsArray = value.split("|");
|
||||||
|
var innerHtml = valsArray[2];
|
||||||
|
for (var i = 3; i < valsArray.length; i++) {
|
||||||
|
innerHtml += "|" + valsArray[i];
|
||||||
|
}
|
||||||
|
context.panelElement.innerHTML = innerHtml;
|
||||||
|
context.stateField.value = createPropertyStringFromValues_DetailsView(valsArray[0], valsArray[1]);
|
||||||
|
}
|
||||||
|
function DetailsView_getHiddenFieldContents(arg) {
|
||||||
|
return arg + "|" + this.stateField.value;
|
||||||
|
}
|
||||||
|
function createPropertyStringFromValues_DetailsView(pageIndex, dataKeys) {
|
||||||
|
var value = new Array(pageIndex, dataKeys);
|
||||||
|
return value.join("|");
|
||||||
|
}
|
@ -0,0 +1,93 @@
|
|||||||
|
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/WebForms.js
|
||||||
|
function WebForm_FindFirstFocusableChild(control) {
|
||||||
|
if (!control || !(control.tagName)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
var tagName = control.tagName.toLowerCase();
|
||||||
|
if (tagName == "undefined") {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
var children = control.childNodes;
|
||||||
|
if (children) {
|
||||||
|
for (var i = 0; i < children.length; i++) {
|
||||||
|
try {
|
||||||
|
if (WebForm_CanFocus(children[i])) {
|
||||||
|
return children[i];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var focused = WebForm_FindFirstFocusableChild(children[i]);
|
||||||
|
if (WebForm_CanFocus(focused)) {
|
||||||
|
return focused;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
function WebForm_AutoFocus(focusId) {
|
||||||
|
var targetControl;
|
||||||
|
if (__nonMSDOMBrowser) {
|
||||||
|
targetControl = document.getElementById(focusId);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
targetControl = document.all[focusId];
|
||||||
|
}
|
||||||
|
var focused = targetControl;
|
||||||
|
if (targetControl && (!WebForm_CanFocus(targetControl)) ) {
|
||||||
|
focused = WebForm_FindFirstFocusableChild(targetControl);
|
||||||
|
}
|
||||||
|
if (focused) {
|
||||||
|
try {
|
||||||
|
focused.focus();
|
||||||
|
if (__nonMSDOMBrowser) {
|
||||||
|
focused.scrollIntoView(false);
|
||||||
|
}
|
||||||
|
if (window.__smartNav) {
|
||||||
|
window.__smartNav.ae = focused.id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebForm_CanFocus(element) {
|
||||||
|
if (!element || !(element.tagName)) return false;
|
||||||
|
var tagName = element.tagName.toLowerCase();
|
||||||
|
return (!(element.disabled) &&
|
||||||
|
(!(element.type) || element.type.toLowerCase() != "hidden") &&
|
||||||
|
WebForm_IsFocusableTag(tagName) &&
|
||||||
|
WebForm_IsInVisibleContainer(element)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
function WebForm_IsFocusableTag(tagName) {
|
||||||
|
return (tagName == "input" ||
|
||||||
|
tagName == "textarea" ||
|
||||||
|
tagName == "select" ||
|
||||||
|
tagName == "button" ||
|
||||||
|
tagName == "a");
|
||||||
|
}
|
||||||
|
function WebForm_IsInVisibleContainer(ctrl) {
|
||||||
|
var current = ctrl;
|
||||||
|
while((typeof(current) != "undefined") && (current != null)) {
|
||||||
|
if (current.disabled ||
|
||||||
|
( typeof(current.style) != "undefined" &&
|
||||||
|
( ( typeof(current.style.display) != "undefined" &&
|
||||||
|
current.style.display == "none") ||
|
||||||
|
( typeof(current.style.visibility) != "undefined" &&
|
||||||
|
current.style.visibility == "hidden") ) ) ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (typeof(current.parentNode) != "undefined" &&
|
||||||
|
current.parentNode != null &&
|
||||||
|
current.parentNode != current &&
|
||||||
|
current.parentNode.tagName.toLowerCase() != "body") {
|
||||||
|
current = current.parentNode;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/GridView.js
|
||||||
|
function GridView() {
|
||||||
|
this.pageIndex = null;
|
||||||
|
this.sortExpression = null;
|
||||||
|
this.sortDirection = null;
|
||||||
|
this.dataKeys = null;
|
||||||
|
this.createPropertyString = GridView_createPropertyString;
|
||||||
|
this.setStateField = GridView_setStateValue;
|
||||||
|
this.getHiddenFieldContents = GridView_getHiddenFieldContents;
|
||||||
|
this.stateField = null;
|
||||||
|
this.panelElement = null;
|
||||||
|
this.callback = null;
|
||||||
|
}
|
||||||
|
function GridView_createPropertyString() {
|
||||||
|
return createPropertyStringFromValues_GridView(this.pageIndex, this.sortDirection, this.sortExpression, this.dataKeys);
|
||||||
|
}
|
||||||
|
function GridView_setStateValue() {
|
||||||
|
this.stateField.value = this.createPropertyString();
|
||||||
|
}
|
||||||
|
function GridView_OnCallback (result, context) {
|
||||||
|
var value = new String(result);
|
||||||
|
var valsArray = value.split("|");
|
||||||
|
var innerHtml = valsArray[4];
|
||||||
|
for (var i = 5; i < valsArray.length; i++) {
|
||||||
|
innerHtml += "|" + valsArray[i];
|
||||||
|
}
|
||||||
|
context.panelElement.innerHTML = innerHtml;
|
||||||
|
context.stateField.value = createPropertyStringFromValues_GridView(valsArray[0], valsArray[1], valsArray[2], valsArray[3]);
|
||||||
|
}
|
||||||
|
function GridView_getHiddenFieldContents(arg) {
|
||||||
|
return arg + "|" + this.stateField.value;
|
||||||
|
}
|
||||||
|
function createPropertyStringFromValues_GridView(pageIndex, sortDirection, sortExpression, dataKeys) {
|
||||||
|
var value = new Array(pageIndex, sortDirection, sortExpression, dataKeys);
|
||||||
|
return value.join("|");
|
||||||
|
}
|
6
src/Web/Catalog.WebForms/Catalog.WebForms/Scripts/WebForms/MSAjax/MicrosoftAjax.js
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/MicrosoftAjaxTimer.js
|
||||||
|
//----------------------------------------------------------
|
||||||
|
// Copyright (C) Microsoft Corporation. All rights reserved.
|
||||||
|
//----------------------------------------------------------
|
||||||
|
// MicrosoftAjaxTimer.js
|
||||||
|
Type._registerScript("Timer.js",["MicrosoftAjaxComponentModel.js"]);Sys.UI._Timer=function(a){Sys.UI._Timer.initializeBase(this,[a]);this._interval=60000;this._enabled=true;this._postbackPending=false;this._raiseTickDelegate=null;this._endRequestHandlerDelegate=null;this._timer=null;this._pageRequestManager=null;this._uniqueID=null};Sys.UI._Timer.prototype={get_enabled:function(){return this._enabled},set_enabled:function(a){this._enabled=a},get_interval:function(){return this._interval},set_interval:function(a){this._interval=a},get_uniqueID:function(){return this._uniqueID},set_uniqueID:function(a){this._uniqueID=a},dispose:function(){this._stopTimer();if(this._pageRequestManager!==null)this._pageRequestManager.remove_endRequest(this._endRequestHandlerDelegate);Sys.UI._Timer.callBaseMethod(this,"dispose")},_doPostback:function(){__doPostBack(this.get_uniqueID(),"")},_handleEndRequest:function(c,b){var a=b.get_dataItems()[this.get_id()];if(a)this._update(a[0],a[1]);if(this._postbackPending===true&&this._pageRequestManager!==null&&this._pageRequestManager.get_isInAsyncPostBack()===false){this._postbackPending=false;this._doPostback()}},initialize:function(){Sys.UI._Timer.callBaseMethod(this,"initialize");this._raiseTickDelegate=Function.createDelegate(this,this._raiseTick);this._endRequestHandlerDelegate=Function.createDelegate(this,this._handleEndRequest);if(Sys.WebForms&&Sys.WebForms.PageRequestManager)this._pageRequestManager=Sys.WebForms.PageRequestManager.getInstance();if(this._pageRequestManager!==null)this._pageRequestManager.add_endRequest(this._endRequestHandlerDelegate);if(this.get_enabled())this._startTimer()},_raiseTick:function(){this._startTimer();if(this._pageRequestManager===null||!this._pageRequestManager.get_isInAsyncPostBack()){this._doPostback();this._postbackPending=false}else this._postbackPending=true},_startTimer:function(){this._timer=window.setTimeout(Function.createDelegate(this,this._raiseTick),this.get_interval())},_stopTimer:function(){if(this._timer!==null){window.clearTimeout(this._timer);this._timer=null}},_update:function(c,b){var a=!this.get_enabled(),d=this.get_interval()!==b;if(!a&&(!c||d)){this._stopTimer();a=true}this.set_enabled(c);this.set_interval(b);if(this.get_enabled()&&a)this._startTimer()}};Sys.UI._Timer.registerClass("Sys.UI._Timer",Sys.UI.Control);
|
@ -0,0 +1,6 @@
|
|||||||
|
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/MicrosoftAjaxWebServices.js
|
||||||
|
//----------------------------------------------------------
|
||||||
|
// Copyright (C) Microsoft Corporation. All rights reserved.
|
||||||
|
//----------------------------------------------------------
|
||||||
|
// MicrosoftAjaxWebServices.js
|
||||||
|
Type._registerScript("MicrosoftAjaxWebServices.js",["MicrosoftAjaxNetwork.js"]);Type.registerNamespace("Sys.Net");Sys.Net.WebServiceProxy=function(){};Sys.Net.WebServiceProxy.prototype={get_timeout:function(){return this._timeout||0},set_timeout:function(a){if(a<0)throw Error.argumentOutOfRange("value",a,Sys.Res.invalidTimeout);this._timeout=a},get_defaultUserContext:function(){return typeof this._userContext==="undefined"?null:this._userContext},set_defaultUserContext:function(a){this._userContext=a},get_defaultSucceededCallback:function(){return this._succeeded||null},set_defaultSucceededCallback:function(a){this._succeeded=a},get_defaultFailedCallback:function(){return this._failed||null},set_defaultFailedCallback:function(a){this._failed=a},get_enableJsonp:function(){return !!this._jsonp},set_enableJsonp:function(a){this._jsonp=a},get_path:function(){return this._path||null},set_path:function(a){this._path=a},get_jsonpCallbackParameter:function(){return this._callbackParameter||"callback"},set_jsonpCallbackParameter:function(a){this._callbackParameter=a},_invoke:function(d,e,g,f,c,b,a){c=c||this.get_defaultSucceededCallback();b=b||this.get_defaultFailedCallback();if(a===null||typeof a==="undefined")a=this.get_defaultUserContext();return Sys.Net.WebServiceProxy.invoke(d,e,g,f,c,b,a,this.get_timeout(),this.get_enableJsonp(),this.get_jsonpCallbackParameter())}};Sys.Net.WebServiceProxy.registerClass("Sys.Net.WebServiceProxy");Sys.Net.WebServiceProxy.invoke=function(q,a,m,l,j,b,g,e,w,p){var i=w!==false?Sys.Net.WebServiceProxy._xdomain.exec(q):null,c,n=i&&i.length===3&&(i[1]!==location.protocol||i[2]!==location.host);m=n||m;if(n){p=p||"callback";c="_jsonp"+Sys._jsonp++}if(!l)l={};var r=l;if(!m||!r)r={};var s,h,f=null,k,o=null,u=Sys.Net.WebRequest._createUrl(a?q+"/"+encodeURIComponent(a):q,r,n?p+"=Sys."+c:null);if(n){s=document.createElement("script");s.src=u;k=new Sys._ScriptLoaderTask(s,function(d,b){if(!b||c)t({Message:String.format(Sys.Res.webServiceFailedNoMsg,a)},-1)});function v(){if(f===null)return;f=null;h=new Sys.Net.WebServiceError(true,String.format(Sys.Res.webServiceTimedOut,a));k.dispose();delete Sys[c];if(b)b(h,g,a)}function t(d,e){if(f!==null){window.clearTimeout(f);f=null}k.dispose();delete Sys[c];c=null;if(typeof e!=="undefined"&&e!==200){if(b){h=new Sys.Net.WebServiceError(false,d.Message||String.format(Sys.Res.webServiceFailedNoMsg,a),d.StackTrace||null,d.ExceptionType||null,d);h._statusCode=e;b(h,g,a)}}else if(j)j(d,g,a)}Sys[c]=t;e=e||Sys.Net.WebRequestManager.get_defaultTimeout();if(e>0)f=window.setTimeout(v,e);k.execute();return null}var d=new Sys.Net.WebRequest;d.set_url(u);d.get_headers()["Content-Type"]="application/json; charset=utf-8";if(!m){o=Sys.Serialization.JavaScriptSerializer.serialize(l);if(o==="{}")o=""}d.set_body(o);d.add_completed(x);if(e&&e>0)d.set_timeout(e);d.invoke();function x(d){if(d.get_responseAvailable()){var f=d.get_statusCode(),c=null;try{var e=d.getResponseHeader("Content-Type");if(e.startsWith("application/json"))c=d.get_object();else if(e.startsWith("text/xml"))c=d.get_xml();else c=d.get_responseData()}catch(m){}var k=d.getResponseHeader("jsonerror"),h=k==="true";if(h){if(c)c=new Sys.Net.WebServiceError(false,c.Message,c.StackTrace,c.ExceptionType,c)}else if(e.startsWith("application/json"))c=!c||typeof c.d==="undefined"?c:c.d;if(f<200||f>=300||h){if(b){if(!c||!h)c=new Sys.Net.WebServiceError(false,String.format(Sys.Res.webServiceFailedNoMsg,a));c._statusCode=f;b(c,g,a)}}else if(j)j(c,g,a)}else{var i;if(d.get_timedOut())i=String.format(Sys.Res.webServiceTimedOut,a);else i=String.format(Sys.Res.webServiceFailedNoMsg,a);if(b)b(new Sys.Net.WebServiceError(d.get_timedOut(),i,"",""),g,a)}}return d};Sys.Net.WebServiceProxy._generateTypedConstructor=function(a){return function(b){if(b)for(var c in b)this[c]=b[c];this.__type=a}};Sys._jsonp=0;Sys.Net.WebServiceProxy._xdomain=/^\s*([a-zA-Z0-9\+\-\.]+\:)\/\/([^?#\/]+)/;Sys.Net.WebServiceError=function(d,e,c,a,b){this._timedOut=d;this._message=e;this._stackTrace=c;this._exceptionType=a;this._errorObject=b;this._statusCode=-1};Sys.Net.WebServiceError.prototype={get_timedOut:function(){return this._timedOut},get_statusCode:function(){return this._statusCode},get_message:function(){return this._message},get_stackTrace:function(){return this._stackTrace||""},get_exceptionType:function(){return this._exceptionType||""},get_errorObject:function(){return this._errorObject||null}};Sys.Net.WebServiceError.registerClass("Sys.Net.WebServiceError");
|
@ -0,0 +1,898 @@
|
|||||||
|
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/Menu.js
|
||||||
|
var __rootMenuItem;
|
||||||
|
var __menuInterval;
|
||||||
|
var __scrollPanel;
|
||||||
|
var __disappearAfter = 500;
|
||||||
|
function Menu_ClearInterval() {
|
||||||
|
if (__menuInterval) {
|
||||||
|
window.clearInterval(__menuInterval);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function Menu_Collapse(item) {
|
||||||
|
Menu_SetRoot(item);
|
||||||
|
if (__rootMenuItem) {
|
||||||
|
Menu_ClearInterval();
|
||||||
|
if (__disappearAfter >= 0) {
|
||||||
|
__menuInterval = window.setInterval("Menu_HideItems()", __disappearAfter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function Menu_Expand(item, horizontalOffset, verticalOffset, hideScrollers) {
|
||||||
|
Menu_ClearInterval();
|
||||||
|
var tr = item.parentNode.parentNode.parentNode.parentNode.parentNode;
|
||||||
|
var horizontal = true;
|
||||||
|
if (!tr.id) {
|
||||||
|
horizontal = false;
|
||||||
|
tr = tr.parentNode;
|
||||||
|
}
|
||||||
|
var child = Menu_FindSubMenu(item);
|
||||||
|
if (child) {
|
||||||
|
var data = Menu_GetData(item);
|
||||||
|
if (!data) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
child.rel = tr.id;
|
||||||
|
child.x = horizontalOffset;
|
||||||
|
child.y = verticalOffset;
|
||||||
|
if (horizontal) child.pos = "bottom";
|
||||||
|
PopOut_Show(child.id, hideScrollers, data);
|
||||||
|
}
|
||||||
|
Menu_SetRoot(item);
|
||||||
|
if (child) {
|
||||||
|
if (!document.body.__oldOnClick && document.body.onclick) {
|
||||||
|
document.body.__oldOnClick = document.body.onclick;
|
||||||
|
}
|
||||||
|
if (__rootMenuItem) {
|
||||||
|
document.body.onclick = Menu_HideItems;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Menu_ResetSiblings(tr);
|
||||||
|
return child;
|
||||||
|
}
|
||||||
|
function Menu_FindMenu(item) {
|
||||||
|
if (item && item.menu) return item.menu;
|
||||||
|
var tr = item.parentNode.parentNode.parentNode.parentNode.parentNode;
|
||||||
|
if (!tr.id) {
|
||||||
|
tr = tr.parentNode;
|
||||||
|
}
|
||||||
|
for (var i = tr.id.length - 1; i >= 0; i--) {
|
||||||
|
if (tr.id.charAt(i) < '0' || tr.id.charAt(i) > '9') {
|
||||||
|
var menu = WebForm_GetElementById(tr.id.substr(0, i));
|
||||||
|
if (menu) {
|
||||||
|
item.menu = menu;
|
||||||
|
return menu;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
function Menu_FindNext(item) {
|
||||||
|
var a = WebForm_GetElementByTagName(item, "A");
|
||||||
|
var parent = Menu_FindParentContainer(item);
|
||||||
|
var first = null;
|
||||||
|
if (parent) {
|
||||||
|
var links = WebForm_GetElementsByTagName(parent, "A");
|
||||||
|
var match = false;
|
||||||
|
for (var i = 0; i < links.length; i++) {
|
||||||
|
var link = links[i];
|
||||||
|
if (Menu_IsSelectable(link)) {
|
||||||
|
if (Menu_FindParentContainer(link) == parent) {
|
||||||
|
if (match) {
|
||||||
|
return link;
|
||||||
|
}
|
||||||
|
else if (!first) {
|
||||||
|
first = link;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!match && link == a) {
|
||||||
|
match = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return first;
|
||||||
|
}
|
||||||
|
function Menu_FindParentContainer(item) {
|
||||||
|
if (item.menu_ParentContainerCache) return item.menu_ParentContainerCache;
|
||||||
|
var a = (item.tagName.toLowerCase() == "a") ? item : WebForm_GetElementByTagName(item, "A");
|
||||||
|
var menu = Menu_FindMenu(a);
|
||||||
|
if (menu) {
|
||||||
|
var parent = item;
|
||||||
|
while (parent && parent.tagName &&
|
||||||
|
parent.id != menu.id &&
|
||||||
|
parent.tagName.toLowerCase() != "div") {
|
||||||
|
parent = parent.parentNode;
|
||||||
|
}
|
||||||
|
item.menu_ParentContainerCache = parent;
|
||||||
|
return parent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function Menu_FindParentItem(item) {
|
||||||
|
var parentContainer = Menu_FindParentContainer(item);
|
||||||
|
var parentContainerID = parentContainer.id;
|
||||||
|
var len = parentContainerID.length;
|
||||||
|
if (parentContainerID && parentContainerID.substr(len - 5) == "Items") {
|
||||||
|
var parentItemID = parentContainerID.substr(0, len - 5);
|
||||||
|
return WebForm_GetElementById(parentItemID);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
function Menu_FindPrevious(item) {
|
||||||
|
var a = WebForm_GetElementByTagName(item, "A");
|
||||||
|
var parent = Menu_FindParentContainer(item);
|
||||||
|
var last = null;
|
||||||
|
if (parent) {
|
||||||
|
var links = WebForm_GetElementsByTagName(parent, "A");
|
||||||
|
for (var i = 0; i < links.length; i++) {
|
||||||
|
var link = links[i];
|
||||||
|
if (Menu_IsSelectable(link)) {
|
||||||
|
if (link == a && last) {
|
||||||
|
return last;
|
||||||
|
}
|
||||||
|
if (Menu_FindParentContainer(link) == parent) {
|
||||||
|
last = link;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return last;
|
||||||
|
}
|
||||||
|
function Menu_FindSubMenu(item) {
|
||||||
|
var tr = item.parentNode.parentNode.parentNode.parentNode.parentNode;
|
||||||
|
if (!tr.id) {
|
||||||
|
tr=tr.parentNode;
|
||||||
|
}
|
||||||
|
return WebForm_GetElementById(tr.id + "Items");
|
||||||
|
}
|
||||||
|
function Menu_Focus(item) {
|
||||||
|
if (item && item.focus) {
|
||||||
|
var pos = WebForm_GetElementPosition(item);
|
||||||
|
var parentContainer = Menu_FindParentContainer(item);
|
||||||
|
if (!parentContainer.offset) {
|
||||||
|
parentContainer.offset = 0;
|
||||||
|
}
|
||||||
|
var posParent = WebForm_GetElementPosition(parentContainer);
|
||||||
|
var delta;
|
||||||
|
if (pos.y + pos.height > posParent.y + parentContainer.offset + parentContainer.clippedHeight) {
|
||||||
|
delta = pos.y + pos.height - posParent.y - parentContainer.offset - parentContainer.clippedHeight;
|
||||||
|
PopOut_Scroll(parentContainer, delta);
|
||||||
|
}
|
||||||
|
else if (pos.y < posParent.y + parentContainer.offset) {
|
||||||
|
delta = posParent.y + parentContainer.offset - pos.y;
|
||||||
|
PopOut_Scroll(parentContainer, -delta);
|
||||||
|
}
|
||||||
|
PopOut_HideScrollers(parentContainer);
|
||||||
|
item.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function Menu_GetData(item) {
|
||||||
|
if (!item.data) {
|
||||||
|
var a = (item.tagName.toLowerCase() == "a" ? item : WebForm_GetElementByTagName(item, "a"));
|
||||||
|
var menu = Menu_FindMenu(a);
|
||||||
|
try {
|
||||||
|
item.data = eval(menu.id + "_Data");
|
||||||
|
}
|
||||||
|
catch(e) {}
|
||||||
|
}
|
||||||
|
return item.data;
|
||||||
|
}
|
||||||
|
function Menu_HideItems(items) {
|
||||||
|
if (document.body.__oldOnClick) {
|
||||||
|
document.body.onclick = document.body.__oldOnClick;
|
||||||
|
document.body.__oldOnClick = null;
|
||||||
|
}
|
||||||
|
Menu_ClearInterval();
|
||||||
|
if (!items || ((typeof(items.tagName) == "undefined") && (items instanceof Event))) {
|
||||||
|
items = __rootMenuItem;
|
||||||
|
}
|
||||||
|
var table = items;
|
||||||
|
if ((typeof(table) == "undefined") || (table == null) || !table.tagName || (table.tagName.toLowerCase() != "table")) {
|
||||||
|
table = WebForm_GetElementByTagName(table, "TABLE");
|
||||||
|
}
|
||||||
|
if ((typeof(table) == "undefined") || (table == null) || !table.tagName || (table.tagName.toLowerCase() != "table")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var rows = table.rows ? table.rows : table.firstChild.rows;
|
||||||
|
var isVertical = false;
|
||||||
|
for (var r = 0; r < rows.length; r++) {
|
||||||
|
if (rows[r].id) {
|
||||||
|
isVertical = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var i, child, nextLevel;
|
||||||
|
if (isVertical) {
|
||||||
|
for(i = 0; i < rows.length; i++) {
|
||||||
|
if (rows[i].id) {
|
||||||
|
child = WebForm_GetElementById(rows[i].id + "Items");
|
||||||
|
if (child) {
|
||||||
|
Menu_HideItems(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (rows[i].cells[0]) {
|
||||||
|
nextLevel = WebForm_GetElementByTagName(rows[i].cells[0], "TABLE");
|
||||||
|
if (nextLevel) {
|
||||||
|
Menu_HideItems(nextLevel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (rows[0]) {
|
||||||
|
for(i = 0; i < rows[0].cells.length; i++) {
|
||||||
|
if (rows[0].cells[i].id) {
|
||||||
|
child = WebForm_GetElementById(rows[0].cells[i].id + "Items");
|
||||||
|
if (child) {
|
||||||
|
Menu_HideItems(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
nextLevel = WebForm_GetElementByTagName(rows[0].cells[i], "TABLE");
|
||||||
|
if (nextLevel) {
|
||||||
|
Menu_HideItems(rows[0].cells[i].firstChild);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (items && items.id) {
|
||||||
|
PopOut_Hide(items.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function Menu_HoverDisabled(item) {
|
||||||
|
var node = (item.tagName.toLowerCase() == "td") ?
|
||||||
|
item:
|
||||||
|
item.cells[0];
|
||||||
|
var data = Menu_GetData(item);
|
||||||
|
if (!data) return;
|
||||||
|
node = WebForm_GetElementByTagName(node, "table").rows[0].cells[0].childNodes[0];
|
||||||
|
if (data.disappearAfter >= 200) {
|
||||||
|
__disappearAfter = data.disappearAfter;
|
||||||
|
}
|
||||||
|
Menu_Expand(node, data.horizontalOffset, data.verticalOffset);
|
||||||
|
}
|
||||||
|
function Menu_HoverDynamic(item) {
|
||||||
|
var node = (item.tagName.toLowerCase() == "td") ?
|
||||||
|
item:
|
||||||
|
item.cells[0];
|
||||||
|
var data = Menu_GetData(item);
|
||||||
|
if (!data) return;
|
||||||
|
var nodeTable = WebForm_GetElementByTagName(node, "table");
|
||||||
|
if (data.hoverClass) {
|
||||||
|
nodeTable.hoverClass = data.hoverClass;
|
||||||
|
WebForm_AppendToClassName(nodeTable, data.hoverClass);
|
||||||
|
}
|
||||||
|
node = nodeTable.rows[0].cells[0].childNodes[0];
|
||||||
|
if (data.hoverHyperLinkClass) {
|
||||||
|
node.hoverHyperLinkClass = data.hoverHyperLinkClass;
|
||||||
|
WebForm_AppendToClassName(node, data.hoverHyperLinkClass);
|
||||||
|
}
|
||||||
|
if (data.disappearAfter >= 200) {
|
||||||
|
__disappearAfter = data.disappearAfter;
|
||||||
|
}
|
||||||
|
Menu_Expand(node, data.horizontalOffset, data.verticalOffset);
|
||||||
|
}
|
||||||
|
function Menu_HoverRoot(item) {
|
||||||
|
var node = (item.tagName.toLowerCase() == "td") ?
|
||||||
|
item:
|
||||||
|
item.cells[0];
|
||||||
|
var data = Menu_GetData(item);
|
||||||
|
if (!data) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
var nodeTable = WebForm_GetElementByTagName(node, "table");
|
||||||
|
if (data.staticHoverClass) {
|
||||||
|
nodeTable.hoverClass = data.staticHoverClass;
|
||||||
|
WebForm_AppendToClassName(nodeTable, data.staticHoverClass);
|
||||||
|
}
|
||||||
|
node = nodeTable.rows[0].cells[0].childNodes[0];
|
||||||
|
if (data.staticHoverHyperLinkClass) {
|
||||||
|
node.hoverHyperLinkClass = data.staticHoverHyperLinkClass;
|
||||||
|
WebForm_AppendToClassName(node, data.staticHoverHyperLinkClass);
|
||||||
|
}
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
function Menu_HoverStatic(item) {
|
||||||
|
var node = Menu_HoverRoot(item);
|
||||||
|
var data = Menu_GetData(item);
|
||||||
|
if (!data) return;
|
||||||
|
__disappearAfter = data.disappearAfter;
|
||||||
|
Menu_Expand(node, data.horizontalOffset, data.verticalOffset);
|
||||||
|
}
|
||||||
|
function Menu_IsHorizontal(item) {
|
||||||
|
if (item) {
|
||||||
|
var a = ((item.tagName && (item.tagName.toLowerCase == "a")) ? item : WebForm_GetElementByTagName(item, "A"));
|
||||||
|
if (!a) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
var td = a.parentNode.parentNode.parentNode.parentNode.parentNode;
|
||||||
|
if (td.id) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
function Menu_IsSelectable(link) {
|
||||||
|
return (link && link.href)
|
||||||
|
}
|
||||||
|
function Menu_Key(item) {
|
||||||
|
var event;
|
||||||
|
if (item.currentTarget) {
|
||||||
|
event = item;
|
||||||
|
item = event.currentTarget;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
event = window.event;
|
||||||
|
}
|
||||||
|
var key = (event ? event.keyCode : -1);
|
||||||
|
var data = Menu_GetData(item);
|
||||||
|
if (!data) return;
|
||||||
|
var horizontal = Menu_IsHorizontal(item);
|
||||||
|
var a = WebForm_GetElementByTagName(item, "A");
|
||||||
|
var nextItem, parentItem, previousItem;
|
||||||
|
if ((!horizontal && key == 38) || (horizontal && key == 37)) {
|
||||||
|
previousItem = Menu_FindPrevious(item);
|
||||||
|
while (previousItem && previousItem.disabled) {
|
||||||
|
previousItem = Menu_FindPrevious(previousItem);
|
||||||
|
}
|
||||||
|
if (previousItem) {
|
||||||
|
Menu_Focus(previousItem);
|
||||||
|
Menu_Expand(previousItem, data.horizontalOffset, data.verticalOffset, true);
|
||||||
|
event.cancelBubble = true;
|
||||||
|
if (event.stopPropagation) event.stopPropagation();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((!horizontal && key == 40) || (horizontal && key == 39)) {
|
||||||
|
if (horizontal) {
|
||||||
|
var subMenu = Menu_FindSubMenu(a);
|
||||||
|
if (subMenu && subMenu.style && subMenu.style.visibility &&
|
||||||
|
subMenu.style.visibility.toLowerCase() == "hidden") {
|
||||||
|
Menu_Expand(a, data.horizontalOffset, data.verticalOffset, true);
|
||||||
|
event.cancelBubble = true;
|
||||||
|
if (event.stopPropagation) event.stopPropagation();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
nextItem = Menu_FindNext(item);
|
||||||
|
while (nextItem && nextItem.disabled) {
|
||||||
|
nextItem = Menu_FindNext(nextItem);
|
||||||
|
}
|
||||||
|
if (nextItem) {
|
||||||
|
Menu_Focus(nextItem);
|
||||||
|
Menu_Expand(nextItem, data.horizontalOffset, data.verticalOffset, true);
|
||||||
|
event.cancelBubble = true;
|
||||||
|
if (event.stopPropagation) event.stopPropagation();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((!horizontal && key == 39) || (horizontal && key == 40)) {
|
||||||
|
var children = Menu_Expand(a, data.horizontalOffset, data.verticalOffset, true);
|
||||||
|
if (children) {
|
||||||
|
var firstChild;
|
||||||
|
children = WebForm_GetElementsByTagName(children, "A");
|
||||||
|
for (var i = 0; i < children.length; i++) {
|
||||||
|
if (!children[i].disabled && Menu_IsSelectable(children[i])) {
|
||||||
|
firstChild = children[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (firstChild) {
|
||||||
|
Menu_Focus(firstChild);
|
||||||
|
Menu_Expand(firstChild, data.horizontalOffset, data.verticalOffset, true);
|
||||||
|
event.cancelBubble = true;
|
||||||
|
if (event.stopPropagation) event.stopPropagation();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
parentItem = Menu_FindParentItem(item);
|
||||||
|
while (parentItem && !Menu_IsHorizontal(parentItem)) {
|
||||||
|
parentItem = Menu_FindParentItem(parentItem);
|
||||||
|
}
|
||||||
|
if (parentItem) {
|
||||||
|
nextItem = Menu_FindNext(parentItem);
|
||||||
|
while (nextItem && nextItem.disabled) {
|
||||||
|
nextItem = Menu_FindNext(nextItem);
|
||||||
|
}
|
||||||
|
if (nextItem) {
|
||||||
|
Menu_Focus(nextItem);
|
||||||
|
Menu_Expand(nextItem, data.horizontalOffset, data.verticalOffset, true);
|
||||||
|
event.cancelBubble = true;
|
||||||
|
if (event.stopPropagation) event.stopPropagation();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((!horizontal && key == 37) || (horizontal && key == 38)) {
|
||||||
|
parentItem = Menu_FindParentItem(item);
|
||||||
|
if (parentItem) {
|
||||||
|
if (Menu_IsHorizontal(parentItem)) {
|
||||||
|
previousItem = Menu_FindPrevious(parentItem);
|
||||||
|
while (previousItem && previousItem.disabled) {
|
||||||
|
previousItem = Menu_FindPrevious(previousItem);
|
||||||
|
}
|
||||||
|
if (previousItem) {
|
||||||
|
Menu_Focus(previousItem);
|
||||||
|
Menu_Expand(previousItem, data.horizontalOffset, data.verticalOffset, true);
|
||||||
|
event.cancelBubble = true;
|
||||||
|
if (event.stopPropagation) event.stopPropagation();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var parentA = WebForm_GetElementByTagName(parentItem, "A");
|
||||||
|
if (parentA) {
|
||||||
|
Menu_Focus(parentA);
|
||||||
|
}
|
||||||
|
Menu_ResetSiblings(parentItem);
|
||||||
|
event.cancelBubble = true;
|
||||||
|
if (event.stopPropagation) event.stopPropagation();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (key == 27) {
|
||||||
|
Menu_HideItems();
|
||||||
|
event.cancelBubble = true;
|
||||||
|
if (event.stopPropagation) event.stopPropagation();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function Menu_ResetSiblings(item) {
|
||||||
|
var table = (item.tagName.toLowerCase() == "td") ?
|
||||||
|
item.parentNode.parentNode.parentNode :
|
||||||
|
item.parentNode.parentNode;
|
||||||
|
var isVertical = false;
|
||||||
|
for (var r = 0; r < table.rows.length; r++) {
|
||||||
|
if (table.rows[r].id) {
|
||||||
|
isVertical = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var i, child, childNode;
|
||||||
|
if (isVertical) {
|
||||||
|
for(i = 0; i < table.rows.length; i++) {
|
||||||
|
childNode = table.rows[i];
|
||||||
|
if (childNode != item) {
|
||||||
|
child = WebForm_GetElementById(childNode.id + "Items");
|
||||||
|
if (child) {
|
||||||
|
Menu_HideItems(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for(i = 0; i < table.rows[0].cells.length; i++) {
|
||||||
|
childNode = table.rows[0].cells[i];
|
||||||
|
if (childNode != item) {
|
||||||
|
child = WebForm_GetElementById(childNode.id + "Items");
|
||||||
|
if (child) {
|
||||||
|
Menu_HideItems(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Menu_ResetTopMenus(table, table, 0, true);
|
||||||
|
}
|
||||||
|
function Menu_ResetTopMenus(table, doNotReset, level, up) {
|
||||||
|
var i, child, childNode;
|
||||||
|
if (up && table.id == "") {
|
||||||
|
var parentTable = table.parentNode.parentNode.parentNode.parentNode;
|
||||||
|
if (parentTable.tagName.toLowerCase() == "table") {
|
||||||
|
Menu_ResetTopMenus(parentTable, doNotReset, level + 1, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (level == 0 && table != doNotReset) {
|
||||||
|
if (table.rows[0].id) {
|
||||||
|
for(i = 0; i < table.rows.length; i++) {
|
||||||
|
childNode = table.rows[i];
|
||||||
|
child = WebForm_GetElementById(childNode.id + "Items");
|
||||||
|
if (child) {
|
||||||
|
Menu_HideItems(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for(i = 0; i < table.rows[0].cells.length; i++) {
|
||||||
|
childNode = table.rows[0].cells[i];
|
||||||
|
child = WebForm_GetElementById(childNode.id + "Items");
|
||||||
|
if (child) {
|
||||||
|
Menu_HideItems(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (level > 0) {
|
||||||
|
for (i = 0; i < table.rows.length; i++) {
|
||||||
|
for (var j = 0; j < table.rows[i].cells.length; j++) {
|
||||||
|
var subTable = table.rows[i].cells[j].firstChild;
|
||||||
|
if (subTable && subTable.tagName.toLowerCase() == "table") {
|
||||||
|
Menu_ResetTopMenus(subTable, doNotReset, level - 1, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function Menu_RestoreInterval() {
|
||||||
|
if (__menuInterval && __rootMenuItem) {
|
||||||
|
Menu_ClearInterval();
|
||||||
|
__menuInterval = window.setInterval("Menu_HideItems()", __disappearAfter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function Menu_SetRoot(item) {
|
||||||
|
var newRoot = Menu_FindMenu(item);
|
||||||
|
if (newRoot) {
|
||||||
|
if (__rootMenuItem && __rootMenuItem != newRoot) {
|
||||||
|
Menu_HideItems();
|
||||||
|
}
|
||||||
|
__rootMenuItem = newRoot;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function Menu_Unhover(item) {
|
||||||
|
var node = (item.tagName.toLowerCase() == "td") ?
|
||||||
|
item:
|
||||||
|
item.cells[0];
|
||||||
|
var nodeTable = WebForm_GetElementByTagName(node, "table");
|
||||||
|
if (nodeTable.hoverClass) {
|
||||||
|
WebForm_RemoveClassName(nodeTable, nodeTable.hoverClass);
|
||||||
|
}
|
||||||
|
node = nodeTable.rows[0].cells[0].childNodes[0];
|
||||||
|
if (node.hoverHyperLinkClass) {
|
||||||
|
WebForm_RemoveClassName(node, node.hoverHyperLinkClass);
|
||||||
|
}
|
||||||
|
Menu_Collapse(node);
|
||||||
|
}
|
||||||
|
function PopOut_Clip(element, y, height) {
|
||||||
|
if (element && element.style) {
|
||||||
|
element.style.clip = "rect(" + y + "px auto " + (y + height) + "px auto)";
|
||||||
|
element.style.overflow = "hidden";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function PopOut_Down(scroller) {
|
||||||
|
Menu_ClearInterval();
|
||||||
|
var panel;
|
||||||
|
if (scroller) {
|
||||||
|
panel = scroller.parentNode
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
panel = __scrollPanel;
|
||||||
|
}
|
||||||
|
if (panel && ((panel.offset + panel.clippedHeight) < panel.physicalHeight)) {
|
||||||
|
PopOut_Scroll(panel, 2)
|
||||||
|
__scrollPanel = panel;
|
||||||
|
PopOut_ShowScrollers(panel);
|
||||||
|
PopOut_Stop();
|
||||||
|
__scrollPanel.interval = window.setInterval("PopOut_Down()", 8);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PopOut_ShowScrollers(panel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function PopOut_Hide(panelId) {
|
||||||
|
var panel = WebForm_GetElementById(panelId);
|
||||||
|
if (panel && panel.tagName.toLowerCase() == "div") {
|
||||||
|
panel.style.visibility = "hidden";
|
||||||
|
panel.style.display = "none";
|
||||||
|
panel.offset = 0;
|
||||||
|
panel.scrollTop = 0;
|
||||||
|
var table = WebForm_GetElementByTagName(panel, "TABLE");
|
||||||
|
if (table) {
|
||||||
|
WebForm_SetElementY(table, 0);
|
||||||
|
}
|
||||||
|
if (window.navigator && window.navigator.appName == "Microsoft Internet Explorer" &&
|
||||||
|
!window.opera) {
|
||||||
|
var childFrameId = panel.id + "_MenuIFrame";
|
||||||
|
var childFrame = WebForm_GetElementById(childFrameId);
|
||||||
|
if (childFrame) {
|
||||||
|
childFrame.style.display = "none";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function PopOut_HideScrollers(panel) {
|
||||||
|
if (panel && panel.style) {
|
||||||
|
var up = WebForm_GetElementById(panel.id + "Up");
|
||||||
|
var dn = WebForm_GetElementById(panel.id + "Dn");
|
||||||
|
if (up) {
|
||||||
|
up.style.visibility = "hidden";
|
||||||
|
up.style.display = "none";
|
||||||
|
}
|
||||||
|
if (dn) {
|
||||||
|
dn.style.visibility = "hidden";
|
||||||
|
dn.style.display = "none";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function PopOut_Position(panel, hideScrollers) {
|
||||||
|
if (window.opera) {
|
||||||
|
panel.parentNode.removeChild(panel);
|
||||||
|
document.forms[0].appendChild(panel);
|
||||||
|
}
|
||||||
|
var rel = WebForm_GetElementById(panel.rel);
|
||||||
|
var relTable = WebForm_GetElementByTagName(rel, "TABLE");
|
||||||
|
var relCoordinates = WebForm_GetElementPosition(relTable ? relTable : rel);
|
||||||
|
var panelCoordinates = WebForm_GetElementPosition(panel);
|
||||||
|
var panelHeight = ((typeof(panel.physicalHeight) != "undefined") && (panel.physicalHeight != null)) ?
|
||||||
|
panel.physicalHeight :
|
||||||
|
panelCoordinates.height;
|
||||||
|
panel.physicalHeight = panelHeight;
|
||||||
|
var panelParentCoordinates;
|
||||||
|
if (panel.offsetParent) {
|
||||||
|
panelParentCoordinates = WebForm_GetElementPosition(panel.offsetParent);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
panelParentCoordinates = new Object();
|
||||||
|
panelParentCoordinates.x = 0;
|
||||||
|
panelParentCoordinates.y = 0;
|
||||||
|
}
|
||||||
|
var overflowElement = WebForm_GetElementById("__overFlowElement");
|
||||||
|
if (!overflowElement) {
|
||||||
|
overflowElement = document.createElement("img");
|
||||||
|
overflowElement.id="__overFlowElement";
|
||||||
|
WebForm_SetElementWidth(overflowElement, 1);
|
||||||
|
document.body.appendChild(overflowElement);
|
||||||
|
}
|
||||||
|
WebForm_SetElementHeight(overflowElement, panelHeight + relCoordinates.y + parseInt(panel.y ? panel.y : 0));
|
||||||
|
overflowElement.style.visibility = "visible";
|
||||||
|
overflowElement.style.display = "inline";
|
||||||
|
var clientHeight = 0;
|
||||||
|
var clientWidth = 0;
|
||||||
|
if (window.innerHeight) {
|
||||||
|
clientHeight = window.innerHeight;
|
||||||
|
clientWidth = window.innerWidth;
|
||||||
|
}
|
||||||
|
else if (document.documentElement && document.documentElement.clientHeight) {
|
||||||
|
clientHeight = document.documentElement.clientHeight;
|
||||||
|
clientWidth = document.documentElement.clientWidth;
|
||||||
|
}
|
||||||
|
else if (document.body && document.body.clientHeight) {
|
||||||
|
clientHeight = document.body.clientHeight;
|
||||||
|
clientWidth = document.body.clientWidth;
|
||||||
|
}
|
||||||
|
var scrollTop = 0;
|
||||||
|
var scrollLeft = 0;
|
||||||
|
if (typeof(window.pageYOffset) != "undefined") {
|
||||||
|
scrollTop = window.pageYOffset;
|
||||||
|
scrollLeft = window.pageXOffset;
|
||||||
|
}
|
||||||
|
else if (document.documentElement && (typeof(document.documentElement.scrollTop) != "undefined")) {
|
||||||
|
scrollTop = document.documentElement.scrollTop;
|
||||||
|
scrollLeft = document.documentElement.scrollLeft;
|
||||||
|
}
|
||||||
|
else if (document.body && (typeof(document.body.scrollTop) != "undefined")) {
|
||||||
|
scrollTop = document.body.scrollTop;
|
||||||
|
scrollLeft = document.body.scrollLeft;
|
||||||
|
}
|
||||||
|
overflowElement.style.visibility = "hidden";
|
||||||
|
overflowElement.style.display = "none";
|
||||||
|
var bottomWindowBorder = clientHeight + scrollTop;
|
||||||
|
var rightWindowBorder = clientWidth + scrollLeft;
|
||||||
|
var position = panel.pos;
|
||||||
|
if ((typeof(position) == "undefined") || (position == null) || (position == "")) {
|
||||||
|
position = (WebForm_GetElementDir(rel) == "rtl" ? "middleleft" : "middleright");
|
||||||
|
}
|
||||||
|
position = position.toLowerCase();
|
||||||
|
var y = relCoordinates.y + parseInt(panel.y ? panel.y : 0) - panelParentCoordinates.y;
|
||||||
|
var borderParent = (rel && rel.parentNode && rel.parentNode.parentNode && rel.parentNode.parentNode.parentNode
|
||||||
|
&& rel.parentNode.parentNode.parentNode.tagName.toLowerCase() == "div") ?
|
||||||
|
rel.parentNode.parentNode.parentNode : null;
|
||||||
|
WebForm_SetElementY(panel, y);
|
||||||
|
PopOut_SetPanelHeight(panel, panelHeight, true);
|
||||||
|
var clip = false;
|
||||||
|
var overflow;
|
||||||
|
if (position.indexOf("top") != -1) {
|
||||||
|
y -= panelHeight;
|
||||||
|
WebForm_SetElementY(panel, y);
|
||||||
|
if (y < -panelParentCoordinates.y) {
|
||||||
|
y = -panelParentCoordinates.y;
|
||||||
|
WebForm_SetElementY(panel, y);
|
||||||
|
if (panelHeight > clientHeight - 2) {
|
||||||
|
clip = true;
|
||||||
|
PopOut_SetPanelHeight(panel, clientHeight - 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (position.indexOf("bottom") != -1) {
|
||||||
|
y += relCoordinates.height;
|
||||||
|
WebForm_SetElementY(panel, y);
|
||||||
|
}
|
||||||
|
overflow = y + panelParentCoordinates.y + panelHeight - bottomWindowBorder;
|
||||||
|
if (overflow > 0) {
|
||||||
|
y -= overflow;
|
||||||
|
WebForm_SetElementY(panel, y);
|
||||||
|
if (y < -panelParentCoordinates.y) {
|
||||||
|
y = 2 - panelParentCoordinates.y + scrollTop;
|
||||||
|
WebForm_SetElementY(panel, y);
|
||||||
|
clip = true;
|
||||||
|
PopOut_SetPanelHeight(panel, clientHeight - 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!clip) {
|
||||||
|
PopOut_SetPanelHeight(panel, panel.clippedHeight, true);
|
||||||
|
}
|
||||||
|
var panelParentOffsetY = 0;
|
||||||
|
if (panel.offsetParent) {
|
||||||
|
panelParentOffsetY = WebForm_GetElementPosition(panel.offsetParent).y;
|
||||||
|
}
|
||||||
|
var panelY = ((typeof(panel.originY) != "undefined") && (panel.originY != null)) ?
|
||||||
|
panel.originY :
|
||||||
|
y - panelParentOffsetY;
|
||||||
|
panel.originY = panelY;
|
||||||
|
if (!hideScrollers) {
|
||||||
|
PopOut_ShowScrollers(panel);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PopOut_HideScrollers(panel);
|
||||||
|
}
|
||||||
|
var x = relCoordinates.x + parseInt(panel.x ? panel.x : 0) - panelParentCoordinates.x;
|
||||||
|
if (borderParent && borderParent.clientLeft) {
|
||||||
|
x += 2 * borderParent.clientLeft;
|
||||||
|
}
|
||||||
|
WebForm_SetElementX(panel, x);
|
||||||
|
if (position.indexOf("left") != -1) {
|
||||||
|
x -= panelCoordinates.width;
|
||||||
|
WebForm_SetElementX(panel, x);
|
||||||
|
if (x < -panelParentCoordinates.x) {
|
||||||
|
WebForm_SetElementX(panel, -panelParentCoordinates.x);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (position.indexOf("right") != -1) {
|
||||||
|
x += relCoordinates.width;
|
||||||
|
WebForm_SetElementX(panel, x);
|
||||||
|
}
|
||||||
|
overflow = x + panelParentCoordinates.x + panelCoordinates.width - rightWindowBorder;
|
||||||
|
if (overflow > 0) {
|
||||||
|
if (position.indexOf("bottom") == -1 && relCoordinates.x > panelCoordinates.width) {
|
||||||
|
x -= relCoordinates.width + panelCoordinates.width;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
x -= overflow;
|
||||||
|
}
|
||||||
|
WebForm_SetElementX(panel, x);
|
||||||
|
if (x < -panelParentCoordinates.x) {
|
||||||
|
WebForm_SetElementX(panel, -panelParentCoordinates.x);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function PopOut_Scroll(panel, offsetDelta) {
|
||||||
|
var table = WebForm_GetElementByTagName(panel, "TABLE");
|
||||||
|
if (!table) return;
|
||||||
|
table.style.position = "relative";
|
||||||
|
var tableY = (table.style.top ? parseInt(table.style.top) : 0);
|
||||||
|
panel.offset += offsetDelta;
|
||||||
|
WebForm_SetElementY(table, tableY - offsetDelta);
|
||||||
|
}
|
||||||
|
function PopOut_SetPanelHeight(element, height, doNotClip) {
|
||||||
|
if (element && element.style) {
|
||||||
|
var size = WebForm_GetElementPosition(element);
|
||||||
|
element.physicalWidth = size.width;
|
||||||
|
element.clippedHeight = height;
|
||||||
|
WebForm_SetElementHeight(element, height - (element.clientTop ? (2 * element.clientTop) : 0));
|
||||||
|
if (doNotClip && element.style) {
|
||||||
|
element.style.clip = "rect(auto auto auto auto)";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PopOut_Clip(element, 0, height);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function PopOut_Show(panelId, hideScrollers, data) {
|
||||||
|
var panel = WebForm_GetElementById(panelId);
|
||||||
|
if (panel && panel.tagName.toLowerCase() == "div") {
|
||||||
|
panel.style.visibility = "visible";
|
||||||
|
panel.style.display = "inline";
|
||||||
|
if (!panel.offset || hideScrollers) {
|
||||||
|
panel.scrollTop = 0;
|
||||||
|
panel.offset = 0;
|
||||||
|
var table = WebForm_GetElementByTagName(panel, "TABLE");
|
||||||
|
if (table) {
|
||||||
|
WebForm_SetElementY(table, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PopOut_Position(panel, hideScrollers);
|
||||||
|
var z = 1;
|
||||||
|
var isIE = window.navigator && window.navigator.appName == "Microsoft Internet Explorer" && !window.opera;
|
||||||
|
if (isIE && data) {
|
||||||
|
var childFrameId = panel.id + "_MenuIFrame";
|
||||||
|
var childFrame = WebForm_GetElementById(childFrameId);
|
||||||
|
var parent = panel.offsetParent;
|
||||||
|
if (!childFrame) {
|
||||||
|
childFrame = document.createElement("iframe");
|
||||||
|
childFrame.id = childFrameId;
|
||||||
|
childFrame.src = (data.iframeUrl ? data.iframeUrl : "about:blank");
|
||||||
|
childFrame.style.position = "absolute";
|
||||||
|
childFrame.style.display = "none";
|
||||||
|
childFrame.scrolling = "no";
|
||||||
|
childFrame.frameBorder = "0";
|
||||||
|
if (parent.tagName.toLowerCase() == "html") {
|
||||||
|
document.body.appendChild(childFrame);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
parent.appendChild(childFrame);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var pos = WebForm_GetElementPosition(panel);
|
||||||
|
var parentPos = WebForm_GetElementPosition(parent);
|
||||||
|
WebForm_SetElementX(childFrame, pos.x - parentPos.x);
|
||||||
|
WebForm_SetElementY(childFrame, pos.y - parentPos.y);
|
||||||
|
WebForm_SetElementWidth(childFrame, pos.width);
|
||||||
|
WebForm_SetElementHeight(childFrame, pos.height);
|
||||||
|
childFrame.style.display = "block";
|
||||||
|
if (panel.currentStyle && panel.currentStyle.zIndex && panel.currentStyle.zIndex != "auto") {
|
||||||
|
z = panel.currentStyle.zIndex;
|
||||||
|
}
|
||||||
|
else if (panel.style.zIndex) {
|
||||||
|
z = panel.style.zIndex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panel.style.zIndex = z;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function PopOut_ShowScrollers(panel) {
|
||||||
|
if (panel && panel.style) {
|
||||||
|
var up = WebForm_GetElementById(panel.id + "Up");
|
||||||
|
var dn = WebForm_GetElementById(panel.id + "Dn");
|
||||||
|
var cnt = 0;
|
||||||
|
if (up && dn) {
|
||||||
|
if (panel.offset && panel.offset > 0) {
|
||||||
|
up.style.visibility = "visible";
|
||||||
|
up.style.display = "inline";
|
||||||
|
cnt++;
|
||||||
|
if (panel.clientWidth) {
|
||||||
|
WebForm_SetElementWidth(up, panel.clientWidth
|
||||||
|
- (up.clientLeft ? (2 * up.clientLeft) : 0));
|
||||||
|
}
|
||||||
|
WebForm_SetElementY(up, 0);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
up.style.visibility = "hidden";
|
||||||
|
up.style.display = "none";
|
||||||
|
}
|
||||||
|
if (panel.offset + panel.clippedHeight + 2 <= panel.physicalHeight) {
|
||||||
|
dn.style.visibility = "visible";
|
||||||
|
dn.style.display = "inline";
|
||||||
|
cnt++;
|
||||||
|
if (panel.clientWidth) {
|
||||||
|
WebForm_SetElementWidth(dn, panel.clientWidth
|
||||||
|
- (dn.clientLeft ? (2 * dn.clientLeft) : 0));
|
||||||
|
}
|
||||||
|
WebForm_SetElementY(dn, panel.clippedHeight - WebForm_GetElementPosition(dn).height
|
||||||
|
- (panel.clientTop ? (2 * panel.clientTop) : 0));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
dn.style.visibility = "hidden";
|
||||||
|
dn.style.display = "none";
|
||||||
|
}
|
||||||
|
if (cnt == 0) {
|
||||||
|
panel.style.clip = "rect(auto auto auto auto)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function PopOut_Stop() {
|
||||||
|
if (__scrollPanel && __scrollPanel.interval) {
|
||||||
|
window.clearInterval(__scrollPanel.interval);
|
||||||
|
}
|
||||||
|
Menu_RestoreInterval();
|
||||||
|
}
|
||||||
|
function PopOut_Up(scroller) {
|
||||||
|
Menu_ClearInterval();
|
||||||
|
var panel;
|
||||||
|
if (scroller) {
|
||||||
|
panel = scroller.parentNode
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
panel = __scrollPanel;
|
||||||
|
}
|
||||||
|
if (panel && panel.offset && panel.offset > 0) {
|
||||||
|
PopOut_Scroll(panel, -2);
|
||||||
|
__scrollPanel = panel;
|
||||||
|
PopOut_ShowScrollers(panel);
|
||||||
|
PopOut_Stop();
|
||||||
|
__scrollPanel.interval = window.setInterval("PopOut_Up()", 8);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,697 @@
|
|||||||
|
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/MenuStandards.js
|
||||||
|
if (!window.Sys) { window.Sys = {}; }
|
||||||
|
if (!Sys.WebForms) { Sys.WebForms = {}; }
|
||||||
|
Sys.WebForms.Menu = function(options) {
|
||||||
|
this.items = [];
|
||||||
|
this.depth = options.depth || 1;
|
||||||
|
this.parentMenuItem = options.parentMenuItem;
|
||||||
|
this.element = Sys.WebForms.Menu._domHelper.getElement(options.element);
|
||||||
|
if (this.element.tagName === 'DIV') {
|
||||||
|
var containerElement = this.element;
|
||||||
|
this.element = Sys.WebForms.Menu._domHelper.firstChild(containerElement);
|
||||||
|
this.element.tabIndex = options.tabIndex || 0;
|
||||||
|
options.element = containerElement;
|
||||||
|
options.menu = this;
|
||||||
|
this.container = new Sys.WebForms._MenuContainer(options);
|
||||||
|
Sys.WebForms.Menu._domHelper.setFloat(this.element, this.container.rightToLeft ? "right" : "left");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.container = options.container;
|
||||||
|
this.keyMap = options.keyMap;
|
||||||
|
}
|
||||||
|
Sys.WebForms.Menu._elementObjectMapper.map(this.element, this);
|
||||||
|
if (this.parentMenuItem && this.parentMenuItem.parentMenu) {
|
||||||
|
this.parentMenu = this.parentMenuItem.parentMenu;
|
||||||
|
this.rootMenu = this.parentMenu.rootMenu;
|
||||||
|
if (!this.element.id) {
|
||||||
|
this.element.id = (this.container.element.id || 'menu') + ':submenu:' + Sys.WebForms.Menu._elementObjectMapper._computedId;
|
||||||
|
}
|
||||||
|
if (this.depth > this.container.staticDisplayLevels) {
|
||||||
|
this.displayMode = "dynamic";
|
||||||
|
this.element.style.display = "none";
|
||||||
|
this.element.style.position = "absolute";
|
||||||
|
if (this.rootMenu && this.container.orientation === 'horizontal' && this.parentMenu.isStatic()) {
|
||||||
|
this.element.style.top = "100%";
|
||||||
|
if (this.container.rightToLeft) {
|
||||||
|
this.element.style.right = "0px";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.element.style.left = "0px";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.element.style.top = "0px";
|
||||||
|
if (this.container.rightToLeft) {
|
||||||
|
this.element.style.right = "100%";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.element.style.left = "100%";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (this.container.rightToLeft) {
|
||||||
|
this.keyMap = Sys.WebForms.Menu._keyboardMapping.verticalRtl;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.keyMap = Sys.WebForms.Menu._keyboardMapping.vertical;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.displayMode = "static";
|
||||||
|
this.element.style.display = "block";
|
||||||
|
if (this.container.orientation === 'horizontal') {
|
||||||
|
Sys.WebForms.Menu._domHelper.setFloat(this.element, this.container.rightToLeft ? "right" : "left");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Sys.WebForms.Menu._domHelper.appendCssClass(this.element, this.displayMode);
|
||||||
|
var children = this.element.childNodes;
|
||||||
|
var count = children.length;
|
||||||
|
for (var i = 0; i < count; i++) {
|
||||||
|
var node = children[i];
|
||||||
|
if (node.nodeType !== 1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
var topLevelMenuItem = null;
|
||||||
|
if (this.parentMenuItem) {
|
||||||
|
topLevelMenuItem = this.parentMenuItem.topLevelMenuItem;
|
||||||
|
}
|
||||||
|
var menuItem = new Sys.WebForms.MenuItem(this, node, topLevelMenuItem);
|
||||||
|
var previousMenuItem = this.items[this.items.length - 1];
|
||||||
|
if (previousMenuItem) {
|
||||||
|
menuItem.previousSibling = previousMenuItem;
|
||||||
|
previousMenuItem.nextSibling = menuItem;
|
||||||
|
}
|
||||||
|
this.items[this.items.length] = menuItem;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Sys.WebForms.Menu.prototype = {
|
||||||
|
blur: function() { if (this.container) this.container.blur(); },
|
||||||
|
collapse: function() {
|
||||||
|
this.each(function(menuItem) {
|
||||||
|
menuItem.hover(false);
|
||||||
|
menuItem.blur();
|
||||||
|
var childMenu = menuItem.childMenu;
|
||||||
|
if (childMenu) {
|
||||||
|
childMenu.collapse();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.hide();
|
||||||
|
},
|
||||||
|
doDispose: function() { this.each(function(item) { item.doDispose(); }); },
|
||||||
|
each: function(fn) {
|
||||||
|
var count = this.items.length;
|
||||||
|
for (var i = 0; i < count; i++) {
|
||||||
|
fn(this.items[i]);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
firstChild: function() { return this.items[0]; },
|
||||||
|
focus: function() { if (this.container) this.container.focus(); },
|
||||||
|
get_displayed: function() { return this.element.style.display !== 'none'; },
|
||||||
|
get_focused: function() {
|
||||||
|
if (this.container) {
|
||||||
|
return this.container.focused;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
handleKeyPress: function(keyCode) {
|
||||||
|
if (this.keyMap.contains(keyCode)) {
|
||||||
|
if (this.container.focusedMenuItem) {
|
||||||
|
this.container.focusedMenuItem.navigate(keyCode);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var firstChild = this.firstChild();
|
||||||
|
if (firstChild) {
|
||||||
|
this.container.navigateTo(firstChild);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
hide: function() {
|
||||||
|
if (!this.get_displayed()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.each(function(item) {
|
||||||
|
if (item.childMenu) {
|
||||||
|
item.childMenu.hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (!this.isRoot()) {
|
||||||
|
if (this.get_focused()) {
|
||||||
|
this.container.navigateTo(this.parentMenuItem);
|
||||||
|
}
|
||||||
|
this.element.style.display = 'none';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
isRoot: function() { return this.rootMenu === this; },
|
||||||
|
isStatic: function() { return this.displayMode === 'static'; },
|
||||||
|
lastChild: function() { return this.items[this.items.length - 1]; },
|
||||||
|
show: function() { this.element.style.display = 'block'; }
|
||||||
|
};
|
||||||
|
if (Sys.WebForms.Menu.registerClass) {
|
||||||
|
Sys.WebForms.Menu.registerClass('Sys.WebForms.Menu');
|
||||||
|
}
|
||||||
|
Sys.WebForms.MenuItem = function(parentMenu, listElement, topLevelMenuItem) {
|
||||||
|
this.keyMap = parentMenu.keyMap;
|
||||||
|
this.parentMenu = parentMenu;
|
||||||
|
this.container = parentMenu.container;
|
||||||
|
this.element = listElement;
|
||||||
|
this.topLevelMenuItem = topLevelMenuItem || this;
|
||||||
|
this._anchor = Sys.WebForms.Menu._domHelper.firstChild(listElement);
|
||||||
|
while (this._anchor && this._anchor.tagName !== 'A') {
|
||||||
|
this._anchor = Sys.WebForms.Menu._domHelper.nextSibling(this._anchor);
|
||||||
|
}
|
||||||
|
if (this._anchor) {
|
||||||
|
this._anchor.tabIndex = -1;
|
||||||
|
var subMenu = this._anchor;
|
||||||
|
while (subMenu && subMenu.tagName !== 'UL') {
|
||||||
|
subMenu = Sys.WebForms.Menu._domHelper.nextSibling(subMenu);
|
||||||
|
}
|
||||||
|
if (subMenu) {
|
||||||
|
this.childMenu = new Sys.WebForms.Menu({ element: subMenu, parentMenuItem: this, depth: parentMenu.depth + 1, container: this.container, keyMap: this.keyMap });
|
||||||
|
if (!this.childMenu.isStatic()) {
|
||||||
|
Sys.WebForms.Menu._domHelper.appendCssClass(this.element, 'has-popup');
|
||||||
|
Sys.WebForms.Menu._domHelper.appendAttributeValue(this.element, 'aria-haspopup', this.childMenu.element.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Sys.WebForms.Menu._elementObjectMapper.map(listElement, this);
|
||||||
|
Sys.WebForms.Menu._domHelper.appendAttributeValue(listElement, 'role', 'menuitem');
|
||||||
|
Sys.WebForms.Menu._domHelper.appendCssClass(listElement, parentMenu.displayMode);
|
||||||
|
if (this._anchor) {
|
||||||
|
Sys.WebForms.Menu._domHelper.appendCssClass(this._anchor, parentMenu.displayMode);
|
||||||
|
}
|
||||||
|
this.element.style.position = "relative";
|
||||||
|
if (this.parentMenu.depth == 1 && this.container.orientation == 'horizontal') {
|
||||||
|
Sys.WebForms.Menu._domHelper.setFloat(this.element, this.container.rightToLeft ? "right" : "left");
|
||||||
|
}
|
||||||
|
if (!this.container.disabled) {
|
||||||
|
Sys.WebForms.Menu._domHelper.addEvent(this.element, 'mouseover', Sys.WebForms.MenuItem._onmouseover);
|
||||||
|
Sys.WebForms.Menu._domHelper.addEvent(this.element, 'mouseout', Sys.WebForms.MenuItem._onmouseout);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Sys.WebForms.MenuItem.prototype = {
|
||||||
|
applyUp: function(fn, condition) {
|
||||||
|
condition = condition || function(menuItem) { return menuItem; };
|
||||||
|
var menuItem = this;
|
||||||
|
var lastMenuItem = null;
|
||||||
|
while (condition(menuItem)) {
|
||||||
|
fn(menuItem);
|
||||||
|
lastMenuItem = menuItem;
|
||||||
|
menuItem = menuItem.parentMenu.parentMenuItem;
|
||||||
|
}
|
||||||
|
return lastMenuItem;
|
||||||
|
},
|
||||||
|
blur: function() { this.setTabIndex(-1); },
|
||||||
|
doDispose: function() {
|
||||||
|
Sys.WebForms.Menu._domHelper.removeEvent(this.element, 'mouseover', Sys.WebForms.MenuItem._onmouseover);
|
||||||
|
Sys.WebForms.Menu._domHelper.removeEvent(this.element, 'mouseout', Sys.WebForms.MenuItem._onmouseout);
|
||||||
|
if (this.childMenu) {
|
||||||
|
this.childMenu.doDispose();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
focus: function() {
|
||||||
|
if (!this.parentMenu.get_displayed()) {
|
||||||
|
this.parentMenu.show();
|
||||||
|
}
|
||||||
|
this.setTabIndex(0);
|
||||||
|
this.container.focused = true;
|
||||||
|
this._anchor.focus();
|
||||||
|
},
|
||||||
|
get_highlighted: function() { return /(^|\s)highlighted(\s|$)/.test(this._anchor.className); },
|
||||||
|
getTabIndex: function() { return this._anchor.tabIndex; },
|
||||||
|
highlight: function(highlighting) {
|
||||||
|
if (highlighting) {
|
||||||
|
this.applyUp(function(menuItem) {
|
||||||
|
menuItem.parentMenu.parentMenuItem.highlight(true);
|
||||||
|
},
|
||||||
|
function(menuItem) {
|
||||||
|
return !menuItem.parentMenu.isStatic() && menuItem.parentMenu.parentMenuItem;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
Sys.WebForms.Menu._domHelper.appendCssClass(this._anchor, 'highlighted');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Sys.WebForms.Menu._domHelper.removeCssClass(this._anchor, 'highlighted');
|
||||||
|
this.setTabIndex(-1);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
hover: function(hovering) {
|
||||||
|
if (hovering) {
|
||||||
|
var currentHoveredItem = this.container.hoveredMenuItem;
|
||||||
|
if (currentHoveredItem) {
|
||||||
|
currentHoveredItem.hover(false);
|
||||||
|
}
|
||||||
|
var currentFocusedItem = this.container.focusedMenuItem;
|
||||||
|
if (currentFocusedItem && currentFocusedItem !== this) {
|
||||||
|
currentFocusedItem.hover(false);
|
||||||
|
}
|
||||||
|
this.applyUp(function(menuItem) {
|
||||||
|
if (menuItem.childMenu && !menuItem.childMenu.get_displayed()) {
|
||||||
|
menuItem.childMenu.show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.container.hoveredMenuItem = this;
|
||||||
|
this.highlight(true);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var menuItem = this;
|
||||||
|
while (menuItem) {
|
||||||
|
menuItem.highlight(false);
|
||||||
|
if (menuItem.childMenu) {
|
||||||
|
if (!menuItem.childMenu.isStatic()) {
|
||||||
|
menuItem.childMenu.hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
menuItem = menuItem.parentMenu.parentMenuItem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
isSiblingOf: function(menuItem) { return menuItem.parentMenu === this.parentMenu; },
|
||||||
|
mouseout: function() {
|
||||||
|
var menuItem = this,
|
||||||
|
id = this.container.pendingMouseoutId,
|
||||||
|
disappearAfter = this.container.disappearAfter;
|
||||||
|
if (id) {
|
||||||
|
window.clearTimeout(id);
|
||||||
|
}
|
||||||
|
if (disappearAfter > -1) {
|
||||||
|
this.container.pendingMouseoutId =
|
||||||
|
window.setTimeout(function() { menuItem.hover(false); }, disappearAfter);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mouseover: function() {
|
||||||
|
var id = this.container.pendingMouseoutId;
|
||||||
|
if (id) {
|
||||||
|
window.clearTimeout(id);
|
||||||
|
this.container.pendingMouseoutId = null;
|
||||||
|
}
|
||||||
|
this.hover(true);
|
||||||
|
if (this.container.menu.get_focused()) {
|
||||||
|
this.container.navigateTo(this);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
navigate: function(keyCode) {
|
||||||
|
switch (this.keyMap[keyCode]) {
|
||||||
|
case this.keyMap.next:
|
||||||
|
this.navigateNext();
|
||||||
|
break;
|
||||||
|
case this.keyMap.previous:
|
||||||
|
this.navigatePrevious();
|
||||||
|
break;
|
||||||
|
case this.keyMap.child:
|
||||||
|
this.navigateChild();
|
||||||
|
break;
|
||||||
|
case this.keyMap.parent:
|
||||||
|
this.navigateParent();
|
||||||
|
break;
|
||||||
|
case this.keyMap.tab:
|
||||||
|
this.navigateOut();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
navigateChild: function() {
|
||||||
|
var subMenu = this.childMenu;
|
||||||
|
if (subMenu) {
|
||||||
|
var firstChild = subMenu.firstChild();
|
||||||
|
if (firstChild) {
|
||||||
|
this.container.navigateTo(firstChild);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (this.container.orientation === 'horizontal') {
|
||||||
|
var nextItem = this.topLevelMenuItem.nextSibling || this.topLevelMenuItem.parentMenu.firstChild();
|
||||||
|
if (nextItem == this.topLevelMenuItem) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.topLevelMenuItem.childMenu.hide();
|
||||||
|
this.container.navigateTo(nextItem);
|
||||||
|
if (nextItem.childMenu) {
|
||||||
|
this.container.navigateTo(nextItem.childMenu.firstChild());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
navigateNext: function() {
|
||||||
|
if (this.childMenu) {
|
||||||
|
this.childMenu.hide();
|
||||||
|
}
|
||||||
|
var nextMenuItem = this.nextSibling;
|
||||||
|
if (!nextMenuItem && this.parentMenu.isRoot()) {
|
||||||
|
nextMenuItem = this.parentMenu.parentMenuItem;
|
||||||
|
if (nextMenuItem) {
|
||||||
|
nextMenuItem = nextMenuItem.nextSibling;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!nextMenuItem) {
|
||||||
|
nextMenuItem = this.parentMenu.firstChild();
|
||||||
|
}
|
||||||
|
if (nextMenuItem) {
|
||||||
|
this.container.navigateTo(nextMenuItem);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
navigateOut: function() {
|
||||||
|
this.parentMenu.blur();
|
||||||
|
},
|
||||||
|
navigateParent: function() {
|
||||||
|
var parentMenu = this.parentMenu,
|
||||||
|
horizontal = this.container.orientation === 'horizontal';
|
||||||
|
if (!parentMenu) return;
|
||||||
|
if (horizontal && this.childMenu && parentMenu.isRoot()) {
|
||||||
|
this.navigateChild();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (parentMenu.parentMenuItem && !parentMenu.isRoot()) {
|
||||||
|
if (horizontal && this.parentMenu.depth === 2) {
|
||||||
|
var previousItem = this.parentMenu.parentMenuItem.previousSibling;
|
||||||
|
if (!previousItem) {
|
||||||
|
previousItem = this.parentMenu.rootMenu.lastChild();
|
||||||
|
}
|
||||||
|
this.topLevelMenuItem.childMenu.hide();
|
||||||
|
this.container.navigateTo(previousItem);
|
||||||
|
if (previousItem.childMenu) {
|
||||||
|
this.container.navigateTo(previousItem.childMenu.firstChild());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.parentMenu.hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
navigatePrevious: function() {
|
||||||
|
if (this.childMenu) {
|
||||||
|
this.childMenu.hide();
|
||||||
|
}
|
||||||
|
var previousMenuItem = this.previousSibling;
|
||||||
|
if (previousMenuItem) {
|
||||||
|
var childMenu = previousMenuItem.childMenu;
|
||||||
|
if (childMenu && childMenu.isRoot()) {
|
||||||
|
previousMenuItem = childMenu.lastChild();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!previousMenuItem && this.parentMenu.isRoot()) {
|
||||||
|
previousMenuItem = this.parentMenu.parentMenuItem;
|
||||||
|
}
|
||||||
|
if (!previousMenuItem) {
|
||||||
|
previousMenuItem = this.parentMenu.lastChild();
|
||||||
|
}
|
||||||
|
if (previousMenuItem) {
|
||||||
|
this.container.navigateTo(previousMenuItem);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setTabIndex: function(index) { if (this._anchor) this._anchor.tabIndex = index; }
|
||||||
|
};
|
||||||
|
Sys.WebForms.MenuItem._onmouseout = function(e) {
|
||||||
|
var menuItem = Sys.WebForms.Menu._elementObjectMapper.getMappedObject(this);
|
||||||
|
if (!menuItem) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
menuItem.mouseout();
|
||||||
|
Sys.WebForms.Menu._domHelper.cancelEvent(e);
|
||||||
|
};
|
||||||
|
Sys.WebForms.MenuItem._onmouseover = function(e) {
|
||||||
|
var menuItem = Sys.WebForms.Menu._elementObjectMapper.getMappedObject(this);
|
||||||
|
if (!menuItem) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
menuItem.mouseover();
|
||||||
|
Sys.WebForms.Menu._domHelper.cancelEvent(e);
|
||||||
|
};
|
||||||
|
Sys.WebForms.Menu._domHelper = {
|
||||||
|
addEvent: function(element, eventName, fn, useCapture) {
|
||||||
|
if (element.addEventListener) {
|
||||||
|
element.addEventListener(eventName, fn, !!useCapture);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
element['on' + eventName] = fn;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
appendAttributeValue: function(element, name, value) {
|
||||||
|
this.updateAttributeValue('append', element, name, value);
|
||||||
|
},
|
||||||
|
appendCssClass: function(element, value) {
|
||||||
|
this.updateClassName('append', element, name, value);
|
||||||
|
},
|
||||||
|
appendString: function(getString, setString, value) {
|
||||||
|
var currentValue = getString();
|
||||||
|
if (!currentValue) {
|
||||||
|
setString(value);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var regex = this._regexes.getRegex('(^| )' + value + '($| )');
|
||||||
|
if (regex.test(currentValue)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
setString(currentValue + ' ' + value);
|
||||||
|
},
|
||||||
|
cancelEvent: function(e) {
|
||||||
|
var event = e || window.event;
|
||||||
|
if (event) {
|
||||||
|
event.cancelBubble = true;
|
||||||
|
if (event.stopPropagation) {
|
||||||
|
event.stopPropagation();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
contains: function(ancestor, descendant) {
|
||||||
|
for (; descendant && (descendant !== ancestor); descendant = descendant.parentNode) { }
|
||||||
|
return !!descendant;
|
||||||
|
},
|
||||||
|
firstChild: function(element) {
|
||||||
|
var child = element.firstChild;
|
||||||
|
if (child && child.nodeType !== 1) {
|
||||||
|
child = this.nextSibling(child);
|
||||||
|
}
|
||||||
|
return child;
|
||||||
|
},
|
||||||
|
getElement: function(elementOrId) { return typeof elementOrId === 'string' ? document.getElementById(elementOrId) : elementOrId; },
|
||||||
|
getElementDirection: function(element) {
|
||||||
|
if (element) {
|
||||||
|
if (element.dir) {
|
||||||
|
return element.dir;
|
||||||
|
}
|
||||||
|
return this.getElementDirection(element.parentNode);
|
||||||
|
}
|
||||||
|
return "ltr";
|
||||||
|
},
|
||||||
|
getKeyCode: function(event) { return event.keyCode || event.charCode || 0; },
|
||||||
|
insertAfter: function(element, elementToInsert) {
|
||||||
|
var next = element.nextSibling;
|
||||||
|
if (next) {
|
||||||
|
element.parentNode.insertBefore(elementToInsert, next);
|
||||||
|
}
|
||||||
|
else if (element.parentNode) {
|
||||||
|
element.parentNode.appendChild(elementToInsert);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
nextSibling: function(element) {
|
||||||
|
var sibling = element.nextSibling;
|
||||||
|
while (sibling) {
|
||||||
|
if (sibling.nodeType === 1) {
|
||||||
|
return sibling;
|
||||||
|
}
|
||||||
|
sibling = sibling.nextSibling;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
removeAttributeValue: function(element, name, value) {
|
||||||
|
this.updateAttributeValue('remove', element, name, value);
|
||||||
|
},
|
||||||
|
removeCssClass: function(element, value) {
|
||||||
|
this.updateClassName('remove', element, name, value);
|
||||||
|
},
|
||||||
|
removeEvent: function(element, eventName, fn, useCapture) {
|
||||||
|
if (element.removeEventListener) {
|
||||||
|
element.removeEventListener(eventName, fn, !!useCapture);
|
||||||
|
}
|
||||||
|
else if (element.detachEvent) {
|
||||||
|
element.detachEvent('on' + eventName, fn)
|
||||||
|
}
|
||||||
|
element['on' + eventName] = null;
|
||||||
|
},
|
||||||
|
removeString: function(getString, setString, valueToRemove) {
|
||||||
|
var currentValue = getString();
|
||||||
|
if (currentValue) {
|
||||||
|
var regex = this._regexes.getRegex('(\\s|\\b)' + valueToRemove + '$|\\b' + valueToRemove + '\\s+');
|
||||||
|
setString(currentValue.replace(regex, ''));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setFloat: function(element, direction) {
|
||||||
|
element.style.styleFloat = direction;
|
||||||
|
element.style.cssFloat = direction;
|
||||||
|
},
|
||||||
|
updateAttributeValue: function(operation, element, name, value) {
|
||||||
|
this[operation + 'String'](
|
||||||
|
function() {
|
||||||
|
return element.getAttribute(name);
|
||||||
|
},
|
||||||
|
function(newValue) {
|
||||||
|
element.setAttribute(name, newValue);
|
||||||
|
},
|
||||||
|
value
|
||||||
|
);
|
||||||
|
},
|
||||||
|
updateClassName: function(operation, element, name, value) {
|
||||||
|
this[operation + 'String'](
|
||||||
|
function() {
|
||||||
|
return element.className;
|
||||||
|
},
|
||||||
|
function(newValue) {
|
||||||
|
element.className = newValue;
|
||||||
|
},
|
||||||
|
value
|
||||||
|
);
|
||||||
|
},
|
||||||
|
_regexes: {
|
||||||
|
getRegex: function(pattern) {
|
||||||
|
var regex = this[pattern];
|
||||||
|
if (!regex) {
|
||||||
|
this[pattern] = regex = new RegExp(pattern);
|
||||||
|
}
|
||||||
|
return regex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Sys.WebForms.Menu._elementObjectMapper = {
|
||||||
|
_computedId: 0,
|
||||||
|
_mappings: {},
|
||||||
|
_mappingIdName: 'Sys.WebForms.Menu.Mapping',
|
||||||
|
getMappedObject: function(element) {
|
||||||
|
var id = element[this._mappingIdName];
|
||||||
|
if (id) {
|
||||||
|
return this._mappings[this._mappingIdName + ':' + id];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
map: function(element, theObject) {
|
||||||
|
var mappedObject = element[this._mappingIdName];
|
||||||
|
if (mappedObject === theObject) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var objectId = element[this._mappingIdName] || element.id || '%' + (++this._computedId);
|
||||||
|
element[this._mappingIdName] = objectId;
|
||||||
|
this._mappings[this._mappingIdName + ':' + objectId] = theObject;
|
||||||
|
theObject.mappingId = objectId;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Sys.WebForms.Menu._keyboardMapping = new (function() {
|
||||||
|
var LEFT_ARROW = 37;
|
||||||
|
var UP_ARROW = 38;
|
||||||
|
var RIGHT_ARROW = 39;
|
||||||
|
var DOWN_ARROW = 40;
|
||||||
|
var TAB = 9;
|
||||||
|
var ESCAPE = 27;
|
||||||
|
this.vertical = { next: 0, previous: 1, child: 2, parent: 3, tab: 4 };
|
||||||
|
this.vertical[DOWN_ARROW] = this.vertical.next;
|
||||||
|
this.vertical[UP_ARROW] = this.vertical.previous;
|
||||||
|
this.vertical[RIGHT_ARROW] = this.vertical.child;
|
||||||
|
this.vertical[LEFT_ARROW] = this.vertical.parent;
|
||||||
|
this.vertical[TAB] = this.vertical[ESCAPE] = this.vertical.tab;
|
||||||
|
this.verticalRtl = { next: 0, previous: 1, child: 2, parent: 3, tab: 4 };
|
||||||
|
this.verticalRtl[DOWN_ARROW] = this.verticalRtl.next;
|
||||||
|
this.verticalRtl[UP_ARROW] = this.verticalRtl.previous;
|
||||||
|
this.verticalRtl[LEFT_ARROW] = this.verticalRtl.child;
|
||||||
|
this.verticalRtl[RIGHT_ARROW] = this.verticalRtl.parent;
|
||||||
|
this.verticalRtl[TAB] = this.verticalRtl[ESCAPE] = this.verticalRtl.tab;
|
||||||
|
this.horizontal = { next: 0, previous: 1, child: 2, parent: 3, tab: 4 };
|
||||||
|
this.horizontal[RIGHT_ARROW] = this.horizontal.next;
|
||||||
|
this.horizontal[LEFT_ARROW] = this.horizontal.previous;
|
||||||
|
this.horizontal[DOWN_ARROW] = this.horizontal.child;
|
||||||
|
this.horizontal[UP_ARROW] = this.horizontal.parent;
|
||||||
|
this.horizontal[TAB] = this.horizontal[ESCAPE] = this.horizontal.tab;
|
||||||
|
this.horizontalRtl = { next: 0, previous: 1, child: 2, parent: 3, tab: 4 };
|
||||||
|
this.horizontalRtl[RIGHT_ARROW] = this.horizontalRtl.previous;
|
||||||
|
this.horizontalRtl[LEFT_ARROW] = this.horizontalRtl.next;
|
||||||
|
this.horizontalRtl[DOWN_ARROW] = this.horizontalRtl.child;
|
||||||
|
this.horizontalRtl[UP_ARROW] = this.horizontalRtl.parent;
|
||||||
|
this.horizontalRtl[TAB] = this.horizontalRtl[ESCAPE] = this.horizontalRtl.tab;
|
||||||
|
this.horizontal.contains = this.horizontalRtl.contains = this.vertical.contains = this.verticalRtl.contains = function(keycode) {
|
||||||
|
return this[keycode] != null;
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
Sys.WebForms._MenuContainer = function(options) {
|
||||||
|
this.focused = false;
|
||||||
|
this.disabled = options.disabled;
|
||||||
|
this.staticDisplayLevels = options.staticDisplayLevels || 1;
|
||||||
|
this.element = options.element;
|
||||||
|
this.orientation = options.orientation || 'vertical';
|
||||||
|
this.disappearAfter = options.disappearAfter;
|
||||||
|
this.rightToLeft = Sys.WebForms.Menu._domHelper.getElementDirection(this.element) === 'rtl';
|
||||||
|
Sys.WebForms.Menu._elementObjectMapper.map(this.element, this);
|
||||||
|
this.menu = options.menu;
|
||||||
|
this.menu.rootMenu = this.menu;
|
||||||
|
this.menu.displayMode = 'static';
|
||||||
|
this.menu.element.style.position = 'relative';
|
||||||
|
this.menu.element.style.width = 'auto';
|
||||||
|
if (this.orientation === 'vertical') {
|
||||||
|
Sys.WebForms.Menu._domHelper.appendAttributeValue(this.menu.element, 'role', 'menu');
|
||||||
|
if (this.rightToLeft) {
|
||||||
|
this.menu.keyMap = Sys.WebForms.Menu._keyboardMapping.verticalRtl;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.menu.keyMap = Sys.WebForms.Menu._keyboardMapping.vertical;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Sys.WebForms.Menu._domHelper.appendAttributeValue(this.menu.element, 'role', 'menubar');
|
||||||
|
if (this.rightToLeft) {
|
||||||
|
this.menu.keyMap = Sys.WebForms.Menu._keyboardMapping.horizontalRtl;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.menu.keyMap = Sys.WebForms.Menu._keyboardMapping.horizontal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var floatBreak = document.createElement('div');
|
||||||
|
floatBreak.style.clear = this.rightToLeft ? "right" : "left";
|
||||||
|
this.element.appendChild(floatBreak);
|
||||||
|
Sys.WebForms.Menu._domHelper.setFloat(this.element, this.rightToLeft ? "right" : "left");
|
||||||
|
Sys.WebForms.Menu._domHelper.insertAfter(this.element, floatBreak);
|
||||||
|
if (!this.disabled) {
|
||||||
|
Sys.WebForms.Menu._domHelper.addEvent(this.menu.element, 'focus', this._onfocus, true);
|
||||||
|
Sys.WebForms.Menu._domHelper.addEvent(this.menu.element, 'keydown', this._onkeydown);
|
||||||
|
var menuContainer = this;
|
||||||
|
this.element.dispose = function() {
|
||||||
|
if (menuContainer.element.dispose) {
|
||||||
|
menuContainer.element.dispose = null;
|
||||||
|
Sys.WebForms.Menu._domHelper.removeEvent(menuContainer.menu.element, 'focus', menuContainer._onfocus, true);
|
||||||
|
Sys.WebForms.Menu._domHelper.removeEvent(menuContainer.menu.element, 'keydown', menuContainer._onkeydown);
|
||||||
|
menuContainer.menu.doDispose();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Sys.WebForms.Menu._domHelper.addEvent(window, 'unload', function() {
|
||||||
|
if (menuContainer.element.dispose) {
|
||||||
|
menuContainer.element.dispose();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Sys.WebForms._MenuContainer.prototype = {
|
||||||
|
blur: function() {
|
||||||
|
this.focused = false;
|
||||||
|
this.isBlurring = false;
|
||||||
|
this.menu.collapse();
|
||||||
|
this.focusedMenuItem = null;
|
||||||
|
},
|
||||||
|
focus: function(e) { this.focused = true; },
|
||||||
|
navigateTo: function(menuItem) {
|
||||||
|
if (this.focusedMenuItem && this.focusedMenuItem !== this) {
|
||||||
|
this.focusedMenuItem.highlight(false);
|
||||||
|
}
|
||||||
|
menuItem.highlight(true);
|
||||||
|
menuItem.focus();
|
||||||
|
this.focusedMenuItem = menuItem;
|
||||||
|
},
|
||||||
|
_onfocus: function(e) {
|
||||||
|
var event = e || window.event;
|
||||||
|
if (event.srcElement && this) {
|
||||||
|
if (Sys.WebForms.Menu._domHelper.contains(this.element, event.srcElement)) {
|
||||||
|
if (!this.focused) {
|
||||||
|
this.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
_onkeydown: function(e) {
|
||||||
|
var thisMenu = Sys.WebForms.Menu._elementObjectMapper.getMappedObject(this);
|
||||||
|
var keyCode = Sys.WebForms.Menu._domHelper.getKeyCode(e || window.event);
|
||||||
|
if (thisMenu) {
|
||||||
|
thisMenu.handleKeyPress(keyCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
@ -0,0 +1,280 @@
|
|||||||
|
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/SmartNav.js
|
||||||
|
var snSrc;
|
||||||
|
if ((typeof(window.__smartNav) == "undefined") || (window.__smartNav == null))
|
||||||
|
{
|
||||||
|
window.__smartNav = new Object();
|
||||||
|
window.__smartNav.update = function()
|
||||||
|
{
|
||||||
|
var sn = window.__smartNav;
|
||||||
|
var fd;
|
||||||
|
document.detachEvent("onstop", sn.stopHif);
|
||||||
|
sn.inPost = false;
|
||||||
|
try { fd = frames["__hifSmartNav"].document; } catch (e) {return;}
|
||||||
|
var fdr = fd.getElementsByTagName("asp_smartnav_rdir");
|
||||||
|
if (fdr.length > 0)
|
||||||
|
{
|
||||||
|
if ((typeof(sn.sHif) == "undefined") || (sn.sHif == null))
|
||||||
|
{
|
||||||
|
sn.sHif = document.createElement("IFRAME");
|
||||||
|
sn.sHif.name = "__hifSmartNav";
|
||||||
|
sn.sHif.style.display = "none";
|
||||||
|
sn.sHif.src = snSrc;
|
||||||
|
}
|
||||||
|
try {window.location = fdr[0].url;} catch (e) {};
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var fdurl = fd.location.href;
|
||||||
|
var index = fdurl.indexOf(snSrc);
|
||||||
|
if ((index != -1 && index == fdurl.length-snSrc.length)
|
||||||
|
|| fdurl == "about:blank")
|
||||||
|
return;
|
||||||
|
var fdurlb = fdurl.split("?")[0];
|
||||||
|
if (document.location.href.indexOf(fdurlb) < 0)
|
||||||
|
{
|
||||||
|
document.location.href=fdurl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
sn._savedOnLoad = window.onload;
|
||||||
|
window.onload = null;
|
||||||
|
window.__smartNav.updateHelper();
|
||||||
|
}
|
||||||
|
window.__smartNav.updateHelper = function()
|
||||||
|
{
|
||||||
|
if (document.readyState != "complete")
|
||||||
|
{
|
||||||
|
window.setTimeout(window.__smartNav.updateHelper, 25);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
window.__smartNav.loadNewContent();
|
||||||
|
}
|
||||||
|
window.__smartNav.loadNewContent = function()
|
||||||
|
{
|
||||||
|
var sn = window.__smartNav;
|
||||||
|
var fd;
|
||||||
|
try { fd = frames["__hifSmartNav"].document; } catch (e) {return;}
|
||||||
|
if ((typeof(sn.sHif) != "undefined") && (sn.sHif != null))
|
||||||
|
{
|
||||||
|
sn.sHif.removeNode(true);
|
||||||
|
sn.sHif = null;
|
||||||
|
}
|
||||||
|
var hdm = document.getElementsByTagName("head")[0];
|
||||||
|
var hk = hdm.childNodes;
|
||||||
|
var tt = null;
|
||||||
|
var i;
|
||||||
|
for (i = hk.length - 1; i>= 0; i--)
|
||||||
|
{
|
||||||
|
if (hk[i].tagName == "TITLE")
|
||||||
|
{
|
||||||
|
tt = hk[i].outerHTML;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (hk[i].tagName != "BASEFONT" || hk[i].innerHTML.length == 0)
|
||||||
|
hdm.removeChild(hdm.childNodes[i]);
|
||||||
|
}
|
||||||
|
var kids = fd.getElementsByTagName("head")[0].childNodes;
|
||||||
|
for (i = 0; i < kids.length; i++)
|
||||||
|
{
|
||||||
|
var tn = kids[i].tagName;
|
||||||
|
var k = document.createElement(tn);
|
||||||
|
k.id = kids[i].id;
|
||||||
|
k.mergeAttributes(kids[i]);
|
||||||
|
switch(tn)
|
||||||
|
{
|
||||||
|
case "TITLE":
|
||||||
|
if (tt == kids[i].outerHTML)
|
||||||
|
continue;
|
||||||
|
k.innerText = kids[i].text;
|
||||||
|
hdm.insertAdjacentElement("afterbegin", k);
|
||||||
|
continue;
|
||||||
|
case "BASEFONT" :
|
||||||
|
if (kids[i].innerHTML.length > 0)
|
||||||
|
continue;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
var o = document.createElement("BODY");
|
||||||
|
o.innerHTML = "<BODY>" + kids[i].outerHTML + "</BODY>";
|
||||||
|
k = o.firstChild;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if((typeof(k) != "undefined") && (k != null))
|
||||||
|
hdm.appendChild(k);
|
||||||
|
}
|
||||||
|
document.body.clearAttributes();
|
||||||
|
document.body.id = fd.body.id;
|
||||||
|
document.body.mergeAttributes(fd.body);
|
||||||
|
var newBodyLoad = fd.body.onload;
|
||||||
|
if ((typeof(newBodyLoad) != "undefined") && (newBodyLoad != null))
|
||||||
|
document.body.onload = newBodyLoad;
|
||||||
|
else
|
||||||
|
document.body.onload = sn._savedOnLoad;
|
||||||
|
var s = "<BODY>" + fd.body.innerHTML + "</BODY>";
|
||||||
|
if ((typeof(sn.hif) != "undefined") && (sn.hif != null))
|
||||||
|
{
|
||||||
|
var hifP = sn.hif.parentElement;
|
||||||
|
if ((typeof(hifP) != "undefined") && (hifP != null))
|
||||||
|
sn.sHif=hifP.removeChild(sn.hif);
|
||||||
|
}
|
||||||
|
document.body.innerHTML = s;
|
||||||
|
var sc = document.scripts;
|
||||||
|
for (i = 0; i < sc.length; i++)
|
||||||
|
{
|
||||||
|
sc[i].text = sc[i].text;
|
||||||
|
}
|
||||||
|
sn.hif = document.all("__hifSmartNav");
|
||||||
|
if ((typeof(sn.hif) != "undefined") && (sn.hif != null))
|
||||||
|
{
|
||||||
|
var hif = sn.hif;
|
||||||
|
sn.hifName = "__hifSmartNav" + (new Date()).getTime();
|
||||||
|
frames["__hifSmartNav"].name = sn.hifName;
|
||||||
|
sn.hifDoc = hif.contentWindow.document;
|
||||||
|
if (sn.ie5)
|
||||||
|
hif.parentElement.removeChild(hif);
|
||||||
|
window.setTimeout(sn.restoreFocus,0);
|
||||||
|
}
|
||||||
|
if (typeof(window.onload) == "string")
|
||||||
|
{
|
||||||
|
try { eval(window.onload) } catch (e) {};
|
||||||
|
}
|
||||||
|
else if ((typeof(window.onload) != "undefined") && (window.onload != null))
|
||||||
|
{
|
||||||
|
try { window.onload() } catch (e) {};
|
||||||
|
}
|
||||||
|
sn._savedOnLoad = null;
|
||||||
|
sn.attachForm();
|
||||||
|
};
|
||||||
|
window.__smartNav.restoreFocus = function()
|
||||||
|
{
|
||||||
|
if (window.__smartNav.inPost == true) return;
|
||||||
|
var curAe = document.activeElement;
|
||||||
|
var sAeId = window.__smartNav.ae;
|
||||||
|
if (((typeof(sAeId) == "undefined") || (sAeId == null)) ||
|
||||||
|
(typeof(curAe) != "undefined") && (curAe != null) && (curAe.id == sAeId || curAe.name == sAeId))
|
||||||
|
return;
|
||||||
|
var ae = document.all(sAeId);
|
||||||
|
if ((typeof(ae) == "undefined") || (ae == null)) return;
|
||||||
|
try { ae.focus(); } catch(e){};
|
||||||
|
}
|
||||||
|
window.__smartNav.saveHistory = function()
|
||||||
|
{
|
||||||
|
if ((typeof(window.__smartNav.hif) != "undefined") && (window.__smartNav.hif != null))
|
||||||
|
window.__smartNav.hif.removeNode();
|
||||||
|
if ((typeof(window.__smartNav.sHif) != "undefined") && (window.__smartNav.sHif != null)
|
||||||
|
&& (typeof(document.all[window.__smartNav.siHif]) != "undefined")
|
||||||
|
&& (document.all[window.__smartNav.siHif] != null)) {
|
||||||
|
document.all[window.__smartNav.siHif].insertAdjacentElement(
|
||||||
|
"BeforeBegin", window.__smartNav.sHif);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.__smartNav.stopHif = function()
|
||||||
|
{
|
||||||
|
document.detachEvent("onstop", window.__smartNav.stopHif);
|
||||||
|
var sn = window.__smartNav;
|
||||||
|
if (((typeof(sn.hifDoc) == "undefined") || (sn.hifDoc == null)) &&
|
||||||
|
(typeof(sn.hif) != "undefined") && (sn.hif != null))
|
||||||
|
{
|
||||||
|
try {sn.hifDoc = sn.hif.contentWindow.document;}
|
||||||
|
catch(e){sn.hifDoc=null}
|
||||||
|
}
|
||||||
|
if (sn.hifDoc != null)
|
||||||
|
{
|
||||||
|
try {sn.hifDoc.execCommand("stop");} catch (e){}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.__smartNav.init = function()
|
||||||
|
{
|
||||||
|
var sn = window.__smartNav;
|
||||||
|
window.__smartNav.form.__smartNavPostBack.value = 'true';
|
||||||
|
document.detachEvent("onstop", sn.stopHif);
|
||||||
|
document.attachEvent("onstop", sn.stopHif);
|
||||||
|
try { if (window.event.returnValue == false) return; } catch(e) {}
|
||||||
|
sn.inPost = true;
|
||||||
|
if ((typeof(document.activeElement) != "undefined") && (document.activeElement != null))
|
||||||
|
{
|
||||||
|
var ae = document.activeElement.id;
|
||||||
|
if (ae.length == 0)
|
||||||
|
ae = document.activeElement.name;
|
||||||
|
sn.ae = ae;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
sn.ae = null;
|
||||||
|
try {document.selection.empty();} catch (e) {}
|
||||||
|
if ((typeof(sn.hif) == "undefined") || (sn.hif == null))
|
||||||
|
{
|
||||||
|
sn.hif = document.all("__hifSmartNav");
|
||||||
|
sn.hifDoc = sn.hif.contentWindow.document;
|
||||||
|
}
|
||||||
|
if ((typeof(sn.hifDoc) != "undefined") && (sn.hifDoc != null))
|
||||||
|
try {sn.hifDoc.designMode = "On";} catch(e){};
|
||||||
|
if ((typeof(sn.hif.parentElement) == "undefined") || (sn.hif.parentElement == null))
|
||||||
|
document.body.appendChild(sn.hif);
|
||||||
|
var hif = sn.hif;
|
||||||
|
hif.detachEvent("onload", sn.update);
|
||||||
|
hif.attachEvent("onload", sn.update);
|
||||||
|
window.__smartNav.fInit = true;
|
||||||
|
};
|
||||||
|
window.__smartNav.submit = function()
|
||||||
|
{
|
||||||
|
window.__smartNav.fInit = false;
|
||||||
|
try { window.__smartNav.init(); } catch(e) {}
|
||||||
|
if (window.__smartNav.fInit) {
|
||||||
|
window.__smartNav.form._submit();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
window.__smartNav.attachForm = function()
|
||||||
|
{
|
||||||
|
var cf = document.forms;
|
||||||
|
for (var i=0; i<cf.length; i++)
|
||||||
|
{
|
||||||
|
if ((typeof(cf[i].__smartNavEnabled) != "undefined") && (cf[i].__smartNavEnabled != null))
|
||||||
|
{
|
||||||
|
window.__smartNav.form = cf[i];
|
||||||
|
window.__smartNav.form.insertAdjacentHTML("beforeEnd", "<input type='hidden' name='__smartNavPostBack' value='false' />");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var snfm = window.__smartNav.form;
|
||||||
|
if ((typeof(snfm) == "undefined") || (snfm == null)) return false;
|
||||||
|
var sft = snfm.target;
|
||||||
|
if (sft.length != 0 && sft.indexOf("__hifSmartNav") != 0) return false;
|
||||||
|
var sfc = snfm.action.split("?")[0];
|
||||||
|
var url = window.location.href.split("?")[0];
|
||||||
|
if (url.charAt(url.length-1) != '/' && url.lastIndexOf(sfc) + sfc.length != url.length) return false;
|
||||||
|
if (snfm.__formAttached == true) return true;
|
||||||
|
snfm.__formAttached = true;
|
||||||
|
snfm.attachEvent("onsubmit", window.__smartNav.init);
|
||||||
|
snfm._submit = snfm.submit;
|
||||||
|
snfm.submit = window.__smartNav.submit;
|
||||||
|
snfm.target = window.__smartNav.hifName;
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
window.__smartNav.hifName = "__hifSmartNav" + (new Date()).getTime();
|
||||||
|
window.__smartNav.ie5 = navigator.appVersion.indexOf("MSIE 5") > 0;
|
||||||
|
var rc = window.__smartNav.attachForm();
|
||||||
|
var hif = document.all("__hifSmartNav");
|
||||||
|
if ((typeof(snSrc) == "undefined") || (snSrc == null)) {
|
||||||
|
if (typeof(window.dialogHeight) != "undefined") {
|
||||||
|
snSrc = "IEsmartnav1";
|
||||||
|
hif.src = snSrc;
|
||||||
|
} else {
|
||||||
|
snSrc = hif.src;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (rc)
|
||||||
|
{
|
||||||
|
var fsn = frames["__hifSmartNav"];
|
||||||
|
fsn.name = window.__smartNav.hifName;
|
||||||
|
window.__smartNav.siHif = hif.sourceIndex;
|
||||||
|
try {
|
||||||
|
if (fsn.document.location != snSrc)
|
||||||
|
{
|
||||||
|
fsn.document.designMode = "On";
|
||||||
|
hif.attachEvent("onload",window.__smartNav.update);
|
||||||
|
window.__smartNav.hif = hif;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (e) { window.__smartNav.hif = hif; }
|
||||||
|
window.attachEvent("onbeforeunload", window.__smartNav.saveHistory);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
window.__smartNav = null;
|
||||||
|
}
|
@ -0,0 +1,220 @@
|
|||||||
|
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/TreeView.js
|
||||||
|
function TreeView_HoverNode(data, node) {
|
||||||
|
if (!data) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
node.hoverClass = data.hoverClass;
|
||||||
|
WebForm_AppendToClassName(node, data.hoverClass);
|
||||||
|
if (__nonMSDOMBrowser) {
|
||||||
|
node = node.childNodes[node.childNodes.length - 1];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
node = node.children[node.children.length - 1];
|
||||||
|
}
|
||||||
|
node.hoverHyperLinkClass = data.hoverHyperLinkClass;
|
||||||
|
WebForm_AppendToClassName(node, data.hoverHyperLinkClass);
|
||||||
|
}
|
||||||
|
function TreeView_GetNodeText(node) {
|
||||||
|
var trNode = WebForm_GetParentByTagName(node, "TR");
|
||||||
|
var outerNodes;
|
||||||
|
if (trNode.childNodes[trNode.childNodes.length - 1].getElementsByTagName) {
|
||||||
|
outerNodes = trNode.childNodes[trNode.childNodes.length - 1].getElementsByTagName("A");
|
||||||
|
if (!outerNodes || outerNodes.length == 0) {
|
||||||
|
outerNodes = trNode.childNodes[trNode.childNodes.length - 1].getElementsByTagName("SPAN");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var textNode = (outerNodes && outerNodes.length > 0) ?
|
||||||
|
outerNodes[0].childNodes[0] :
|
||||||
|
trNode.childNodes[trNode.childNodes.length - 1].childNodes[0];
|
||||||
|
return (textNode && textNode.nodeValue) ? textNode.nodeValue : "";
|
||||||
|
}
|
||||||
|
function TreeView_PopulateNode(data, index, node, selectNode, selectImageNode, lineType, text, path, databound, datapath, parentIsLast) {
|
||||||
|
if (!data) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var context = new Object();
|
||||||
|
context.data = data;
|
||||||
|
context.node = node;
|
||||||
|
context.selectNode = selectNode;
|
||||||
|
context.selectImageNode = selectImageNode;
|
||||||
|
context.lineType = lineType;
|
||||||
|
context.index = index;
|
||||||
|
context.isChecked = "f";
|
||||||
|
var tr = WebForm_GetParentByTagName(node, "TR");
|
||||||
|
if (tr) {
|
||||||
|
var checkbox = tr.getElementsByTagName("INPUT");
|
||||||
|
if (checkbox && (checkbox.length > 0)) {
|
||||||
|
for (var i = 0; i < checkbox.length; i++) {
|
||||||
|
if (checkbox[i].type.toLowerCase() == "checkbox") {
|
||||||
|
if (checkbox[i].checked) {
|
||||||
|
context.isChecked = "t";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var param = index + "|" + data.lastIndex + "|" + databound + context.isChecked + parentIsLast + "|" +
|
||||||
|
text.length + "|" + text + datapath.length + "|" + datapath + path;
|
||||||
|
TreeView_PopulateNodeDoCallBack(context, param);
|
||||||
|
}
|
||||||
|
function TreeView_ProcessNodeData(result, context) {
|
||||||
|
var treeNode = context.node;
|
||||||
|
if (result.length > 0) {
|
||||||
|
var ci = result.indexOf("|", 0);
|
||||||
|
context.data.lastIndex = result.substring(0, ci);
|
||||||
|
ci = result.indexOf("|", ci + 1);
|
||||||
|
var newExpandState = result.substring(context.data.lastIndex.length + 1, ci);
|
||||||
|
context.data.expandState.value += newExpandState;
|
||||||
|
var chunk = result.substr(ci + 1);
|
||||||
|
var newChildren, table;
|
||||||
|
if (__nonMSDOMBrowser) {
|
||||||
|
var newDiv = document.createElement("div");
|
||||||
|
newDiv.innerHTML = chunk;
|
||||||
|
table = WebForm_GetParentByTagName(treeNode, "TABLE");
|
||||||
|
newChildren = null;
|
||||||
|
if ((typeof(table.nextSibling) == "undefined") || (table.nextSibling == null)) {
|
||||||
|
table.parentNode.insertBefore(newDiv.firstChild, table.nextSibling);
|
||||||
|
newChildren = table.previousSibling;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
table = table.nextSibling;
|
||||||
|
table.parentNode.insertBefore(newDiv.firstChild, table);
|
||||||
|
newChildren = table.previousSibling;
|
||||||
|
}
|
||||||
|
newChildren = document.getElementById(treeNode.id + "Nodes");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
table = WebForm_GetParentByTagName(treeNode, "TABLE");
|
||||||
|
table.insertAdjacentHTML("afterEnd", chunk);
|
||||||
|
newChildren = document.all[treeNode.id + "Nodes"];
|
||||||
|
}
|
||||||
|
if ((typeof(newChildren) != "undefined") && (newChildren != null)) {
|
||||||
|
TreeView_ToggleNode(context.data, context.index, treeNode, context.lineType, newChildren);
|
||||||
|
treeNode.href = document.getElementById ?
|
||||||
|
"javascript:TreeView_ToggleNode(" + context.data.name + "," + context.index + ",document.getElementById('" + treeNode.id + "'),'" + context.lineType + "',document.getElementById('" + newChildren.id + "'))" :
|
||||||
|
"javascript:TreeView_ToggleNode(" + context.data.name + "," + context.index + "," + treeNode.id + ",'" + context.lineType + "'," + newChildren.id + ")";
|
||||||
|
if ((typeof(context.selectNode) != "undefined") && (context.selectNode != null) && context.selectNode.href &&
|
||||||
|
(context.selectNode.href.indexOf("javascript:TreeView_PopulateNode", 0) == 0)) {
|
||||||
|
context.selectNode.href = treeNode.href;
|
||||||
|
}
|
||||||
|
if ((typeof(context.selectImageNode) != "undefined") && (context.selectImageNode != null) && context.selectNode.href &&
|
||||||
|
(context.selectImageNode.href.indexOf("javascript:TreeView_PopulateNode", 0) == 0)) {
|
||||||
|
context.selectImageNode.href = treeNode.href;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
context.data.populateLog.value += context.index + ",";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var img = treeNode.childNodes ? treeNode.childNodes[0] : treeNode.children[0];
|
||||||
|
if ((typeof(img) != "undefined") && (img != null)) {
|
||||||
|
var lineType = context.lineType;
|
||||||
|
if (lineType == "l") {
|
||||||
|
img.src = context.data.images[13];
|
||||||
|
}
|
||||||
|
else if (lineType == "t") {
|
||||||
|
img.src = context.data.images[10];
|
||||||
|
}
|
||||||
|
else if (lineType == "-") {
|
||||||
|
img.src = context.data.images[16];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
img.src = context.data.images[3];
|
||||||
|
}
|
||||||
|
var pe;
|
||||||
|
if (__nonMSDOMBrowser) {
|
||||||
|
pe = treeNode.parentNode;
|
||||||
|
pe.insertBefore(img, treeNode);
|
||||||
|
pe.removeChild(treeNode);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
pe = treeNode.parentElement;
|
||||||
|
treeNode.style.visibility="hidden";
|
||||||
|
treeNode.style.display="none";
|
||||||
|
pe.insertAdjacentElement("afterBegin", img);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function TreeView_SelectNode(data, node, nodeId) {
|
||||||
|
if (!data) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ((typeof(data.selectedClass) != "undefined") && (data.selectedClass != null)) {
|
||||||
|
var id = data.selectedNodeID.value;
|
||||||
|
if (id.length > 0) {
|
||||||
|
var selectedNode = document.getElementById(id);
|
||||||
|
if ((typeof(selectedNode) != "undefined") && (selectedNode != null)) {
|
||||||
|
WebForm_RemoveClassName(selectedNode, data.selectedHyperLinkClass);
|
||||||
|
selectedNode = WebForm_GetParentByTagName(selectedNode, "TD");
|
||||||
|
WebForm_RemoveClassName(selectedNode, data.selectedClass);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
WebForm_AppendToClassName(node, data.selectedHyperLinkClass);
|
||||||
|
node = WebForm_GetParentByTagName(node, "TD");
|
||||||
|
WebForm_AppendToClassName(node, data.selectedClass)
|
||||||
|
}
|
||||||
|
data.selectedNodeID.value = nodeId;
|
||||||
|
}
|
||||||
|
function TreeView_ToggleNode(data, index, node, lineType, children) {
|
||||||
|
if (!data) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var img = node.childNodes[0];
|
||||||
|
var newExpandState;
|
||||||
|
try {
|
||||||
|
if (children.style.display == "none") {
|
||||||
|
children.style.display = "block";
|
||||||
|
newExpandState = "e";
|
||||||
|
if ((typeof(img) != "undefined") && (img != null)) {
|
||||||
|
if (lineType == "l") {
|
||||||
|
img.src = data.images[15];
|
||||||
|
}
|
||||||
|
else if (lineType == "t") {
|
||||||
|
img.src = data.images[12];
|
||||||
|
}
|
||||||
|
else if (lineType == "-") {
|
||||||
|
img.src = data.images[18];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
img.src = data.images[5];
|
||||||
|
}
|
||||||
|
img.alt = data.collapseToolTip.replace(/\{0\}/, TreeView_GetNodeText(node));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
children.style.display = "none";
|
||||||
|
newExpandState = "c";
|
||||||
|
if ((typeof(img) != "undefined") && (img != null)) {
|
||||||
|
if (lineType == "l") {
|
||||||
|
img.src = data.images[14];
|
||||||
|
}
|
||||||
|
else if (lineType == "t") {
|
||||||
|
img.src = data.images[11];
|
||||||
|
}
|
||||||
|
else if (lineType == "-") {
|
||||||
|
img.src = data.images[17];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
img.src = data.images[4];
|
||||||
|
}
|
||||||
|
img.alt = data.expandToolTip.replace(/\{0\}/, TreeView_GetNodeText(node));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(e) {}
|
||||||
|
data.expandState.value = data.expandState.value.substring(0, index) + newExpandState + data.expandState.value.slice(index + 1);
|
||||||
|
}
|
||||||
|
function TreeView_UnhoverNode(node) {
|
||||||
|
if (!node.hoverClass) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
WebForm_RemoveClassName(node, node.hoverClass);
|
||||||
|
if (__nonMSDOMBrowser) {
|
||||||
|
node = node.childNodes[node.childNodes.length - 1];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
node = node.children[node.children.length - 1];
|
||||||
|
}
|
||||||
|
WebForm_RemoveClassName(node, node.hoverHyperLinkClass);
|
||||||
|
}
|
@ -0,0 +1,567 @@
|
|||||||
|
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/WebForms.js
|
||||||
|
function WebForm_PostBackOptions(eventTarget, eventArgument, validation, validationGroup, actionUrl, trackFocus, clientSubmit) {
|
||||||
|
this.eventTarget = eventTarget;
|
||||||
|
this.eventArgument = eventArgument;
|
||||||
|
this.validation = validation;
|
||||||
|
this.validationGroup = validationGroup;
|
||||||
|
this.actionUrl = actionUrl;
|
||||||
|
this.trackFocus = trackFocus;
|
||||||
|
this.clientSubmit = clientSubmit;
|
||||||
|
}
|
||||||
|
function WebForm_DoPostBackWithOptions(options) {
|
||||||
|
var validationResult = true;
|
||||||
|
if (options.validation) {
|
||||||
|
if (typeof(Page_ClientValidate) == 'function') {
|
||||||
|
validationResult = Page_ClientValidate(options.validationGroup);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (validationResult) {
|
||||||
|
if ((typeof(options.actionUrl) != "undefined") && (options.actionUrl != null) && (options.actionUrl.length > 0)) {
|
||||||
|
theForm.action = options.actionUrl;
|
||||||
|
}
|
||||||
|
if (options.trackFocus) {
|
||||||
|
var lastFocus = theForm.elements["__LASTFOCUS"];
|
||||||
|
if ((typeof(lastFocus) != "undefined") && (lastFocus != null)) {
|
||||||
|
if (typeof(document.activeElement) == "undefined") {
|
||||||
|
lastFocus.value = options.eventTarget;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var active = document.activeElement;
|
||||||
|
if ((typeof(active) != "undefined") && (active != null)) {
|
||||||
|
if ((typeof(active.id) != "undefined") && (active.id != null) && (active.id.length > 0)) {
|
||||||
|
lastFocus.value = active.id;
|
||||||
|
}
|
||||||
|
else if (typeof(active.name) != "undefined") {
|
||||||
|
lastFocus.value = active.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (options.clientSubmit) {
|
||||||
|
__doPostBack(options.eventTarget, options.eventArgument);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var __pendingCallbacks = new Array();
|
||||||
|
var __synchronousCallBackIndex = -1;
|
||||||
|
function WebForm_DoCallback(eventTarget, eventArgument, eventCallback, context, errorCallback, useAsync) {
|
||||||
|
var postData = __theFormPostData +
|
||||||
|
"__CALLBACKID=" + WebForm_EncodeCallback(eventTarget) +
|
||||||
|
"&__CALLBACKPARAM=" + WebForm_EncodeCallback(eventArgument);
|
||||||
|
if (theForm["__EVENTVALIDATION"]) {
|
||||||
|
postData += "&__EVENTVALIDATION=" + WebForm_EncodeCallback(theForm["__EVENTVALIDATION"].value);
|
||||||
|
}
|
||||||
|
var xmlRequest,e;
|
||||||
|
try {
|
||||||
|
xmlRequest = new XMLHttpRequest();
|
||||||
|
}
|
||||||
|
catch(e) {
|
||||||
|
try {
|
||||||
|
xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
|
||||||
|
}
|
||||||
|
catch(e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var setRequestHeaderMethodExists = true;
|
||||||
|
try {
|
||||||
|
setRequestHeaderMethodExists = (xmlRequest && xmlRequest.setRequestHeader);
|
||||||
|
}
|
||||||
|
catch(e) {}
|
||||||
|
var callback = new Object();
|
||||||
|
callback.eventCallback = eventCallback;
|
||||||
|
callback.context = context;
|
||||||
|
callback.errorCallback = errorCallback;
|
||||||
|
callback.async = useAsync;
|
||||||
|
var callbackIndex = WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback);
|
||||||
|
if (!useAsync) {
|
||||||
|
if (__synchronousCallBackIndex != -1) {
|
||||||
|
__pendingCallbacks[__synchronousCallBackIndex] = null;
|
||||||
|
}
|
||||||
|
__synchronousCallBackIndex = callbackIndex;
|
||||||
|
}
|
||||||
|
if (setRequestHeaderMethodExists) {
|
||||||
|
xmlRequest.onreadystatechange = WebForm_CallbackComplete;
|
||||||
|
callback.xmlRequest = xmlRequest;
|
||||||
|
// e.g. http:
|
||||||
|
var action = theForm.action || document.location.pathname, fragmentIndex = action.indexOf('#');
|
||||||
|
if (fragmentIndex !== -1) {
|
||||||
|
action = action.substr(0, fragmentIndex);
|
||||||
|
}
|
||||||
|
if (!__nonMSDOMBrowser) {
|
||||||
|
var queryIndex = action.indexOf('?');
|
||||||
|
if (queryIndex !== -1) {
|
||||||
|
var path = action.substr(0, queryIndex);
|
||||||
|
if (path.indexOf("%") === -1) {
|
||||||
|
action = encodeURI(path) + action.substr(queryIndex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (action.indexOf("%") === -1) {
|
||||||
|
action = encodeURI(action);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
xmlRequest.open("POST", action, true);
|
||||||
|
xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
|
||||||
|
xmlRequest.send(postData);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
callback.xmlRequest = new Object();
|
||||||
|
var callbackFrameID = "__CALLBACKFRAME" + callbackIndex;
|
||||||
|
var xmlRequestFrame = document.frames[callbackFrameID];
|
||||||
|
if (!xmlRequestFrame) {
|
||||||
|
xmlRequestFrame = document.createElement("IFRAME");
|
||||||
|
xmlRequestFrame.width = "1";
|
||||||
|
xmlRequestFrame.height = "1";
|
||||||
|
xmlRequestFrame.frameBorder = "0";
|
||||||
|
xmlRequestFrame.id = callbackFrameID;
|
||||||
|
xmlRequestFrame.name = callbackFrameID;
|
||||||
|
xmlRequestFrame.style.position = "absolute";
|
||||||
|
xmlRequestFrame.style.top = "-100px"
|
||||||
|
xmlRequestFrame.style.left = "-100px";
|
||||||
|
try {
|
||||||
|
if (callBackFrameUrl) {
|
||||||
|
xmlRequestFrame.src = callBackFrameUrl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(e) {}
|
||||||
|
document.body.appendChild(xmlRequestFrame);
|
||||||
|
}
|
||||||
|
var interval = window.setInterval(function() {
|
||||||
|
xmlRequestFrame = document.frames[callbackFrameID];
|
||||||
|
if (xmlRequestFrame && xmlRequestFrame.document) {
|
||||||
|
window.clearInterval(interval);
|
||||||
|
xmlRequestFrame.document.write("");
|
||||||
|
xmlRequestFrame.document.close();
|
||||||
|
xmlRequestFrame.document.write('<html><body><form method="post"><input type="hidden" name="__CALLBACKLOADSCRIPT" value="t"></form></body></html>');
|
||||||
|
xmlRequestFrame.document.close();
|
||||||
|
xmlRequestFrame.document.forms[0].action = theForm.action;
|
||||||
|
var count = __theFormPostCollection.length;
|
||||||
|
var element;
|
||||||
|
for (var i = 0; i < count; i++) {
|
||||||
|
element = __theFormPostCollection[i];
|
||||||
|
if (element) {
|
||||||
|
var fieldElement = xmlRequestFrame.document.createElement("INPUT");
|
||||||
|
fieldElement.type = "hidden";
|
||||||
|
fieldElement.name = element.name;
|
||||||
|
fieldElement.value = element.value;
|
||||||
|
xmlRequestFrame.document.forms[0].appendChild(fieldElement);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var callbackIdFieldElement = xmlRequestFrame.document.createElement("INPUT");
|
||||||
|
callbackIdFieldElement.type = "hidden";
|
||||||
|
callbackIdFieldElement.name = "__CALLBACKID";
|
||||||
|
callbackIdFieldElement.value = eventTarget;
|
||||||
|
xmlRequestFrame.document.forms[0].appendChild(callbackIdFieldElement);
|
||||||
|
var callbackParamFieldElement = xmlRequestFrame.document.createElement("INPUT");
|
||||||
|
callbackParamFieldElement.type = "hidden";
|
||||||
|
callbackParamFieldElement.name = "__CALLBACKPARAM";
|
||||||
|
callbackParamFieldElement.value = eventArgument;
|
||||||
|
xmlRequestFrame.document.forms[0].appendChild(callbackParamFieldElement);
|
||||||
|
if (theForm["__EVENTVALIDATION"]) {
|
||||||
|
var callbackValidationFieldElement = xmlRequestFrame.document.createElement("INPUT");
|
||||||
|
callbackValidationFieldElement.type = "hidden";
|
||||||
|
callbackValidationFieldElement.name = "__EVENTVALIDATION";
|
||||||
|
callbackValidationFieldElement.value = theForm["__EVENTVALIDATION"].value;
|
||||||
|
xmlRequestFrame.document.forms[0].appendChild(callbackValidationFieldElement);
|
||||||
|
}
|
||||||
|
var callbackIndexFieldElement = xmlRequestFrame.document.createElement("INPUT");
|
||||||
|
callbackIndexFieldElement.type = "hidden";
|
||||||
|
callbackIndexFieldElement.name = "__CALLBACKINDEX";
|
||||||
|
callbackIndexFieldElement.value = callbackIndex;
|
||||||
|
xmlRequestFrame.document.forms[0].appendChild(callbackIndexFieldElement);
|
||||||
|
xmlRequestFrame.document.forms[0].submit();
|
||||||
|
}
|
||||||
|
}, 10);
|
||||||
|
}
|
||||||
|
function WebForm_CallbackComplete() {
|
||||||
|
for (var i = 0; i < __pendingCallbacks.length; i++) {
|
||||||
|
callbackObject = __pendingCallbacks[i];
|
||||||
|
if (callbackObject && callbackObject.xmlRequest && (callbackObject.xmlRequest.readyState == 4)) {
|
||||||
|
if (!__pendingCallbacks[i].async) {
|
||||||
|
__synchronousCallBackIndex = -1;
|
||||||
|
}
|
||||||
|
__pendingCallbacks[i] = null;
|
||||||
|
var callbackFrameID = "__CALLBACKFRAME" + i;
|
||||||
|
var xmlRequestFrame = document.getElementById(callbackFrameID);
|
||||||
|
if (xmlRequestFrame) {
|
||||||
|
xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);
|
||||||
|
}
|
||||||
|
WebForm_ExecuteCallback(callbackObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebForm_ExecuteCallback(callbackObject) {
|
||||||
|
var response = callbackObject.xmlRequest.responseText;
|
||||||
|
if (response.charAt(0) == "s") {
|
||||||
|
if ((typeof(callbackObject.eventCallback) != "undefined") && (callbackObject.eventCallback != null)) {
|
||||||
|
callbackObject.eventCallback(response.substring(1), callbackObject.context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (response.charAt(0) == "e") {
|
||||||
|
if ((typeof(callbackObject.errorCallback) != "undefined") && (callbackObject.errorCallback != null)) {
|
||||||
|
callbackObject.errorCallback(response.substring(1), callbackObject.context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var separatorIndex = response.indexOf("|");
|
||||||
|
if (separatorIndex != -1) {
|
||||||
|
var validationFieldLength = parseInt(response.substring(0, separatorIndex));
|
||||||
|
if (!isNaN(validationFieldLength)) {
|
||||||
|
var validationField = response.substring(separatorIndex + 1, separatorIndex + validationFieldLength + 1);
|
||||||
|
if (validationField != "") {
|
||||||
|
var validationFieldElement = theForm["__EVENTVALIDATION"];
|
||||||
|
if (!validationFieldElement) {
|
||||||
|
validationFieldElement = document.createElement("INPUT");
|
||||||
|
validationFieldElement.type = "hidden";
|
||||||
|
validationFieldElement.name = "__EVENTVALIDATION";
|
||||||
|
theForm.appendChild(validationFieldElement);
|
||||||
|
}
|
||||||
|
validationFieldElement.value = validationField;
|
||||||
|
}
|
||||||
|
if ((typeof(callbackObject.eventCallback) != "undefined") && (callbackObject.eventCallback != null)) {
|
||||||
|
callbackObject.eventCallback(response.substring(separatorIndex + validationFieldLength + 1), callbackObject.context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebForm_FillFirstAvailableSlot(array, element) {
|
||||||
|
var i;
|
||||||
|
for (i = 0; i < array.length; i++) {
|
||||||
|
if (!array[i]) break;
|
||||||
|
}
|
||||||
|
array[i] = element;
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
var __nonMSDOMBrowser = (window.navigator.appName.toLowerCase().indexOf('explorer') == -1);
|
||||||
|
var __theFormPostData = "";
|
||||||
|
var __theFormPostCollection = new Array();
|
||||||
|
var __callbackTextTypes = /^(text|password|hidden|search|tel|url|email|number|range|color|datetime|date|month|week|time|datetime-local)$/i;
|
||||||
|
function WebForm_InitCallback() {
|
||||||
|
var formElements = theForm.elements,
|
||||||
|
count = formElements.length,
|
||||||
|
element;
|
||||||
|
for (var i = 0; i < count; i++) {
|
||||||
|
element = formElements[i];
|
||||||
|
var tagName = element.tagName.toLowerCase();
|
||||||
|
if (tagName == "input") {
|
||||||
|
var type = element.type;
|
||||||
|
if ((__callbackTextTypes.test(type) || ((type == "checkbox" || type == "radio") && element.checked))
|
||||||
|
&& (element.id != "__EVENTVALIDATION")) {
|
||||||
|
WebForm_InitCallbackAddField(element.name, element.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (tagName == "select") {
|
||||||
|
var selectCount = element.options.length;
|
||||||
|
for (var j = 0; j < selectCount; j++) {
|
||||||
|
var selectChild = element.options[j];
|
||||||
|
if (selectChild.selected == true) {
|
||||||
|
WebForm_InitCallbackAddField(element.name, element.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (tagName == "textarea") {
|
||||||
|
WebForm_InitCallbackAddField(element.name, element.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebForm_InitCallbackAddField(name, value) {
|
||||||
|
var nameValue = new Object();
|
||||||
|
nameValue.name = name;
|
||||||
|
nameValue.value = value;
|
||||||
|
__theFormPostCollection[__theFormPostCollection.length] = nameValue;
|
||||||
|
__theFormPostData += WebForm_EncodeCallback(name) + "=" + WebForm_EncodeCallback(value) + "&";
|
||||||
|
}
|
||||||
|
function WebForm_EncodeCallback(parameter) {
|
||||||
|
if (encodeURIComponent) {
|
||||||
|
return encodeURIComponent(parameter);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return escape(parameter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var __disabledControlArray = new Array();
|
||||||
|
function WebForm_ReEnableControls() {
|
||||||
|
if (typeof(__enabledControlArray) == 'undefined') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
var disabledIndex = 0;
|
||||||
|
for (var i = 0; i < __enabledControlArray.length; i++) {
|
||||||
|
var c;
|
||||||
|
if (__nonMSDOMBrowser) {
|
||||||
|
c = document.getElementById(__enabledControlArray[i]);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
c = document.all[__enabledControlArray[i]];
|
||||||
|
}
|
||||||
|
if ((typeof(c) != "undefined") && (c != null) && (c.disabled == true)) {
|
||||||
|
c.disabled = false;
|
||||||
|
__disabledControlArray[disabledIndex++] = c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setTimeout("WebForm_ReDisableControls()", 0);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
function WebForm_ReDisableControls() {
|
||||||
|
for (var i = 0; i < __disabledControlArray.length; i++) {
|
||||||
|
__disabledControlArray[i].disabled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebForm_SimulateClick(element, event) {
|
||||||
|
var clickEvent;
|
||||||
|
if (element) {
|
||||||
|
if (element.click) {
|
||||||
|
element.click();
|
||||||
|
} else {
|
||||||
|
clickEvent = document.createEvent("MouseEvents");
|
||||||
|
clickEvent.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
||||||
|
if (!element.dispatchEvent(clickEvent)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
event.cancelBubble = true;
|
||||||
|
if (event.stopPropagation) {
|
||||||
|
event.stopPropagation();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
function WebForm_FireDefaultButton(event, target) {
|
||||||
|
if (event.keyCode == 13) {
|
||||||
|
var src = event.srcElement || event.target;
|
||||||
|
if (src &&
|
||||||
|
((src.tagName.toLowerCase() == "input") &&
|
||||||
|
(src.type.toLowerCase() == "submit" || src.type.toLowerCase() == "button")) ||
|
||||||
|
((src.tagName.toLowerCase() == "a") &&
|
||||||
|
(src.href != null) && (src.href != "")) ||
|
||||||
|
(src.tagName.toLowerCase() == "textarea")) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
var defaultButton;
|
||||||
|
if (__nonMSDOMBrowser) {
|
||||||
|
defaultButton = document.getElementById(target);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
defaultButton = document.all[target];
|
||||||
|
}
|
||||||
|
if (defaultButton) {
|
||||||
|
return WebForm_SimulateClick(defaultButton, event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
function WebForm_GetScrollX() {
|
||||||
|
if (__nonMSDOMBrowser) {
|
||||||
|
return window.pageXOffset;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (document.documentElement && document.documentElement.scrollLeft) {
|
||||||
|
return document.documentElement.scrollLeft;
|
||||||
|
}
|
||||||
|
else if (document.body) {
|
||||||
|
return document.body.scrollLeft;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
function WebForm_GetScrollY() {
|
||||||
|
if (__nonMSDOMBrowser) {
|
||||||
|
return window.pageYOffset;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (document.documentElement && document.documentElement.scrollTop) {
|
||||||
|
return document.documentElement.scrollTop;
|
||||||
|
}
|
||||||
|
else if (document.body) {
|
||||||
|
return document.body.scrollTop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
function WebForm_SaveScrollPositionSubmit() {
|
||||||
|
if (__nonMSDOMBrowser) {
|
||||||
|
theForm.elements['__SCROLLPOSITIONY'].value = window.pageYOffset;
|
||||||
|
theForm.elements['__SCROLLPOSITIONX'].value = window.pageXOffset;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
theForm.__SCROLLPOSITIONX.value = WebForm_GetScrollX();
|
||||||
|
theForm.__SCROLLPOSITIONY.value = WebForm_GetScrollY();
|
||||||
|
}
|
||||||
|
if ((typeof(this.oldSubmit) != "undefined") && (this.oldSubmit != null)) {
|
||||||
|
return this.oldSubmit();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
function WebForm_SaveScrollPositionOnSubmit() {
|
||||||
|
theForm.__SCROLLPOSITIONX.value = WebForm_GetScrollX();
|
||||||
|
theForm.__SCROLLPOSITIONY.value = WebForm_GetScrollY();
|
||||||
|
if ((typeof(this.oldOnSubmit) != "undefined") && (this.oldOnSubmit != null)) {
|
||||||
|
return this.oldOnSubmit();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
function WebForm_RestoreScrollPosition() {
|
||||||
|
if (__nonMSDOMBrowser) {
|
||||||
|
window.scrollTo(theForm.elements['__SCROLLPOSITIONX'].value, theForm.elements['__SCROLLPOSITIONY'].value);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
window.scrollTo(theForm.__SCROLLPOSITIONX.value, theForm.__SCROLLPOSITIONY.value);
|
||||||
|
}
|
||||||
|
if ((typeof(theForm.oldOnLoad) != "undefined") && (theForm.oldOnLoad != null)) {
|
||||||
|
return theForm.oldOnLoad();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
function WebForm_TextBoxKeyHandler(event) {
|
||||||
|
if (event.keyCode == 13) {
|
||||||
|
var target;
|
||||||
|
if (__nonMSDOMBrowser) {
|
||||||
|
target = event.target;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
target = event.srcElement;
|
||||||
|
}
|
||||||
|
if ((typeof(target) != "undefined") && (target != null)) {
|
||||||
|
if (typeof(target.onchange) != "undefined") {
|
||||||
|
target.onchange();
|
||||||
|
event.cancelBubble = true;
|
||||||
|
if (event.stopPropagation) event.stopPropagation();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
function WebForm_TrimString(value) {
|
||||||
|
return value.replace(/^\s+|\s+$/g, '')
|
||||||
|
}
|
||||||
|
function WebForm_AppendToClassName(element, className) {
|
||||||
|
var currentClassName = ' ' + WebForm_TrimString(element.className) + ' ';
|
||||||
|
className = WebForm_TrimString(className);
|
||||||
|
var index = currentClassName.indexOf(' ' + className + ' ');
|
||||||
|
if (index === -1) {
|
||||||
|
element.className = (element.className === '') ? className : element.className + ' ' + className;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebForm_RemoveClassName(element, className) {
|
||||||
|
var currentClassName = ' ' + WebForm_TrimString(element.className) + ' ';
|
||||||
|
className = WebForm_TrimString(className);
|
||||||
|
var index = currentClassName.indexOf(' ' + className + ' ');
|
||||||
|
if (index >= 0) {
|
||||||
|
element.className = WebForm_TrimString(currentClassName.substring(0, index) + ' ' +
|
||||||
|
currentClassName.substring(index + className.length + 1, currentClassName.length));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebForm_GetElementById(elementId) {
|
||||||
|
if (document.getElementById) {
|
||||||
|
return document.getElementById(elementId);
|
||||||
|
}
|
||||||
|
else if (document.all) {
|
||||||
|
return document.all[elementId];
|
||||||
|
}
|
||||||
|
else return null;
|
||||||
|
}
|
||||||
|
function WebForm_GetElementByTagName(element, tagName) {
|
||||||
|
var elements = WebForm_GetElementsByTagName(element, tagName);
|
||||||
|
if (elements && elements.length > 0) {
|
||||||
|
return elements[0];
|
||||||
|
}
|
||||||
|
else return null;
|
||||||
|
}
|
||||||
|
function WebForm_GetElementsByTagName(element, tagName) {
|
||||||
|
if (element && tagName) {
|
||||||
|
if (element.getElementsByTagName) {
|
||||||
|
return element.getElementsByTagName(tagName);
|
||||||
|
}
|
||||||
|
if (element.all && element.all.tags) {
|
||||||
|
return element.all.tags(tagName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
function WebForm_GetElementDir(element) {
|
||||||
|
if (element) {
|
||||||
|
if (element.dir) {
|
||||||
|
return element.dir;
|
||||||
|
}
|
||||||
|
return WebForm_GetElementDir(element.parentNode);
|
||||||
|
}
|
||||||
|
return "ltr";
|
||||||
|
}
|
||||||
|
function WebForm_GetElementPosition(element) {
|
||||||
|
var result = new Object();
|
||||||
|
result.x = 0;
|
||||||
|
result.y = 0;
|
||||||
|
result.width = 0;
|
||||||
|
result.height = 0;
|
||||||
|
if (element.offsetParent) {
|
||||||
|
result.x = element.offsetLeft;
|
||||||
|
result.y = element.offsetTop;
|
||||||
|
var parent = element.offsetParent;
|
||||||
|
while (parent) {
|
||||||
|
result.x += parent.offsetLeft;
|
||||||
|
result.y += parent.offsetTop;
|
||||||
|
var parentTagName = parent.tagName.toLowerCase();
|
||||||
|
if (parentTagName != "table" &&
|
||||||
|
parentTagName != "body" &&
|
||||||
|
parentTagName != "html" &&
|
||||||
|
parentTagName != "div" &&
|
||||||
|
parent.clientTop &&
|
||||||
|
parent.clientLeft) {
|
||||||
|
result.x += parent.clientLeft;
|
||||||
|
result.y += parent.clientTop;
|
||||||
|
}
|
||||||
|
parent = parent.offsetParent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (element.left && element.top) {
|
||||||
|
result.x = element.left;
|
||||||
|
result.y = element.top;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (element.x) {
|
||||||
|
result.x = element.x;
|
||||||
|
}
|
||||||
|
if (element.y) {
|
||||||
|
result.y = element.y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (element.offsetWidth && element.offsetHeight) {
|
||||||
|
result.width = element.offsetWidth;
|
||||||
|
result.height = element.offsetHeight;
|
||||||
|
}
|
||||||
|
else if (element.style && element.style.pixelWidth && element.style.pixelHeight) {
|
||||||
|
result.width = element.style.pixelWidth;
|
||||||
|
result.height = element.style.pixelHeight;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
function WebForm_GetParentByTagName(element, tagName) {
|
||||||
|
var parent = element.parentNode;
|
||||||
|
var upperTagName = tagName.toUpperCase();
|
||||||
|
while (parent && (parent.tagName.toUpperCase() != upperTagName)) {
|
||||||
|
parent = parent.parentNode ? parent.parentNode : parent.parentElement;
|
||||||
|
}
|
||||||
|
return parent;
|
||||||
|
}
|
||||||
|
function WebForm_SetElementHeight(element, height) {
|
||||||
|
if (element && element.style) {
|
||||||
|
element.style.height = height + "px";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebForm_SetElementWidth(element, width) {
|
||||||
|
if (element && element.style) {
|
||||||
|
element.style.width = width + "px";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebForm_SetElementX(element, x) {
|
||||||
|
if (element && element.style) {
|
||||||
|
element.style.left = x + "px";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebForm_SetElementY(element, y) {
|
||||||
|
if (element && element.style) {
|
||||||
|
element.style.top = y + "px";
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,647 @@
|
|||||||
|
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/WebParts.js
|
||||||
|
var __wpm = null;
|
||||||
|
function Point(x, y) {
|
||||||
|
this.x = x;
|
||||||
|
this.y = y;
|
||||||
|
}
|
||||||
|
function __wpTranslateOffset(x, y, offsetElement, relativeToElement, includeScroll) {
|
||||||
|
while ((typeof(offsetElement) != "undefined") && (offsetElement != null) && (offsetElement != relativeToElement)) {
|
||||||
|
x += offsetElement.offsetLeft;
|
||||||
|
y += offsetElement.offsetTop;
|
||||||
|
var tagName = offsetElement.tagName;
|
||||||
|
if ((tagName != "TABLE") && (tagName != "BODY")) {
|
||||||
|
x += offsetElement.clientLeft;
|
||||||
|
y += offsetElement.clientTop;
|
||||||
|
}
|
||||||
|
if (includeScroll && (tagName != "BODY")) {
|
||||||
|
x -= offsetElement.scrollLeft;
|
||||||
|
y -= offsetElement.scrollTop;
|
||||||
|
}
|
||||||
|
offsetElement = offsetElement.offsetParent;
|
||||||
|
}
|
||||||
|
return new Point(x, y);
|
||||||
|
}
|
||||||
|
function __wpGetPageEventLocation(event, includeScroll) {
|
||||||
|
if ((typeof(event) == "undefined") || (event == null)) {
|
||||||
|
event = window.event;
|
||||||
|
}
|
||||||
|
return __wpTranslateOffset(event.offsetX, event.offsetY, event.srcElement, null, includeScroll);
|
||||||
|
}
|
||||||
|
function __wpClearSelection() {
|
||||||
|
document.selection.empty();
|
||||||
|
}
|
||||||
|
function WebPart(webPartElement, webPartTitleElement, zone, zoneIndex, allowZoneChange) {
|
||||||
|
this.webPartElement = webPartElement;
|
||||||
|
this.allowZoneChange = allowZoneChange;
|
||||||
|
this.zone = zone;
|
||||||
|
this.zoneIndex = zoneIndex;
|
||||||
|
this.title = ((typeof(webPartTitleElement) != "undefined") && (webPartTitleElement != null)) ?
|
||||||
|
webPartTitleElement.innerText : "";
|
||||||
|
webPartElement.__webPart = this;
|
||||||
|
if ((typeof(webPartTitleElement) != "undefined") && (webPartTitleElement != null)) {
|
||||||
|
webPartTitleElement.style.cursor = "move";
|
||||||
|
webPartTitleElement.attachEvent("onmousedown", WebPart_OnMouseDown);
|
||||||
|
webPartElement.attachEvent("ondragstart", WebPart_OnDragStart);
|
||||||
|
webPartElement.attachEvent("ondrag", WebPart_OnDrag);
|
||||||
|
webPartElement.attachEvent("ondragend", WebPart_OnDragEnd);
|
||||||
|
}
|
||||||
|
this.UpdatePosition = WebPart_UpdatePosition;
|
||||||
|
this.Dispose = WebPart_Dispose;
|
||||||
|
}
|
||||||
|
function WebPart_Dispose() {
|
||||||
|
this.webPartElement.__webPart = null
|
||||||
|
}
|
||||||
|
function WebPart_OnMouseDown() {
|
||||||
|
var currentEvent = window.event;
|
||||||
|
var draggedWebPart = WebPart_GetParentWebPartElement(currentEvent.srcElement);
|
||||||
|
if ((typeof(draggedWebPart) == "undefined") || (draggedWebPart == null)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
document.selection.empty();
|
||||||
|
try {
|
||||||
|
__wpm.draggedWebPart = draggedWebPart;
|
||||||
|
__wpm.DragDrop();
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
__wpm.draggedWebPart = draggedWebPart;
|
||||||
|
window.setTimeout("__wpm.DragDrop()", 0);
|
||||||
|
}
|
||||||
|
currentEvent.returnValue = false;
|
||||||
|
currentEvent.cancelBubble = true;
|
||||||
|
}
|
||||||
|
function WebPart_OnDragStart() {
|
||||||
|
var currentEvent = window.event;
|
||||||
|
var webPartElement = currentEvent.srcElement;
|
||||||
|
if ((typeof(webPartElement.__webPart) == "undefined") || (webPartElement.__webPart == null)) {
|
||||||
|
currentEvent.returnValue = false;
|
||||||
|
currentEvent.cancelBubble = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var dataObject = currentEvent.dataTransfer;
|
||||||
|
dataObject.effectAllowed = __wpm.InitiateWebPartDragDrop(webPartElement);
|
||||||
|
}
|
||||||
|
function WebPart_OnDrag() {
|
||||||
|
__wpm.ContinueWebPartDragDrop();
|
||||||
|
}
|
||||||
|
function WebPart_OnDragEnd() {
|
||||||
|
__wpm.CompleteWebPartDragDrop();
|
||||||
|
}
|
||||||
|
function WebPart_GetParentWebPartElement(containedElement) {
|
||||||
|
var elem = containedElement;
|
||||||
|
while ((typeof(elem.__webPart) == "undefined") || (elem.__webPart == null)) {
|
||||||
|
elem = elem.parentElement;
|
||||||
|
if ((typeof(elem) == "undefined") || (elem == null)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return elem;
|
||||||
|
}
|
||||||
|
function WebPart_UpdatePosition() {
|
||||||
|
var location = __wpTranslateOffset(0, 0, this.webPartElement, null, false);
|
||||||
|
this.middleX = location.x + this.webPartElement.offsetWidth / 2;
|
||||||
|
this.middleY = location.y + this.webPartElement.offsetHeight / 2;
|
||||||
|
}
|
||||||
|
function Zone(zoneElement, zoneIndex, uniqueID, isVertical, allowLayoutChange, highlightColor) {
|
||||||
|
var webPartTable = null;
|
||||||
|
if (zoneElement.rows.length == 1) {
|
||||||
|
webPartTableContainer = zoneElement.rows[0].cells[0];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
webPartTableContainer = zoneElement.rows[1].cells[0];
|
||||||
|
}
|
||||||
|
var i;
|
||||||
|
for (i = 0; i < webPartTableContainer.childNodes.length; i++) {
|
||||||
|
var node = webPartTableContainer.childNodes[i];
|
||||||
|
if (node.tagName == "TABLE") {
|
||||||
|
webPartTable = node;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.zoneElement = zoneElement;
|
||||||
|
this.zoneIndex = zoneIndex;
|
||||||
|
this.webParts = new Array();
|
||||||
|
this.uniqueID = uniqueID;
|
||||||
|
this.isVertical = isVertical;
|
||||||
|
this.allowLayoutChange = allowLayoutChange;
|
||||||
|
this.allowDrop = false;
|
||||||
|
this.webPartTable = webPartTable;
|
||||||
|
this.highlightColor = highlightColor;
|
||||||
|
this.savedBorderColor = (webPartTable != null) ? webPartTable.style.borderColor : null;
|
||||||
|
this.dropCueElements = new Array();
|
||||||
|
if (webPartTable != null) {
|
||||||
|
if (isVertical) {
|
||||||
|
for (i = 0; i < webPartTable.rows.length; i += 2) {
|
||||||
|
this.dropCueElements[i / 2] = webPartTable.rows[i].cells[0].childNodes[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for (i = 0; i < webPartTable.rows[0].cells.length; i += 2) {
|
||||||
|
this.dropCueElements[i / 2] = webPartTable.rows[0].cells[i].childNodes[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.AddWebPart = Zone_AddWebPart;
|
||||||
|
this.GetWebPartIndex = Zone_GetWebPartIndex;
|
||||||
|
this.ToggleDropCues = Zone_ToggleDropCues;
|
||||||
|
this.UpdatePosition = Zone_UpdatePosition;
|
||||||
|
this.Dispose = Zone_Dispose;
|
||||||
|
webPartTable.__zone = this;
|
||||||
|
webPartTable.attachEvent("ondragenter", Zone_OnDragEnter);
|
||||||
|
webPartTable.attachEvent("ondrop", Zone_OnDrop);
|
||||||
|
}
|
||||||
|
function Zone_Dispose() {
|
||||||
|
for (var i = 0; i < this.webParts.length; i++) {
|
||||||
|
this.webParts[i].Dispose();
|
||||||
|
}
|
||||||
|
this.webPartTable.__zone = null;
|
||||||
|
}
|
||||||
|
function Zone_OnDragEnter() {
|
||||||
|
var handled = __wpm.ProcessWebPartDragEnter();
|
||||||
|
var currentEvent = window.event;
|
||||||
|
if (handled) {
|
||||||
|
currentEvent.returnValue = false;
|
||||||
|
currentEvent.cancelBubble = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function Zone_OnDragOver() {
|
||||||
|
var handled = __wpm.ProcessWebPartDragOver();
|
||||||
|
var currentEvent = window.event;
|
||||||
|
if (handled) {
|
||||||
|
currentEvent.returnValue = false;
|
||||||
|
currentEvent.cancelBubble = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function Zone_OnDrop() {
|
||||||
|
var handled = __wpm.ProcessWebPartDrop();
|
||||||
|
var currentEvent = window.event;
|
||||||
|
if (handled) {
|
||||||
|
currentEvent.returnValue = false;
|
||||||
|
currentEvent.cancelBubble = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function Zone_GetParentZoneElement(containedElement) {
|
||||||
|
var elem = containedElement;
|
||||||
|
while ((typeof(elem.__zone) == "undefined") || (elem.__zone == null)) {
|
||||||
|
elem = elem.parentElement;
|
||||||
|
if ((typeof(elem) == "undefined") || (elem == null)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return elem;
|
||||||
|
}
|
||||||
|
function Zone_AddWebPart(webPartElement, webPartTitleElement, allowZoneChange) {
|
||||||
|
var webPart = null;
|
||||||
|
var zoneIndex = this.webParts.length;
|
||||||
|
if (this.allowLayoutChange && __wpm.IsDragDropEnabled()) {
|
||||||
|
webPart = new WebPart(webPartElement, webPartTitleElement, this, zoneIndex, allowZoneChange);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
webPart = new WebPart(webPartElement, null, this, zoneIndex, allowZoneChange);
|
||||||
|
}
|
||||||
|
this.webParts[zoneIndex] = webPart;
|
||||||
|
return webPart;
|
||||||
|
}
|
||||||
|
function Zone_ToggleDropCues(show, index, ignoreOutline) {
|
||||||
|
if (ignoreOutline == false) {
|
||||||
|
this.webPartTable.style.borderColor = (show ? this.highlightColor : this.savedBorderColor);
|
||||||
|
}
|
||||||
|
if (index == -1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var dropCue = this.dropCueElements[index];
|
||||||
|
if (dropCue && dropCue.style) {
|
||||||
|
if (dropCue.style.height == "100%" && !dropCue.webPartZoneHorizontalCueResized) {
|
||||||
|
var oldParentHeight = dropCue.parentElement.clientHeight;
|
||||||
|
var realHeight = oldParentHeight - 10;
|
||||||
|
dropCue.style.height = realHeight + "px";
|
||||||
|
var dropCueVerticalBar = dropCue.getElementsByTagName("DIV")[0];
|
||||||
|
if (dropCueVerticalBar && dropCueVerticalBar.style) {
|
||||||
|
dropCueVerticalBar.style.height = dropCue.style.height;
|
||||||
|
var heightDiff = (dropCue.parentElement.clientHeight - oldParentHeight);
|
||||||
|
if (heightDiff) {
|
||||||
|
dropCue.style.height = (realHeight - heightDiff) + "px";
|
||||||
|
dropCueVerticalBar.style.height = dropCue.style.height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dropCue.webPartZoneHorizontalCueResized = true;
|
||||||
|
}
|
||||||
|
dropCue.style.visibility = (show ? "visible" : "hidden");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function Zone_GetWebPartIndex(location) {
|
||||||
|
var x = location.x;
|
||||||
|
var y = location.y;
|
||||||
|
if ((x < this.webPartTableLeft) || (x > this.webPartTableRight) ||
|
||||||
|
(y < this.webPartTableTop) || (y > this.webPartTableBottom)) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
var vertical = this.isVertical;
|
||||||
|
var webParts = this.webParts;
|
||||||
|
var webPartsCount = webParts.length;
|
||||||
|
for (var i = 0; i < webPartsCount; i++) {
|
||||||
|
var webPart = webParts[i];
|
||||||
|
if (vertical) {
|
||||||
|
if (y < webPart.middleY) {
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (x < webPart.middleX) {
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return webPartsCount;
|
||||||
|
}
|
||||||
|
function Zone_UpdatePosition() {
|
||||||
|
var topLeft = __wpTranslateOffset(0, 0, this.webPartTable, null, false);
|
||||||
|
this.webPartTableLeft = topLeft.x;
|
||||||
|
this.webPartTableTop = topLeft.y;
|
||||||
|
this.webPartTableRight = (this.webPartTable != null) ? topLeft.x + this.webPartTable.offsetWidth : topLeft.x;
|
||||||
|
this.webPartTableBottom = (this.webPartTable != null) ? topLeft.y + this.webPartTable.offsetHeight : topLeft.y;
|
||||||
|
for (var i = 0; i < this.webParts.length; i++) {
|
||||||
|
this.webParts[i].UpdatePosition();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebPartDragState(webPartElement, effect) {
|
||||||
|
this.webPartElement = webPartElement;
|
||||||
|
this.dropZoneElement = null;
|
||||||
|
this.dropIndex = -1;
|
||||||
|
this.effect = effect;
|
||||||
|
this.dropped = false;
|
||||||
|
}
|
||||||
|
function WebPartMenu(menuLabelElement, menuDropDownElement, menuElement) {
|
||||||
|
this.menuLabelElement = menuLabelElement;
|
||||||
|
this.menuDropDownElement = menuDropDownElement;
|
||||||
|
this.menuElement = menuElement;
|
||||||
|
this.menuLabelElement.__menu = this;
|
||||||
|
this.menuLabelElement.attachEvent('onclick', WebPartMenu_OnClick);
|
||||||
|
this.menuLabelElement.attachEvent('onkeypress', WebPartMenu_OnKeyPress);
|
||||||
|
this.menuLabelElement.attachEvent('onmouseenter', WebPartMenu_OnMouseEnter);
|
||||||
|
this.menuLabelElement.attachEvent('onmouseleave', WebPartMenu_OnMouseLeave);
|
||||||
|
if ((typeof(this.menuDropDownElement) != "undefined") && (this.menuDropDownElement != null)) {
|
||||||
|
this.menuDropDownElement.__menu = this;
|
||||||
|
}
|
||||||
|
this.menuItemStyle = "";
|
||||||
|
this.menuItemHoverStyle = "";
|
||||||
|
this.popup = null;
|
||||||
|
this.hoverClassName = "";
|
||||||
|
this.hoverColor = "";
|
||||||
|
this.oldColor = this.menuLabelElement.style.color;
|
||||||
|
this.oldTextDecoration = this.menuLabelElement.style.textDecoration;
|
||||||
|
this.oldClassName = this.menuLabelElement.className;
|
||||||
|
this.Show = WebPartMenu_Show;
|
||||||
|
this.Hide = WebPartMenu_Hide;
|
||||||
|
this.Hover = WebPartMenu_Hover;
|
||||||
|
this.Unhover = WebPartMenu_Unhover;
|
||||||
|
this.Dispose = WebPartMenu_Dispose;
|
||||||
|
var menu = this;
|
||||||
|
this.disposeDelegate = function() { menu.Dispose(); };
|
||||||
|
window.attachEvent('onunload', this.disposeDelegate);
|
||||||
|
}
|
||||||
|
function WebPartMenu_Dispose() {
|
||||||
|
this.menuLabelElement.__menu = null;
|
||||||
|
this.menuDropDownElement.__menu = null;
|
||||||
|
window.detachEvent('onunload', this.disposeDelegate);
|
||||||
|
}
|
||||||
|
function WebPartMenu_Show() {
|
||||||
|
if ((typeof(__wpm.menu) != "undefined") && (__wpm.menu != null)) {
|
||||||
|
__wpm.menu.Hide();
|
||||||
|
}
|
||||||
|
var menuHTML =
|
||||||
|
"<html><head><style>" +
|
||||||
|
"a.menuItem, a.menuItem:Link { display: block; padding: 1px; text-decoration: none; " + this.itemStyle + " }" +
|
||||||
|
"a.menuItem:Hover { " + this.itemHoverStyle + " }" +
|
||||||
|
"</style><body scroll=\"no\" style=\"border: none; margin: 0; padding: 0;\" ondragstart=\"window.event.returnValue=false;\" onclick=\"popup.hide()\">" +
|
||||||
|
this.menuElement.innerHTML +
|
||||||
|
"</body></html>";
|
||||||
|
var width = 16;
|
||||||
|
var height = 16;
|
||||||
|
this.popup = window.createPopup();
|
||||||
|
__wpm.menu = this;
|
||||||
|
var popupDocument = this.popup.document;
|
||||||
|
popupDocument.write(menuHTML);
|
||||||
|
this.popup.show(0, 0, width, height);
|
||||||
|
var popupBody = popupDocument.body;
|
||||||
|
width = popupBody.scrollWidth;
|
||||||
|
height = popupBody.scrollHeight;
|
||||||
|
if (width < this.menuLabelElement.offsetWidth) {
|
||||||
|
width = this.menuLabelElement.offsetWidth + 16;
|
||||||
|
}
|
||||||
|
if (this.menuElement.innerHTML.indexOf("progid:DXImageTransform.Microsoft.Shadow") != -1) {
|
||||||
|
popupBody.style.paddingRight = "4px";
|
||||||
|
}
|
||||||
|
popupBody.__wpm = __wpm;
|
||||||
|
popupBody.__wpmDeleteWarning = __wpmDeleteWarning;
|
||||||
|
popupBody.__wpmCloseProviderWarning = __wpmCloseProviderWarning;
|
||||||
|
popupBody.popup = this.popup;
|
||||||
|
this.popup.hide();
|
||||||
|
this.popup.show(0, this.menuLabelElement.offsetHeight, width, height, this.menuLabelElement);
|
||||||
|
}
|
||||||
|
function WebPartMenu_Hide() {
|
||||||
|
if (__wpm.menu == this) {
|
||||||
|
__wpm.menu = null;
|
||||||
|
if ((typeof(this.popup) != "undefined") && (this.popup != null)) {
|
||||||
|
this.popup.hide();
|
||||||
|
this.popup = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebPartMenu_Hover() {
|
||||||
|
if (this.labelHoverClassName != "") {
|
||||||
|
this.menuLabelElement.className = this.menuLabelElement.className + " " + this.labelHoverClassName;
|
||||||
|
}
|
||||||
|
if (this.labelHoverColor != "") {
|
||||||
|
this.menuLabelElement.style.color = this.labelHoverColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebPartMenu_Unhover() {
|
||||||
|
if (this.labelHoverClassName != "") {
|
||||||
|
this.menuLabelElement.style.textDecoration = this.oldTextDecoration;
|
||||||
|
this.menuLabelElement.className = this.oldClassName;
|
||||||
|
}
|
||||||
|
if (this.labelHoverColor != "") {
|
||||||
|
this.menuLabelElement.style.color = this.oldColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebPartMenu_OnClick() {
|
||||||
|
var menu = window.event.srcElement.__menu;
|
||||||
|
if ((typeof(menu) != "undefined") && (menu != null)) {
|
||||||
|
window.event.returnValue = false;
|
||||||
|
window.event.cancelBubble = true;
|
||||||
|
menu.Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebPartMenu_OnKeyPress() {
|
||||||
|
if (window.event.keyCode == 13) {
|
||||||
|
var menu = window.event.srcElement.__menu;
|
||||||
|
if ((typeof(menu) != "undefined") && (menu != null)) {
|
||||||
|
window.event.returnValue = false;
|
||||||
|
window.event.cancelBubble = true;
|
||||||
|
menu.Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebPartMenu_OnMouseEnter() {
|
||||||
|
var menu = window.event.srcElement.__menu;
|
||||||
|
if ((typeof(menu) != "undefined") && (menu != null)) {
|
||||||
|
menu.Hover();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebPartMenu_OnMouseLeave() {
|
||||||
|
var menu = window.event.srcElement.__menu;
|
||||||
|
if ((typeof(menu) != "undefined") && (menu != null)) {
|
||||||
|
menu.Unhover();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebPartManager() {
|
||||||
|
this.overlayContainerElement = null;
|
||||||
|
this.zones = new Array();
|
||||||
|
this.dragState = null;
|
||||||
|
this.menu = null;
|
||||||
|
this.draggedWebPart = null;
|
||||||
|
this.AddZone = WebPartManager_AddZone;
|
||||||
|
this.IsDragDropEnabled = WebPartManager_IsDragDropEnabled;
|
||||||
|
this.DragDrop = WebPartManager_DragDrop;
|
||||||
|
this.InitiateWebPartDragDrop = WebPartManager_InitiateWebPartDragDrop;
|
||||||
|
this.CompleteWebPartDragDrop = WebPartManager_CompleteWebPartDragDrop;
|
||||||
|
this.ContinueWebPartDragDrop = WebPartManager_ContinueWebPartDragDrop;
|
||||||
|
this.ProcessWebPartDragEnter = WebPartManager_ProcessWebPartDragEnter;
|
||||||
|
this.ProcessWebPartDragOver = WebPartManager_ProcessWebPartDragOver;
|
||||||
|
this.ProcessWebPartDrop = WebPartManager_ProcessWebPartDrop;
|
||||||
|
this.ShowHelp = WebPartManager_ShowHelp;
|
||||||
|
this.ExportWebPart = WebPartManager_ExportWebPart;
|
||||||
|
this.Execute = WebPartManager_Execute;
|
||||||
|
this.SubmitPage = WebPartManager_SubmitPage;
|
||||||
|
this.UpdatePositions = WebPartManager_UpdatePositions;
|
||||||
|
window.attachEvent("onunload", WebPartManager_Dispose);
|
||||||
|
}
|
||||||
|
function WebPartManager_Dispose() {
|
||||||
|
for (var i = 0; i < __wpm.zones.length; i++) {
|
||||||
|
__wpm.zones[i].Dispose();
|
||||||
|
}
|
||||||
|
window.detachEvent("onunload", WebPartManager_Dispose);
|
||||||
|
}
|
||||||
|
function WebPartManager_AddZone(zoneElement, uniqueID, isVertical, allowLayoutChange, highlightColor) {
|
||||||
|
var zoneIndex = this.zones.length;
|
||||||
|
var zone = new Zone(zoneElement, zoneIndex, uniqueID, isVertical, allowLayoutChange, highlightColor);
|
||||||
|
this.zones[zoneIndex] = zone;
|
||||||
|
return zone;
|
||||||
|
}
|
||||||
|
function WebPartManager_IsDragDropEnabled() {
|
||||||
|
return ((typeof(this.overlayContainerElement) != "undefined") && (this.overlayContainerElement != null));
|
||||||
|
}
|
||||||
|
function WebPartManager_DragDrop() {
|
||||||
|
if ((typeof(this.draggedWebPart) != "undefined") && (this.draggedWebPart != null)) {
|
||||||
|
var tempWebPart = this.draggedWebPart;
|
||||||
|
this.draggedWebPart = null;
|
||||||
|
tempWebPart.dragDrop();
|
||||||
|
window.setTimeout("__wpClearSelection()", 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebPartManager_InitiateWebPartDragDrop(webPartElement) {
|
||||||
|
var webPart = webPartElement.__webPart;
|
||||||
|
this.UpdatePositions();
|
||||||
|
this.dragState = new WebPartDragState(webPartElement, "move");
|
||||||
|
var location = __wpGetPageEventLocation(window.event, true);
|
||||||
|
var overlayContainerElement = this.overlayContainerElement;
|
||||||
|
overlayContainerElement.style.left = location.x - webPartElement.offsetWidth / 2;
|
||||||
|
overlayContainerElement.style.top = location.y + 4 + (webPartElement.clientTop ? webPartElement.clientTop : 0);
|
||||||
|
overlayContainerElement.style.display = "block";
|
||||||
|
overlayContainerElement.style.width = webPartElement.offsetWidth;
|
||||||
|
overlayContainerElement.style.height = webPartElement.offsetHeight;
|
||||||
|
overlayContainerElement.appendChild(webPartElement.cloneNode(true));
|
||||||
|
if (webPart.allowZoneChange == false) {
|
||||||
|
webPart.zone.allowDrop = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for (var i = 0; i < __wpm.zones.length; i++) {
|
||||||
|
var zone = __wpm.zones[i];
|
||||||
|
if (zone.allowLayoutChange) {
|
||||||
|
zone.allowDrop = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
document.body.attachEvent("ondragover", Zone_OnDragOver);
|
||||||
|
return "move";
|
||||||
|
}
|
||||||
|
function WebPartManager_CompleteWebPartDragDrop() {
|
||||||
|
var dragState = this.dragState;
|
||||||
|
this.dragState = null;
|
||||||
|
if ((typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) {
|
||||||
|
dragState.dropZoneElement.__zone.ToggleDropCues(false, dragState.dropIndex, false);
|
||||||
|
}
|
||||||
|
document.body.detachEvent("ondragover", Zone_OnDragOver);
|
||||||
|
for (var i = 0; i < __wpm.zones.length; i++) {
|
||||||
|
__wpm.zones[i].allowDrop = false;
|
||||||
|
}
|
||||||
|
this.overlayContainerElement.removeChild(this.overlayContainerElement.firstChild);
|
||||||
|
this.overlayContainerElement.style.display = "none";
|
||||||
|
if ((typeof(dragState) != "undefined") && (dragState != null) && (dragState.dropped == true)) {
|
||||||
|
var currentZone = dragState.webPartElement.__webPart.zone;
|
||||||
|
var currentZoneIndex = dragState.webPartElement.__webPart.zoneIndex;
|
||||||
|
if ((currentZone != dragState.dropZoneElement.__zone) ||
|
||||||
|
((currentZoneIndex != dragState.dropIndex) &&
|
||||||
|
(currentZoneIndex != (dragState.dropIndex - 1)))) {
|
||||||
|
var eventTarget = dragState.dropZoneElement.__zone.uniqueID;
|
||||||
|
var eventArgument = "Drag:" + dragState.webPartElement.id + ":" + dragState.dropIndex;
|
||||||
|
this.SubmitPage(eventTarget, eventArgument);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebPartManager_ContinueWebPartDragDrop() {
|
||||||
|
var dragState = this.dragState;
|
||||||
|
if ((typeof(dragState) != "undefined") && (dragState != null)) {
|
||||||
|
var style = this.overlayContainerElement.style;
|
||||||
|
var location = __wpGetPageEventLocation(window.event, true);
|
||||||
|
style.left = location.x - dragState.webPartElement.offsetWidth / 2;
|
||||||
|
style.top = location.y + 4 + (dragState.webPartElement.clientTop ? dragState.webPartElement.clientTop : 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebPartManager_Execute(script) {
|
||||||
|
if (this.menu) {
|
||||||
|
this.menu.Hide();
|
||||||
|
}
|
||||||
|
var scriptReference = new Function(script);
|
||||||
|
return (scriptReference() != false);
|
||||||
|
}
|
||||||
|
function WebPartManager_ProcessWebPartDragEnter() {
|
||||||
|
var dragState = __wpm.dragState;
|
||||||
|
if ((typeof(dragState) != "undefined") && (dragState != null)) {
|
||||||
|
var currentEvent = window.event;
|
||||||
|
var newDropZoneElement = Zone_GetParentZoneElement(currentEvent.srcElement);
|
||||||
|
if ((typeof(newDropZoneElement.__zone) == "undefined") || (newDropZoneElement.__zone == null) ||
|
||||||
|
(newDropZoneElement.__zone.allowDrop == false)) {
|
||||||
|
newDropZoneElement = null;
|
||||||
|
}
|
||||||
|
var newDropIndex = -1;
|
||||||
|
if ((typeof(newDropZoneElement) != "undefined") && (newDropZoneElement != null)) {
|
||||||
|
newDropIndex = newDropZoneElement.__zone.GetWebPartIndex(__wpGetPageEventLocation(currentEvent, false));
|
||||||
|
if (newDropIndex == -1) {
|
||||||
|
newDropZoneElement = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (dragState.dropZoneElement != newDropZoneElement) {
|
||||||
|
if ((typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) {
|
||||||
|
dragState.dropZoneElement.__zone.ToggleDropCues(false, dragState.dropIndex, false);
|
||||||
|
}
|
||||||
|
dragState.dropZoneElement = newDropZoneElement;
|
||||||
|
dragState.dropIndex = newDropIndex;
|
||||||
|
if ((typeof(newDropZoneElement) != "undefined") && (newDropZoneElement != null)) {
|
||||||
|
newDropZoneElement.__zone.ToggleDropCues(true, newDropIndex, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (dragState.dropIndex != newDropIndex) {
|
||||||
|
if (dragState.dropIndex != -1) {
|
||||||
|
dragState.dropZoneElement.__zone.ToggleDropCues(false, dragState.dropIndex, false);
|
||||||
|
}
|
||||||
|
dragState.dropIndex = newDropIndex;
|
||||||
|
if ((typeof(newDropZoneElement) != "undefined") && (newDropZoneElement != null)) {
|
||||||
|
newDropZoneElement.__zone.ToggleDropCues(true, newDropIndex, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) {
|
||||||
|
currentEvent.dataTransfer.effectAllowed = dragState.effect;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
function WebPartManager_ProcessWebPartDragOver() {
|
||||||
|
var dragState = __wpm.dragState;
|
||||||
|
var currentEvent = window.event;
|
||||||
|
var handled = false;
|
||||||
|
if ((typeof(dragState) != "undefined") && (dragState != null) &&
|
||||||
|
(typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) {
|
||||||
|
var dropZoneElement = Zone_GetParentZoneElement(currentEvent.srcElement);
|
||||||
|
if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null) && (dropZoneElement.__zone.allowDrop == false)) {
|
||||||
|
dropZoneElement = null;
|
||||||
|
}
|
||||||
|
if (((typeof(dropZoneElement) == "undefined") || (dropZoneElement == null)) &&
|
||||||
|
(typeof(dragState.dropZoneElement) != "undefined") && (dragState.dropZoneElement != null)) {
|
||||||
|
dragState.dropZoneElement.__zone.ToggleDropCues(false, __wpm.dragState.dropIndex, false);
|
||||||
|
dragState.dropZoneElement = null;
|
||||||
|
dragState.dropIndex = -1;
|
||||||
|
}
|
||||||
|
else if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null)) {
|
||||||
|
var location = __wpGetPageEventLocation(currentEvent, false);
|
||||||
|
var newDropIndex = dropZoneElement.__zone.GetWebPartIndex(location);
|
||||||
|
if (newDropIndex == -1) {
|
||||||
|
dropZoneElement = null;
|
||||||
|
}
|
||||||
|
if (dragState.dropZoneElement != dropZoneElement) {
|
||||||
|
if ((dragState.dropIndex != -1) || (typeof(dropZoneElement) == "undefined") || (dropZoneElement == null)) {
|
||||||
|
dragState.dropZoneElement.__zone.ToggleDropCues(false, __wpm.dragState.dropIndex, false);
|
||||||
|
}
|
||||||
|
dragState.dropZoneElement = dropZoneElement;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
dragState.dropZoneElement.__zone.ToggleDropCues(false, dragState.dropIndex, true);
|
||||||
|
}
|
||||||
|
dragState.dropIndex = newDropIndex;
|
||||||
|
if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null)) {
|
||||||
|
dropZoneElement.__zone.ToggleDropCues(true, newDropIndex, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
handled = true;
|
||||||
|
}
|
||||||
|
if ((typeof(dragState) == "undefined") || (dragState == null) ||
|
||||||
|
(typeof(dragState.dropZoneElement) == "undefined") || (dragState.dropZoneElement == null)) {
|
||||||
|
currentEvent.dataTransfer.effectAllowed = "none";
|
||||||
|
}
|
||||||
|
return handled;
|
||||||
|
}
|
||||||
|
function WebPartManager_ProcessWebPartDrop() {
|
||||||
|
var dragState = this.dragState;
|
||||||
|
if ((typeof(dragState) != "undefined") && (dragState != null)) {
|
||||||
|
var currentEvent = window.event;
|
||||||
|
var dropZoneElement = Zone_GetParentZoneElement(currentEvent.srcElement);
|
||||||
|
if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null) && (dropZoneElement.__zone.allowDrop == false)) {
|
||||||
|
dropZoneElement = null;
|
||||||
|
}
|
||||||
|
if ((typeof(dropZoneElement) != "undefined") && (dropZoneElement != null) && (dragState.dropZoneElement == dropZoneElement)) {
|
||||||
|
dragState.dropped = true;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
function WebPartManager_ShowHelp(helpUrl, helpMode) {
|
||||||
|
if ((typeof(this.menu) != "undefined") && (this.menu != null)) {
|
||||||
|
this.menu.Hide();
|
||||||
|
}
|
||||||
|
if (helpMode == 0 || helpMode == 1) {
|
||||||
|
if (helpMode == 0) {
|
||||||
|
var dialogInfo = "edge: Sunken; center: yes; help: no; resizable: yes; status: no";
|
||||||
|
window.showModalDialog(helpUrl, null, dialogInfo);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
window.open(helpUrl, null, "scrollbars=yes,resizable=yes,status=no,toolbar=no,menubar=no,location=no");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (helpMode == 2) {
|
||||||
|
window.location = helpUrl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebPartManager_ExportWebPart(exportUrl, warn, confirmOnly) {
|
||||||
|
if (warn == true && __wpmExportWarning.length > 0 && this.personalizationScopeShared != true) {
|
||||||
|
if (confirm(__wpmExportWarning) == false) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (confirmOnly == false) {
|
||||||
|
window.location = exportUrl;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
function WebPartManager_UpdatePositions() {
|
||||||
|
for (var i = 0; i < this.zones.length; i++) {
|
||||||
|
this.zones[i].UpdatePosition();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function WebPartManager_SubmitPage(eventTarget, eventArgument) {
|
||||||
|
if ((typeof(this.menu) != "undefined") && (this.menu != null)) {
|
||||||
|
this.menu.Hide();
|
||||||
|
}
|
||||||
|
__doPostBack(eventTarget, eventArgument);
|
||||||
|
}
|
@ -0,0 +1,684 @@
|
|||||||
|
//CdnPath=http://ajax.aspnetcdn.com/ajax/4.5.1/1/WebUIValidation.js
|
||||||
|
var Page_ValidationVer = "125";
|
||||||
|
var Page_IsValid = true;
|
||||||
|
var Page_BlockSubmit = false;
|
||||||
|
var Page_InvalidControlToBeFocused = null;
|
||||||
|
var Page_TextTypes = /^(text|password|file|search|tel|url|email|number|range|color|datetime|date|month|week|time|datetime-local)$/i;
|
||||||
|
function ValidatorUpdateDisplay(val) {
|
||||||
|
if (typeof(val.display) == "string") {
|
||||||
|
if (val.display == "None") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (val.display == "Dynamic") {
|
||||||
|
val.style.display = val.isvalid ? "none" : "inline";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((navigator.userAgent.indexOf("Mac") > -1) &&
|
||||||
|
(navigator.userAgent.indexOf("MSIE") > -1)) {
|
||||||
|
val.style.display = "inline";
|
||||||
|
}
|
||||||
|
val.style.visibility = val.isvalid ? "hidden" : "visible";
|
||||||
|
}
|
||||||
|
function ValidatorUpdateIsValid() {
|
||||||
|
Page_IsValid = AllValidatorsValid(Page_Validators);
|
||||||
|
}
|
||||||
|
function AllValidatorsValid(validators) {
|
||||||
|
if ((typeof(validators) != "undefined") && (validators != null)) {
|
||||||
|
var i;
|
||||||
|
for (i = 0; i < validators.length; i++) {
|
||||||
|
if (!validators[i].isvalid) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
function ValidatorHookupControlID(controlID, val) {
|
||||||
|
if (typeof(controlID) != "string") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var ctrl = document.getElementById(controlID);
|
||||||
|
if ((typeof(ctrl) != "undefined") && (ctrl != null)) {
|
||||||
|
ValidatorHookupControl(ctrl, val);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
val.isvalid = true;
|
||||||
|
val.enabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function ValidatorHookupControl(control, val) {
|
||||||
|
if (typeof(control.tagName) != "string") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (control.tagName != "INPUT" && control.tagName != "TEXTAREA" && control.tagName != "SELECT") {
|
||||||
|
var i;
|
||||||
|
for (i = 0; i < control.childNodes.length; i++) {
|
||||||
|
ValidatorHookupControl(control.childNodes[i], val);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (typeof(control.Validators) == "undefined") {
|
||||||
|
control.Validators = new Array;
|
||||||
|
var eventType;
|
||||||
|
if (control.type == "radio") {
|
||||||
|
eventType = "onclick";
|
||||||
|
} else {
|
||||||
|
eventType = "onchange";
|
||||||
|
if (typeof(val.focusOnError) == "string" && val.focusOnError == "t") {
|
||||||
|
ValidatorHookupEvent(control, "onblur", "ValidatedControlOnBlur(event); ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ValidatorHookupEvent(control, eventType, "ValidatorOnChange(event); ");
|
||||||
|
if (Page_TextTypes.test(control.type)) {
|
||||||
|
ValidatorHookupEvent(control, "onkeypress",
|
||||||
|
"event = event || window.event; if (!ValidatedTextBoxOnKeyPress(event)) { event.cancelBubble = true; if (event.stopPropagation) event.stopPropagation(); return false; } ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
control.Validators[control.Validators.length] = val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function ValidatorHookupEvent(control, eventType, functionPrefix) {
|
||||||
|
var ev = control[eventType];
|
||||||
|
if (typeof(ev) == "function") {
|
||||||
|
ev = ev.toString();
|
||||||
|
ev = ev.substring(ev.indexOf("{") + 1, ev.lastIndexOf("}"));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ev = "";
|
||||||
|
}
|
||||||
|
control[eventType] = new Function("event", functionPrefix + " " + ev);
|
||||||
|
}
|
||||||
|
function ValidatorGetValue(id) {
|
||||||
|
var control;
|
||||||
|
control = document.getElementById(id);
|
||||||
|
if (typeof(control.value) == "string") {
|
||||||
|
return control.value;
|
||||||
|
}
|
||||||
|
return ValidatorGetValueRecursive(control);
|
||||||
|
}
|
||||||
|
function ValidatorGetValueRecursive(control)
|
||||||
|
{
|
||||||
|
if (typeof(control.value) == "string" && (control.type != "radio" || control.checked == true)) {
|
||||||
|
return control.value;
|
||||||
|
}
|
||||||
|
var i, val;
|
||||||
|
for (i = 0; i<control.childNodes.length; i++) {
|
||||||
|
val = ValidatorGetValueRecursive(control.childNodes[i]);
|
||||||
|
if (val != "") return val;
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
function Page_ClientValidate(validationGroup) {
|
||||||
|
Page_InvalidControlToBeFocused = null;
|
||||||
|
if (typeof(Page_Validators) == "undefined") {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
var i;
|
||||||
|
for (i = 0; i < Page_Validators.length; i++) {
|
||||||
|
ValidatorValidate(Page_Validators[i], validationGroup, null);
|
||||||
|
}
|
||||||
|
ValidatorUpdateIsValid();
|
||||||
|
ValidationSummaryOnSubmit(validationGroup);
|
||||||
|
Page_BlockSubmit = !Page_IsValid;
|
||||||
|
return Page_IsValid;
|
||||||
|
}
|
||||||
|
function ValidatorCommonOnSubmit() {
|
||||||
|
Page_InvalidControlToBeFocused = null;
|
||||||
|
var result = !Page_BlockSubmit;
|
||||||
|
if ((typeof(window.event) != "undefined") && (window.event != null)) {
|
||||||
|
window.event.returnValue = result;
|
||||||
|
}
|
||||||
|
Page_BlockSubmit = false;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
function ValidatorEnable(val, enable) {
|
||||||
|
val.enabled = (enable != false);
|
||||||
|
ValidatorValidate(val);
|
||||||
|
ValidatorUpdateIsValid();
|
||||||
|
}
|
||||||
|
function ValidatorOnChange(event) {
|
||||||
|
event = event || window.event;
|
||||||
|
Page_InvalidControlToBeFocused = null;
|
||||||
|
var targetedControl;
|
||||||
|
if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) {
|
||||||
|
targetedControl = event.srcElement;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
targetedControl = event.target;
|
||||||
|
}
|
||||||
|
var vals;
|
||||||
|
if (typeof(targetedControl.Validators) != "undefined") {
|
||||||
|
vals = targetedControl.Validators;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (targetedControl.tagName.toLowerCase() == "label") {
|
||||||
|
targetedControl = document.getElementById(targetedControl.htmlFor);
|
||||||
|
vals = targetedControl.Validators;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (vals) {
|
||||||
|
for (var i = 0; i < vals.length; i++) {
|
||||||
|
ValidatorValidate(vals[i], null, event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ValidatorUpdateIsValid();
|
||||||
|
}
|
||||||
|
function ValidatedTextBoxOnKeyPress(event) {
|
||||||
|
event = event || window.event;
|
||||||
|
if (event.keyCode == 13) {
|
||||||
|
ValidatorOnChange(event);
|
||||||
|
var vals;
|
||||||
|
if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) {
|
||||||
|
vals = event.srcElement.Validators;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
vals = event.target.Validators;
|
||||||
|
}
|
||||||
|
return AllValidatorsValid(vals);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
function ValidatedControlOnBlur(event) {
|
||||||
|
event = event || window.event;
|
||||||
|
var control;
|
||||||
|
if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) {
|
||||||
|
control = event.srcElement;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
control = event.target;
|
||||||
|
}
|
||||||
|
if ((typeof(control) != "undefined") && (control != null) && (Page_InvalidControlToBeFocused == control)) {
|
||||||
|
control.focus();
|
||||||
|
Page_InvalidControlToBeFocused = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function ValidatorValidate(val, validationGroup, event) {
|
||||||
|
val.isvalid = true;
|
||||||
|
if ((typeof(val.enabled) == "undefined" || val.enabled != false) && IsValidationGroupMatch(val, validationGroup)) {
|
||||||
|
if (typeof(val.evaluationfunction) == "function") {
|
||||||
|
val.isvalid = val.evaluationfunction(val);
|
||||||
|
if (!val.isvalid && Page_InvalidControlToBeFocused == null &&
|
||||||
|
typeof(val.focusOnError) == "string" && val.focusOnError == "t") {
|
||||||
|
ValidatorSetFocus(val, event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ValidatorUpdateDisplay(val);
|
||||||
|
}
|
||||||
|
function ValidatorSetFocus(val, event) {
|
||||||
|
var ctrl;
|
||||||
|
if (typeof(val.controlhookup) == "string") {
|
||||||
|
var eventCtrl;
|
||||||
|
if ((typeof(event) != "undefined") && (event != null)) {
|
||||||
|
if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) {
|
||||||
|
eventCtrl = event.srcElement;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
eventCtrl = event.target;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((typeof(eventCtrl) != "undefined") && (eventCtrl != null) &&
|
||||||
|
(typeof(eventCtrl.id) == "string") &&
|
||||||
|
(eventCtrl.id == val.controlhookup)) {
|
||||||
|
ctrl = eventCtrl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((typeof(ctrl) == "undefined") || (ctrl == null)) {
|
||||||
|
ctrl = document.getElementById(val.controltovalidate);
|
||||||
|
}
|
||||||
|
if ((typeof(ctrl) != "undefined") && (ctrl != null) &&
|
||||||
|
(ctrl.tagName.toLowerCase() != "table" || (typeof(event) == "undefined") || (event == null)) &&
|
||||||
|
((ctrl.tagName.toLowerCase() != "input") || (ctrl.type.toLowerCase() != "hidden")) &&
|
||||||
|
(typeof(ctrl.disabled) == "undefined" || ctrl.disabled == null || ctrl.disabled == false) &&
|
||||||
|
(typeof(ctrl.visible) == "undefined" || ctrl.visible == null || ctrl.visible != false) &&
|
||||||
|
(IsInVisibleContainer(ctrl))) {
|
||||||
|
if ((ctrl.tagName.toLowerCase() == "table" && (typeof(__nonMSDOMBrowser) == "undefined" || __nonMSDOMBrowser)) ||
|
||||||
|
(ctrl.tagName.toLowerCase() == "span")) {
|
||||||
|
var inputElements = ctrl.getElementsByTagName("input");
|
||||||
|
var lastInputElement = inputElements[inputElements.length -1];
|
||||||
|
if (lastInputElement != null) {
|
||||||
|
ctrl = lastInputElement;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (typeof(ctrl.focus) != "undefined" && ctrl.focus != null) {
|
||||||
|
ctrl.focus();
|
||||||
|
Page_InvalidControlToBeFocused = ctrl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function IsInVisibleContainer(ctrl) {
|
||||||
|
if (typeof(ctrl.style) != "undefined" &&
|
||||||
|
( ( typeof(ctrl.style.display) != "undefined" &&
|
||||||
|
ctrl.style.display == "none") ||
|
||||||
|
( typeof(ctrl.style.visibility) != "undefined" &&
|
||||||
|
ctrl.style.visibility == "hidden") ) ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (typeof(ctrl.parentNode) != "undefined" &&
|
||||||
|
ctrl.parentNode != null &&
|
||||||
|
ctrl.parentNode != ctrl) {
|
||||||
|
return IsInVisibleContainer(ctrl.parentNode);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
function IsValidationGroupMatch(control, validationGroup) {
|
||||||
|
if ((typeof(validationGroup) == "undefined") || (validationGroup == null)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
var controlGroup = "";
|
||||||
|
if (typeof(control.validationGroup) == "string") {
|
||||||
|
controlGroup = control.validationGroup;
|
||||||
|
}
|
||||||
|
return (controlGroup == validationGroup);
|
||||||
|
}
|
||||||
|
function ValidatorOnLoad() {
|
||||||
|
if (typeof(Page_Validators) == "undefined")
|
||||||
|
return;
|
||||||
|
var i, val;
|
||||||
|
for (i = 0; i < Page_Validators.length; i++) {
|
||||||
|
val = Page_Validators[i];
|
||||||
|
if (typeof(val.evaluationfunction) == "string") {
|
||||||
|
eval("val.evaluationfunction = " + val.evaluationfunction + ";");
|
||||||
|
}
|
||||||
|
if (typeof(val.isvalid) == "string") {
|
||||||
|
if (val.isvalid == "False") {
|
||||||
|
val.isvalid = false;
|
||||||
|
Page_IsValid = false;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
val.isvalid = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
val.isvalid = true;
|
||||||
|
}
|
||||||
|
if (typeof(val.enabled) == "string") {
|
||||||
|
val.enabled = (val.enabled != "False");
|
||||||
|
}
|
||||||
|
if (typeof(val.controltovalidate) == "string") {
|
||||||
|
ValidatorHookupControlID(val.controltovalidate, val);
|
||||||
|
}
|
||||||
|
if (typeof(val.controlhookup) == "string") {
|
||||||
|
ValidatorHookupControlID(val.controlhookup, val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Page_ValidationActive = true;
|
||||||
|
}
|
||||||
|
function ValidatorConvert(op, dataType, val) {
|
||||||
|
function GetFullYear(year) {
|
||||||
|
var twoDigitCutoffYear = val.cutoffyear % 100;
|
||||||
|
var cutoffYearCentury = val.cutoffyear - twoDigitCutoffYear;
|
||||||
|
return ((year > twoDigitCutoffYear) ? (cutoffYearCentury - 100 + year) : (cutoffYearCentury + year));
|
||||||
|
}
|
||||||
|
var num, cleanInput, m, exp;
|
||||||
|
if (dataType == "Integer") {
|
||||||
|
exp = /^\s*[-\+]?\d+\s*$/;
|
||||||
|
if (op.match(exp) == null)
|
||||||
|
return null;
|
||||||
|
num = parseInt(op, 10);
|
||||||
|
return (isNaN(num) ? null : num);
|
||||||
|
}
|
||||||
|
else if(dataType == "Double") {
|
||||||
|
exp = new RegExp("^\\s*([-\\+])?(\\d*)\\" + val.decimalchar + "?(\\d*)\\s*$");
|
||||||
|
m = op.match(exp);
|
||||||
|
if (m == null)
|
||||||
|
return null;
|
||||||
|
if (m[2].length == 0 && m[3].length == 0)
|
||||||
|
return null;
|
||||||
|
cleanInput = (m[1] != null ? m[1] : "") + (m[2].length>0 ? m[2] : "0") + (m[3].length>0 ? "." + m[3] : "");
|
||||||
|
num = parseFloat(cleanInput);
|
||||||
|
return (isNaN(num) ? null : num);
|
||||||
|
}
|
||||||
|
else if (dataType == "Currency") {
|
||||||
|
var hasDigits = (val.digits > 0);
|
||||||
|
var beginGroupSize, subsequentGroupSize;
|
||||||
|
var groupSizeNum = parseInt(val.groupsize, 10);
|
||||||
|
if (!isNaN(groupSizeNum) && groupSizeNum > 0) {
|
||||||
|
beginGroupSize = "{1," + groupSizeNum + "}";
|
||||||
|
subsequentGroupSize = "{" + groupSizeNum + "}";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
beginGroupSize = subsequentGroupSize = "+";
|
||||||
|
}
|
||||||
|
exp = new RegExp("^\\s*([-\\+])?((\\d" + beginGroupSize + "(\\" + val.groupchar + "\\d" + subsequentGroupSize + ")+)|\\d*)"
|
||||||
|
+ (hasDigits ? "\\" + val.decimalchar + "?(\\d{0," + val.digits + "})" : "")
|
||||||
|
+ "\\s*$");
|
||||||
|
m = op.match(exp);
|
||||||
|
if (m == null)
|
||||||
|
return null;
|
||||||
|
if (m[2].length == 0 && hasDigits && m[5].length == 0)
|
||||||
|
return null;
|
||||||
|
cleanInput = (m[1] != null ? m[1] : "") + m[2].replace(new RegExp("(\\" + val.groupchar + ")", "g"), "") + ((hasDigits && m[5].length > 0) ? "." + m[5] : "");
|
||||||
|
num = parseFloat(cleanInput);
|
||||||
|
return (isNaN(num) ? null : num);
|
||||||
|
}
|
||||||
|
else if (dataType == "Date") {
|
||||||
|
var yearFirstExp = new RegExp("^\\s*((\\d{4})|(\\d{2}))([-/]|\\. ?)(\\d{1,2})\\4(\\d{1,2})\\.?\\s*$");
|
||||||
|
m = op.match(yearFirstExp);
|
||||||
|
var day, month, year;
|
||||||
|
if (m != null && (((typeof(m[2]) != "undefined") && (m[2].length == 4)) || val.dateorder == "ymd")) {
|
||||||
|
day = m[6];
|
||||||
|
month = m[5];
|
||||||
|
year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (val.dateorder == "ymd"){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
var yearLastExp = new RegExp("^\\s*(\\d{1,2})([-/]|\\. ?)(\\d{1,2})(?:\\s|\\2)((\\d{4})|(\\d{2}))(?:\\s\u0433\\.|\\.)?\\s*$");
|
||||||
|
m = op.match(yearLastExp);
|
||||||
|
if (m == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (val.dateorder == "mdy") {
|
||||||
|
day = m[3];
|
||||||
|
month = m[1];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
day = m[1];
|
||||||
|
month = m[3];
|
||||||
|
}
|
||||||
|
year = ((typeof(m[5]) != "undefined") && (m[5].length == 4)) ? m[5] : GetFullYear(parseInt(m[6], 10));
|
||||||
|
}
|
||||||
|
month -= 1;
|
||||||
|
var date = new Date(year, month, day);
|
||||||
|
if (year < 100) {
|
||||||
|
date.setFullYear(year);
|
||||||
|
}
|
||||||
|
return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate()) ? date.valueOf() : null;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return op.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function ValidatorCompare(operand1, operand2, operator, val) {
|
||||||
|
var dataType = val.type;
|
||||||
|
var op1, op2;
|
||||||
|
if ((op1 = ValidatorConvert(operand1, dataType, val)) == null)
|
||||||
|
return false;
|
||||||
|
if (operator == "DataTypeCheck")
|
||||||
|
return true;
|
||||||
|
if ((op2 = ValidatorConvert(operand2, dataType, val)) == null)
|
||||||
|
return true;
|
||||||
|
switch (operator) {
|
||||||
|
case "NotEqual":
|
||||||
|
return (op1 != op2);
|
||||||
|
case "GreaterThan":
|
||||||
|
return (op1 > op2);
|
||||||
|
case "GreaterThanEqual":
|
||||||
|
return (op1 >= op2);
|
||||||
|
case "LessThan":
|
||||||
|
return (op1 < op2);
|
||||||
|
case "LessThanEqual":
|
||||||
|
return (op1 <= op2);
|
||||||
|
default:
|
||||||
|
return (op1 == op2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function CompareValidatorEvaluateIsValid(val) {
|
||||||
|
var value = ValidatorGetValue(val.controltovalidate);
|
||||||
|
if (ValidatorTrim(value).length == 0)
|
||||||
|
return true;
|
||||||
|
var compareTo = "";
|
||||||
|
if ((typeof(val.controltocompare) != "string") ||
|
||||||
|
(typeof(document.getElementById(val.controltocompare)) == "undefined") ||
|
||||||
|
(null == document.getElementById(val.controltocompare))) {
|
||||||
|
if (typeof(val.valuetocompare) == "string") {
|
||||||
|
compareTo = val.valuetocompare;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
compareTo = ValidatorGetValue(val.controltocompare);
|
||||||
|
}
|
||||||
|
var operator = "Equal";
|
||||||
|
if (typeof(val.operator) == "string") {
|
||||||
|
operator = val.operator;
|
||||||
|
}
|
||||||
|
return ValidatorCompare(value, compareTo, operator, val);
|
||||||
|
}
|
||||||
|
function CustomValidatorEvaluateIsValid(val) {
|
||||||
|
var value = "";
|
||||||
|
if (typeof(val.controltovalidate) == "string") {
|
||||||
|
value = ValidatorGetValue(val.controltovalidate);
|
||||||
|
if ((ValidatorTrim(value).length == 0) &&
|
||||||
|
((typeof(val.validateemptytext) != "string") || (val.validateemptytext != "true"))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var args = { Value:value, IsValid:true };
|
||||||
|
if (typeof(val.clientvalidationfunction) == "string") {
|
||||||
|
eval(val.clientvalidationfunction + "(val, args) ;");
|
||||||
|
}
|
||||||
|
return args.IsValid;
|
||||||
|
}
|
||||||
|
function RegularExpressionValidatorEvaluateIsValid(val) {
|
||||||
|
var value = ValidatorGetValue(val.controltovalidate);
|
||||||
|
if (ValidatorTrim(value).length == 0)
|
||||||
|
return true;
|
||||||
|
var rx = new RegExp(val.validationexpression);
|
||||||
|
var matches = rx.exec(value);
|
||||||
|
return (matches != null && value == matches[0]);
|
||||||
|
}
|
||||||
|
function ValidatorTrim(s) {
|
||||||
|
var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
|
||||||
|
return (m == null) ? "" : m[1];
|
||||||
|
}
|
||||||
|
function RequiredFieldValidatorEvaluateIsValid(val) {
|
||||||
|
return (ValidatorTrim(ValidatorGetValue(val.controltovalidate)) != ValidatorTrim(val.initialvalue))
|
||||||
|
}
|
||||||
|
function RangeValidatorEvaluateIsValid(val) {
|
||||||
|
var value = ValidatorGetValue(val.controltovalidate);
|
||||||
|
if (ValidatorTrim(value).length == 0)
|
||||||
|
return true;
|
||||||
|
return (ValidatorCompare(value, val.minimumvalue, "GreaterThanEqual", val) &&
|
||||||
|
ValidatorCompare(value, val.maximumvalue, "LessThanEqual", val));
|
||||||
|
}
|
||||||
|
function ValidationSummaryOnSubmit(validationGroup) {
|
||||||
|
if (typeof(Page_ValidationSummaries) == "undefined")
|
||||||
|
return;
|
||||||
|
var summary, sums, s;
|
||||||
|
var headerSep, first, pre, post, end;
|
||||||
|
for (sums = 0; sums < Page_ValidationSummaries.length; sums++) {
|
||||||
|
summary = Page_ValidationSummaries[sums];
|
||||||
|
if (!summary) continue;
|
||||||
|
summary.style.display = "none";
|
||||||
|
if (!Page_IsValid && IsValidationGroupMatch(summary, validationGroup)) {
|
||||||
|
var i;
|
||||||
|
if (summary.showsummary != "False") {
|
||||||
|
summary.style.display = "";
|
||||||
|
if (typeof(summary.displaymode) != "string") {
|
||||||
|
summary.displaymode = "BulletList";
|
||||||
|
}
|
||||||
|
switch (summary.displaymode) {
|
||||||
|
case "List":
|
||||||
|
headerSep = "<br>";
|
||||||
|
first = "";
|
||||||
|
pre = "";
|
||||||
|
post = "<br>";
|
||||||
|
end = "";
|
||||||
|
break;
|
||||||
|
case "BulletList":
|
||||||
|
default:
|
||||||
|
headerSep = "";
|
||||||
|
first = "<ul>";
|
||||||
|
pre = "<li>";
|
||||||
|
post = "</li>";
|
||||||
|
end = "</ul>";
|
||||||
|
break;
|
||||||
|
case "SingleParagraph":
|
||||||
|
headerSep = " ";
|
||||||
|
first = "";
|
||||||
|
pre = "";
|
||||||
|
post = " ";
|
||||||
|
end = "<br>";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
s = "";
|
||||||
|
if (typeof(summary.headertext) == "string") {
|
||||||
|
s += summary.headertext + headerSep;
|
||||||
|
}
|
||||||
|
s += first;
|
||||||
|
for (i=0; i<Page_Validators.length; i++) {
|
||||||
|
if (!Page_Validators[i].isvalid && typeof(Page_Validators[i].errormessage) == "string") {
|
||||||
|
s += pre + Page_Validators[i].errormessage + post;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
s += end;
|
||||||
|
summary.innerHTML = s;
|
||||||
|
window.scrollTo(0,0);
|
||||||
|
}
|
||||||
|
if (summary.showmessagebox == "True") {
|
||||||
|
s = "";
|
||||||
|
if (typeof(summary.headertext) == "string") {
|
||||||
|
s += summary.headertext + "\r\n";
|
||||||
|
}
|
||||||
|
var lastValIndex = Page_Validators.length - 1;
|
||||||
|
for (i=0; i<=lastValIndex; i++) {
|
||||||
|
if (!Page_Validators[i].isvalid && typeof(Page_Validators[i].errormessage) == "string") {
|
||||||
|
switch (summary.displaymode) {
|
||||||
|
case "List":
|
||||||
|
s += Page_Validators[i].errormessage;
|
||||||
|
if (i < lastValIndex) {
|
||||||
|
s += "\r\n";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "BulletList":
|
||||||
|
default:
|
||||||
|
s += "- " + Page_Validators[i].errormessage;
|
||||||
|
if (i < lastValIndex) {
|
||||||
|
s += "\r\n";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "SingleParagraph":
|
||||||
|
s += Page_Validators[i].errormessage + " ";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
alert(s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (window.jQuery) {
|
||||||
|
(function ($) {
|
||||||
|
var dataValidationAttribute = "data-val",
|
||||||
|
dataValidationSummaryAttribute = "data-valsummary",
|
||||||
|
normalizedAttributes = { validationgroup: "validationGroup", focusonerror: "focusOnError" };
|
||||||
|
function getAttributesWithPrefix(element, prefix) {
|
||||||
|
var i,
|
||||||
|
attribute,
|
||||||
|
list = {},
|
||||||
|
attributes = element.attributes,
|
||||||
|
length = attributes.length,
|
||||||
|
prefixLength = prefix.length;
|
||||||
|
prefix = prefix.toLowerCase();
|
||||||
|
for (i = 0; i < length; i++) {
|
||||||
|
attribute = attributes[i];
|
||||||
|
if (attribute.specified && attribute.name.substr(0, prefixLength).toLowerCase() === prefix) {
|
||||||
|
list[attribute.name.substr(prefixLength)] = attribute.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
function normalizeKey(key) {
|
||||||
|
key = key.toLowerCase();
|
||||||
|
return normalizedAttributes[key] === undefined ? key : normalizedAttributes[key];
|
||||||
|
}
|
||||||
|
function addValidationExpando(element) {
|
||||||
|
var attributes = getAttributesWithPrefix(element, dataValidationAttribute + "-");
|
||||||
|
$.each(attributes, function (key, value) {
|
||||||
|
element[normalizeKey(key)] = value;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function dispose(element) {
|
||||||
|
var index = $.inArray(element, Page_Validators);
|
||||||
|
if (index >= 0) {
|
||||||
|
Page_Validators.splice(index, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function addNormalizedAttribute(name, normalizedName) {
|
||||||
|
normalizedAttributes[name.toLowerCase()] = normalizedName;
|
||||||
|
}
|
||||||
|
function parseSpecificAttribute(selector, attribute, validatorsArray) {
|
||||||
|
return $(selector).find("[" + attribute + "='true']").each(function (index, element) {
|
||||||
|
addValidationExpando(element);
|
||||||
|
element.dispose = function () { dispose(element); element.dispose = null; };
|
||||||
|
if ($.inArray(element, validatorsArray) === -1) {
|
||||||
|
validatorsArray.push(element);
|
||||||
|
}
|
||||||
|
}).length;
|
||||||
|
}
|
||||||
|
function parse(selector) {
|
||||||
|
var length = parseSpecificAttribute(selector, dataValidationAttribute, Page_Validators);
|
||||||
|
length += parseSpecificAttribute(selector, dataValidationSummaryAttribute, Page_ValidationSummaries);
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
function loadValidators() {
|
||||||
|
if (typeof (ValidatorOnLoad) === "function") {
|
||||||
|
ValidatorOnLoad();
|
||||||
|
}
|
||||||
|
if (typeof (ValidatorOnSubmit) === "undefined") {
|
||||||
|
window.ValidatorOnSubmit = function () {
|
||||||
|
return Page_ValidationActive ? ValidatorCommonOnSubmit() : true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function registerUpdatePanel() {
|
||||||
|
if (window.Sys && Sys.WebForms && Sys.WebForms.PageRequestManager) {
|
||||||
|
var prm = Sys.WebForms.PageRequestManager.getInstance(),
|
||||||
|
postBackElement, endRequestHandler;
|
||||||
|
if (prm.get_isInAsyncPostBack()) {
|
||||||
|
endRequestHandler = function (sender, args) {
|
||||||
|
if (parse(document)) {
|
||||||
|
loadValidators();
|
||||||
|
}
|
||||||
|
prm.remove_endRequest(endRequestHandler);
|
||||||
|
endRequestHandler = null;
|
||||||
|
};
|
||||||
|
prm.add_endRequest(endRequestHandler);
|
||||||
|
}
|
||||||
|
prm.add_beginRequest(function (sender, args) {
|
||||||
|
postBackElement = args.get_postBackElement();
|
||||||
|
});
|
||||||
|
prm.add_pageLoaded(function (sender, args) {
|
||||||
|
var i, panels, valFound = 0;
|
||||||
|
if (typeof (postBackElement) === "undefined") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
panels = args.get_panelsUpdated();
|
||||||
|
for (i = 0; i < panels.length; i++) {
|
||||||
|
valFound += parse(panels[i]);
|
||||||
|
}
|
||||||
|
panels = args.get_panelsCreated();
|
||||||
|
for (i = 0; i < panels.length; i++) {
|
||||||
|
valFound += parse(panels[i]);
|
||||||
|
}
|
||||||
|
if (valFound) {
|
||||||
|
loadValidators();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$(function () {
|
||||||
|
if (typeof (Page_Validators) === "undefined") {
|
||||||
|
window.Page_Validators = [];
|
||||||
|
}
|
||||||
|
if (typeof (Page_ValidationSummaries) === "undefined") {
|
||||||
|
window.Page_ValidationSummaries = [];
|
||||||
|
}
|
||||||
|
if (typeof (Page_ValidationActive) === "undefined") {
|
||||||
|
window.Page_ValidationActive = false;
|
||||||
|
}
|
||||||
|
$.WebFormValidator = {
|
||||||
|
addNormalizedAttribute: addNormalizedAttribute,
|
||||||
|
parse: parse
|
||||||
|
};
|
||||||
|
if (parse(document)) {
|
||||||
|
loadValidators();
|
||||||
|
}
|
||||||
|
registerUpdatePanel();
|
||||||
|
});
|
||||||
|
} (jQuery));
|
||||||
|
}
|
2014
src/Web/Catalog.WebForms/Catalog.WebForms/Scripts/bootstrap.js
vendored
Normal file
21
src/Web/Catalog.WebForms/Catalog.WebForms/Scripts/bootstrap.min.js
vendored
Normal file
2671
src/Web/Catalog.WebForms/Catalog.WebForms/Scripts/jquery-1.10.2.intellisense.js
vendored
Normal file
9803
src/Web/Catalog.WebForms/Catalog.WebForms/Scripts/jquery-1.10.2.js
vendored
Normal file
23
src/Web/Catalog.WebForms/Catalog.WebForms/Scripts/jquery-1.10.2.min.js
vendored
Normal file
1416
src/Web/Catalog.WebForms/Catalog.WebForms/Scripts/modernizr-2.6.2.js
vendored
Normal file
340
src/Web/Catalog.WebForms/Catalog.WebForms/Scripts/respond.js
Normal file
@ -0,0 +1,340 @@
|
|||||||
|
/* NUGET: BEGIN LICENSE TEXT
|
||||||
|
*
|
||||||
|
* Microsoft grants you the right to use these script files for the sole
|
||||||
|
* purpose of either: (i) interacting through your browser with the Microsoft
|
||||||
|
* website or online service, subject to the applicable licensing or use
|
||||||
|
* terms; or (ii) using the files as included with a Microsoft product subject
|
||||||
|
* to that product's license terms. Microsoft reserves all other rights to the
|
||||||
|
* files not expressly granted by Microsoft, whether by implication, estoppel
|
||||||
|
* or otherwise. Insofar as a script file is dual licensed under GPL,
|
||||||
|
* Microsoft neither took the code under GPL nor distributes it thereunder but
|
||||||
|
* under the terms set out in this paragraph. All notices and licenses
|
||||||
|
* below are for informational purposes only.
|
||||||
|
*
|
||||||
|
* NUGET: END LICENSE TEXT */
|
||||||
|
/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */
|
||||||
|
/*! NOTE: If you're already including a window.matchMedia polyfill via Modernizr or otherwise, you don't need this part */
|
||||||
|
window.matchMedia = window.matchMedia || (function(doc, undefined){
|
||||||
|
|
||||||
|
var bool,
|
||||||
|
docElem = doc.documentElement,
|
||||||
|
refNode = docElem.firstElementChild || docElem.firstChild,
|
||||||
|
// fakeBody required for <FF4 when executed in <head>
|
||||||
|
fakeBody = doc.createElement('body'),
|
||||||
|
div = doc.createElement('div');
|
||||||
|
|
||||||
|
div.id = 'mq-test-1';
|
||||||
|
div.style.cssText = "position:absolute;top:-100em";
|
||||||
|
fakeBody.style.background = "none";
|
||||||
|
fakeBody.appendChild(div);
|
||||||
|
|
||||||
|
return function(q){
|
||||||
|
|
||||||
|
div.innerHTML = '­<style media="'+q+'"> #mq-test-1 { width: 42px; }</style>';
|
||||||
|
|
||||||
|
docElem.insertBefore(fakeBody, refNode);
|
||||||
|
bool = div.offsetWidth == 42;
|
||||||
|
docElem.removeChild(fakeBody);
|
||||||
|
|
||||||
|
return { matches: bool, media: q };
|
||||||
|
};
|
||||||
|
|
||||||
|
})(document);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*! Respond.js v1.2.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */
|
||||||
|
(function( win ){
|
||||||
|
//exposed namespace
|
||||||
|
win.respond = {};
|
||||||
|
|
||||||
|
//define update even in native-mq-supporting browsers, to avoid errors
|
||||||
|
respond.update = function(){};
|
||||||
|
|
||||||
|
//expose media query support flag for external use
|
||||||
|
respond.mediaQueriesSupported = win.matchMedia && win.matchMedia( "only all" ).matches;
|
||||||
|
|
||||||
|
//if media queries are supported, exit here
|
||||||
|
if( respond.mediaQueriesSupported ){ return; }
|
||||||
|
|
||||||
|
//define vars
|
||||||
|
var doc = win.document,
|
||||||
|
docElem = doc.documentElement,
|
||||||
|
mediastyles = [],
|
||||||
|
rules = [],
|
||||||
|
appendedEls = [],
|
||||||
|
parsedSheets = {},
|
||||||
|
resizeThrottle = 30,
|
||||||
|
head = doc.getElementsByTagName( "head" )[0] || docElem,
|
||||||
|
base = doc.getElementsByTagName( "base" )[0],
|
||||||
|
links = head.getElementsByTagName( "link" ),
|
||||||
|
requestQueue = [],
|
||||||
|
|
||||||
|
//loop stylesheets, send text content to translate
|
||||||
|
ripCSS = function(){
|
||||||
|
var sheets = links,
|
||||||
|
sl = sheets.length,
|
||||||
|
i = 0,
|
||||||
|
//vars for loop:
|
||||||
|
sheet, href, media, isCSS;
|
||||||
|
|
||||||
|
for( ; i < sl; i++ ){
|
||||||
|
sheet = sheets[ i ],
|
||||||
|
href = sheet.href,
|
||||||
|
media = sheet.media,
|
||||||
|
isCSS = sheet.rel && sheet.rel.toLowerCase() === "stylesheet";
|
||||||
|
|
||||||
|
//only links plz and prevent re-parsing
|
||||||
|
if( !!href && isCSS && !parsedSheets[ href ] ){
|
||||||
|
// selectivizr exposes css through the rawCssText expando
|
||||||
|
if (sheet.styleSheet && sheet.styleSheet.rawCssText) {
|
||||||
|
translate( sheet.styleSheet.rawCssText, href, media );
|
||||||
|
parsedSheets[ href ] = true;
|
||||||
|
} else {
|
||||||
|
if( (!/^([a-zA-Z:]*\/\/)/.test( href ) && !base)
|
||||||
|
|| href.replace( RegExp.$1, "" ).split( "/" )[0] === win.location.host ){
|
||||||
|
requestQueue.push( {
|
||||||
|
href: href,
|
||||||
|
media: media
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
makeRequests();
|
||||||
|
},
|
||||||
|
|
||||||
|
//recurse through request queue, get css text
|
||||||
|
makeRequests = function(){
|
||||||
|
if( requestQueue.length ){
|
||||||
|
var thisRequest = requestQueue.shift();
|
||||||
|
|
||||||
|
ajax( thisRequest.href, function( styles ){
|
||||||
|
translate( styles, thisRequest.href, thisRequest.media );
|
||||||
|
parsedSheets[ thisRequest.href ] = true;
|
||||||
|
makeRequests();
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
//find media blocks in css text, convert to style blocks
|
||||||
|
translate = function( styles, href, media ){
|
||||||
|
var qs = styles.match( /@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi ),
|
||||||
|
ql = qs && qs.length || 0,
|
||||||
|
//try to get CSS path
|
||||||
|
href = href.substring( 0, href.lastIndexOf( "/" )),
|
||||||
|
repUrls = function( css ){
|
||||||
|
return css.replace( /(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g, "$1" + href + "$2$3" );
|
||||||
|
},
|
||||||
|
useMedia = !ql && media,
|
||||||
|
//vars used in loop
|
||||||
|
i = 0,
|
||||||
|
j, fullq, thisq, eachq, eql;
|
||||||
|
|
||||||
|
//if path exists, tack on trailing slash
|
||||||
|
if( href.length ){ href += "/"; }
|
||||||
|
|
||||||
|
//if no internal queries exist, but media attr does, use that
|
||||||
|
//note: this currently lacks support for situations where a media attr is specified on a link AND
|
||||||
|
//its associated stylesheet has internal CSS media queries.
|
||||||
|
//In those cases, the media attribute will currently be ignored.
|
||||||
|
if( useMedia ){
|
||||||
|
ql = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for( ; i < ql; i++ ){
|
||||||
|
j = 0;
|
||||||
|
|
||||||
|
//media attr
|
||||||
|
if( useMedia ){
|
||||||
|
fullq = media;
|
||||||
|
rules.push( repUrls( styles ) );
|
||||||
|
}
|
||||||
|
//parse for styles
|
||||||
|
else{
|
||||||
|
fullq = qs[ i ].match( /@media *([^\{]+)\{([\S\s]+?)$/ ) && RegExp.$1;
|
||||||
|
rules.push( RegExp.$2 && repUrls( RegExp.$2 ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
eachq = fullq.split( "," );
|
||||||
|
eql = eachq.length;
|
||||||
|
|
||||||
|
for( ; j < eql; j++ ){
|
||||||
|
thisq = eachq[ j ];
|
||||||
|
mediastyles.push( {
|
||||||
|
media : thisq.split( "(" )[ 0 ].match( /(only\s+)?([a-zA-Z]+)\s?/ ) && RegExp.$2 || "all",
|
||||||
|
rules : rules.length - 1,
|
||||||
|
hasquery: thisq.indexOf("(") > -1,
|
||||||
|
minw : thisq.match( /\(min\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/ ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" ),
|
||||||
|
maxw : thisq.match( /\(max\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/ ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" )
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
applyMedia();
|
||||||
|
},
|
||||||
|
|
||||||
|
lastCall,
|
||||||
|
|
||||||
|
resizeDefer,
|
||||||
|
|
||||||
|
// returns the value of 1em in pixels
|
||||||
|
getEmValue = function() {
|
||||||
|
var ret,
|
||||||
|
div = doc.createElement('div'),
|
||||||
|
body = doc.body,
|
||||||
|
fakeUsed = false;
|
||||||
|
|
||||||
|
div.style.cssText = "position:absolute;font-size:1em;width:1em";
|
||||||
|
|
||||||
|
if( !body ){
|
||||||
|
body = fakeUsed = doc.createElement( "body" );
|
||||||
|
body.style.background = "none";
|
||||||
|
}
|
||||||
|
|
||||||
|
body.appendChild( div );
|
||||||
|
|
||||||
|
docElem.insertBefore( body, docElem.firstChild );
|
||||||
|
|
||||||
|
ret = div.offsetWidth;
|
||||||
|
|
||||||
|
if( fakeUsed ){
|
||||||
|
docElem.removeChild( body );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
body.removeChild( div );
|
||||||
|
}
|
||||||
|
|
||||||
|
//also update eminpx before returning
|
||||||
|
ret = eminpx = parseFloat(ret);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
},
|
||||||
|
|
||||||
|
//cached container for 1em value, populated the first time it's needed
|
||||||
|
eminpx,
|
||||||
|
|
||||||
|
//enable/disable styles
|
||||||
|
applyMedia = function( fromResize ){
|
||||||
|
var name = "clientWidth",
|
||||||
|
docElemProp = docElem[ name ],
|
||||||
|
currWidth = doc.compatMode === "CSS1Compat" && docElemProp || doc.body[ name ] || docElemProp,
|
||||||
|
styleBlocks = {},
|
||||||
|
lastLink = links[ links.length-1 ],
|
||||||
|
now = (new Date()).getTime();
|
||||||
|
|
||||||
|
//throttle resize calls
|
||||||
|
if( fromResize && lastCall && now - lastCall < resizeThrottle ){
|
||||||
|
clearTimeout( resizeDefer );
|
||||||
|
resizeDefer = setTimeout( applyMedia, resizeThrottle );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
lastCall = now;
|
||||||
|
}
|
||||||
|
|
||||||
|
for( var i in mediastyles ){
|
||||||
|
var thisstyle = mediastyles[ i ],
|
||||||
|
min = thisstyle.minw,
|
||||||
|
max = thisstyle.maxw,
|
||||||
|
minnull = min === null,
|
||||||
|
maxnull = max === null,
|
||||||
|
em = "em";
|
||||||
|
|
||||||
|
if( !!min ){
|
||||||
|
min = parseFloat( min ) * ( min.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 );
|
||||||
|
}
|
||||||
|
if( !!max ){
|
||||||
|
max = parseFloat( max ) * ( max.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
// if there's no media query at all (the () part), or min or max is not null, and if either is present, they're true
|
||||||
|
if( !thisstyle.hasquery || ( !minnull || !maxnull ) && ( minnull || currWidth >= min ) && ( maxnull || currWidth <= max ) ){
|
||||||
|
if( !styleBlocks[ thisstyle.media ] ){
|
||||||
|
styleBlocks[ thisstyle.media ] = [];
|
||||||
|
}
|
||||||
|
styleBlocks[ thisstyle.media ].push( rules[ thisstyle.rules ] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//remove any existing respond style element(s)
|
||||||
|
for( var i in appendedEls ){
|
||||||
|
if( appendedEls[ i ] && appendedEls[ i ].parentNode === head ){
|
||||||
|
head.removeChild( appendedEls[ i ] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//inject active styles, grouped by media type
|
||||||
|
for( var i in styleBlocks ){
|
||||||
|
var ss = doc.createElement( "style" ),
|
||||||
|
css = styleBlocks[ i ].join( "\n" );
|
||||||
|
|
||||||
|
ss.type = "text/css";
|
||||||
|
ss.media = i;
|
||||||
|
|
||||||
|
//originally, ss was appended to a documentFragment and sheets were appended in bulk.
|
||||||
|
//this caused crashes in IE in a number of circumstances, such as when the HTML element had a bg image set, so appending beforehand seems best. Thanks to @dvelyk for the initial research on this one!
|
||||||
|
head.insertBefore( ss, lastLink.nextSibling );
|
||||||
|
|
||||||
|
if ( ss.styleSheet ){
|
||||||
|
ss.styleSheet.cssText = css;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ss.appendChild( doc.createTextNode( css ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
//push to appendedEls to track for later removal
|
||||||
|
appendedEls.push( ss );
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//tweaked Ajax functions from Quirksmode
|
||||||
|
ajax = function( url, callback ) {
|
||||||
|
var req = xmlHttp();
|
||||||
|
if (!req){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
req.open( "GET", url, true );
|
||||||
|
req.onreadystatechange = function () {
|
||||||
|
if ( req.readyState != 4 || req.status != 200 && req.status != 304 ){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
callback( req.responseText );
|
||||||
|
}
|
||||||
|
if ( req.readyState == 4 ){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
req.send( null );
|
||||||
|
},
|
||||||
|
//define ajax obj
|
||||||
|
xmlHttp = (function() {
|
||||||
|
var xmlhttpmethod = false;
|
||||||
|
try {
|
||||||
|
xmlhttpmethod = new XMLHttpRequest();
|
||||||
|
}
|
||||||
|
catch( e ){
|
||||||
|
xmlhttpmethod = new ActiveXObject( "Microsoft.XMLHTTP" );
|
||||||
|
}
|
||||||
|
return function(){
|
||||||
|
return xmlhttpmethod;
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
|
||||||
|
//translate CSS
|
||||||
|
ripCSS();
|
||||||
|
|
||||||
|
//expose update for re-running respond later on
|
||||||
|
respond.update = ripCSS;
|
||||||
|
|
||||||
|
//adjust on resize
|
||||||
|
function callMedia(){
|
||||||
|
applyMedia( true );
|
||||||
|
}
|
||||||
|
if( win.addEventListener ){
|
||||||
|
win.addEventListener( "resize", callMedia, false );
|
||||||
|
}
|
||||||
|
else if( win.attachEvent ){
|
||||||
|
win.attachEvent( "onresize", callMedia );
|
||||||
|
}
|
||||||
|
})(this);
|
20
src/Web/Catalog.WebForms/Catalog.WebForms/Scripts/respond.min.js
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/* NUGET: BEGIN LICENSE TEXT
|
||||||
|
*
|
||||||
|
* Microsoft grants you the right to use these script files for the sole
|
||||||
|
* purpose of either: (i) interacting through your browser with the Microsoft
|
||||||
|
* website or online service, subject to the applicable licensing or use
|
||||||
|
* terms; or (ii) using the files as included with a Microsoft product subject
|
||||||
|
* to that product's license terms. Microsoft reserves all other rights to the
|
||||||
|
* files not expressly granted by Microsoft, whether by implication, estoppel
|
||||||
|
* or otherwise. Insofar as a script file is dual licensed under GPL,
|
||||||
|
* Microsoft neither took the code under GPL nor distributes it thereunder but
|
||||||
|
* under the terms set out in this paragraph. All notices and licenses
|
||||||
|
* below are for informational purposes only.
|
||||||
|
*
|
||||||
|
* NUGET: END LICENSE TEXT */
|
||||||
|
/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */
|
||||||
|
/*! NOTE: If you're already including a window.matchMedia polyfill via Modernizr or otherwise, you don't need this part */
|
||||||
|
window.matchMedia=window.matchMedia||(function(e,f){var c,a=e.documentElement,b=a.firstElementChild||a.firstChild,d=e.createElement("body"),g=e.createElement("div");g.id="mq-test-1";g.style.cssText="position:absolute;top:-100em";d.style.background="none";d.appendChild(g);return function(h){g.innerHTML='­<style media="'+h+'"> #mq-test-1 { width: 42px; }</style>';a.insertBefore(d,b);c=g.offsetWidth==42;a.removeChild(d);return{matches:c,media:h}}})(document);
|
||||||
|
|
||||||
|
/*! Respond.js v1.2.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */
|
||||||
|
(function(e){e.respond={};respond.update=function(){};respond.mediaQueriesSupported=e.matchMedia&&e.matchMedia("only all").matches;if(respond.mediaQueriesSupported){return}var w=e.document,s=w.documentElement,i=[],k=[],q=[],o={},h=30,f=w.getElementsByTagName("head")[0]||s,g=w.getElementsByTagName("base")[0],b=f.getElementsByTagName("link"),d=[],a=function(){var D=b,y=D.length,B=0,A,z,C,x;for(;B<y;B++){A=D[B],z=A.href,C=A.media,x=A.rel&&A.rel.toLowerCase()==="stylesheet";if(!!z&&x&&!o[z]){if(A.styleSheet&&A.styleSheet.rawCssText){m(A.styleSheet.rawCssText,z,C);o[z]=true}else{if((!/^([a-zA-Z:]*\/\/)/.test(z)&&!g)||z.replace(RegExp.$1,"").split("/")[0]===e.location.host){d.push({href:z,media:C})}}}}u()},u=function(){if(d.length){var x=d.shift();n(x.href,function(y){m(y,x.href,x.media);o[x.href]=true;u()})}},m=function(I,x,z){var G=I.match(/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi),J=G&&G.length||0,x=x.substring(0,x.lastIndexOf("/")),y=function(K){return K.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,"$1"+x+"$2$3")},A=!J&&z,D=0,C,E,F,B,H;if(x.length){x+="/"}if(A){J=1}for(;D<J;D++){C=0;if(A){E=z;k.push(y(I))}else{E=G[D].match(/@media *([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1;k.push(RegExp.$2&&y(RegExp.$2))}B=E.split(",");H=B.length;for(;C<H;C++){F=B[C];i.push({media:F.split("(")[0].match(/(only\s+)?([a-zA-Z]+)\s?/)&&RegExp.$2||"all",rules:k.length-1,hasquery:F.indexOf("(")>-1,minw:F.match(/\(min\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:F.match(/\(max\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}}j()},l,r,v=function(){var z,A=w.createElement("div"),x=w.body,y=false;A.style.cssText="position:absolute;font-size:1em;width:1em";if(!x){x=y=w.createElement("body");x.style.background="none"}x.appendChild(A);s.insertBefore(x,s.firstChild);z=A.offsetWidth;if(y){s.removeChild(x)}else{x.removeChild(A)}z=p=parseFloat(z);return z},p,j=function(I){var x="clientWidth",B=s[x],H=w.compatMode==="CSS1Compat"&&B||w.body[x]||B,D={},G=b[b.length-1],z=(new Date()).getTime();if(I&&l&&z-l<h){clearTimeout(r);r=setTimeout(j,h);return}else{l=z}for(var E in i){var K=i[E],C=K.minw,J=K.maxw,A=C===null,L=J===null,y="em";if(!!C){C=parseFloat(C)*(C.indexOf(y)>-1?(p||v()):1)}if(!!J){J=parseFloat(J)*(J.indexOf(y)>-1?(p||v()):1)}if(!K.hasquery||(!A||!L)&&(A||H>=C)&&(L||H<=J)){if(!D[K.media]){D[K.media]=[]}D[K.media].push(k[K.rules])}}for(var E in q){if(q[E]&&q[E].parentNode===f){f.removeChild(q[E])}}for(var E in D){var M=w.createElement("style"),F=D[E].join("\n");M.type="text/css";M.media=E;f.insertBefore(M,G.nextSibling);if(M.styleSheet){M.styleSheet.cssText=F}else{M.appendChild(w.createTextNode(F))}q.push(M)}},n=function(x,z){var y=c();if(!y){return}y.open("GET",x,true);y.onreadystatechange=function(){if(y.readyState!=4||y.status!=200&&y.status!=304){return}z(y.responseText)};if(y.readyState==4){return}y.send(null)},c=(function(){var x=false;try{x=new XMLHttpRequest()}catch(y){x=new ActiveXObject("Microsoft.XMLHTTP")}return function(){return x}})();a();respond.update=a;function t(){j(true)}if(e.addEventListener){e.addEventListener("resize",t,false)}else{if(e.attachEvent){e.attachEvent("onresize",t)}}})(this);
|
@ -0,0 +1,75 @@
|
|||||||
|
using eShopOnContainers.Core.Extensions;
|
||||||
|
using eShopOnContainers.Core.Models.Catalog;
|
||||||
|
using System;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace eShopOnContainers.Core.Services.Catalog
|
||||||
|
{
|
||||||
|
|
||||||
|
// From https://github.com/dotnet/eShopOnContainers/blob/vs2017/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Catalog/CatalogMockService.cs
|
||||||
|
// Issue: How to make this DRY, while preserving the story for a monolithic application.
|
||||||
|
// Note: Device specific conditionals have been removed.
|
||||||
|
public class CatalogMockService : ICatalogService
|
||||||
|
{
|
||||||
|
private ObservableCollection<CatalogBrand> MockCatalogBrand = new ObservableCollection<CatalogBrand>
|
||||||
|
{
|
||||||
|
new CatalogBrand { Id = 1, Brand = "Azure" },
|
||||||
|
new CatalogBrand { Id = 2, Brand = "Visual Studio" }
|
||||||
|
};
|
||||||
|
|
||||||
|
private ObservableCollection<CatalogType> MockCatalogType = new ObservableCollection<CatalogType>
|
||||||
|
{
|
||||||
|
new CatalogType { Id = 1, Type = "Mug" },
|
||||||
|
new CatalogType { Id = 2, Type = "T-Shirt" }
|
||||||
|
};
|
||||||
|
|
||||||
|
private ObservableCollection<CatalogItem> MockCatalog = new ObservableCollection<CatalogItem>
|
||||||
|
{
|
||||||
|
new CatalogItem { Id = Common.Common.MockCatalogItemId01, PictureUri = "Content/fake_product_01.png", Name = ".NET Bot Blue Sweatshirt (M)", Price = 19.50M, CatalogBrandId = 2, CatalogBrand = "Visual Studio", CatalogTypeId = 2, CatalogType = "T-Shirt" },
|
||||||
|
new CatalogItem { Id = Common.Common.MockCatalogItemId02, PictureUri = "Content/fake_product_02.png", Name = ".NET Bot Purple Sweatshirt (M)", Price = 19.50M, CatalogBrandId = 2, CatalogBrand = "Visual Studio", CatalogTypeId = 2, CatalogType = "T-Shirt" },
|
||||||
|
new CatalogItem { Id = Common.Common.MockCatalogItemId03, PictureUri = "Content/fake_product_03.png", Name = ".NET Bot Black Sweatshirt (M)", Price = 19.95M, CatalogBrandId = 2, CatalogBrand = "Visual Studio", CatalogTypeId = 2, CatalogType = "T-Shirt" },
|
||||||
|
new CatalogItem { Id = Common.Common.MockCatalogItemId04, PictureUri = "Content/fake_product_04.png", Name = ".NET Black Cupt", Price = 17.00M, CatalogBrandId = 2, CatalogBrand = "Visual Studio", CatalogTypeId = 1, CatalogType = "Mug" },
|
||||||
|
new CatalogItem { Id = Common.Common.MockCatalogItemId05, PictureUri = "Content/fake_product_05.png", Name = "Azure Black Sweatshirt (M)", Price = 19.50M, CatalogBrandId = 1, CatalogBrand = "Azure", CatalogTypeId = 2, CatalogType = "T-Shirt" }
|
||||||
|
};
|
||||||
|
|
||||||
|
public async Task<ObservableCollection<CatalogItem>> GetCatalogAsync()
|
||||||
|
{
|
||||||
|
await Task.Delay(500);
|
||||||
|
|
||||||
|
return MockCatalog;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<ObservableCollection<CatalogItem>> FilterAsync(int catalogBrandId, int catalogTypeId)
|
||||||
|
{
|
||||||
|
await Task.Delay(500);
|
||||||
|
|
||||||
|
return MockCatalog
|
||||||
|
.Where(c => c.CatalogBrandId == catalogBrandId &&
|
||||||
|
c.CatalogTypeId == catalogTypeId)
|
||||||
|
.ToObservableCollection();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<ObservableCollection<CatalogBrand>> GetCatalogBrandAsync()
|
||||||
|
{
|
||||||
|
await Task.Delay(500);
|
||||||
|
|
||||||
|
return MockCatalogBrand;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<ObservableCollection<CatalogType>> GetCatalogTypeAsync()
|
||||||
|
{
|
||||||
|
await Task.Delay(500);
|
||||||
|
|
||||||
|
return MockCatalogType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<CatalogItem> GetCatalogItemAsync(string id)
|
||||||
|
{
|
||||||
|
await Task.Delay(500);
|
||||||
|
|
||||||
|
return MockCatalog.FirstOrDefault(c => c.Id == id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,131 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using eShopOnContainers.Core.Models.Catalog;
|
||||||
|
using eShopOnContainers.Core.Services.RequestProvider;
|
||||||
|
using eShopOnContainers.Core.Extensions;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
// from https://github.com/dotnet/eShopOnContainers/blob/vs2017/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Catalog/CatalogService.cs
|
||||||
|
// TODO: DRY this stuff.
|
||||||
|
namespace eShopOnContainers.Core.Services.Catalog
|
||||||
|
{
|
||||||
|
public class CatalogService : ICatalogService
|
||||||
|
{
|
||||||
|
private readonly IRequestProvider _requestProvider;
|
||||||
|
|
||||||
|
public CatalogService(IRequestProvider requestProvider)
|
||||||
|
{
|
||||||
|
_requestProvider = requestProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<ObservableCollection<CatalogItem>> FilterAsync(int catalogBrandId, int catalogTypeId)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// TODO:
|
||||||
|
UriBuilder builder = new UriBuilder("" /* GlobalSetting.Instance.CatalogEndpoint */);
|
||||||
|
|
||||||
|
builder.Path = string.Format("api/v1/catalog/items/type/{0}/brand/{1}", catalogTypeId, catalogBrandId);
|
||||||
|
|
||||||
|
string uri = builder.ToString();
|
||||||
|
|
||||||
|
CatalogRoot catalog =
|
||||||
|
await _requestProvider.GetAsync<CatalogRoot>(uri);
|
||||||
|
|
||||||
|
if (catalog?.Data != null)
|
||||||
|
return catalog?.Data.ToObservableCollection();
|
||||||
|
else
|
||||||
|
return new ObservableCollection<CatalogItem>();
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return new ObservableCollection<CatalogItem>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<ObservableCollection<CatalogItem>> GetCatalogAsync()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// TODO:
|
||||||
|
UriBuilder builder = new UriBuilder("" /* GlobalSetting.Instance.CatalogEndpoint */);
|
||||||
|
|
||||||
|
builder.Path = "api/v1/catalog/items";
|
||||||
|
|
||||||
|
string uri = builder.ToString();
|
||||||
|
|
||||||
|
CatalogRoot catalog =
|
||||||
|
await _requestProvider.GetAsync<CatalogRoot>(uri);
|
||||||
|
|
||||||
|
if (catalog?.Data != null)
|
||||||
|
{
|
||||||
|
// TODO: ServicesHelper.FixCatalogItemPictureUri(catalog?.Data);
|
||||||
|
|
||||||
|
return catalog?.Data.ToObservableCollection();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return new ObservableCollection<CatalogItem>();
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return new ObservableCollection<CatalogItem>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Task<CatalogItem> GetCatalogItemAsync(string id)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<ObservableCollection<CatalogBrand>> GetCatalogBrandAsync()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// TODO:
|
||||||
|
UriBuilder builder = new UriBuilder("" /* GlobalSetting.Instance.CatalogEndpoint */);
|
||||||
|
|
||||||
|
builder.Path = "api/v1/catalog/catalogbrands";
|
||||||
|
|
||||||
|
string uri = builder.ToString();
|
||||||
|
|
||||||
|
IEnumerable<CatalogBrand> brands =
|
||||||
|
await _requestProvider.GetAsync<IEnumerable<CatalogBrand>>(uri);
|
||||||
|
|
||||||
|
if (brands != null)
|
||||||
|
return brands?.ToObservableCollection();
|
||||||
|
else
|
||||||
|
return new ObservableCollection<CatalogBrand>();
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return new ObservableCollection<CatalogBrand>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<ObservableCollection<CatalogType>> GetCatalogTypeAsync()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// TODO:
|
||||||
|
UriBuilder builder = new UriBuilder("" /* GlobalSetting.Instance.CatalogEndpoint */);
|
||||||
|
|
||||||
|
builder.Path = "api/v1/catalog/catalogtypes";
|
||||||
|
|
||||||
|
string uri = builder.ToString();
|
||||||
|
|
||||||
|
IEnumerable<CatalogType> types =
|
||||||
|
await _requestProvider.GetAsync<IEnumerable<CatalogType>>(uri);
|
||||||
|
|
||||||
|
if (types != null)
|
||||||
|
return types.ToObservableCollection();
|
||||||
|
else
|
||||||
|
return new ObservableCollection<CatalogType>();
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return new ObservableCollection<CatalogType>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
11
src/Web/Catalog.WebForms/Catalog.WebForms/Services/Common.cs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
namespace eShopOnContainers.Core.Services.Common
|
||||||
|
{
|
||||||
|
public static class Common
|
||||||
|
{
|
||||||
|
public static string MockCatalogItemId01 = "1";
|
||||||
|
public static string MockCatalogItemId02 = "2";
|
||||||
|
public static string MockCatalogItemId03 = "3";
|
||||||
|
public static string MockCatalogItemId04 = "4";
|
||||||
|
public static string MockCatalogItemId05 = "5";
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
using eShopOnContainers.Core.Models.Catalog;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
// Taken from https://github.com/dotnet/eShopOnContainers/blob/vs2017/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Catalog/ICatalogService.cs
|
||||||
|
// Open Issue: How do we make this application DRY and still support the story
|
||||||
|
// of a 'monolithic' app for a 'Lift and Shift' scenario?
|
||||||
|
namespace eShopOnContainers.Core.Services.Catalog
|
||||||
|
{
|
||||||
|
public interface ICatalogService
|
||||||
|
{
|
||||||
|
Task<ObservableCollection<CatalogBrand>> GetCatalogBrandAsync();
|
||||||
|
Task<ObservableCollection<CatalogItem>> FilterAsync(int catalogBrandId, int catalogTypeId);
|
||||||
|
Task<ObservableCollection<CatalogType>> GetCatalogTypeAsync();
|
||||||
|
Task<ObservableCollection<CatalogItem>> GetCatalogAsync();
|
||||||
|
Task<CatalogItem> GetCatalogItemAsync(string id);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace eShopOnContainers.Core.Services.RequestProvider
|
||||||
|
{
|
||||||
|
public interface IRequestProvider
|
||||||
|
{
|
||||||
|
Task<TResult> GetAsync<TResult>(string uri, string token = "");
|
||||||
|
|
||||||
|
Task<TResult> PostAsync<TResult>(string uri, TResult data, string token = "");
|
||||||
|
|
||||||
|
Task<TResult> PostAsync<TRequest, TResult>(string uri, TRequest data, string token = "");
|
||||||
|
|
||||||
|
Task<TResult> PutAsync<TResult>(string uri, TResult data, string token = "");
|
||||||
|
|
||||||
|
Task<TResult> PutAsync<TRequest, TResult>(string uri, TRequest data, string token = "");
|
||||||
|
|
||||||
|
Task DeleteAsync(string uri, string token = "");
|
||||||
|
}
|
||||||
|
}
|
72
src/Web/Catalog.WebForms/Catalog.WebForms/Site.Master
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="Microsoft.eShopOnContainers.Catalog.WebForms.SiteMaster" %>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
<html lang="en">
|
||||||
|
<head runat="server">
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title><%: Page.Title %> - My ASP.NET Application</title>
|
||||||
|
|
||||||
|
<asp:PlaceHolder runat="server">
|
||||||
|
<%: Scripts.Render("~/bundles/modernizr") %>
|
||||||
|
</asp:PlaceHolder>
|
||||||
|
|
||||||
|
<webopt:bundlereference runat="server" path="~/Content/css" />
|
||||||
|
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form runat="server">
|
||||||
|
<asp:ScriptManager runat="server">
|
||||||
|
<Scripts>
|
||||||
|
<%--To learn more about bundling scripts in ScriptManager see https://go.microsoft.com/fwlink/?LinkID=301884 --%>
|
||||||
|
<%--Framework Scripts--%>
|
||||||
|
<asp:ScriptReference Name="MsAjaxBundle" />
|
||||||
|
<asp:ScriptReference Name="jquery" />
|
||||||
|
<asp:ScriptReference Name="bootstrap" />
|
||||||
|
<asp:ScriptReference Name="respond" />
|
||||||
|
<asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
|
||||||
|
<asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
|
||||||
|
<asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
|
||||||
|
<asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
|
||||||
|
<asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
|
||||||
|
<asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
|
||||||
|
<asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
|
||||||
|
<asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
|
||||||
|
<asp:ScriptReference Name="WebFormsBundle" />
|
||||||
|
<%--Site Scripts--%>
|
||||||
|
</Scripts>
|
||||||
|
</asp:ScriptManager>
|
||||||
|
|
||||||
|
<div class="navbar navbar-inverse navbar-fixed-top">
|
||||||
|
<div class="container">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<a class="navbar-brand" runat="server" href="~/">Application name</a>
|
||||||
|
</div>
|
||||||
|
<div class="navbar-collapse collapse">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li><a runat="server" href="~/">Home</a></li>
|
||||||
|
<li><a runat="server" href="~/About">About</a></li>
|
||||||
|
<li><a runat="server" href="~/Contact">Contact</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container body-content">
|
||||||
|
<asp:ContentPlaceHolder ID="MainContent" runat="server">
|
||||||
|
</asp:ContentPlaceHolder>
|
||||||
|
<hr />
|
||||||
|
<footer>
|
||||||
|
<p>© <%: DateTime.Now.Year %> - My ASP.NET Application</p>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
17
src/Web/Catalog.WebForms/Catalog.WebForms/Site.Master.cs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
|
||||||
|
namespace Microsoft.eShopOnContainers.Catalog.WebForms
|
||||||
|
{
|
||||||
|
public partial class SiteMaster : MasterPage
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
24
src/Web/Catalog.WebForms/Catalog.WebForms/Site.Master.designer.cs
generated
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace Microsoft.eShopOnContainers.Catalog.WebForms {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class SiteMaster {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MainContent control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.ContentPlaceHolder MainContent;
|
||||||
|
}
|
||||||
|
}
|
23
src/Web/Catalog.WebForms/Catalog.WebForms/Site.Mobile.Master
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.Mobile.master.cs" Inherits="Microsoft.eShopOnContainers.Catalog.WebForms.Site_Mobile" %>
|
||||||
|
<%@ Register Src="~/ViewSwitcher.ascx" TagPrefix="friendlyUrls" TagName="ViewSwitcher" %>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head runat="server">
|
||||||
|
<meta name="viewport" content="width=device-width" />
|
||||||
|
<title></title>
|
||||||
|
<asp:ContentPlaceHolder runat="server" ID="HeadContent" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form id="form1" runat="server">
|
||||||
|
<div>
|
||||||
|
<h1>Mobile Master Page</h1>
|
||||||
|
<asp:ContentPlaceHolder runat="server" ID="FeaturedContent" />
|
||||||
|
<section class="content-wrapper main-content clear-fix">
|
||||||
|
<asp:ContentPlaceHolder runat="server" ID="MainContent" />
|
||||||
|
</section>
|
||||||
|
<friendlyUrls:ViewSwitcher runat="server" />
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,17 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
|
||||||
|
namespace Microsoft.eShopOnContainers.Catalog.WebForms
|
||||||
|
{
|
||||||
|
public partial class Site_Mobile : System.Web.UI.MasterPage
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
51
src/Web/Catalog.WebForms/Catalog.WebForms/Site.Mobile.Master.designer.cs
generated
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace Microsoft.eShopOnContainers.Catalog.WebForms {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class Site_Mobile {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// HeadContent control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.ContentPlaceHolder HeadContent;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// form1 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// FeaturedContent control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.ContentPlaceHolder FeaturedContent;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MainContent control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.ContentPlaceHolder MainContent;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ViewSwitcher.ascx.cs" Inherits="Microsoft.eShopOnContainers.Catalog.WebForms.ViewSwitcher" %>
|
||||||
|
<div id="viewSwitcher">
|
||||||
|
<%: CurrentView %> view | <a href="<%: SwitchUrl %>" data-ajax="false">Switch to <%: AlternateView %></a>
|
||||||
|
</div>
|
@ -0,0 +1,43 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.Routing;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using Microsoft.AspNet.FriendlyUrls.Resolvers;
|
||||||
|
|
||||||
|
namespace Microsoft.eShopOnContainers.Catalog.WebForms
|
||||||
|
{
|
||||||
|
public partial class ViewSwitcher : System.Web.UI.UserControl
|
||||||
|
{
|
||||||
|
protected string CurrentView { get; private set; }
|
||||||
|
|
||||||
|
protected string AlternateView { get; private set; }
|
||||||
|
|
||||||
|
protected string SwitchUrl { get; private set; }
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// Determine current view
|
||||||
|
var isMobile = WebFormsFriendlyUrlResolver.IsMobileView(new HttpContextWrapper(Context));
|
||||||
|
CurrentView = isMobile ? "Mobile" : "Desktop";
|
||||||
|
|
||||||
|
// Determine alternate view
|
||||||
|
AlternateView = isMobile ? "Desktop" : "Mobile";
|
||||||
|
|
||||||
|
// Create switch URL from the route, e.g. ~/__FriendlyUrls_SwitchView/Mobile?ReturnUrl=/Page
|
||||||
|
var switchViewRouteName = "AspNet.FriendlyUrls.SwitchView";
|
||||||
|
var switchViewRoute = RouteTable.Routes[switchViewRouteName];
|
||||||
|
if (switchViewRoute == null)
|
||||||
|
{
|
||||||
|
// Friendly URLs is not enabled or the name of the switch view route is out of sync
|
||||||
|
this.Visible = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var url = GetRouteUrl(switchViewRouteName, new { view = AlternateView, __FriendlyUrls_SwitchViews = true });
|
||||||
|
url += "?ReturnUrl=" + HttpUtility.UrlEncode(Request.RawUrl);
|
||||||
|
SwitchUrl = url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
15
src/Web/Catalog.WebForms/Catalog.WebForms/ViewSwitcher.ascx.designer.cs
generated
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace Microsoft.eShopOnContainers.Catalog.WebForms {
|
||||||
|
|
||||||
|
|
||||||
|
public partial class ViewSwitcher {
|
||||||
|
}
|
||||||
|
}
|
30
src/Web/Catalog.WebForms/Catalog.WebForms/Web.Debug.config
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<!-- For more information on using web.config transformation visit https://go.microsoft.com/fwlink/?LinkId=125889 -->
|
||||||
|
|
||||||
|
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
|
||||||
|
<!--
|
||||||
|
In the example below, the "SetAttributes" transform will change the value of
|
||||||
|
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
|
||||||
|
finds an attribute "name" that has a value of "MyDB".
|
||||||
|
|
||||||
|
<connectionStrings>
|
||||||
|
<add name="MyDB"
|
||||||
|
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
|
||||||
|
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
|
||||||
|
</connectionStrings>
|
||||||
|
-->
|
||||||
|
<system.web>
|
||||||
|
<!--
|
||||||
|
In the example below, the "Replace" transform will replace the entire
|
||||||
|
<customErrors> section of your web.config file.
|
||||||
|
Note that because there is only one customErrors section under the
|
||||||
|
<system.web> node, there is no need to use the "xdt:Locator" attribute.
|
||||||
|
|
||||||
|
<customErrors defaultRedirect="GenericError.htm"
|
||||||
|
mode="RemoteOnly" xdt:Transform="Replace">
|
||||||
|
<error statusCode="500" redirect="InternalError.htm"/>
|
||||||
|
</customErrors>
|
||||||
|
-->
|
||||||
|
</system.web>
|
||||||
|
</configuration>
|
31
src/Web/Catalog.WebForms/Catalog.WebForms/Web.Release.config
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<!-- For more information on using web.config transformation visit https://go.microsoft.com/fwlink/?LinkId=125889 -->
|
||||||
|
|
||||||
|
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
|
||||||
|
<!--
|
||||||
|
In the example below, the "SetAttributes" transform will change the value of
|
||||||
|
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
|
||||||
|
finds an attribute "name" that has a value of "MyDB".
|
||||||
|
|
||||||
|
<connectionStrings>
|
||||||
|
<add name="MyDB"
|
||||||
|
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
|
||||||
|
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
|
||||||
|
</connectionStrings>
|
||||||
|
-->
|
||||||
|
<system.web>
|
||||||
|
<compilation xdt:Transform="RemoveAttributes(debug)" />
|
||||||
|
<!--
|
||||||
|
In the example below, the "Replace" transform will replace the entire
|
||||||
|
<customErrors> section of your web.config file.
|
||||||
|
Note that because there is only one customErrors section under the
|
||||||
|
<system.web> node, there is no need to use the "xdt:Locator" attribute.
|
||||||
|
|
||||||
|
<customErrors defaultRedirect="GenericError.htm"
|
||||||
|
mode="RemoteOnly" xdt:Transform="Replace">
|
||||||
|
<error statusCode="500" redirect="InternalError.htm"/>
|
||||||
|
</customErrors>
|
||||||
|
-->
|
||||||
|
</system.web>
|
||||||
|
</configuration>
|
50
src/Web/Catalog.WebForms/Catalog.WebForms/Web.config
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
For more information on how to configure your ASP.NET application, please visit
|
||||||
|
https://go.microsoft.com/fwlink/?LinkId=169433
|
||||||
|
-->
|
||||||
|
<configuration>
|
||||||
|
<appSettings>
|
||||||
|
<add key="usefake" value="true"/>
|
||||||
|
</appSettings>
|
||||||
|
<system.web>
|
||||||
|
<compilation debug="true" targetFramework="4.5.2" />
|
||||||
|
<httpRuntime targetFramework="4.5.2" />
|
||||||
|
<pages>
|
||||||
|
<namespaces>
|
||||||
|
<add namespace="System.Web.Optimization" />
|
||||||
|
</namespaces>
|
||||||
|
<controls>
|
||||||
|
<add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt" />
|
||||||
|
</controls>
|
||||||
|
</pages>
|
||||||
|
<httpModules>
|
||||||
|
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
|
||||||
|
</httpModules>
|
||||||
|
</system.web>
|
||||||
|
<runtime>
|
||||||
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="WebGrease" culture="neutral" publicKeyToken="31bf3856ad364e35" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
|
||||||
|
</dependentAssembly>
|
||||||
|
</assemblyBinding>
|
||||||
|
</runtime>
|
||||||
|
<system.webServer>
|
||||||
|
<validation validateIntegratedModeConfiguration="false" />
|
||||||
|
<modules>
|
||||||
|
<remove name="ApplicationInsightsWebTracking" />
|
||||||
|
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
|
||||||
|
</modules>
|
||||||
|
</system.webServer>
|
||||||
|
<system.codedom>
|
||||||
|
<compilers>
|
||||||
|
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
|
||||||
|
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
|
||||||
|
</compilers>
|
||||||
|
</system.codedom>
|
||||||
|
</configuration>
|
BIN
src/Web/Catalog.WebForms/Catalog.WebForms/favicon.ico
Normal file
After Width: | Height: | Size: 31 KiB |
@ -0,0 +1,228 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<metadata></metadata>
|
||||||
|
<defs>
|
||||||
|
<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
|
||||||
|
<font-face units-per-em="1200" ascent="960" descent="-240" />
|
||||||
|
<missing-glyph horiz-adv-x="500" />
|
||||||
|
<glyph />
|
||||||
|
<glyph />
|
||||||
|
<glyph unicode=" " />
|
||||||
|
<glyph unicode="*" d="M1100 500h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200z" />
|
||||||
|
<glyph unicode="+" d="M1100 400h-400v-400h-300v400h-400v300h400v400h300v-400h400v-300z" />
|
||||||
|
<glyph unicode=" " />
|
||||||
|
<glyph unicode=" " horiz-adv-x="652" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="1304" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="652" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="1304" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="434" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="326" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="217" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="217" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="163" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="260" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="72" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="260" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="326" />
|
||||||
|
<glyph unicode="€" d="M800 500h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257 q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406z" />
|
||||||
|
<glyph unicode="−" d="M1100 700h-900v-300h900v300z" />
|
||||||
|
<glyph unicode="☁" d="M178 300h750q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5q0 -80 56.5 -137t135.5 -57z" />
|
||||||
|
<glyph unicode="✉" d="M1200 1100h-1200l600 -603zM300 600l-300 -300v600zM1200 900v-600l-300 300zM800 500l400 -400h-1200l400 400l200 -200z" />
|
||||||
|
<glyph unicode="✏" d="M1101 889l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13l-94 -97zM401 189l614 614l-214 214l-614 -614zM-13 -13l333 112l-223 223z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="500" d="M0 0z" />
|
||||||
|
<glyph unicode="" d="M700 100h300v-100h-800v100h300v550l-500 550h1200l-500 -550v-550z" />
|
||||||
|
<glyph unicode="" d="M1000 934v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q17 -55 85.5 -75.5t147.5 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7q-79 -25 -122.5 -82t-25.5 -112t86 -75.5t147 5.5 q65 21 109 69t44 90v606z" />
|
||||||
|
<glyph unicode="" d="M913 432l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342t142 342t342 142t342 -142t142 -342q0 -142 -78 -261zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
|
||||||
|
<glyph unicode="" d="M649 949q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5t-94 124.5t-33.5 117.5q0 64 28 123t73 100.5t104.5 64t119 20.5 t120 -38.5t104.5 -104.5z" />
|
||||||
|
<glyph unicode="" d="M791 522l145 -449l-384 275l-382 -275l146 447l-388 280h479l146 400h2l146 -400h472zM168 71l2 1z" />
|
||||||
|
<glyph unicode="" d="M791 522l145 -449l-384 275l-382 -275l146 447l-388 280h479l146 400h2l146 -400h472zM747 331l-74 229l193 140h-235l-77 211l-78 -211h-239l196 -142l-73 -226l192 140zM168 71l2 1z" />
|
||||||
|
<glyph unicode="" d="M1200 143v-143h-1200v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100z" />
|
||||||
|
<glyph unicode="" d="M1200 1100v-1100h-1200v1100h1200zM200 1000h-100v-100h100v100zM900 1000h-600v-400h600v400zM1100 1000h-100v-100h100v100zM200 800h-100v-100h100v100zM1100 800h-100v-100h100v100zM200 600h-100v-100h100v100zM1100 600h-100v-100h100v100zM900 500h-600v-400h600 v400zM200 400h-100v-100h100v100zM1100 400h-100v-100h100v100zM200 200h-100v-100h100v100zM1100 200h-100v-100h100v100z" />
|
||||||
|
<glyph unicode="" d="M500 1050v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5zM1100 1050v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h400 q21 0 35.5 -14.5t14.5 -35.5zM500 450v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5zM1100 450v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5z" />
|
||||||
|
<glyph unicode="" d="M300 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM700 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5zM1100 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM300 650v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM700 650v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM1100 650v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM300 250v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM700 250v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM1100 250v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5 t14.5 -35.5z" />
|
||||||
|
<glyph unicode="" d="M300 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM1200 1050v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h700 q21 0 35.5 -14.5t14.5 -35.5zM300 450v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-200q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5zM1200 650v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5zM300 250v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5zM1200 250v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5z" />
|
||||||
|
<glyph unicode="" d="M448 34l818 820l-212 212l-607 -607l-206 207l-212 -212z" />
|
||||||
|
<glyph unicode="" d="M882 106l-282 282l-282 -282l-212 212l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282z" />
|
||||||
|
<glyph unicode="" d="M913 432l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342t142 342t342 142t342 -142t142 -342q0 -142 -78 -261zM507 363q137 0 233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5t-234 -97t-97 -233 t97 -233t234 -97zM600 800h100v-200h-100v-100h-200v100h-100v200h100v100h200v-100z" />
|
||||||
|
<glyph unicode="" d="M913 432l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 299q-120 -77 -261 -77q-200 0 -342 142t-142 342t142 342t342 142t342 -142t142 -342q0 -141 -78 -262zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 801v-200h400v200h-400z" />
|
||||||
|
<glyph unicode="" d="M700 750v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5zM800 975v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123 t-123 184t-45.5 224.5q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155z" />
|
||||||
|
<glyph unicode="" d="M1200 1h-200v1200h200v-1200zM900 1h-200v800h200v-800zM600 1h-200v500h200v-500zM300 301h-200v-300h200v300z" />
|
||||||
|
<glyph unicode="" d="M488 183l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5 q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39zM600 815q89 0 152 -63 t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152q0 88 63 151t152 63z" />
|
||||||
|
<glyph unicode="" d="M900 1100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100zM800 1100v100h-300v-100h300zM200 900h900v-800q0 -41 -29.5 -71 t-70.5 -30h-700q-41 0 -70.5 30t-29.5 71v800zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
|
||||||
|
<glyph unicode="" d="M1301 601h-200v-600h-300v400h-300v-400h-300v600h-200l656 644z" />
|
||||||
|
<glyph unicode="" d="M600 700h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18v1150q0 11 7 18t18 7h475v-500zM1000 800h-300v300z" />
|
||||||
|
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM600 600h200 v-100h-300v400h100v-300z" />
|
||||||
|
<glyph unicode="" d="M721 400h-242l-40 -400h-539l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538zM712 500l-27 300h-170l-27 -300h224z" />
|
||||||
|
<glyph unicode="" d="M1100 400v-400h-1100v400h490l-290 300h200v500h300v-500h200l-290 -300h490zM988 300h-175v-100h175v100z" />
|
||||||
|
<glyph unicode="" d="M600 1199q122 0 233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233t47.5 233t127.5 191t191 127.5t233 47.5zM600 1012q-170 0 -291 -121t-121 -291t121 -291t291 -121t291 121 t121 291t-121 291t-291 121zM700 600h150l-250 -300l-250 300h150v300h200v-300z" />
|
||||||
|
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM850 600h-150 v-300h-200v300h-150l250 300z" />
|
||||||
|
<glyph unicode="" d="M0 500l200 700h800q199 -700 200 -700v-475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18v475zM903 1000h-606l-97 -500h200l50 -200h300l50 200h200z" />
|
||||||
|
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5zM797 598 l-297 -201v401z" />
|
||||||
|
<glyph unicode="" d="M1177 600h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123t-123 -184t-45.5 -224.5t45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123 t123 184t45.5 224.5z" />
|
||||||
|
<glyph unicode="" d="M700 800l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400zM500 400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122l-145 -145v400h400z" />
|
||||||
|
<glyph unicode="" d="M100 1200v-1200h1100v1200h-1100zM1100 100h-900v900h900v-900zM400 800h-100v100h100v-100zM1000 800h-500v100h500v-100zM400 600h-100v100h100v-100zM1000 600h-500v100h500v-100zM400 400h-100v100h100v-100zM1000 400h-500v100h500v-100zM400 200h-100v100h100v-100 zM1000 300h-500v-100h500v100z" />
|
||||||
|
<glyph unicode="" d="M200 0h-100v1100h100v-1100zM1100 600v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5z" />
|
||||||
|
<glyph unicode="" d="M1200 275v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5t-49.5 -227v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50 q11 0 18 7t7 18zM400 480v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14zM1000 480v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14z" />
|
||||||
|
<glyph unicode="" d="M0 800v-400h300l300 -200v800l-300 -200h-300zM971 600l141 -141l-71 -71l-141 141l-141 -141l-71 71l141 141l-141 141l71 71l141 -141l141 141l71 -71z" />
|
||||||
|
<glyph unicode="" d="M0 800v-400h300l300 -200v800l-300 -200h-300zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
|
||||||
|
<glyph unicode="" d="M974 186l6 8q142 178 142 405q0 230 -144 408l-6 8l-83 -64l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8zM300 801l300 200v-800l-300 200h-300v400h300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257z" />
|
||||||
|
<glyph unicode="" d="M100 700h400v100h100v100h-100v300h-500v-600h100v100zM1200 700v500h-600v-200h100v-300h200v-300h300v200h-200v100h200zM100 1100h300v-300h-300v300zM800 800v300h300v-300h-300zM200 900h100v100h-100v-100zM900 1000h100v-100h-100v100zM300 600h-100v-100h-200 v-500h500v500h-200v100zM900 200v-100h-200v100h-100v100h100v200h-200v100h300v-300h200v-100h-100zM400 400v-300h-300v300h300zM300 200h-100v100h100v-100zM1100 300h100v-100h-100v100zM600 100h100v-100h-100v100zM1200 100v-100h-300v100h300z" />
|
||||||
|
<glyph unicode="" d="M100 1200h-100v-1000h100v1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 1200v-1000h-200v1000h200zM400 100v-100h-300v100h300zM500 91h100v-91h-100v91zM700 91h100v-91h-100v91zM1100 91v-91h-200v91h200z " />
|
||||||
|
<glyph unicode="" d="M1200 500l-500 -500l-699 700v475q0 10 7.5 17.5t17.5 7.5h474zM320 882q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71t29 -71q30 -30 71.5 -30t71.5 30z" />
|
||||||
|
<glyph unicode="" d="M1201 500l-500 -500l-699 700v475q0 11 7 18t18 7h474zM1501 500l-500 -500l-50 50l450 450l-700 700h100zM320 882q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71t30 -71q29 -30 71 -30t71 30z" />
|
||||||
|
<glyph unicode="" d="M1200 1200v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900v1025l175 175h925z" />
|
||||||
|
<glyph unicode="" d="M947 829l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18l-94 -346l40 -124h592zM1200 800v-700h-200v200h-800v-200h-200v700h200l100 -200h600l100 200h200zM881 176l38 -152q2 -10 -3.5 -17t-15.5 -7h-600q-10 0 -15.5 7t-3.5 17l38 152q2 10 11.5 17t19.5 7 h500q10 0 19.5 -7t11.5 -17z" />
|
||||||
|
<glyph unicode="" d="M1200 0v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417zM416 521l178 457l46 -140l116 -317 h-340z" />
|
||||||
|
<glyph unicode="" d="M100 1199h471q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111t-162 -38.5h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21 t-29 14t-49 14.5v70zM400 1079v-379h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400z" />
|
||||||
|
<glyph unicode="" d="M877 1200l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425z" />
|
||||||
|
<glyph unicode="" d="M1150 1200h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49v300h150h700zM100 1000v-800h75l-125 -167l-125 167h75v800h-75l125 167 l125 -167h-75z" />
|
||||||
|
<glyph unicode="" d="M950 1201h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50v300h150h700zM200 101h800v75l167 -125l-167 -125v75h-800v-75l-167 125l167 125 v-75z" />
|
||||||
|
<glyph unicode="" d="M700 950v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35zM1100 650v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h1000 q21 0 35.5 15t14.5 35zM900 350v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35zM1200 50v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35 t35.5 -15h1100q21 0 35.5 15t14.5 35z" />
|
||||||
|
<glyph unicode="" d="M1000 950v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35zM1200 650v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h1100 q21 0 35.5 15t14.5 35zM1000 350v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35zM1200 50v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35 t35.5 -15h1100q21 0 35.5 15t14.5 35z" />
|
||||||
|
<glyph unicode="" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
|
||||||
|
<glyph unicode="" d="M0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
|
||||||
|
<glyph unicode="" d="M0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35zM0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
|
||||||
|
<glyph unicode="" d="M400 1100h-100v-1100h100v1100zM700 950v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35zM1100 650v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15 h500q20 0 35 15t15 35zM100 425v75h-201v100h201v75l166 -125zM900 350v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35zM1200 50v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5 v-100q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35z" />
|
||||||
|
<glyph unicode="" d="M201 950v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35zM801 1100h100v-1100h-100v1100zM601 650v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15 h500q20 0 35 15t15 35zM1101 425v75h200v100h-200v75l-167 -125zM401 350v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35zM701 50v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5 v-100q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35z" />
|
||||||
|
<glyph unicode="" d="M900 925v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53zM1200 300l-300 300l300 300v-600z" />
|
||||||
|
<glyph unicode="" d="M1200 1056v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31zM1100 1000h-1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500zM476 750q0 -56 -39 -95t-95 -39t-95 39t-39 95t39 95t95 39t95 -39 t39 -95z" />
|
||||||
|
<glyph unicode="" d="M600 1213q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262q0 124 60.5 231.5t165 172t226.5 64.5zM599 514q107 0 182.5 75.5t75.5 182.5t-75.5 182 t-182.5 75t-182 -75.5t-75 -181.5q0 -107 75.5 -182.5t181.5 -75.5z" />
|
||||||
|
<glyph unicode="" d="M600 1199q122 0 233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233t47.5 233t127.5 191t191 127.5t233 47.5zM600 173v854q-176 0 -301.5 -125t-125.5 -302t125.5 -302t301.5 -125z " />
|
||||||
|
<glyph unicode="" d="M554 1295q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 138.5t-64 210.5q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5zM455 296q-7 6 -18 17 t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156q14 -82 59.5 -136t136.5 -80z" />
|
||||||
|
<glyph unicode="" d="M1108 902l113 113l-21 85l-92 28l-113 -113zM1100 625v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5 t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125zM436 341l161 50l412 412l-114 113l-405 -405z" />
|
||||||
|
<glyph unicode="" d="M1100 453v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5z M813 431l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209z" />
|
||||||
|
<glyph unicode="" d="M1100 569v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5v300q0 165 117.5 282.5t282.5 117.5h300q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69z M625 348l566 567l-136 137l-430 -431l-147 147l-136 -136z" />
|
||||||
|
<glyph unicode="" d="M900 303v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198l-300 300l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296z" />
|
||||||
|
<glyph unicode="" d="M900 0l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100z" />
|
||||||
|
<glyph unicode="" d="M1200 0l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100z" />
|
||||||
|
<glyph unicode="" d="M1200 0l-500 488v-488l-564 550l564 550v-487l500 487v-1100z" />
|
||||||
|
<glyph unicode="" d="M1100 550l-900 550v-1100z" />
|
||||||
|
<glyph unicode="" d="M500 150v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5zM900 150v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800q0 -21 14.5 -35.5t35.5 -14.5h200 q21 0 35.5 14.5t14.5 35.5z" />
|
||||||
|
<glyph unicode="" d="M1100 150v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35z" />
|
||||||
|
<glyph unicode="" d="M500 0v488l-500 -488v1100l500 -487v487l564 -550z" />
|
||||||
|
<glyph unicode="" d="M1050 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488l-500 -488v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5z" />
|
||||||
|
<glyph unicode="" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5z" />
|
||||||
|
<glyph unicode="" d="M650 1064l-550 -564h1100zM1200 350v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
|
||||||
|
<glyph unicode="" d="M777 7l240 240l-353 353l353 353l-240 240l-592 -594z" />
|
||||||
|
<glyph unicode="" d="M513 -46l-241 240l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1z" />
|
||||||
|
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM500 900v-200h-200v-200h200v-200h200v200h200v200h-200v200h-200z" />
|
||||||
|
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM300 700v-200h600v200h-600z" />
|
||||||
|
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM247 741l141 -141l-142 -141l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141 l-141 142z" />
|
||||||
|
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM546 623l-102 102l-174 -174l276 -277l411 411l-175 174z" />
|
||||||
|
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM500 500h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3 q-105 0 -172 -56t-67 -183h144q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5zM500 400v-100h200v100h-200z" />
|
||||||
|
<glyph unicode="" d="M600 1197q162 0 299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5t80 299.5t217.5 217.5t299.5 80zM500 900v-100h200v100h-200zM400 700v-100h100v-200h-100v-100h400v100h-100v300h-300z" />
|
||||||
|
<glyph unicode="" d="M1200 700v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194v200h194q15 60 36 104.5t55.5 86t88 69t126.5 40.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203zM700 500v-206q149 48 201 206h-201v200h200 q-25 74 -76 127.5t-124 76.5v-204h-200v203q-75 -24 -130 -77.5t-79 -125.5h209v-200h-210q24 -73 79.5 -127.5t130.5 -78.5v206h200z" />
|
||||||
|
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM844 735 l-135 -135l135 -135l-109 -109l-135 135l-135 -135l-109 109l135 135l-135 135l109 109l135 -135l135 135z" />
|
||||||
|
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM896 654 l-346 -345l-228 228l141 141l87 -87l204 205z" />
|
||||||
|
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM248 385l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5q0 -115 62 -215zM955 809l-564 -564q97 -59 209 -59q171 0 292.5 121.5 t121.5 292.5q0 112 -59 209z" />
|
||||||
|
<glyph unicode="" d="M1200 400h-600v-301l-600 448l600 453v-300h600v-300z" />
|
||||||
|
<glyph unicode="" d="M600 400h-600v300h600v300l600 -453l-600 -448v301z" />
|
||||||
|
<glyph unicode="" d="M1098 600h-298v-600h-300v600h-296l450 600z" />
|
||||||
|
<glyph unicode="" d="M998 600l-449 -600l-445 600h296v600h300v-600h298z" />
|
||||||
|
<glyph unicode="" d="M600 199v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453z" />
|
||||||
|
<glyph unicode="" d="M1200 1200h-400l129 -129l-294 -294l142 -142l294 294l129 -129v400zM565 423l-294 -294l129 -129h-400v400l129 -129l294 294z" />
|
||||||
|
<glyph unicode="" d="M871 730l129 -130h-400v400l129 -129l295 295l142 -141zM200 600h400v-400l-129 130l-295 -295l-142 141l295 295z" />
|
||||||
|
<glyph unicode="" d="M600 1177q118 0 224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5t45.5 224.5t123 184t184 123t224.5 45.5zM686 549l58 302q4 20 -8 34.5t-33 14.5h-207q-20 0 -32 -14.5t-8 -34.5 l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5zM700 400h-200v-100h200v100z" />
|
||||||
|
<glyph unicode="" d="M1200 900h-111v6t-1 15t-3 18l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6h-111v-100h100v-200h400v300h200v-300h400v200h100v100z M731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269zM481 900h-281q-3 0 14 48t35 96l18 47zM100 0h400v400h-400v-400zM700 400h400v-400h-400v400z" />
|
||||||
|
<glyph unicode="" d="M0 121l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55l-201 -202 v143zM692 611q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5t86.5 76.5q55 66 367 234z" />
|
||||||
|
<glyph unicode="" d="M1261 600l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30l-26 40l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5 t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30zM600 240q64 0 123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212 q0 85 46 158q-102 -87 -226 -258q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5zM484 762l-107 -106q49 -124 154 -191l105 105q-37 24 -75 72t-57 84z" />
|
||||||
|
<glyph unicode="" d="M906 1200l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43l-26 40l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148zM1261 600l-26 -40q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5 t-124 -100t-146.5 -79l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52zM513 264l37 141q-107 18 -178.5 101.5t-71.5 193.5q0 85 46 158q-102 -87 -226 -258q210 -282 393 -336z M484 762l-107 -106q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68z" />
|
||||||
|
<glyph unicode="" d="M-47 0h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 33 -48 36t-48 -29l-642 -1066q-21 -32 -7.5 -66t50.5 -34zM700 200v100h-200v-100h-345l445 723l445 -723h-345zM700 700h-200v-100l100 -300l100 300v100z" />
|
||||||
|
<glyph unicode="" d="M800 711l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -21 -13 -29t-32 1l-94 78h-222l-94 -78q-19 -9 -32 -1t-13 29v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41q0 20 11 44.5t26 38.5 l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339z" />
|
||||||
|
<glyph unicode="" d="M941 800l-600 -600h-341v200h259l600 600h241v198l300 -295l-300 -300v197h-159zM381 678l141 142l-181 180h-341v-200h259zM1100 598l300 -295l-300 -300v197h-241l-181 181l141 142l122 -123h159v198z" />
|
||||||
|
<glyph unicode="" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
|
||||||
|
<glyph unicode="" d="M400 900h-300v300h300v-300zM1100 900h-300v300h300v-300zM1100 800v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5t-58 109.5t-31.5 116t-15 104t-3 83v200h300v-250q0 -113 6 -145 q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300z" />
|
||||||
|
<glyph unicode="" d="M902 184l226 227l-578 579l-580 -579l227 -227l352 353z" />
|
||||||
|
<glyph unicode="" d="M650 218l578 579l-226 227l-353 -353l-352 353l-227 -227z" />
|
||||||
|
<glyph unicode="" d="M1198 400v600h-796l215 -200h381v-400h-198l299 -283l299 283h-200zM-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196z" />
|
||||||
|
<glyph unicode="" d="M1050 1200h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35 q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43l-100 475q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5z" />
|
||||||
|
<glyph unicode="" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
|
||||||
|
<glyph unicode="" d="M201 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000zM1501 700l-300 -700h-1200l300 700h1200z" />
|
||||||
|
<glyph unicode="" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
|
||||||
|
<glyph unicode="" d="M900 303v197h-600v-197l-300 297l300 298v-198h600v198l300 -298z" />
|
||||||
|
<glyph unicode="" d="M31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM100 300h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM900 200h-100v-100h100v100z M1100 200h-100v-100h100v100z" />
|
||||||
|
<glyph unicode="" d="M1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35zM325 800l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35q-56 337 -56 351v250v5 q0 13 0.5 18.5t2.5 13t8 10.5t15 3h200zM-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5z" />
|
||||||
|
<glyph unicode="" d="M445 1180l-45 -233l-224 78l78 -225l-233 -44l179 -156l-179 -155l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180z" />
|
||||||
|
<glyph unicode="" d="M700 1200h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400q0 -75 100 -75h61q123 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5zM700 925l-50 -225h450 v-125l-250 -375h-214l-136 100h-100v375l150 212l100 213h50v-175zM0 800v-600h200v600h-200z" />
|
||||||
|
<glyph unicode="" d="M700 0h-50q-27 0 -51 20t-38 48l-96 198l-145 196q-20 26 -20 63v400q0 75 100 75h61q123 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5zM200 400h-200v600h200 v-600zM700 275l-50 225h450v125l-250 375h-214l-136 -100h-100v-375l150 -212l100 -213h50v175z" />
|
||||||
|
<glyph unicode="" d="M364 873l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM408 792v-503 l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83zM208 200h-200v600h200v-600z" />
|
||||||
|
<glyph unicode="" d="M475 1104l365 -230q7 -4 16.5 -10.5t26 -26t16.5 -36.5v-526q0 -13 -85.5 -93.5t-93.5 -80.5h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-84 0 -139 39t-55 111t54 110t139 37h302l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6zM370 946 l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100h222q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l106 89v502l-342 237zM1199 201h-200v600h200v-600z" />
|
||||||
|
<glyph unicode="" d="M1100 473v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90zM911 400h-503l-236 339 l83 86l183 -146q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6v7.5v7v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294zM1000 200v-200h-600v200h600z" />
|
||||||
|
<glyph unicode="" d="M305 1104v200h600v-200h-600zM605 310l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15l-230 -362q-15 -31 7 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85l-1 -302q0 -84 38.5 -138t110.5 -54t111 55t39 139v106z M905 804v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146l-83 86l237 339h503z" />
|
||||||
|
<glyph unicode="" d="M603 1195q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5zM598 701h-298v-201h300l-2 -194l402 294l-402 298v-197z" />
|
||||||
|
<glyph unicode="" d="M597 1195q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5zM200 600l400 -294v194h302v201h-300v197z" />
|
||||||
|
<glyph unicode="" d="M603 1195q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5zM300 600h200v-300h200v300h200l-300 400z" />
|
||||||
|
<glyph unicode="" d="M603 1195q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5zM500 900v-300h-200l300 -400l300 400h-200v300h-200z" />
|
||||||
|
<glyph unicode="" d="M603 1195q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5zM627 1101q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6 q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55 t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q102 -2 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7 q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5 t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 41 1 44q31 -13 58.5 -14.5t39.5 3.5l11 4q6 36 -17 53.5t-64 28.5t-56 23q-19 -3 -37 0zM613 994q0 -18 8 -42.5t16.5 -44t9.5 -23.5q-9 2 -31 5t-36 5t-32 8t-30 14q3 12 16 30t16 25q10 -10 18.5 -10 t14 6t14.5 14.5t16 12.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
|
||||||
|
<glyph unicode="" d="M1100 1200v-100h-1000v100h1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
|
||||||
|
<glyph unicode="" d="M329 729l142 142l-200 200l129 129h-400v-400l129 129zM1200 1200v-400l-129 129l-200 -200l-142 142l200 200l-129 129h400zM271 129l129 -129h-400v400l129 -129l200 200l142 -142zM1071 271l129 129v-400h-400l129 129l-200 200l142 142z" />
|
||||||
|
<glyph unicode="" d="M596 1192q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM596 1010q-171 0 -292.5 -121.5t-121.5 -292.5q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5zM455 905 q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5t16 38.5t39 16.5zM708 821l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5 q0 32 20.5 56.5t51.5 29.5zM855 709q23 0 38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39q0 22 16 38t39 16zM345 709q23 0 39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39t15.5 38.5t38.5 15.5z" />
|
||||||
|
<glyph unicode="" d="M649 54l-16 22q-90 125 -293 323q-71 70 -104.5 105.5t-77 89.5t-61 99t-17.5 91q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-203 -198 -293 -323zM844 524l12 12 q64 62 97.5 97t64.5 79t31 72q0 71 -48 119t-105 48q-74 0 -132 -82l-118 -171l-114 174q-51 79 -123 79q-60 0 -109.5 -49t-49.5 -118q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203z" />
|
||||||
|
<glyph unicode="" d="M476 406l19 -17l105 105l-212 212l389 389l247 -247l-95 -96l18 -18q46 -46 77 -99l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159q0 -93 66 -159zM123 193l141 -141q66 -66 159 -66q95 0 159 66 l283 283q66 66 66 159t-66 159l-141 141q-12 12 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159q0 -94 66 -160z" />
|
||||||
|
<glyph unicode="" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM900 1000h-600v-700h600v700zM600 46q43 0 73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5t-73.5 -30.5t-30.5 -73.5 t30.5 -73.5t73.5 -30.5z" />
|
||||||
|
<glyph unicode="" d="M700 1029v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5h139q5 -77 48.5 -126.5t117.5 -64.5v335l-27 7q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5 t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5zM600 755v274q-61 -8 -97.5 -37.5t-36.5 -102.5q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3zM700 548 v-311q170 18 170 151q0 64 -44 99.5t-126 60.5z" />
|
||||||
|
<glyph unicode="" d="M866 300l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5t-30 142.5h-221v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5 t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -11 2.5 -24.5t5.5 -24t9.5 -26.5t10.5 -25t14 -27.5t14 -25.5t15.5 -27t13.5 -24h242v-100h-197q8 -50 -2.5 -115t-31.5 -94 q-41 -59 -99 -113q35 11 84 18t70 7q32 1 102 -16t104 -17q76 0 136 30z" />
|
||||||
|
<glyph unicode="" d="M300 0l298 300h-198v900h-200v-900h-198zM900 1200l298 -300h-198v-900h-200v900h-198z" />
|
||||||
|
<glyph unicode="" d="M400 300h198l-298 -300l-298 300h198v900h200v-900zM1000 1200v-500h-100v100h-100v-100h-100v500h300zM901 1100h-100v-200h100v200zM700 500h300v-200h-99v-100h-100v100h99v100h-200v100zM800 100h200v-100h-300v200h100v-100z" />
|
||||||
|
<glyph unicode="" d="M400 300h198l-298 -300l-298 300h198v900h200v-900zM1000 1200v-200h-99v-100h-100v100h99v100h-200v100h300zM800 800h200v-100h-300v200h100v-100zM700 500h300v-500h-100v100h-100v-100h-100v500zM801 200h100v200h-100v-200z" />
|
||||||
|
<glyph unicode="" d="M300 0l298 300h-198v900h-200v-900h-198zM900 1100h-100v100h200v-500h-100v400zM1100 500v-500h-100v100h-200v400h300zM1001 400h-100v-200h100v200z" />
|
||||||
|
<glyph unicode="" d="M300 0l298 300h-198v900h-200v-900h-198zM1100 1200v-500h-100v100h-200v400h300zM1001 1100h-100v-200h100v200zM900 400h-100v100h200v-500h-100v400z" />
|
||||||
|
<glyph unicode="" d="M300 0l298 300h-198v900h-200v-900h-198zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
|
||||||
|
<glyph unicode="" d="M300 0l298 300h-198v900h-200v-900h-198zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
|
||||||
|
<glyph unicode="" d="M400 1100h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5v300q0 165 117.5 282.5t282.5 117.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5 t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5z" />
|
||||||
|
<glyph unicode="" d="M700 0h-300q-163 0 -281.5 117.5t-118.5 282.5v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5 t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5zM400 800v-500l333 250z" />
|
||||||
|
<glyph unicode="" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM900 300v500q0 41 -29.5 70.5t-70.5 29.5h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5 t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5zM800 700h-500l250 -333z" />
|
||||||
|
<glyph unicode="" d="M1100 700v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5zM900 300v500q0 41 -29.5 70.5t-70.5 29.5h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5 t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5zM550 733l-250 -333h500z" />
|
||||||
|
<glyph unicode="" d="M500 1100h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200zM700 550l-400 -350v200h-300v300h300v200z" />
|
||||||
|
<glyph unicode="" d="M403 2l9 -1q13 0 26 16l538 630q15 19 6 36q-8 18 -32 16h-300q1 4 78 219.5t79 227.5q2 17 -6 27l-8 8h-9q-16 0 -25 -15q-4 -5 -98.5 -111.5t-228 -257t-209.5 -238.5q-17 -19 -7 -40q10 -19 32 -19h302q-155 -438 -160 -458q-5 -21 4 -32z" />
|
||||||
|
<glyph unicode="" d="M800 200h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185zM900 200v200h-300v300h300v200l400 -350z" />
|
||||||
|
<glyph unicode="" d="M1200 700l-149 149l-342 -353l-213 213l353 342l-149 149h500v-500zM1022 571l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5v-300 q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98z" />
|
||||||
|
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM600 794 q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
|
||||||
|
<glyph unicode="" d="M700 800v400h-300v-400h-300l445 -500l450 500h-295zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" />
|
||||||
|
<glyph unicode="" d="M400 700v-300h300v300h295l-445 500l-450 -500h300zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" />
|
||||||
|
<glyph unicode="" d="M405 400l596 596l-154 155l-442 -442l-150 151l-155 -155zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" />
|
||||||
|
<glyph unicode="" d="M409 1103l-97 97l-212 -212l97 -98zM650 861l-149 149l-212 -212l149 -149l-238 -248h700v699zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" />
|
||||||
|
<glyph unicode="" d="M539 950l-149 -149l212 -212l149 148l248 -237v700h-699zM297 709l-97 -97l212 -212l98 97zM25 300h1048q11 0 19 -7.5t8 -17.5v-275h-1100v275q0 11 7 18t18 7zM1000 200h-100v-50h100v50z" />
|
||||||
|
<glyph unicode="" d="M1200 1199v-1079l-475 272l-310 -393v416h-392zM1166 1148l-672 -712v-226z" />
|
||||||
|
<glyph unicode="" d="M1100 1000v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1200h-100v-200h100v200z" />
|
||||||
|
<glyph unicode="" d="M578 500h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120zM700 1200h-100v-200h100v200zM1300 538l-475 -476l-244 244l123 123l120 -120l353 352z" />
|
||||||
|
<glyph unicode="" d="M529 500h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170zM700 1200h-100v-200h100v200zM1167 6l-170 170l-170 -170l-127 127l170 170l-170 170l127 127l170 -170l170 170l127 -128 l-170 -169l170 -170z" />
|
||||||
|
<glyph unicode="" d="M700 500h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200zM700 1000h-100v200h100v-200zM1000 600h-200v-300h-200l300 -300l300 300h-200v300z" />
|
||||||
|
<glyph unicode="" d="M602 500h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200zM700 1000h-100v200h100v-200zM1000 300h200l-300 300l-300 -300h200v-300h200v300z" />
|
||||||
|
<glyph unicode="" d="M1200 900v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h1200zM0 800v-550q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200zM100 500h400v-200h-400v200z" />
|
||||||
|
<glyph unicode="" d="M500 1000h400v198l300 -298l-300 -298v198h-400v200zM100 800v200h100v-200h-100zM400 800h-100v200h100v-200zM700 300h-400v-198l-300 298l300 298v-198h400v-200zM800 500h100v-200h-100v200zM1000 500v-200h100v200h-100z" />
|
||||||
|
<glyph unicode="" d="M1200 50v1106q0 31 -18 40.5t-44 -7.5l-276 -117q-25 -16 -43.5 -50.5t-18.5 -65.5v-359q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5zM550 1200l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447l-100 203v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300z" />
|
||||||
|
<glyph unicode="" d="M1100 106v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394 q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5z" />
|
||||||
|
<glyph unicode="" d="M675 1000l-100 100h-375l-100 -100h400l200 -200v-98l295 98h105v200h-425zM500 300v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5zM100 800h300v-200h-300v200zM700 565l400 133 v-163l-400 -133v163zM100 500h300v-200h-300v200zM805 300l295 98v-298h-425l-100 -100h-375l-100 100h400l200 200h105z" />
|
||||||
|
<glyph unicode="" d="M179 1169l-162 -162q-1 -11 -0.5 -32.5t16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q16 17 13 40.5t-22 37.5l-192 136q-19 14 -45 12t-42 -19l-119 -118q-143 103 -267 227q-126 126 -227 268l118 118 q17 17 20 41.5t-11 44.5l-139 194q-14 19 -36.5 22t-40.5 -14z" />
|
||||||
|
<glyph unicode="" d="M1200 712v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40t-53.5 -36.5t-31 -27.5l-9 -10v-200q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38 t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5zM800 650l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -15 -35.5t-35 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5 t30 -27.5t12 -24l1 -10v-50z" />
|
||||||
|
<glyph unicode="" d="M175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250zM1200 100v-100h-1100v100h1100z" />
|
||||||
|
<glyph unicode="" d="M600 1100h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300v1000q0 41 29.5 70.5t70.5 29.5zM1000 800h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300v700q0 41 29.5 70.5t70.5 29.5zM400 0v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400h300z" />
|
||||||
|
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM200 800v-300h200v-100h-200v-100h300v300h-200v100h200v100h-300zM800 800h-200v-500h200v100h100v300h-100 v100zM800 700v-300h-100v300h100z" />
|
||||||
|
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM400 600h-100v200h-100v-500h100v200h100v-200h100v500h-100v-200zM800 800h-200v-500h200v100h100v300h-100 v100zM800 700v-300h-100v300h100z" />
|
||||||
|
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM200 800v-500h300v100h-200v300h200v100h-300zM600 800v-500h300v100h-200v300h200v100h-300z" />
|
||||||
|
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM500 700l-300 -150l300 -150v300zM600 400l300 150l-300 150v-300z" />
|
||||||
|
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM900 800v-500h-700v500h700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM800 700h-130 q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300z" />
|
||||||
|
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM200 800v-300h200v-100h-200v-100h300v300h-200v100h200v100h-300zM800 300h100v500h-200v-100h100v-400z M601 300h100v100h-100v-100z" />
|
||||||
|
<glyph unicode="" d="M1200 800v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212zM1000 900h-900v-700h900v700zM300 700v100h-100v-500h300v400h-200zM800 300h100v500h-200v-100h100v-400zM401 400h-100v200h100v-200z M601 300h100v100h-100v-100z" />
|
||||||
|
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM1000 900h-900v-700h900v700zM400 700h-200v100h300v-300h-99v-100h-100v100h99v200zM800 700h-100v100h200v-500h-100v400zM201 400h100v-100 h-100v100zM701 300h-100v100h100v-100z" />
|
||||||
|
<glyph unicode="" d="M600 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM600 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM800 700h-300 v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
|
||||||
|
<glyph unicode="" d="M596 1196q162 0 299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299t80 299t217 217t299 80zM596 1014q-171 0 -292.5 -121.5t-121.5 -292.5t121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5zM800 700v-100 h-100v100h-200v-100h200v-100h-200v-100h-100v400h300zM800 400h-100v100h100v-100z" />
|
||||||
|
<glyph unicode="" d="M800 300h128q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5q0 -80 56.5 -137t135.5 -57h222v300h400v-300zM700 200h200l-300 -300 l-300 300h200v300h200v-300z" />
|
||||||
|
<glyph unicode="" d="M600 714l403 -403q94 26 154.5 104t60.5 178q0 121 -85 207.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5q0 -80 56.5 -137t135.5 -57h8zM700 -100h-200v300h-200l300 300 l300 -300h-200v-300z" />
|
||||||
|
<glyph unicode="" d="M700 200h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-155l-75 -45h350l-75 45v155z" />
|
||||||
|
<glyph unicode="" d="M700 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -12t1 -11q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5 q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350z" />
|
||||||
|
<glyph unicode="💼" d="M800 1000h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100zM500 1000h200v100h-200v-100zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
|
||||||
|
<glyph unicode="📅" d="M1100 900v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150h1100zM0 800v-750q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100zM100 600h100v-100h-100v100zM300 600h100v-100h-100v100z M500 600h100v-100h-100v100zM700 600h100v-100h-100v100zM900 600h100v-100h-100v100zM100 400h100v-100h-100v100zM300 400h100v-100h-100v100zM500 400h100v-100h-100v100zM700 400h100v-100h-100v100zM900 400h100v-100h-100v100zM100 200h100v-100h-100v100zM300 200 h100v-100h-100v100zM500 200h100v-100h-100v100zM700 200h100v-100h-100v100zM900 200h100v-100h-100v100z" />
|
||||||
|
<glyph unicode="📌" d="M902 1185l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207l-380 -303l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15z" />
|
||||||
|
<glyph unicode="📎" d="M518 119l69 -60l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163t35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84 t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -79.5 -17t-67.5 -51l-388 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348 q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256z" />
|
||||||
|
<glyph unicode="📷" d="M1200 200v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5z M1000 700h-100v100h100v-100zM844 500q0 -100 -72 -172t-172 -72t-172 72t-72 172t72 172t172 72t172 -72t72 -172zM706 500q0 44 -31 75t-75 31t-75 -31t-31 -75t31 -75t75 -31t75 31t31 75z" />
|
||||||
|
<glyph unicode="🔒" d="M900 800h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
|
||||||
|
<glyph unicode="🔔" d="M1062 400h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-22 -9 -63 -23t-167.5 -37t-251.5 -23t-245.5 20.5t-178.5 41.5l-58 20q-18 7 -31 27.5t-13 40.5q0 21 13.5 35.5t33.5 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94 q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327zM600 104q-54 0 -103 6q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6z" />
|
||||||
|
<glyph unicode="🔖" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
|
||||||
|
<glyph unicode="🔥" d="M400 755q2 -12 8 -41.5t8 -43t6 -39.5t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85t5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5 q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129 q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5z" />
|
||||||
|
<glyph unicode="🔧" d="M948 778l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138z" />
|
||||||
|
</font>
|
||||||
|
</defs></svg>
|
After Width: | Height: | Size: 62 KiB |
29
src/Web/Catalog.WebForms/Catalog.WebForms/packages.config
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="Antlr" version="3.4.1.9004" targetFramework="net452" />
|
||||||
|
<package id="AspNet.ScriptManager.bootstrap" version="3.0.0" targetFramework="net452" />
|
||||||
|
<package id="AspNet.ScriptManager.jQuery" version="1.10.2" targetFramework="net452" />
|
||||||
|
<package id="Autofac" version="4.3.0" targetFramework="net452" />
|
||||||
|
<package id="bootstrap" version="3.0.0" targetFramework="net452" />
|
||||||
|
<package id="jQuery" version="1.10.2" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.ApplicationInsights" version="2.2.0" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.ApplicationInsights.Agent.Intercept" version="2.0.6" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.2.0" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.2.0" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.ApplicationInsights.Web" version="2.2.0" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.ApplicationInsights.WindowsServer" version="2.2.0" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.2.0" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.AspNet.FriendlyUrls" version="1.0.2" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.AspNet.FriendlyUrls.Core" version="1.0.2" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.AspNet.ScriptManager.MSAjax" version="5.0.0" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.AspNet.ScriptManager.WebForms" version="5.0.0" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.AspNet.Web.Optimization.WebForms" version="1.1.3" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.3" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.Net.Compilers" version="1.3.2" targetFramework="net452" developmentDependency="true" />
|
||||||
|
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net452" />
|
||||||
|
<package id="Modernizr" version="2.6.2" targetFramework="net452" />
|
||||||
|
<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net452" />
|
||||||
|
<package id="Respond" version="1.2.0" targetFramework="net452" />
|
||||||
|
<package id="WebGrease" version="1.5.2" targetFramework="net452" />
|
||||||
|
</packages>
|
1
src/Web/Catalog.WebForms/docker-compose.ci.build.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
version: '2.1'
|
22
src/Web/Catalog.WebForms/docker-compose.dcproj
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" Sdk="Microsoft.Docker.Sdk">
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>7816bbb6-20b9-4d5a-864d-47b7c6e3d3d5</ProjectGuid>
|
||||||
|
<DockerLaunchBrowser>True</DockerLaunchBrowser>
|
||||||
|
<DockerServiceUrl>http://{ServiceIPAddress}</DockerServiceUrl>
|
||||||
|
<DockerServiceName>catalog.webforms</DockerServiceName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="docker-compose.ci.build.yml" />
|
||||||
|
<None Include="docker-compose.override.yml">
|
||||||
|
<DependentUpon>docker-compose.yml</DependentUpon>
|
||||||
|
</None>
|
||||||
|
<None Include="docker-compose.vs.debug.yml">
|
||||||
|
<DependentUpon>docker-compose.yml</DependentUpon>
|
||||||
|
</None>
|
||||||
|
<None Include="docker-compose.vs.release.yml">
|
||||||
|
<DependentUpon>docker-compose.yml</DependentUpon>
|
||||||
|
</None>
|
||||||
|
<None Include="docker-compose.yml" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
23
src/Web/Catalog.WebForms/docker-compose.override.yml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
version: '2.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
sql.data:
|
||||||
|
environment:
|
||||||
|
- ACCEPT_EULA=Y
|
||||||
|
|
||||||
|
catalog.api:
|
||||||
|
environment:
|
||||||
|
- ASPNETCORE_ENVIRONMENT=Development
|
||||||
|
- ConnectionString=Server=sql.data;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word
|
||||||
|
#- ExternalCatalogBaseUrl=http://13.88.8.119:5101 #Remote: VM Needs to have public access at 5105.
|
||||||
|
- ExternalCatalogBaseUrl=http://localhost:5101 #Local: You need to open your local dev-machine firewall at range 5100-5105. at range 5100-5105.
|
||||||
|
ports:
|
||||||
|
- "5101:5101"
|
||||||
|
|
||||||
|
catalog.webforms:
|
||||||
|
ports:
|
||||||
|
- "80"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
external:
|
||||||
|
name: nat
|
28
src/Web/Catalog.WebForms/docker-compose.vs.debug.yml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
version: '2.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
catalog.api:
|
||||||
|
image: eshop/catalog.api:dev
|
||||||
|
build:
|
||||||
|
args:
|
||||||
|
source: ${DOCKER_BUILD_SOURCE}
|
||||||
|
environment:
|
||||||
|
- DOTNET_USE_POLLING_FILE_WATCHER=1
|
||||||
|
volumes:
|
||||||
|
- ../../Services/Catalog/Catalog.API:/app
|
||||||
|
- ~/.nuget/packages:/root/.nuget/packages:ro
|
||||||
|
- ~/clrdbg:/clrdbg:ro
|
||||||
|
entrypoint: tail -f /dev/null
|
||||||
|
labels:
|
||||||
|
- "com.microsoft.visualstudio.targetoperatingsystem=linux"
|
||||||
|
|
||||||
|
catalog.webforms:
|
||||||
|
image: catalog.webforms:dev
|
||||||
|
build:
|
||||||
|
args:
|
||||||
|
source: ${DOCKER_BUILD_SOURCE}
|
||||||
|
volumes:
|
||||||
|
- .\Catalog.WebForms:C:\inetpub\wwwroot
|
||||||
|
- ~\msvsmon:C:\msvsmon:ro
|
||||||
|
labels:
|
||||||
|
- "com.microsoft.visualstudio.targetoperatingsystem=windows"
|
21
src/Web/Catalog.WebForms/docker-compose.vs.release.yml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
version: '2.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
catalog.api:
|
||||||
|
build:
|
||||||
|
args:
|
||||||
|
source: ${DOCKER_BUILD_SOURCE}
|
||||||
|
volumes:
|
||||||
|
- ~/clrdbg:/clrdbg:ro
|
||||||
|
entrypoint: tail -f /dev/null
|
||||||
|
labels:
|
||||||
|
- "com.microsoft.visualstudio.targetoperatingsystem=linux"
|
||||||
|
|
||||||
|
catalog.webforms:
|
||||||
|
build:
|
||||||
|
args:
|
||||||
|
source: ${DOCKER_BUILD_SOURCE}
|
||||||
|
volumes:
|
||||||
|
- ~\msvsmon:C:\msvsmon:ro
|
||||||
|
labels:
|
||||||
|
- "com.microsoft.visualstudio.targetoperatingsystem=windows"
|
22
src/Web/Catalog.WebForms/docker-compose.yml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
version: '2.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
catalog.webforms:
|
||||||
|
image: catalog.webforms
|
||||||
|
build:
|
||||||
|
context: .\Catalog.WebForms
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
depends_on:
|
||||||
|
- catalog.api
|
||||||
|
|
||||||
|
catalog.api:
|
||||||
|
image: eshop/catalog.api
|
||||||
|
build:
|
||||||
|
context: ../../Services/Catalog/Catalog.API
|
||||||
|
dockerfile: Dockerfile.nanowin
|
||||||
|
depends_on:
|
||||||
|
- sql.data
|
||||||
|
|
||||||
|
sql.data:
|
||||||
|
image: microsoft/mssql-server-windows
|
||||||
|
|