mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Merge
--HG-- branch : dev
This commit is contained in:
@@ -3,7 +3,6 @@
|
||||
As a root Orchard system operator
|
||||
I want to create and manage tenant configurations
|
||||
|
||||
@ignore
|
||||
Scenario: Default site is listed
|
||||
Given I have installed Orchard
|
||||
And I have installed "Orchard.MultiTenancy"
|
||||
@@ -115,7 +114,6 @@ Scenario: An existing initialized tenant cannot have its database option cleared
|
||||
And I should see "<h2>Scott</h2>"
|
||||
And I should not see "Allow the tenant to set up the database"
|
||||
|
||||
@ignore
|
||||
Scenario: Default tenant cannot be disabled
|
||||
Given I have installed Orchard
|
||||
And I have installed "Orchard.MultiTenancy"
|
||||
@@ -166,7 +164,6 @@ Scenario: A running tenant which is disabled can be enabled
|
||||
And I am redirected
|
||||
Then I should see "<form action="/Admin/MultiTenancy/disable""
|
||||
|
||||
@ignore
|
||||
Scenario: Listing tenants from command line
|
||||
Given I have installed Orchard
|
||||
And I have installed "Orchard.MultiTenancy"
|
||||
|
||||
248
src/Orchard.Specs/MultiTenancy.feature.cs
generated
248
src/Orchard.Specs/MultiTenancy.feature.cs
generated
@@ -55,24 +55,22 @@ namespace Orchard.Specs
|
||||
|
||||
[NUnit.Framework.TestAttribute()]
|
||||
[NUnit.Framework.DescriptionAttribute("Default site is listed")]
|
||||
[NUnit.Framework.IgnoreAttribute()]
|
||||
public virtual void DefaultSiteIsListed()
|
||||
{
|
||||
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Default site is listed", new string[] {
|
||||
"ignore"});
|
||||
#line 7
|
||||
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Default site is listed", ((string[])(null)));
|
||||
#line 6
|
||||
this.ScenarioSetup(scenarioInfo);
|
||||
#line 8
|
||||
#line 7
|
||||
testRunner.Given("I have installed Orchard");
|
||||
#line 9
|
||||
#line 8
|
||||
testRunner.And("I have installed \"Orchard.MultiTenancy\"");
|
||||
#line 10
|
||||
#line 9
|
||||
testRunner.When("I go to \"Admin/MultiTenancy\"");
|
||||
#line 11
|
||||
#line 10
|
||||
testRunner.Then("I should see \"List of Site's Tenants\"");
|
||||
#line 12
|
||||
#line 11
|
||||
testRunner.And("I should see \"<h3>Default</h3>\"");
|
||||
#line 13
|
||||
#line 12
|
||||
testRunner.And("the status should be 200 \"OK\"");
|
||||
#line hidden
|
||||
testRunner.CollectScenarioErrors();
|
||||
@@ -83,17 +81,17 @@ this.ScenarioSetup(scenarioInfo);
|
||||
public virtual void NewTenantFieldsAreRequired()
|
||||
{
|
||||
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("New tenant fields are required", ((string[])(null)));
|
||||
#line 15
|
||||
#line 14
|
||||
this.ScenarioSetup(scenarioInfo);
|
||||
#line 16
|
||||
#line 15
|
||||
testRunner.Given("I have installed Orchard");
|
||||
#line 17
|
||||
#line 16
|
||||
testRunner.And("I have installed \"Orchard.MultiTenancy\"");
|
||||
#line 18
|
||||
#line 17
|
||||
testRunner.When("I go to \"Admin/MultiTenancy/Add\"");
|
||||
#line 19
|
||||
#line 18
|
||||
testRunner.And("I hit \"Save\"");
|
||||
#line 20
|
||||
#line 19
|
||||
testRunner.Then("I should see \"is required\"");
|
||||
#line hidden
|
||||
testRunner.CollectScenarioErrors();
|
||||
@@ -104,13 +102,13 @@ this.ScenarioSetup(scenarioInfo);
|
||||
public virtual void ANewTenantIsCreated()
|
||||
{
|
||||
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("A new tenant is created", ((string[])(null)));
|
||||
#line 22
|
||||
#line 21
|
||||
this.ScenarioSetup(scenarioInfo);
|
||||
#line 23
|
||||
#line 22
|
||||
testRunner.Given("I have installed Orchard");
|
||||
#line 24
|
||||
#line 23
|
||||
testRunner.And("I have installed \"Orchard.MultiTenancy\"");
|
||||
#line 25
|
||||
#line 24
|
||||
testRunner.When("I go to \"Admin/MultiTenancy/Add\"");
|
||||
#line hidden
|
||||
TechTalk.SpecFlow.Table table1 = new TechTalk.SpecFlow.Table(new string[] {
|
||||
@@ -119,15 +117,15 @@ this.ScenarioSetup(scenarioInfo);
|
||||
table1.AddRow(new string[] {
|
||||
"Name",
|
||||
"Scott"});
|
||||
#line 26
|
||||
#line 25
|
||||
testRunner.And("I fill in", ((string)(null)), table1);
|
||||
#line 29
|
||||
#line 28
|
||||
testRunner.And("I hit \"Save\"");
|
||||
#line 30
|
||||
#line 29
|
||||
testRunner.And("I am redirected");
|
||||
#line 31
|
||||
#line 30
|
||||
testRunner.Then("I should see \"<h3>Scott</h3>\"");
|
||||
#line 32
|
||||
#line 31
|
||||
testRunner.And("the status should be 200 \"OK\"");
|
||||
#line hidden
|
||||
testRunner.CollectScenarioErrors();
|
||||
@@ -138,13 +136,13 @@ this.ScenarioSetup(scenarioInfo);
|
||||
public virtual void ANewTenantIsCreatedWithUninitializedState()
|
||||
{
|
||||
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("A new tenant is created with uninitialized state", ((string[])(null)));
|
||||
#line 34
|
||||
#line 33
|
||||
this.ScenarioSetup(scenarioInfo);
|
||||
#line 35
|
||||
#line 34
|
||||
testRunner.Given("I have installed Orchard");
|
||||
#line 36
|
||||
#line 35
|
||||
testRunner.And("I have installed \"Orchard.MultiTenancy\"");
|
||||
#line 37
|
||||
#line 36
|
||||
testRunner.When("I go to \"Admin/MultiTenancy/Add\"");
|
||||
#line hidden
|
||||
TechTalk.SpecFlow.Table table2 = new TechTalk.SpecFlow.Table(new string[] {
|
||||
@@ -153,15 +151,15 @@ this.ScenarioSetup(scenarioInfo);
|
||||
table2.AddRow(new string[] {
|
||||
"Name",
|
||||
"Scott"});
|
||||
#line 38
|
||||
#line 37
|
||||
testRunner.And("I fill in", ((string)(null)), table2);
|
||||
#line 41
|
||||
#line 40
|
||||
testRunner.And("I hit \"Save\"");
|
||||
#line 42
|
||||
#line 41
|
||||
testRunner.And("I am redirected");
|
||||
#line 43
|
||||
#line 42
|
||||
testRunner.Then("I should see \"<li class=\"tenant Uninitialized\">\"");
|
||||
#line 44
|
||||
#line 43
|
||||
testRunner.And("the status should be 200 \"OK\"");
|
||||
#line hidden
|
||||
testRunner.CollectScenarioErrors();
|
||||
@@ -172,13 +170,13 @@ this.ScenarioSetup(scenarioInfo);
|
||||
public virtual void ANewTenantGoesToTheSetupScreen()
|
||||
{
|
||||
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("A new tenant goes to the setup screen", ((string[])(null)));
|
||||
#line 46
|
||||
#line 45
|
||||
this.ScenarioSetup(scenarioInfo);
|
||||
#line 47
|
||||
#line 46
|
||||
testRunner.Given("I have installed Orchard");
|
||||
#line 48
|
||||
#line 47
|
||||
testRunner.And("I have installed \"Orchard.MultiTenancy\"");
|
||||
#line 49
|
||||
#line 48
|
||||
testRunner.When("I go to \"Admin/MultiTenancy/Add\"");
|
||||
#line hidden
|
||||
TechTalk.SpecFlow.Table table3 = new TechTalk.SpecFlow.Table(new string[] {
|
||||
@@ -190,17 +188,17 @@ this.ScenarioSetup(scenarioInfo);
|
||||
table3.AddRow(new string[] {
|
||||
"RequestUrlHost",
|
||||
"scott.example.org"});
|
||||
#line 50
|
||||
#line 49
|
||||
testRunner.And("I fill in", ((string)(null)), table3);
|
||||
#line 54
|
||||
#line 53
|
||||
testRunner.And("I hit \"Save\"");
|
||||
#line 55
|
||||
#line 54
|
||||
testRunner.And("I go to \"/Setup\" on host scott.example.org");
|
||||
#line 56
|
||||
#line 55
|
||||
testRunner.Then("I should see \"Welcome to Orchard\"");
|
||||
#line 57
|
||||
#line 56
|
||||
testRunner.And("I should see \"Finish Setup\"");
|
||||
#line 58
|
||||
#line 57
|
||||
testRunner.And("the status should be 200 \"OK\"");
|
||||
#line hidden
|
||||
testRunner.CollectScenarioErrors();
|
||||
@@ -211,13 +209,13 @@ this.ScenarioSetup(scenarioInfo);
|
||||
public virtual void ANewTenantWithPreconfiguredDatabaseGoesToTheSetupScreen()
|
||||
{
|
||||
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("A new tenant with preconfigured database goes to the setup screen", ((string[])(null)));
|
||||
#line 60
|
||||
#line 59
|
||||
this.ScenarioSetup(scenarioInfo);
|
||||
#line 61
|
||||
#line 60
|
||||
testRunner.Given("I have installed Orchard");
|
||||
#line 62
|
||||
#line 61
|
||||
testRunner.And("I have installed \"Orchard.MultiTenancy\"");
|
||||
#line 63
|
||||
#line 62
|
||||
testRunner.When("I go to \"Admin/MultiTenancy/Add\"");
|
||||
#line hidden
|
||||
TechTalk.SpecFlow.Table table4 = new TechTalk.SpecFlow.Table(new string[] {
|
||||
@@ -232,21 +230,21 @@ this.ScenarioSetup(scenarioInfo);
|
||||
table4.AddRow(new string[] {
|
||||
"DataProvider",
|
||||
"SqlCe"});
|
||||
#line 64
|
||||
#line 63
|
||||
testRunner.And("I fill in", ((string)(null)), table4);
|
||||
#line 69
|
||||
#line 68
|
||||
testRunner.And("I hit \"Save\"");
|
||||
#line 70
|
||||
#line 69
|
||||
testRunner.And("I am redirected");
|
||||
#line 71
|
||||
#line 70
|
||||
testRunner.And("I go to \"/Setup\" on host scott.example.org");
|
||||
#line 72
|
||||
#line 71
|
||||
testRunner.Then("I should see \"Welcome to Orchard\"");
|
||||
#line 73
|
||||
#line 72
|
||||
testRunner.And("I should see \"Finish Setup\"");
|
||||
#line 74
|
||||
#line 73
|
||||
testRunner.And("I should not see \"SQL Server Compact\"");
|
||||
#line 75
|
||||
#line 74
|
||||
testRunner.And("the status should be 200 \"OK\"");
|
||||
#line hidden
|
||||
testRunner.CollectScenarioErrors();
|
||||
@@ -257,13 +255,13 @@ this.ScenarioSetup(scenarioInfo);
|
||||
public virtual void ANewTenantRunsTheSetup()
|
||||
{
|
||||
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("A new tenant runs the setup", ((string[])(null)));
|
||||
#line 77
|
||||
#line 76
|
||||
this.ScenarioSetup(scenarioInfo);
|
||||
#line 78
|
||||
#line 77
|
||||
testRunner.Given("I have installed Orchard");
|
||||
#line 79
|
||||
#line 78
|
||||
testRunner.And("I have installed \"Orchard.MultiTenancy\"");
|
||||
#line 80
|
||||
#line 79
|
||||
testRunner.When("I go to \"Admin/MultiTenancy/Add\"");
|
||||
#line hidden
|
||||
TechTalk.SpecFlow.Table table5 = new TechTalk.SpecFlow.Table(new string[] {
|
||||
@@ -275,11 +273,11 @@ this.ScenarioSetup(scenarioInfo);
|
||||
table5.AddRow(new string[] {
|
||||
"RequestUrlHost",
|
||||
"scott.example.org"});
|
||||
#line 81
|
||||
#line 80
|
||||
testRunner.And("I fill in", ((string)(null)), table5);
|
||||
#line 85
|
||||
#line 84
|
||||
testRunner.And("I hit \"Save\"");
|
||||
#line 86
|
||||
#line 85
|
||||
testRunner.And("I go to \"/Setup\" on host scott.example.org");
|
||||
#line hidden
|
||||
TechTalk.SpecFlow.Table table6 = new TechTalk.SpecFlow.Table(new string[] {
|
||||
@@ -294,15 +292,15 @@ this.ScenarioSetup(scenarioInfo);
|
||||
table6.AddRow(new string[] {
|
||||
"ConfirmPassword",
|
||||
"6655321"});
|
||||
#line 87
|
||||
#line 86
|
||||
testRunner.And("I fill in", ((string)(null)), table6);
|
||||
#line 92
|
||||
#line 91
|
||||
testRunner.And("I hit \"Finish Setup\"");
|
||||
#line 93
|
||||
#line 92
|
||||
testRunner.And("I go to \"/Default.aspx\"");
|
||||
#line 94
|
||||
#line 93
|
||||
testRunner.Then("I should see \"Scott Site\"");
|
||||
#line 95
|
||||
#line 94
|
||||
testRunner.And("I should see \"Welcome\"");
|
||||
#line hidden
|
||||
testRunner.CollectScenarioErrors();
|
||||
@@ -313,13 +311,13 @@ this.ScenarioSetup(scenarioInfo);
|
||||
public virtual void AnExistingInitializedTenantCannotHaveItsDatabaseOptionCleared()
|
||||
{
|
||||
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("An existing initialized tenant cannot have its database option cleared", ((string[])(null)));
|
||||
#line 97
|
||||
#line 96
|
||||
this.ScenarioSetup(scenarioInfo);
|
||||
#line 98
|
||||
#line 97
|
||||
testRunner.Given("I have installed Orchard");
|
||||
#line 99
|
||||
#line 98
|
||||
testRunner.And("I have installed \"Orchard.MultiTenancy\"");
|
||||
#line 100
|
||||
#line 99
|
||||
testRunner.When("I go to \"Admin/MultiTenancy/Add\"");
|
||||
#line hidden
|
||||
TechTalk.SpecFlow.Table table7 = new TechTalk.SpecFlow.Table(new string[] {
|
||||
@@ -331,11 +329,11 @@ this.ScenarioSetup(scenarioInfo);
|
||||
table7.AddRow(new string[] {
|
||||
"RequestUrlHost",
|
||||
"scott.example.org"});
|
||||
#line 101
|
||||
#line 100
|
||||
testRunner.And("I fill in", ((string)(null)), table7);
|
||||
#line 105
|
||||
#line 104
|
||||
testRunner.And("I hit \"Save\"");
|
||||
#line 106
|
||||
#line 105
|
||||
testRunner.And("I go to \"/Setup\" on host scott.example.org");
|
||||
#line hidden
|
||||
TechTalk.SpecFlow.Table table8 = new TechTalk.SpecFlow.Table(new string[] {
|
||||
@@ -350,17 +348,17 @@ this.ScenarioSetup(scenarioInfo);
|
||||
table8.AddRow(new string[] {
|
||||
"ConfirmPassword",
|
||||
"6655321"});
|
||||
#line 107
|
||||
#line 106
|
||||
testRunner.And("I fill in", ((string)(null)), table8);
|
||||
#line 112
|
||||
#line 111
|
||||
testRunner.And("I hit \"Finish Setup\"");
|
||||
#line 113
|
||||
#line 112
|
||||
testRunner.And("I go to \"/Admin/MultiTenancy/Edit/Scott\" on host localhost");
|
||||
#line 114
|
||||
#line 113
|
||||
testRunner.Then("I should see \"<h1>Edit Tenant</h1>\"");
|
||||
#line 115
|
||||
#line 114
|
||||
testRunner.And("I should see \"<h2>Scott</h2>\"");
|
||||
#line 116
|
||||
#line 115
|
||||
testRunner.And("I should not see \"Allow the tenant to set up the database\"");
|
||||
#line hidden
|
||||
testRunner.CollectScenarioErrors();
|
||||
@@ -368,20 +366,18 @@ this.ScenarioSetup(scenarioInfo);
|
||||
|
||||
[NUnit.Framework.TestAttribute()]
|
||||
[NUnit.Framework.DescriptionAttribute("Default tenant cannot be disabled")]
|
||||
[NUnit.Framework.IgnoreAttribute()]
|
||||
public virtual void DefaultTenantCannotBeDisabled()
|
||||
{
|
||||
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Default tenant cannot be disabled", new string[] {
|
||||
"ignore"});
|
||||
#line 119
|
||||
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Default tenant cannot be disabled", ((string[])(null)));
|
||||
#line 117
|
||||
this.ScenarioSetup(scenarioInfo);
|
||||
#line 120
|
||||
#line 118
|
||||
testRunner.Given("I have installed Orchard");
|
||||
#line 121
|
||||
#line 119
|
||||
testRunner.And("I have installed \"Orchard.MultiTenancy\"");
|
||||
#line 122
|
||||
#line 120
|
||||
testRunner.When("I go to \"Admin/MultiTenancy\"");
|
||||
#line 123
|
||||
#line 121
|
||||
testRunner.Then("I should not see \"<form action=\"/Admin/MultiTenancy/disable\"\"");
|
||||
#line hidden
|
||||
testRunner.CollectScenarioErrors();
|
||||
@@ -392,13 +388,13 @@ this.ScenarioSetup(scenarioInfo);
|
||||
public virtual void ARunningTenantCanBeDisabled()
|
||||
{
|
||||
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("A running tenant can be disabled", ((string[])(null)));
|
||||
#line 125
|
||||
#line 123
|
||||
this.ScenarioSetup(scenarioInfo);
|
||||
#line 126
|
||||
#line 124
|
||||
testRunner.Given("I have installed Orchard");
|
||||
#line 127
|
||||
#line 125
|
||||
testRunner.And("I have installed \"Orchard.MultiTenancy\"");
|
||||
#line 128
|
||||
#line 126
|
||||
testRunner.When("I go to \"Admin/MultiTenancy/Add\"");
|
||||
#line hidden
|
||||
TechTalk.SpecFlow.Table table9 = new TechTalk.SpecFlow.Table(new string[] {
|
||||
@@ -410,11 +406,11 @@ this.ScenarioSetup(scenarioInfo);
|
||||
table9.AddRow(new string[] {
|
||||
"RequestUrlHost",
|
||||
"scott.example.org"});
|
||||
#line 129
|
||||
#line 127
|
||||
testRunner.And("I fill in", ((string)(null)), table9);
|
||||
#line 133
|
||||
#line 131
|
||||
testRunner.And("I hit \"Save\"");
|
||||
#line 134
|
||||
#line 132
|
||||
testRunner.And("I go to \"/Setup\" on host scott.example.org");
|
||||
#line hidden
|
||||
TechTalk.SpecFlow.Table table10 = new TechTalk.SpecFlow.Table(new string[] {
|
||||
@@ -429,17 +425,17 @@ this.ScenarioSetup(scenarioInfo);
|
||||
table10.AddRow(new string[] {
|
||||
"ConfirmPassword",
|
||||
"6655321"});
|
||||
#line 135
|
||||
#line 133
|
||||
testRunner.And("I fill in", ((string)(null)), table10);
|
||||
#line 140
|
||||
#line 138
|
||||
testRunner.And("I hit \"Finish Setup\"");
|
||||
#line 141
|
||||
#line 139
|
||||
testRunner.And("I go to \"/Admin/MultiTenancy\" on host localhost");
|
||||
#line 142
|
||||
#line 140
|
||||
testRunner.And("I hit \"Suspend\"");
|
||||
#line 143
|
||||
#line 141
|
||||
testRunner.And("I am redirected");
|
||||
#line 144
|
||||
#line 142
|
||||
testRunner.Then("I should see \"<form action=\"/Admin/MultiTenancy/enable\"\"");
|
||||
#line hidden
|
||||
testRunner.CollectScenarioErrors();
|
||||
@@ -450,13 +446,13 @@ this.ScenarioSetup(scenarioInfo);
|
||||
public virtual void ARunningTenantWhichIsDisabledCanBeEnabled()
|
||||
{
|
||||
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("A running tenant which is disabled can be enabled", ((string[])(null)));
|
||||
#line 146
|
||||
#line 144
|
||||
this.ScenarioSetup(scenarioInfo);
|
||||
#line 147
|
||||
#line 145
|
||||
testRunner.Given("I have installed Orchard");
|
||||
#line 148
|
||||
#line 146
|
||||
testRunner.And("I have installed \"Orchard.MultiTenancy\"");
|
||||
#line 149
|
||||
#line 147
|
||||
testRunner.When("I go to \"Admin/MultiTenancy/Add\"");
|
||||
#line hidden
|
||||
TechTalk.SpecFlow.Table table11 = new TechTalk.SpecFlow.Table(new string[] {
|
||||
@@ -468,11 +464,11 @@ this.ScenarioSetup(scenarioInfo);
|
||||
table11.AddRow(new string[] {
|
||||
"RequestUrlHost",
|
||||
"scott.example.org"});
|
||||
#line 150
|
||||
#line 148
|
||||
testRunner.And("I fill in", ((string)(null)), table11);
|
||||
#line 154
|
||||
#line 152
|
||||
testRunner.And("I hit \"Save\"");
|
||||
#line 155
|
||||
#line 153
|
||||
testRunner.And("I go to \"/Setup\" on host scott.example.org");
|
||||
#line hidden
|
||||
TechTalk.SpecFlow.Table table12 = new TechTalk.SpecFlow.Table(new string[] {
|
||||
@@ -487,21 +483,21 @@ this.ScenarioSetup(scenarioInfo);
|
||||
table12.AddRow(new string[] {
|
||||
"ConfirmPassword",
|
||||
"6655321"});
|
||||
#line 156
|
||||
#line 154
|
||||
testRunner.And("I fill in", ((string)(null)), table12);
|
||||
#line 161
|
||||
#line 159
|
||||
testRunner.And("I hit \"Finish Setup\"");
|
||||
#line 162
|
||||
#line 160
|
||||
testRunner.And("I go to \"/Admin/MultiTenancy\" on host localhost");
|
||||
#line 163
|
||||
#line 161
|
||||
testRunner.And("I hit \"Suspend\"");
|
||||
#line 162
|
||||
testRunner.And("I am redirected");
|
||||
#line 163
|
||||
testRunner.And("I hit \"Resume\"");
|
||||
#line 164
|
||||
testRunner.And("I am redirected");
|
||||
#line 165
|
||||
testRunner.And("I hit \"Resume\"");
|
||||
#line 166
|
||||
testRunner.And("I am redirected");
|
||||
#line 167
|
||||
testRunner.Then("I should see \"<form action=\"/Admin/MultiTenancy/disable\"\"");
|
||||
#line hidden
|
||||
testRunner.CollectScenarioErrors();
|
||||
@@ -509,24 +505,22 @@ this.ScenarioSetup(scenarioInfo);
|
||||
|
||||
[NUnit.Framework.TestAttribute()]
|
||||
[NUnit.Framework.DescriptionAttribute("Listing tenants from command line")]
|
||||
[NUnit.Framework.IgnoreAttribute()]
|
||||
public virtual void ListingTenantsFromCommandLine()
|
||||
{
|
||||
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Listing tenants from command line", new string[] {
|
||||
"ignore"});
|
||||
#line 170
|
||||
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Listing tenants from command line", ((string[])(null)));
|
||||
#line 167
|
||||
this.ScenarioSetup(scenarioInfo);
|
||||
#line 171
|
||||
#line 168
|
||||
testRunner.Given("I have installed Orchard");
|
||||
#line 172
|
||||
#line 169
|
||||
testRunner.And("I have installed \"Orchard.MultiTenancy\"");
|
||||
#line 173
|
||||
#line 170
|
||||
testRunner.And("I have tenant \"Alpha\" on \"example.org\" as \"New-site-name\"");
|
||||
#line 174
|
||||
#line 171
|
||||
testRunner.When("I execute >tenant list");
|
||||
#line 175
|
||||
#line 172
|
||||
testRunner.Then("I should see \"Name: Alpha\"");
|
||||
#line 176
|
||||
#line 173
|
||||
testRunner.And("I should see \"Request Url Host: example.org\"");
|
||||
#line hidden
|
||||
testRunner.CollectScenarioErrors();
|
||||
|
||||
@@ -39,7 +39,7 @@ Scenario: Some of the initial form values are required
|
||||
Scenario: Calling setup on a brand new install
|
||||
Given I have a clean site with
|
||||
| extension | names |
|
||||
| module | Orchard.Setup, Orchard.Pages, Orchard.Users, Orchard.Role, Orchard.Messagings, Orchard.Comments, Orchard.PublishLater, Orchard.Themes, Orchard.Modules, Orchard.Widgets, Orchard.jQuery, TinyMce |
|
||||
| module | Orchard.Setup, Orchard.Pages, Orchard.Users, Orchard.Roles, Orchard.Messaging, Orchard.Scripting, Orchard.Comments, Orchard.PublishLater, Orchard.Themes, Orchard.Modules, Orchard.Widgets, Orchard.jQuery, TinyMce |
|
||||
| core | Common, Contents, Dashboard, Feeds, HomePage, Navigation, Routable, Scheduling, Settings, Shapes, XmlRpc |
|
||||
| theme | SafeMode, TheThemeMachine |
|
||||
And I am on "/Setup"
|
||||
|
||||
6
src/Orchard.Specs/Setup.feature.cs
generated
6
src/Orchard.Specs/Setup.feature.cs
generated
@@ -176,9 +176,9 @@ this.ScenarioSetup(scenarioInfo);
|
||||
"names"});
|
||||
table4.AddRow(new string[] {
|
||||
"module",
|
||||
"Orchard.Setup, Orchard.Pages, Orchard.Users, Orchard.Role, Orchard.Messagings, Or" +
|
||||
"chard.Comments, Orchard.PublishLater, Orchard.Themes, Orchard.Modules, Orchard.W" +
|
||||
"idgets, Orchard.jQuery, TinyMce"});
|
||||
"Orchard.Setup, Orchard.Pages, Orchard.Users, Orchard.Roles, Orchard.Messaging, Or" +
|
||||
"chard.Scripting, Orchard.Comments, Orchard.PublishLater, Orchard.Themes, Orchard" +
|
||||
".Modules, Orchard.Widgets, Orchard.jQuery, TinyMce"});
|
||||
table4.AddRow(new string[] {
|
||||
"core",
|
||||
"Common, Contents, Dashboard, Feeds, HomePage, Navigation, Routable, Scheduling, S" +
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 49 KiB |
@@ -1,7 +0,0 @@
|
||||
Name: Primus
|
||||
Author: Lou
|
||||
Description: desc
|
||||
Version: 0.1
|
||||
Website: http://whereslou.com
|
||||
Zones: Main, Sidebar
|
||||
BaseTheme: TheThemeMachine
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 49 KiB |
@@ -1,8 +0,0 @@
|
||||
Name: Secundus
|
||||
Author: Lou
|
||||
Description: desc
|
||||
Version: 0.1
|
||||
Website: http://whereslou.com
|
||||
Zones: Main, Sidebar
|
||||
BaseTheme: Primus
|
||||
|
||||
@@ -49,10 +49,6 @@
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Primus\Theme.png" />
|
||||
<Content Include="Primus\Theme.txt" />
|
||||
<Content Include="Secundus\Theme.png" />
|
||||
<Content Include="Secundus\Theme.txt" />
|
||||
<Content Include="TheAdmin\Scripts\admin.js" />
|
||||
<Content Include="TheAdmin\Styles\ie.css" />
|
||||
<Content Include="TheAdmin\Styles\images\menuClosed.gif" />
|
||||
|
||||
@@ -38,8 +38,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.Themes", "Orchard.W
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.Profile", "Orchard.Profile\Orchard.Profile.csproj", "{94E694A2-D140-468D-A277-C5FCE1D13E9B}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageIndexReferenceImplementation", "Tools\PackageIndexReferenceImplementation\PackageIndexReferenceImplementation.csproj", "{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.Tests", "Tools\Orchard.Tests\Orchard.Tests.csproj", "{0DFA2E10-96C8-4E05-BC10-B710B97ECCDE}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Notes", "_Notes", "{8A49DB66-40B2-4B6A-BFF0-D4839A240D00}"
|
||||
@@ -271,16 +269,6 @@ Global
|
||||
{94E694A2-D140-468D-A277-C5FCE1D13E9B}.FxCop|Any CPU.Build.0 = Release|Any CPU
|
||||
{94E694A2-D140-468D-A277-C5FCE1D13E9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{94E694A2-D140-468D-A277-C5FCE1D13E9B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B}.CodeCoverage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B}.CodeCoverage|Any CPU.Build.0 = Release|Any CPU
|
||||
{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B}.Coverage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B}.Coverage|Any CPU.Build.0 = Release|Any CPU
|
||||
{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B}.FxCop|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B}.FxCop|Any CPU.Build.0 = Release|Any CPU
|
||||
{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0DFA2E10-96C8-4E05-BC10-B710B97ECCDE}.CodeCoverage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0DFA2E10-96C8-4E05-BC10-B710B97ECCDE}.CodeCoverage|Any CPU.Build.0 = Release|Any CPU
|
||||
{0DFA2E10-96C8-4E05-BC10-B710B97ECCDE}.Coverage|Any CPU.ActiveCfg = Release|Any CPU
|
||||
@@ -591,7 +579,6 @@ Global
|
||||
{5E5E7A21-C7B2-44D8-8593-2F9541AE041D} = {383DBA32-4A3E-48D1-AAC3-75377A694452}
|
||||
{4AB4B5B6-277E-4FF6-B69B-7AE9E16D2A56} = {383DBA32-4A3E-48D1-AAC3-75377A694452}
|
||||
{33B1BC8D-E292-4972-A363-22056B207156} = {383DBA32-4A3E-48D1-AAC3-75377A694452}
|
||||
{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B} = {383DBA32-4A3E-48D1-AAC3-75377A694452}
|
||||
{0DFA2E10-96C8-4E05-BC10-B710B97ECCDE} = {383DBA32-4A3E-48D1-AAC3-75377A694452}
|
||||
{CB70A642-8CEC-4DDE-8C9F-AD08900EC98D} = {74492CBC-7201-417E-BC29-28B4C25A58B0}
|
||||
EndGlobalSection
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 26 KiB |
@@ -1,344 +0,0 @@
|
||||
/*----------------------------------------------------------
|
||||
The base color for this template is #5c87b2. If you'd like
|
||||
to use a different color start by replacing all instances of
|
||||
#5c87b2 with your new color.
|
||||
----------------------------------------------------------*/
|
||||
body
|
||||
{
|
||||
background-color: #5c87b2;
|
||||
font-size: .75em;
|
||||
font-family: Verdana, Helvetica, Sans-Serif;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #696969;
|
||||
}
|
||||
|
||||
a:link
|
||||
{
|
||||
color: #034af3;
|
||||
text-decoration: underline;
|
||||
}
|
||||
a:visited
|
||||
{
|
||||
color: #505abc;
|
||||
}
|
||||
a:hover
|
||||
{
|
||||
color: #1d60ff;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:active
|
||||
{
|
||||
color: #12eb87;
|
||||
}
|
||||
|
||||
p, ul
|
||||
{
|
||||
margin-bottom: 20px;
|
||||
line-height: 1.6em;
|
||||
}
|
||||
|
||||
/* HEADINGS
|
||||
----------------------------------------------------------*/
|
||||
h1, h2, h3, h4, h5, h6
|
||||
{
|
||||
font-size: 1.5em;
|
||||
color: #000;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
h1
|
||||
{
|
||||
font-size: 2em;
|
||||
padding-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
h2
|
||||
{
|
||||
padding: 0 0 10px 0;
|
||||
}
|
||||
h3
|
||||
{
|
||||
font-size: 1.2em;
|
||||
}
|
||||
h4
|
||||
{
|
||||
font-size: 1.1em;
|
||||
}
|
||||
h5, h6
|
||||
{
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
/* this rule styles <h2> tags that are the
|
||||
first child of the left and right table columns */
|
||||
.rightColumn > h1, .rightColumn > h2, .leftColumn > h1, .leftColumn > h2
|
||||
{
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
/* PRIMARY LAYOUT ELEMENTS
|
||||
----------------------------------------------------------*/
|
||||
|
||||
/* you can specify a greater or lesser percentage for the
|
||||
page width. Or, you can specify an exact pixel width. */
|
||||
.page
|
||||
{
|
||||
width: 90%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
#header
|
||||
{
|
||||
position: relative;
|
||||
margin-bottom: 0px;
|
||||
color: #000;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#header h1
|
||||
{
|
||||
font-weight: bold;
|
||||
padding: 5px 0;
|
||||
margin: 0;
|
||||
color: #fff;
|
||||
border: none;
|
||||
line-height: 2em;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
font-size: 32px !important;
|
||||
}
|
||||
|
||||
#main
|
||||
{
|
||||
padding: 30px 30px 15px 30px;
|
||||
background-color: #fff;
|
||||
margin-bottom: 30px;
|
||||
_height: 1px; /* only IE6 applies CSS properties starting with an underscore */
|
||||
}
|
||||
|
||||
#footer
|
||||
{
|
||||
color: #999;
|
||||
padding: 10px 0;
|
||||
text-align: center;
|
||||
line-height: normal;
|
||||
margin: 0;
|
||||
font-size: .9em;
|
||||
}
|
||||
|
||||
/* TAB MENU
|
||||
----------------------------------------------------------*/
|
||||
ul#menu
|
||||
{
|
||||
border-bottom: 1px #5C87B2 solid;
|
||||
padding: 0 0 2px;
|
||||
position: relative;
|
||||
margin: 0;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
ul#menu li
|
||||
{
|
||||
display: inline;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
ul#menu li#greeting
|
||||
{
|
||||
padding: 10px 20px;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
line-height: 2.8em;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
ul#menu li a
|
||||
{
|
||||
padding: 10px 20px;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
line-height: 2.8em;
|
||||
background-color: #e8eef4;
|
||||
color: #034af3;
|
||||
}
|
||||
|
||||
ul#menu li a:hover
|
||||
{
|
||||
background-color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
ul#menu li a:active
|
||||
{
|
||||
background-color: #a6e2a6;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
ul#menu li.selected a
|
||||
{
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* FORM LAYOUT ELEMENTS
|
||||
----------------------------------------------------------*/
|
||||
|
||||
fieldset
|
||||
{
|
||||
margin: 1em 0;
|
||||
padding: 1em;
|
||||
border: 1px solid #CCC;
|
||||
}
|
||||
|
||||
fieldset p
|
||||
{
|
||||
margin: 2px 12px 10px 10px;
|
||||
}
|
||||
|
||||
legend
|
||||
{
|
||||
font-size: 1.1em;
|
||||
font-weight: 600;
|
||||
padding: 2px 4px 8px 4px;
|
||||
}
|
||||
|
||||
input[type="text"]
|
||||
{
|
||||
width: 200px;
|
||||
border: 1px solid #CCC;
|
||||
}
|
||||
|
||||
input[type="password"]
|
||||
{
|
||||
width: 200px;
|
||||
border: 1px solid #CCC;
|
||||
}
|
||||
|
||||
/* TABLE
|
||||
----------------------------------------------------------*/
|
||||
|
||||
table
|
||||
{
|
||||
border: solid 1px #e8eef4;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table td
|
||||
{
|
||||
padding: 5px;
|
||||
border: solid 1px #e8eef4;
|
||||
}
|
||||
|
||||
table th
|
||||
{
|
||||
padding: 6px 5px;
|
||||
text-align: left;
|
||||
background-color: #e8eef4;
|
||||
border: solid 1px #e8eef4;
|
||||
}
|
||||
|
||||
/* MISC
|
||||
----------------------------------------------------------*/
|
||||
.clear
|
||||
{
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.error
|
||||
{
|
||||
color:Red;
|
||||
}
|
||||
|
||||
#menucontainer
|
||||
{
|
||||
margin-top:40px;
|
||||
}
|
||||
|
||||
div#title
|
||||
{
|
||||
display:block;
|
||||
float:left;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
#logindisplay
|
||||
{
|
||||
font-size:1.1em;
|
||||
display:block;
|
||||
text-align:right;
|
||||
margin:10px;
|
||||
color:White;
|
||||
}
|
||||
|
||||
#logindisplay a:link
|
||||
{
|
||||
color: white;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#logindisplay a:visited
|
||||
{
|
||||
color: white;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#logindisplay a:hover
|
||||
{
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* Styles for validation helpers
|
||||
-----------------------------------------------------------*/
|
||||
.field-validation-error
|
||||
{
|
||||
color: #ff0000;
|
||||
}
|
||||
|
||||
.field-validation-valid
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.input-validation-error
|
||||
{
|
||||
border: 1px solid #ff0000;
|
||||
background-color: #ffeeee;
|
||||
}
|
||||
|
||||
.validation-summary-errors
|
||||
{
|
||||
font-weight: bold;
|
||||
color: #ff0000;
|
||||
}
|
||||
|
||||
.validation-summary-valid
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Styles for editor and display helpers
|
||||
----------------------------------------------------------*/
|
||||
.display-label,
|
||||
.editor-label,
|
||||
.display-field,
|
||||
.editor-field
|
||||
{
|
||||
margin: 0.5em 0;
|
||||
}
|
||||
|
||||
.text-box
|
||||
{
|
||||
width: 30em;
|
||||
}
|
||||
|
||||
.text-box.multi-line
|
||||
{
|
||||
height: 6.5em;
|
||||
}
|
||||
|
||||
.tri-state
|
||||
{
|
||||
width: 6em;
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
using System;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Routing;
|
||||
using System.Web.Security;
|
||||
using PackageIndexReferenceImplementation.Models;
|
||||
|
||||
namespace PackageIndexReferenceImplementation.Controllers {
|
||||
|
||||
[HandleError]
|
||||
public class AccountController : Controller {
|
||||
|
||||
public IFormsAuthenticationService FormsService { get; set; }
|
||||
|
||||
protected override void Initialize(RequestContext requestContext) {
|
||||
if (FormsService == null) { FormsService = new FormsAuthenticationService(); }
|
||||
|
||||
base.Initialize(requestContext);
|
||||
}
|
||||
|
||||
// **************************************
|
||||
// URL: /Account/LogOn
|
||||
// **************************************
|
||||
|
||||
public ActionResult LogOn() {
|
||||
return View();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public ActionResult LogOn(LogOnModel model, string returnUrl) {
|
||||
if (ModelState.IsValid) {
|
||||
if ( FormsAuthentication.Authenticate(model.UserName, model.Password) ) {
|
||||
FormsService.SignIn(model.UserName, model.RememberMe);
|
||||
if (!String.IsNullOrEmpty(returnUrl)) {
|
||||
return Redirect(returnUrl);
|
||||
}
|
||||
else {
|
||||
return RedirectToAction("Index", "Home");
|
||||
}
|
||||
}
|
||||
else {
|
||||
ModelState.AddModelError("", "The user name or password provided is incorrect.");
|
||||
}
|
||||
}
|
||||
|
||||
// If we got this far, something failed, redisplay form
|
||||
return View(model);
|
||||
}
|
||||
|
||||
// **************************************
|
||||
// URL: /Account/LogOff
|
||||
// **************************************
|
||||
|
||||
public ActionResult LogOff() {
|
||||
FormsService.SignOut();
|
||||
|
||||
return RedirectToAction("Index", "Home");
|
||||
}
|
||||
|
||||
public ActionResult SHA1(string password) {
|
||||
return new ContentResult { Content = FormsAuthentication.HashPasswordForStoringInConfigFile(password, "sha1") };
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
using System.ServiceModel.Syndication;
|
||||
using System.Web.Mvc;
|
||||
using System.Xml;
|
||||
|
||||
namespace PackageIndexReferenceImplementation.Controllers.Artifacts {
|
||||
public class AtomFeedResult : ActionResult {
|
||||
public SyndicationFeed Feed { get; set; }
|
||||
|
||||
public AtomFeedResult(SyndicationFeed feed) {
|
||||
Feed = feed;
|
||||
}
|
||||
|
||||
public override void ExecuteResult(ControllerContext context) {
|
||||
context.HttpContext.Response.ContentType = "application/atom+xml";
|
||||
using (var writer = XmlWriter.Create(context.HttpContext.Response.OutputStream)) {
|
||||
var formatter = new Atom10FeedFormatter(Feed);
|
||||
formatter.WriteTo(writer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
using System.ServiceModel.Syndication;
|
||||
using System.Web.Mvc;
|
||||
using System.Xml;
|
||||
|
||||
namespace PackageIndexReferenceImplementation.Controllers.Artifacts {
|
||||
public class AtomItemResult : ActionResult {
|
||||
public string Status { get; set; }
|
||||
public string Location { get; set; }
|
||||
public SyndicationItem Item { get; set; }
|
||||
|
||||
public AtomItemResult(string status, string location, SyndicationItem item) {
|
||||
Status = status;
|
||||
Location = location;
|
||||
Item = item;
|
||||
}
|
||||
|
||||
public override void ExecuteResult(ControllerContext context) {
|
||||
context.HttpContext.Response.Status = Status;
|
||||
context.HttpContext.Response.RedirectLocation = Location;
|
||||
context.HttpContext.Response.ContentType = "application/atom+xml;type=entry";
|
||||
using (var writer = XmlWriter.Create(context.HttpContext.Response.OutputStream)) {
|
||||
var formatter = new Atom10ItemFormatter(Item);
|
||||
formatter.WriteTo(writer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using System.Web.Mvc;
|
||||
|
||||
namespace PackageIndexReferenceImplementation.Controllers.Artifacts {
|
||||
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
|
||||
public class ContentTypeAttribute : ActionMethodSelectorAttribute {
|
||||
public ContentTypeAttribute(string contentType) {
|
||||
ContentType = contentType;
|
||||
}
|
||||
|
||||
public string ContentType { get; set; }
|
||||
|
||||
public override bool IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo) {
|
||||
return controllerContext.HttpContext.Request.ContentType.StartsWith(ContentType);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Web.Mvc;
|
||||
|
||||
namespace PackageIndexReferenceImplementation.Controllers {
|
||||
public class StreamResult : ActionResult {
|
||||
public string ContentType { get; set; }
|
||||
public Stream Stream { get; set; }
|
||||
public DateTime? LastModifiedDate { get; set; }
|
||||
|
||||
public StreamResult(string contentType, Stream stream) : this(contentType, stream, null) {
|
||||
}
|
||||
|
||||
public StreamResult(string contentType, Stream stream, DateTime? lastModified) {
|
||||
ContentType = contentType;
|
||||
Stream = stream;
|
||||
LastModifiedDate = lastModified;
|
||||
}
|
||||
|
||||
public override void ExecuteResult(ControllerContext context) {
|
||||
var response = context.HttpContext.Response;
|
||||
response.ContentType = ContentType;
|
||||
if (LastModifiedDate.HasValue) {
|
||||
response.Cache.SetLastModified(LastModifiedDate.Value);
|
||||
response.Cache.SetCacheability(System.Web.HttpCacheability.Public);
|
||||
}
|
||||
Stream.CopyTo(response.OutputStream);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
using System;
|
||||
using System.Web.Mvc;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace PackageIndexReferenceImplementation.Controllers.Artifacts {
|
||||
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
|
||||
public class XmlBodyAttribute : ActionFilterAttribute {
|
||||
public override void OnActionExecuting(ActionExecutingContext filterContext) {
|
||||
var body = XElement.Load(filterContext.HttpContext.Request.InputStream);
|
||||
filterContext.ActionParameters["body"] = body.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,136 +0,0 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.IO.Packaging;
|
||||
using System.Linq;
|
||||
using System.Security.Authentication;
|
||||
using System.Security.Policy;
|
||||
using System.Text;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Routing;
|
||||
using System.ServiceModel.Syndication;
|
||||
using System.Web.Security;
|
||||
using PackageIndexReferenceImplementation.Controllers.Artifacts;
|
||||
using PackageIndexReferenceImplementation.Models;
|
||||
using PackageIndexReferenceImplementation.Services;
|
||||
|
||||
namespace PackageIndexReferenceImplementation.Controllers {
|
||||
[HandleError]
|
||||
public class FeedController : Controller {
|
||||
private const string VersionTag = "Version";
|
||||
private const string ExtensionsNamespace = "http://orchardproject.net";
|
||||
|
||||
private readonly FeedStorage _feedStorage;
|
||||
private readonly MediaStorage _mediaStorage;
|
||||
|
||||
public IMembershipService MembershipService { get; set; }
|
||||
|
||||
public FeedController() {
|
||||
_feedStorage = new FeedStorage();
|
||||
_mediaStorage = new MediaStorage();
|
||||
if ( MembershipService == null ) { MembershipService = new AccountMembershipService(); }
|
||||
}
|
||||
|
||||
public ActionResult Index() {
|
||||
return new AtomFeedResult(_feedStorage.GetFeed());
|
||||
}
|
||||
|
||||
[ActionName("Index"), HttpPost, ContentType("application/atom+xml"), XmlBody]
|
||||
public ActionResult PostEntry(string body) {
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
|
||||
[ActionName("Index"), HttpPost, ContentType("application/x-package")]
|
||||
public ActionResult PostPackage() {
|
||||
|
||||
var hostHeader = HttpContext.Request.Headers["Host"];
|
||||
var slugHeader = HttpContext.Request.Headers["Slug"];
|
||||
var user = Encoding.UTF8.GetString(Convert.FromBase64String(HttpContext.Request.Headers["User"]));
|
||||
var password = Encoding.UTF8.GetString(Convert.FromBase64String(HttpContext.Request.Headers["Password"]));
|
||||
|
||||
if ( !FormsAuthentication.Authenticate(user, password) ) {
|
||||
throw new AuthenticationException("This credentials are not valid for this action.");
|
||||
}
|
||||
|
||||
var utcNowDateString = DateTimeOffset.UtcNow.ToString("yyyy-MM-dd");
|
||||
|
||||
var package = Package.Open(Request.InputStream, FileMode.Open, FileAccess.Read);
|
||||
var packageProperties = package.PackageProperties;
|
||||
|
||||
var feed = _feedStorage.GetFeed();
|
||||
|
||||
var item = feed.Items.FirstOrDefault(i => i.Id.StartsWith("tag:") && i.Id.EndsWith(":" + packageProperties.Identifier));
|
||||
if (item == null) {
|
||||
item = new SyndicationItem {
|
||||
Id = "tag:" + hostHeader + "," + utcNowDateString + ":" + packageProperties.Identifier
|
||||
};
|
||||
feed.Items = feed.Items.Concat(new[] { item });
|
||||
}
|
||||
|
||||
|
||||
var mediaIdentifier = UpdateSyndicationItem(packageProperties, item);
|
||||
|
||||
|
||||
_mediaStorage.StoreMedia(mediaIdentifier + ":application/x-package", Request.InputStream);
|
||||
_feedStorage.StoreFeed(feed);
|
||||
|
||||
return new AtomItemResult("201 Created", null, item);
|
||||
}
|
||||
|
||||
private string UpdateSyndicationItem(PackageProperties packageProperties, SyndicationItem item) {
|
||||
|
||||
if (!string.IsNullOrEmpty(packageProperties.Creator)) {
|
||||
item.Authors.Clear();
|
||||
//parse package.PackageProperties.Creator into email-style authors
|
||||
item.Authors.Add(new SyndicationPerson { Name = packageProperties.Creator });
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(packageProperties.Category)) {
|
||||
item.Categories.Clear();
|
||||
item.Categories.Add(new SyndicationCategory(packageProperties.Category));
|
||||
}
|
||||
|
||||
var contentType = packageProperties.ContentType;
|
||||
if (!item.Categories.Any(c => c.Name == contentType)) {
|
||||
item.Categories.Add(new SyndicationCategory(contentType));
|
||||
}
|
||||
|
||||
if (packageProperties.Modified.HasValue) {
|
||||
item.LastUpdatedTime = new DateTimeOffset(packageProperties.Modified.Value);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(packageProperties.Title)) {
|
||||
item.Title = new TextSyndicationContent(packageProperties.Title);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(packageProperties.Description)) {
|
||||
item.Summary = new TextSyndicationContent(packageProperties.Description);
|
||||
}
|
||||
|
||||
if ( !string.IsNullOrEmpty(packageProperties.Version) ) {
|
||||
var versionExtensions = item.ElementExtensions.Where(e => e.OuterName == VersionTag && e.OuterNamespace == ExtensionsNamespace);
|
||||
foreach(var versionExtension in versionExtensions) {
|
||||
item.ElementExtensions.Remove(versionExtension);
|
||||
}
|
||||
|
||||
item.ElementExtensions.Add(VersionTag, ExtensionsNamespace, packageProperties.Version);
|
||||
}
|
||||
|
||||
var mediaIdentifier = packageProperties.Identifier + "-" + packageProperties.Version + ".zip";
|
||||
|
||||
var mediaUrl = Url.Action("Resource", "Media", new RouteValueDictionary { { "Id", mediaIdentifier }, { "ContentType", "application/x-package" } });
|
||||
item.Links.Clear();
|
||||
item.Links.Add(new SyndicationLink(new Uri(HostBaseUri(), new Uri(mediaUrl, UriKind.Relative))));
|
||||
|
||||
if (contentType == "Orchard Theme") {
|
||||
var previewUrl = Url.Action("PreviewTheme", "Media", new RouteValueDictionary { { "Id", mediaIdentifier }, { "ContentType", "application/x-package" } });
|
||||
item.Links.Add(new SyndicationLink(new Uri(HostBaseUri(), new Uri(previewUrl, UriKind.Relative)), "thumbnail", null, null, 0));
|
||||
}
|
||||
return mediaIdentifier;
|
||||
}
|
||||
|
||||
private Uri HostBaseUri() {
|
||||
return new Uri("http://" + HttpContext.Request.Headers["Host"]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
|
||||
namespace PackageIndexReferenceImplementation.Controllers {
|
||||
[HandleError]
|
||||
public class HomeController : Controller {
|
||||
public ActionResult Index() {
|
||||
ViewData["Message"] = "Welcome to ASP.NET MVC!";
|
||||
|
||||
return View();
|
||||
}
|
||||
|
||||
public ActionResult About() {
|
||||
return View();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.IO.Packaging;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Hosting;
|
||||
using System.Web.Mvc;
|
||||
using PackageIndexReferenceImplementation.Services;
|
||||
|
||||
namespace PackageIndexReferenceImplementation.Controllers {
|
||||
public class MediaController : Controller {
|
||||
private readonly MediaStorage _mediaStorage;
|
||||
|
||||
public MediaController() {
|
||||
_mediaStorage = new MediaStorage();
|
||||
}
|
||||
|
||||
public ActionResult Resource(string id, string contentType) {
|
||||
return new StreamResult(contentType, _mediaStorage.GetMedia(id + ":" + contentType));
|
||||
}
|
||||
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]
|
||||
public ActionResult PreviewTheme(string id, string contentType) {
|
||||
var stream = _mediaStorage.GetMedia(id + ":" + contentType);
|
||||
var package = Package.Open(stream, FileMode.Open, FileAccess.Read);
|
||||
if (package.PackageProperties.ContentType != "Orchard Theme") {
|
||||
return new HttpNotFoundResult();
|
||||
}
|
||||
|
||||
var themeName = package.PackageProperties.Identifier;
|
||||
var previewUri = new Uri("/" + themeName + "/Theme.png", UriKind.Relative);
|
||||
Stream previewStream;
|
||||
DateTime lastModified;
|
||||
if (package.PartExists(previewUri)) {
|
||||
lastModified = _mediaStorage.GetLastModifiedDate(id + ":" + contentType);
|
||||
previewStream = package.GetPart(new Uri("/" + themeName + "/Theme.png", UriKind.Relative)).GetStream();
|
||||
}
|
||||
else {
|
||||
var defaultPreviewPath = HostingEnvironment.MapPath("~/Content/DefaultThemePreview.png");
|
||||
if (defaultPreviewPath == null || !System.IO.File.Exists(defaultPreviewPath)) {
|
||||
return new HttpNotFoundResult();
|
||||
}
|
||||
lastModified = System.IO.File.GetLastWriteTimeUtc(defaultPreviewPath);
|
||||
previewStream = System.IO.File.Open(defaultPreviewPath, FileMode.Open, FileAccess.Read);
|
||||
}
|
||||
return new StreamResult("image/png", previewStream, lastModified);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
<%@ Application Codebehind="Global.asax.cs" Inherits="PackageIndexReferenceImplementation.MvcApplication" Language="C#" %>
|
||||
@@ -1,30 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Routing;
|
||||
|
||||
namespace PackageIndexReferenceImplementation {
|
||||
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
|
||||
// visit http://go.microsoft.com/?LinkId=9394801
|
||||
|
||||
public class MvcApplication : System.Web.HttpApplication {
|
||||
public static void RegisterRoutes(RouteCollection routes) {
|
||||
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
|
||||
|
||||
routes.MapRoute(
|
||||
"Default", // Route name
|
||||
"{controller}/{action}/{id}", // URL with parameters
|
||||
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
protected void Application_Start() {
|
||||
AreaRegistration.RegisterAllAreas();
|
||||
|
||||
RegisterRoutes(RouteTable.Routes);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,250 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Security;
|
||||
|
||||
namespace PackageIndexReferenceImplementation.Models {
|
||||
|
||||
#region Models
|
||||
[PropertiesMustMatch("NewPassword", "ConfirmPassword", ErrorMessage = "The new password and confirmation password do not match.")]
|
||||
public class ChangePasswordModel {
|
||||
[Required]
|
||||
[DataType(DataType.Password)]
|
||||
[DisplayName("Current password")]
|
||||
public string OldPassword { get; set; }
|
||||
|
||||
[Required]
|
||||
[ValidatePasswordLength]
|
||||
[DataType(DataType.Password)]
|
||||
[DisplayName("New password")]
|
||||
public string NewPassword { get; set; }
|
||||
|
||||
[Required]
|
||||
[DataType(DataType.Password)]
|
||||
[DisplayName("Confirm new password")]
|
||||
public string ConfirmPassword { get; set; }
|
||||
}
|
||||
|
||||
public class LogOnModel {
|
||||
[Required]
|
||||
[DisplayName("User name")]
|
||||
public string UserName { get; set; }
|
||||
|
||||
[Required]
|
||||
[DataType(DataType.Password)]
|
||||
[DisplayName("Password")]
|
||||
public string Password { get; set; }
|
||||
|
||||
[DisplayName("Remember me?")]
|
||||
public bool RememberMe { get; set; }
|
||||
}
|
||||
|
||||
[PropertiesMustMatch("Password", "ConfirmPassword", ErrorMessage = "The password and confirmation password do not match.")]
|
||||
public class RegisterModel {
|
||||
[Required]
|
||||
[DisplayName("User name")]
|
||||
public string UserName { get; set; }
|
||||
|
||||
[Required]
|
||||
[DataType(DataType.EmailAddress)]
|
||||
[DisplayName("Email address")]
|
||||
public string Email { get; set; }
|
||||
|
||||
[Required]
|
||||
[ValidatePasswordLength]
|
||||
[DataType(DataType.Password)]
|
||||
[DisplayName("Password")]
|
||||
public string Password { get; set; }
|
||||
|
||||
[Required]
|
||||
[DataType(DataType.Password)]
|
||||
[DisplayName("Confirm password")]
|
||||
public string ConfirmPassword { get; set; }
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Services
|
||||
// The FormsAuthentication type is sealed and contains static members, so it is difficult to
|
||||
// unit test code that calls its members. The interface and helper class below demonstrate
|
||||
// how to create an abstract wrapper around such a type in order to make the AccountController
|
||||
// code unit testable.
|
||||
|
||||
public interface IMembershipService {
|
||||
int MinPasswordLength { get; }
|
||||
|
||||
bool ValidateUser(string userName, string password);
|
||||
MembershipCreateStatus CreateUser(string userName, string password, string email);
|
||||
bool ChangePassword(string userName, string oldPassword, string newPassword);
|
||||
}
|
||||
|
||||
public class AccountMembershipService : IMembershipService {
|
||||
private readonly MembershipProvider _provider;
|
||||
|
||||
public AccountMembershipService()
|
||||
: this(null) {
|
||||
}
|
||||
|
||||
public AccountMembershipService(MembershipProvider provider) {
|
||||
_provider = provider ?? Membership.Provider;
|
||||
}
|
||||
|
||||
public int MinPasswordLength {
|
||||
get {
|
||||
return _provider.MinRequiredPasswordLength;
|
||||
}
|
||||
}
|
||||
|
||||
public bool ValidateUser(string userName, string password) {
|
||||
if (String.IsNullOrEmpty(userName)) throw new ArgumentException("Value cannot be null or empty.", "userName");
|
||||
if (String.IsNullOrEmpty(password)) throw new ArgumentException("Value cannot be null or empty.", "password");
|
||||
|
||||
return _provider.ValidateUser(userName, password);
|
||||
}
|
||||
|
||||
public MembershipCreateStatus CreateUser(string userName, string password, string email) {
|
||||
if (String.IsNullOrEmpty(userName)) throw new ArgumentException("Value cannot be null or empty.", "userName");
|
||||
if (String.IsNullOrEmpty(password)) throw new ArgumentException("Value cannot be null or empty.", "password");
|
||||
if (String.IsNullOrEmpty(email)) throw new ArgumentException("Value cannot be null or empty.", "email");
|
||||
|
||||
MembershipCreateStatus status;
|
||||
_provider.CreateUser(userName, password, email, null, null, true, null, out status);
|
||||
return status;
|
||||
}
|
||||
|
||||
public bool ChangePassword(string userName, string oldPassword, string newPassword) {
|
||||
if (String.IsNullOrEmpty(userName)) throw new ArgumentException("Value cannot be null or empty.", "userName");
|
||||
if (String.IsNullOrEmpty(oldPassword)) throw new ArgumentException("Value cannot be null or empty.", "oldPassword");
|
||||
if (String.IsNullOrEmpty(newPassword)) throw new ArgumentException("Value cannot be null or empty.", "newPassword");
|
||||
|
||||
// The underlying ChangePassword() will throw an exception rather
|
||||
// than return false in certain failure scenarios.
|
||||
try {
|
||||
MembershipUser currentUser = _provider.GetUser(userName, true /* userIsOnline */);
|
||||
return currentUser.ChangePassword(oldPassword, newPassword);
|
||||
}
|
||||
catch (ArgumentException) {
|
||||
return false;
|
||||
}
|
||||
catch (MembershipPasswordException) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public interface IFormsAuthenticationService {
|
||||
void SignIn(string userName, bool createPersistentCookie);
|
||||
void SignOut();
|
||||
}
|
||||
|
||||
public class FormsAuthenticationService : IFormsAuthenticationService {
|
||||
public void SignIn(string userName, bool createPersistentCookie) {
|
||||
if (String.IsNullOrEmpty(userName)) throw new ArgumentException("Value cannot be null or empty.", "userName");
|
||||
|
||||
FormsAuthentication.SetAuthCookie(userName, createPersistentCookie);
|
||||
}
|
||||
|
||||
public void SignOut() {
|
||||
FormsAuthentication.SignOut();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Validation
|
||||
public static class AccountValidation {
|
||||
public static string ErrorCodeToString(MembershipCreateStatus createStatus) {
|
||||
// See http://go.microsoft.com/fwlink/?LinkID=177550 for
|
||||
// a full list of status codes.
|
||||
switch (createStatus) {
|
||||
case MembershipCreateStatus.DuplicateUserName:
|
||||
return "Username already exists. Please enter a different user name.";
|
||||
|
||||
case MembershipCreateStatus.DuplicateEmail:
|
||||
return "A username for that e-mail address already exists. Please enter a different e-mail address.";
|
||||
|
||||
case MembershipCreateStatus.InvalidPassword:
|
||||
return "The password provided is invalid. Please enter a valid password value.";
|
||||
|
||||
case MembershipCreateStatus.InvalidEmail:
|
||||
return "The e-mail address provided is invalid. Please check the value and try again.";
|
||||
|
||||
case MembershipCreateStatus.InvalidAnswer:
|
||||
return "The password retrieval answer provided is invalid. Please check the value and try again.";
|
||||
|
||||
case MembershipCreateStatus.InvalidQuestion:
|
||||
return "The password retrieval question provided is invalid. Please check the value and try again.";
|
||||
|
||||
case MembershipCreateStatus.InvalidUserName:
|
||||
return "The user name provided is invalid. Please check the value and try again.";
|
||||
|
||||
case MembershipCreateStatus.ProviderError:
|
||||
return "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
|
||||
|
||||
case MembershipCreateStatus.UserRejected:
|
||||
return "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
|
||||
|
||||
default:
|
||||
return "An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
|
||||
public sealed class PropertiesMustMatchAttribute : ValidationAttribute {
|
||||
private const string _defaultErrorMessage = "'{0}' and '{1}' do not match.";
|
||||
private readonly object _typeId = new object();
|
||||
|
||||
public PropertiesMustMatchAttribute(string originalProperty, string confirmProperty)
|
||||
: base(_defaultErrorMessage) {
|
||||
OriginalProperty = originalProperty;
|
||||
ConfirmProperty = confirmProperty;
|
||||
}
|
||||
|
||||
public string ConfirmProperty { get; private set; }
|
||||
public string OriginalProperty { get; private set; }
|
||||
|
||||
public override object TypeId {
|
||||
get {
|
||||
return _typeId;
|
||||
}
|
||||
}
|
||||
|
||||
public override string FormatErrorMessage(string name) {
|
||||
return String.Format(CultureInfo.CurrentUICulture, ErrorMessageString,
|
||||
OriginalProperty, ConfirmProperty);
|
||||
}
|
||||
|
||||
public override bool IsValid(object value) {
|
||||
PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(value);
|
||||
object originalValue = properties.Find(OriginalProperty, true /* ignoreCase */).GetValue(value);
|
||||
object confirmValue = properties.Find(ConfirmProperty, true /* ignoreCase */).GetValue(value);
|
||||
return Object.Equals(originalValue, confirmValue);
|
||||
}
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
|
||||
public sealed class ValidatePasswordLengthAttribute : ValidationAttribute {
|
||||
private const string _defaultErrorMessage = "'{0}' must be at least {1} characters long.";
|
||||
private readonly int _minCharacters = Membership.Provider.MinRequiredPasswordLength;
|
||||
|
||||
public ValidatePasswordLengthAttribute()
|
||||
: base(_defaultErrorMessage) {
|
||||
}
|
||||
|
||||
public override string FormatErrorMessage(string name) {
|
||||
return String.Format(CultureInfo.CurrentUICulture, ErrorMessageString,
|
||||
name, _minCharacters);
|
||||
}
|
||||
|
||||
public override bool IsValid(object value) {
|
||||
string valueAsString = value as string;
|
||||
return (valueAsString != null && valueAsString.Length >= _minCharacters);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
@@ -1,153 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>
|
||||
</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B}</ProjectGuid>
|
||||
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>PackageIndexReferenceImplementation</RootNamespace>
|
||||
<AssemblyName>PackageIndexReferenceImplementation</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<MvcBuildViews>false</MvcBuildViews>
|
||||
</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>
|
||||
<CodeAnalysisRuleSet>..\..\OrchardBasicCorrectness.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.ServiceModel" />
|
||||
<Reference Include="System.Web.DynamicData" />
|
||||
<Reference Include="System.Web.Entity" />
|
||||
<Reference Include="System.Web.ApplicationServices" />
|
||||
<Reference Include="System.ComponentModel.DataAnnotations">
|
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||
</Reference>
|
||||
<Reference Include="System.Core">
|
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||
</Reference>
|
||||
<Reference Include="System.Data.DataSetExtensions">
|
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\lib\aspnetmvc\System.Web.Mvc.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml.Linq">
|
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||
</Reference>
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Web.Extensions">
|
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Abstractions" />
|
||||
<Reference Include="System.Web.Routing" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Web.Services" />
|
||||
<Reference Include="System.EnterpriseServices" />
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Controllers\AccountController.cs" />
|
||||
<Compile Include="Controllers\FeedController.cs" />
|
||||
<Compile Include="Controllers\Artifacts\AtomFeedResult.cs" />
|
||||
<Compile Include="Controllers\Artifacts\AtomItemResult.cs" />
|
||||
<Compile Include="Controllers\Artifacts\ContentTypeAttribute.cs" />
|
||||
<Compile Include="Controllers\HomeController.cs" />
|
||||
<Compile Include="Controllers\MediaController.cs" />
|
||||
<Compile Include="Controllers\Artifacts\XmlBodyAttribute.cs" />
|
||||
<Compile Include="Controllers\Artifacts\StreamResult.cs" />
|
||||
<Compile Include="Global.asax.cs">
|
||||
<DependentUpon>Global.asax</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Models\AccountModels.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Services\MediaStorage.cs" />
|
||||
<Compile Include="Services\FeedStorage.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Global.asax" />
|
||||
<Content Include="Web.config">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<Content Include="Web.Debug.config">
|
||||
<DependentUpon>Web.config</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="Web.Release.config">
|
||||
<DependentUpon>Web.config</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="Content\Site.css" />
|
||||
<Content Include="Scripts\jquery-1.4.1.js" />
|
||||
<Content Include="Scripts\jquery-1.4.1.min.js" />
|
||||
<Content Include="Scripts\jquery-1.4.1-vsdoc.js" />
|
||||
<Content Include="Scripts\jquery.validate.js" />
|
||||
<Content Include="Scripts\jquery.validate.min.js" />
|
||||
<Content Include="Scripts\jquery.validate-vsdoc.js" />
|
||||
<Content Include="Scripts\MicrosoftAjax.js" />
|
||||
<Content Include="Scripts\MicrosoftAjax.debug.js" />
|
||||
<Content Include="Scripts\MicrosoftMvcAjax.js" />
|
||||
<Content Include="Scripts\MicrosoftMvcAjax.debug.js" />
|
||||
<Content Include="Scripts\MicrosoftMvcValidation.js" />
|
||||
<Content Include="Scripts\MicrosoftMvcValidation.debug.js" />
|
||||
<Content Include="Views\Account\LogOn.aspx" />
|
||||
<Content Include="Views\Home\About.aspx" />
|
||||
<Content Include="Views\Home\Index.aspx" />
|
||||
<Content Include="Views\Shared\Error.aspx" />
|
||||
<Content Include="Views\Shared\LogOnUserControl.ascx" />
|
||||
<Content Include="Views\Shared\Site.Master" />
|
||||
<Content Include="Views\Web.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="App_Data\" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
|
||||
<!-- 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" Condition="'$(MvcBuildViews)'=='true'">
|
||||
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)" />
|
||||
</Target>
|
||||
<ProjectExtensions>
|
||||
<VisualStudio>
|
||||
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
|
||||
<WebProjectProperties>
|
||||
<UseIIS>False</UseIIS>
|
||||
<AutoAssignPort>False</AutoAssignPort>
|
||||
<DevelopmentServerPort>30321</DevelopmentServerPort>
|
||||
<DevelopmentServerVPath>/</DevelopmentServerVPath>
|
||||
<IISUrl>
|
||||
</IISUrl>
|
||||
<NTLMAuthentication>False</NTLMAuthentication>
|
||||
<UseCustomServer>True</UseCustomServer>
|
||||
<CustomServerUrl>http://orchard.codeplex.com</CustomServerUrl>
|
||||
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
|
||||
</WebProjectProperties>
|
||||
</FlavorProperties>
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
||||
@@ -1,20 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageIndexReferenceImplementation", "PackageIndexReferenceImplementation.csproj", "{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8A4E42CE-79F8-4BE2-8B1E-A6B83432123B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -1,34 +0,0 @@
|
||||
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("PackageIndexReferenceImplementation")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyProduct("PackageIndexReferenceImplementation")]
|
||||
[assembly: AssemblyCopyright("Copyright © Outercurve Foundation 2009")]
|
||||
[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("3bb5d96d-0769-4f3a-8235-79bec3a48918")]
|
||||
|
||||
// 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("0.8.0")]
|
||||
[assembly: AssemblyFileVersion("0.8.0")]
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -1,408 +0,0 @@
|
||||
//!----------------------------------------------------------
|
||||
//! Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
//!----------------------------------------------------------
|
||||
//! MicrosoftMvcAjax.js
|
||||
|
||||
Type.registerNamespace('Sys.Mvc');
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.AjaxOptions
|
||||
|
||||
Sys.Mvc.$create_AjaxOptions = function Sys_Mvc_AjaxOptions() { return {}; }
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.InsertionMode
|
||||
|
||||
Sys.Mvc.InsertionMode = function() {
|
||||
/// <field name="replace" type="Number" integer="true" static="true">
|
||||
/// </field>
|
||||
/// <field name="insertBefore" type="Number" integer="true" static="true">
|
||||
/// </field>
|
||||
/// <field name="insertAfter" type="Number" integer="true" static="true">
|
||||
/// </field>
|
||||
};
|
||||
Sys.Mvc.InsertionMode.prototype = {
|
||||
replace: 0,
|
||||
insertBefore: 1,
|
||||
insertAfter: 2
|
||||
}
|
||||
Sys.Mvc.InsertionMode.registerEnum('Sys.Mvc.InsertionMode', false);
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.AjaxContext
|
||||
|
||||
Sys.Mvc.AjaxContext = function Sys_Mvc_AjaxContext(request, updateTarget, loadingElement, insertionMode) {
|
||||
/// <param name="request" type="Sys.Net.WebRequest">
|
||||
/// </param>
|
||||
/// <param name="updateTarget" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="loadingElement" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="insertionMode" type="Sys.Mvc.InsertionMode">
|
||||
/// </param>
|
||||
/// <field name="_insertionMode" type="Sys.Mvc.InsertionMode">
|
||||
/// </field>
|
||||
/// <field name="_loadingElement" type="Object" domElement="true">
|
||||
/// </field>
|
||||
/// <field name="_response" type="Sys.Net.WebRequestExecutor">
|
||||
/// </field>
|
||||
/// <field name="_request" type="Sys.Net.WebRequest">
|
||||
/// </field>
|
||||
/// <field name="_updateTarget" type="Object" domElement="true">
|
||||
/// </field>
|
||||
this._request = request;
|
||||
this._updateTarget = updateTarget;
|
||||
this._loadingElement = loadingElement;
|
||||
this._insertionMode = insertionMode;
|
||||
}
|
||||
Sys.Mvc.AjaxContext.prototype = {
|
||||
_insertionMode: 0,
|
||||
_loadingElement: null,
|
||||
_response: null,
|
||||
_request: null,
|
||||
_updateTarget: null,
|
||||
|
||||
get_data: function Sys_Mvc_AjaxContext$get_data() {
|
||||
/// <value type="String"></value>
|
||||
if (this._response) {
|
||||
return this._response.get_responseData();
|
||||
}
|
||||
else {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
|
||||
get_insertionMode: function Sys_Mvc_AjaxContext$get_insertionMode() {
|
||||
/// <value type="Sys.Mvc.InsertionMode"></value>
|
||||
return this._insertionMode;
|
||||
},
|
||||
|
||||
get_loadingElement: function Sys_Mvc_AjaxContext$get_loadingElement() {
|
||||
/// <value type="Object" domElement="true"></value>
|
||||
return this._loadingElement;
|
||||
},
|
||||
|
||||
get_object: function Sys_Mvc_AjaxContext$get_object() {
|
||||
/// <value type="Object"></value>
|
||||
var executor = this.get_response();
|
||||
return (executor) ? executor.get_object() : null;
|
||||
},
|
||||
|
||||
get_response: function Sys_Mvc_AjaxContext$get_response() {
|
||||
/// <value type="Sys.Net.WebRequestExecutor"></value>
|
||||
return this._response;
|
||||
},
|
||||
set_response: function Sys_Mvc_AjaxContext$set_response(value) {
|
||||
/// <value type="Sys.Net.WebRequestExecutor"></value>
|
||||
this._response = value;
|
||||
return value;
|
||||
},
|
||||
|
||||
get_request: function Sys_Mvc_AjaxContext$get_request() {
|
||||
/// <value type="Sys.Net.WebRequest"></value>
|
||||
return this._request;
|
||||
},
|
||||
|
||||
get_updateTarget: function Sys_Mvc_AjaxContext$get_updateTarget() {
|
||||
/// <value type="Object" domElement="true"></value>
|
||||
return this._updateTarget;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.AsyncHyperlink
|
||||
|
||||
Sys.Mvc.AsyncHyperlink = function Sys_Mvc_AsyncHyperlink() {
|
||||
}
|
||||
Sys.Mvc.AsyncHyperlink.handleClick = function Sys_Mvc_AsyncHyperlink$handleClick(anchor, evt, ajaxOptions) {
|
||||
/// <param name="anchor" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="evt" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
/// <param name="ajaxOptions" type="Sys.Mvc.AjaxOptions">
|
||||
/// </param>
|
||||
evt.preventDefault();
|
||||
Sys.Mvc.MvcHelpers._asyncRequest(anchor.href, 'post', '', anchor, ajaxOptions);
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.MvcHelpers
|
||||
|
||||
Sys.Mvc.MvcHelpers = function Sys_Mvc_MvcHelpers() {
|
||||
}
|
||||
Sys.Mvc.MvcHelpers._serializeSubmitButton = function Sys_Mvc_MvcHelpers$_serializeSubmitButton(element, offsetX, offsetY) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="offsetX" type="Number" integer="true">
|
||||
/// </param>
|
||||
/// <param name="offsetY" type="Number" integer="true">
|
||||
/// </param>
|
||||
/// <returns type="String"></returns>
|
||||
if (element.disabled) {
|
||||
return null;
|
||||
}
|
||||
var name = element.name;
|
||||
if (name) {
|
||||
var tagName = element.tagName.toUpperCase();
|
||||
var encodedName = encodeURIComponent(name);
|
||||
var inputElement = element;
|
||||
if (tagName === 'INPUT') {
|
||||
var type = inputElement.type;
|
||||
if (type === 'submit') {
|
||||
return encodedName + '=' + encodeURIComponent(inputElement.value);
|
||||
}
|
||||
else if (type === 'image') {
|
||||
return encodedName + '.x=' + offsetX + '&' + encodedName + '.y=' + offsetY;
|
||||
}
|
||||
}
|
||||
else if ((tagName === 'BUTTON') && (name.length) && (inputElement.type === 'submit')) {
|
||||
return encodedName + '=' + encodeURIComponent(inputElement.value);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
Sys.Mvc.MvcHelpers._serializeForm = function Sys_Mvc_MvcHelpers$_serializeForm(form) {
|
||||
/// <param name="form" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <returns type="String"></returns>
|
||||
var formElements = form.elements;
|
||||
var formBody = new Sys.StringBuilder();
|
||||
var count = formElements.length;
|
||||
for (var i = 0; i < count; i++) {
|
||||
var element = formElements[i];
|
||||
var name = element.name;
|
||||
if (!name || !name.length) {
|
||||
continue;
|
||||
}
|
||||
var tagName = element.tagName.toUpperCase();
|
||||
if (tagName === 'INPUT') {
|
||||
var inputElement = element;
|
||||
var type = inputElement.type;
|
||||
if ((type === 'text') || (type === 'password') || (type === 'hidden') || (((type === 'checkbox') || (type === 'radio')) && element.checked)) {
|
||||
formBody.append(encodeURIComponent(name));
|
||||
formBody.append('=');
|
||||
formBody.append(encodeURIComponent(inputElement.value));
|
||||
formBody.append('&');
|
||||
}
|
||||
}
|
||||
else if (tagName === 'SELECT') {
|
||||
var selectElement = element;
|
||||
var optionCount = selectElement.options.length;
|
||||
for (var j = 0; j < optionCount; j++) {
|
||||
var optionElement = selectElement.options[j];
|
||||
if (optionElement.selected) {
|
||||
formBody.append(encodeURIComponent(name));
|
||||
formBody.append('=');
|
||||
formBody.append(encodeURIComponent(optionElement.value));
|
||||
formBody.append('&');
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (tagName === 'TEXTAREA') {
|
||||
formBody.append(encodeURIComponent(name));
|
||||
formBody.append('=');
|
||||
formBody.append(encodeURIComponent((element.value)));
|
||||
formBody.append('&');
|
||||
}
|
||||
}
|
||||
var additionalInput = form._additionalInput;
|
||||
if (additionalInput) {
|
||||
formBody.append(additionalInput);
|
||||
formBody.append('&');
|
||||
}
|
||||
return formBody.toString();
|
||||
}
|
||||
Sys.Mvc.MvcHelpers._asyncRequest = function Sys_Mvc_MvcHelpers$_asyncRequest(url, verb, body, triggerElement, ajaxOptions) {
|
||||
/// <param name="url" type="String">
|
||||
/// </param>
|
||||
/// <param name="verb" type="String">
|
||||
/// </param>
|
||||
/// <param name="body" type="String">
|
||||
/// </param>
|
||||
/// <param name="triggerElement" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="ajaxOptions" type="Sys.Mvc.AjaxOptions">
|
||||
/// </param>
|
||||
if (ajaxOptions.confirm) {
|
||||
if (!confirm(ajaxOptions.confirm)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (ajaxOptions.url) {
|
||||
url = ajaxOptions.url;
|
||||
}
|
||||
if (ajaxOptions.httpMethod) {
|
||||
verb = ajaxOptions.httpMethod;
|
||||
}
|
||||
if (body.length > 0 && !body.endsWith('&')) {
|
||||
body += '&';
|
||||
}
|
||||
body += 'X-Requested-With=XMLHttpRequest';
|
||||
var upperCaseVerb = verb.toUpperCase();
|
||||
var isGetOrPost = (upperCaseVerb === 'GET' || upperCaseVerb === 'POST');
|
||||
if (!isGetOrPost) {
|
||||
body += '&';
|
||||
body += 'X-HTTP-Method-Override=' + upperCaseVerb;
|
||||
}
|
||||
var requestBody = '';
|
||||
if (upperCaseVerb === 'GET' || upperCaseVerb === 'DELETE') {
|
||||
if (url.indexOf('?') > -1) {
|
||||
if (!url.endsWith('&')) {
|
||||
url += '&';
|
||||
}
|
||||
url += body;
|
||||
}
|
||||
else {
|
||||
url += '?';
|
||||
url += body;
|
||||
}
|
||||
}
|
||||
else {
|
||||
requestBody = body;
|
||||
}
|
||||
var request = new Sys.Net.WebRequest();
|
||||
request.set_url(url);
|
||||
if (isGetOrPost) {
|
||||
request.set_httpVerb(verb);
|
||||
}
|
||||
else {
|
||||
request.set_httpVerb('POST');
|
||||
request.get_headers()['X-HTTP-Method-Override'] = upperCaseVerb;
|
||||
}
|
||||
request.set_body(requestBody);
|
||||
if (verb.toUpperCase() === 'PUT') {
|
||||
request.get_headers()['Content-Type'] = 'application/x-www-form-urlencoded;';
|
||||
}
|
||||
request.get_headers()['X-Requested-With'] = 'XMLHttpRequest';
|
||||
var updateElement = null;
|
||||
if (ajaxOptions.updateTargetId) {
|
||||
updateElement = $get(ajaxOptions.updateTargetId);
|
||||
}
|
||||
var loadingElement = null;
|
||||
if (ajaxOptions.loadingElementId) {
|
||||
loadingElement = $get(ajaxOptions.loadingElementId);
|
||||
}
|
||||
var ajaxContext = new Sys.Mvc.AjaxContext(request, updateElement, loadingElement, ajaxOptions.insertionMode);
|
||||
var continueRequest = true;
|
||||
if (ajaxOptions.onBegin) {
|
||||
continueRequest = ajaxOptions.onBegin(ajaxContext) !== false;
|
||||
}
|
||||
if (loadingElement) {
|
||||
Sys.UI.DomElement.setVisible(ajaxContext.get_loadingElement(), true);
|
||||
}
|
||||
if (continueRequest) {
|
||||
request.add_completed(Function.createDelegate(null, function(executor) {
|
||||
Sys.Mvc.MvcHelpers._onComplete(request, ajaxOptions, ajaxContext);
|
||||
}));
|
||||
request.invoke();
|
||||
}
|
||||
}
|
||||
Sys.Mvc.MvcHelpers._onComplete = function Sys_Mvc_MvcHelpers$_onComplete(request, ajaxOptions, ajaxContext) {
|
||||
/// <param name="request" type="Sys.Net.WebRequest">
|
||||
/// </param>
|
||||
/// <param name="ajaxOptions" type="Sys.Mvc.AjaxOptions">
|
||||
/// </param>
|
||||
/// <param name="ajaxContext" type="Sys.Mvc.AjaxContext">
|
||||
/// </param>
|
||||
ajaxContext.set_response(request.get_executor());
|
||||
if (ajaxOptions.onComplete && ajaxOptions.onComplete(ajaxContext) === false) {
|
||||
return;
|
||||
}
|
||||
var statusCode = ajaxContext.get_response().get_statusCode();
|
||||
if ((statusCode >= 200 && statusCode < 300) || statusCode === 304 || statusCode === 1223) {
|
||||
if (statusCode !== 204 && statusCode !== 304 && statusCode !== 1223) {
|
||||
var contentType = ajaxContext.get_response().getResponseHeader('Content-Type');
|
||||
if ((contentType) && (contentType.indexOf('application/x-javascript') !== -1)) {
|
||||
eval(ajaxContext.get_data());
|
||||
}
|
||||
else {
|
||||
Sys.Mvc.MvcHelpers.updateDomElement(ajaxContext.get_updateTarget(), ajaxContext.get_insertionMode(), ajaxContext.get_data());
|
||||
}
|
||||
}
|
||||
if (ajaxOptions.onSuccess) {
|
||||
ajaxOptions.onSuccess(ajaxContext);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (ajaxOptions.onFailure) {
|
||||
ajaxOptions.onFailure(ajaxContext);
|
||||
}
|
||||
}
|
||||
if (ajaxContext.get_loadingElement()) {
|
||||
Sys.UI.DomElement.setVisible(ajaxContext.get_loadingElement(), false);
|
||||
}
|
||||
}
|
||||
Sys.Mvc.MvcHelpers.updateDomElement = function Sys_Mvc_MvcHelpers$updateDomElement(target, insertionMode, content) {
|
||||
/// <param name="target" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="insertionMode" type="Sys.Mvc.InsertionMode">
|
||||
/// </param>
|
||||
/// <param name="content" type="String">
|
||||
/// </param>
|
||||
if (target) {
|
||||
switch (insertionMode) {
|
||||
case Sys.Mvc.InsertionMode.replace:
|
||||
target.innerHTML = content;
|
||||
break;
|
||||
case Sys.Mvc.InsertionMode.insertBefore:
|
||||
if (content && content.length > 0) {
|
||||
target.innerHTML = content + target.innerHTML.trimStart();
|
||||
}
|
||||
break;
|
||||
case Sys.Mvc.InsertionMode.insertAfter:
|
||||
if (content && content.length > 0) {
|
||||
target.innerHTML = target.innerHTML.trimEnd() + content;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.AsyncForm
|
||||
|
||||
Sys.Mvc.AsyncForm = function Sys_Mvc_AsyncForm() {
|
||||
}
|
||||
Sys.Mvc.AsyncForm.handleClick = function Sys_Mvc_AsyncForm$handleClick(form, evt) {
|
||||
/// <param name="form" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="evt" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
var additionalInput = Sys.Mvc.MvcHelpers._serializeSubmitButton(evt.target, evt.offsetX, evt.offsetY);
|
||||
form._additionalInput = additionalInput;
|
||||
}
|
||||
Sys.Mvc.AsyncForm.handleSubmit = function Sys_Mvc_AsyncForm$handleSubmit(form, evt, ajaxOptions) {
|
||||
/// <param name="form" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="evt" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
/// <param name="ajaxOptions" type="Sys.Mvc.AjaxOptions">
|
||||
/// </param>
|
||||
evt.preventDefault();
|
||||
var validationCallbacks = form.validationCallbacks;
|
||||
if (validationCallbacks) {
|
||||
for (var i = 0; i < validationCallbacks.length; i++) {
|
||||
var callback = validationCallbacks[i];
|
||||
if (!callback()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
var body = Sys.Mvc.MvcHelpers._serializeForm(form);
|
||||
Sys.Mvc.MvcHelpers._asyncRequest(form.action, form.method || 'post', body, form, ajaxOptions);
|
||||
}
|
||||
|
||||
|
||||
Sys.Mvc.AjaxContext.registerClass('Sys.Mvc.AjaxContext');
|
||||
Sys.Mvc.AsyncHyperlink.registerClass('Sys.Mvc.AsyncHyperlink');
|
||||
Sys.Mvc.MvcHelpers.registerClass('Sys.Mvc.MvcHelpers');
|
||||
Sys.Mvc.AsyncForm.registerClass('Sys.Mvc.AsyncForm');
|
||||
|
||||
// ---- Do not remove this footer ----
|
||||
// Generated using Script# v0.5.0.0 (http://projects.nikhilk.net)
|
||||
// -----------------------------------
|
||||
@@ -1,25 +0,0 @@
|
||||
//----------------------------------------------------------
|
||||
// Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
//----------------------------------------------------------
|
||||
// MicrosoftMvcAjax.js
|
||||
|
||||
Type.registerNamespace('Sys.Mvc');Sys.Mvc.$create_AjaxOptions=function(){return {};}
|
||||
Sys.Mvc.InsertionMode=function(){};Sys.Mvc.InsertionMode.prototype = {replace:0,insertBefore:1,insertAfter:2}
|
||||
Sys.Mvc.InsertionMode.registerEnum('Sys.Mvc.InsertionMode',false);Sys.Mvc.AjaxContext=function(request,updateTarget,loadingElement,insertionMode){this.$3=request;this.$4=updateTarget;this.$1=loadingElement;this.$0=insertionMode;}
|
||||
Sys.Mvc.AjaxContext.prototype={$0:0,$1:null,$2:null,$3:null,$4:null,get_data:function(){if(this.$2){return this.$2.get_responseData();}else{return null;}},get_insertionMode:function(){return this.$0;},get_loadingElement:function(){return this.$1;},get_object:function(){var $0=this.get_response();return ($0)?$0.get_object():null;},get_response:function(){return this.$2;},set_response:function(value){this.$2=value;return value;},get_request:function(){return this.$3;},get_updateTarget:function(){return this.$4;}}
|
||||
Sys.Mvc.AsyncHyperlink=function(){}
|
||||
Sys.Mvc.AsyncHyperlink.handleClick=function(anchor,evt,ajaxOptions){evt.preventDefault();Sys.Mvc.MvcHelpers.$2(anchor.href,'post','',anchor,ajaxOptions);}
|
||||
Sys.Mvc.MvcHelpers=function(){}
|
||||
Sys.Mvc.MvcHelpers.$0=function($p0,$p1,$p2){if($p0.disabled){return null;}var $0=$p0.name;if($0){var $1=$p0.tagName.toUpperCase();var $2=encodeURIComponent($0);var $3=$p0;if($1==='INPUT'){var $4=$3.type;if($4==='submit'){return $2+'='+encodeURIComponent($3.value);}else if($4==='image'){return $2+'.x='+$p1+'&'+$2+'.y='+$p2;}}else if(($1==='BUTTON')&&($0.length)&&($3.type==='submit')){return $2+'='+encodeURIComponent($3.value);}}return null;}
|
||||
Sys.Mvc.MvcHelpers.$1=function($p0){var $0=$p0.elements;var $1=new Sys.StringBuilder();var $2=$0.length;for(var $4=0;$4<$2;$4++){var $5=$0[$4];var $6=$5.name;if(!$6||!$6.length){continue;}var $7=$5.tagName.toUpperCase();if($7==='INPUT'){var $8=$5;var $9=$8.type;if(($9==='text')||($9==='password')||($9==='hidden')||((($9==='checkbox')||($9==='radio'))&&$5.checked)){$1.append(encodeURIComponent($6));$1.append('=');$1.append(encodeURIComponent($8.value));$1.append('&');}}else if($7==='SELECT'){var $A=$5;var $B=$A.options.length;for(var $C=0;$C<$B;$C++){var $D=$A.options[$C];if($D.selected){$1.append(encodeURIComponent($6));$1.append('=');$1.append(encodeURIComponent($D.value));$1.append('&');}}}else if($7==='TEXTAREA'){$1.append(encodeURIComponent($6));$1.append('=');$1.append(encodeURIComponent(($5.value)));$1.append('&');}}var $3=$p0._additionalInput;if($3){$1.append($3);$1.append('&');}return $1.toString();}
|
||||
Sys.Mvc.MvcHelpers.$2=function($p0,$p1,$p2,$p3,$p4){if($p4.confirm){if(!confirm($p4.confirm)){return;}}if($p4.url){$p0=$p4.url;}if($p4.httpMethod){$p1=$p4.httpMethod;}if($p2.length>0&&!$p2.endsWith('&')){$p2+='&';}$p2+='X-Requested-With=XMLHttpRequest';var $0=$p1.toUpperCase();var $1=($0==='GET'||$0==='POST');if(!$1){$p2+='&';$p2+='X-HTTP-Method-Override='+$0;}var $2='';if($0==='GET'||$0==='DELETE'){if($p0.indexOf('?')>-1){if(!$p0.endsWith('&')){$p0+='&';}$p0+=$p2;}else{$p0+='?';$p0+=$p2;}}else{$2=$p2;}var $3=new Sys.Net.WebRequest();$3.set_url($p0);if($1){$3.set_httpVerb($p1);}else{$3.set_httpVerb('POST');$3.get_headers()['X-HTTP-Method-Override']=$0;}$3.set_body($2);if($p1.toUpperCase()==='PUT'){$3.get_headers()['Content-Type']='application/x-www-form-urlencoded;';}$3.get_headers()['X-Requested-With']='XMLHttpRequest';var $4=null;if($p4.updateTargetId){$4=$get($p4.updateTargetId);}var $5=null;if($p4.loadingElementId){$5=$get($p4.loadingElementId);}var $6=new Sys.Mvc.AjaxContext($3,$4,$5,$p4.insertionMode);var $7=true;if($p4.onBegin){$7=$p4.onBegin($6)!==false;}if($5){Sys.UI.DomElement.setVisible($6.get_loadingElement(),true);}if($7){$3.add_completed(Function.createDelegate(null,function($p1_0){
|
||||
Sys.Mvc.MvcHelpers.$3($3,$p4,$6);}));$3.invoke();}}
|
||||
Sys.Mvc.MvcHelpers.$3=function($p0,$p1,$p2){$p2.set_response($p0.get_executor());if($p1.onComplete&&$p1.onComplete($p2)===false){return;}var $0=$p2.get_response().get_statusCode();if(($0>=200&&$0<300)||$0===304||$0===1223){if($0!==204&&$0!==304&&$0!==1223){var $1=$p2.get_response().getResponseHeader('Content-Type');if(($1)&&($1.indexOf('application/x-javascript')!==-1)){eval($p2.get_data());}else{Sys.Mvc.MvcHelpers.updateDomElement($p2.get_updateTarget(),$p2.get_insertionMode(),$p2.get_data());}}if($p1.onSuccess){$p1.onSuccess($p2);}}else{if($p1.onFailure){$p1.onFailure($p2);}}if($p2.get_loadingElement()){Sys.UI.DomElement.setVisible($p2.get_loadingElement(),false);}}
|
||||
Sys.Mvc.MvcHelpers.updateDomElement=function(target,insertionMode,content){if(target){switch(insertionMode){case 0:target.innerHTML=content;break;case 1:if(content&&content.length>0){target.innerHTML=content+target.innerHTML.trimStart();}break;case 2:if(content&&content.length>0){target.innerHTML=target.innerHTML.trimEnd()+content;}break;}}}
|
||||
Sys.Mvc.AsyncForm=function(){}
|
||||
Sys.Mvc.AsyncForm.handleClick=function(form,evt){var $0=Sys.Mvc.MvcHelpers.$0(evt.target,evt.offsetX,evt.offsetY);form._additionalInput = $0;}
|
||||
Sys.Mvc.AsyncForm.handleSubmit=function(form,evt,ajaxOptions){evt.preventDefault();var $0=form.validationCallbacks;if($0){for(var $2=0;$2<$0.length;$2++){var $3=$0[$2];if(!$3()){return;}}}var $1=Sys.Mvc.MvcHelpers.$1(form);Sys.Mvc.MvcHelpers.$2(form.action,form.method||'post',$1,form,ajaxOptions);}
|
||||
Sys.Mvc.AjaxContext.registerClass('Sys.Mvc.AjaxContext');Sys.Mvc.AsyncHyperlink.registerClass('Sys.Mvc.AsyncHyperlink');Sys.Mvc.MvcHelpers.registerClass('Sys.Mvc.MvcHelpers');Sys.Mvc.AsyncForm.registerClass('Sys.Mvc.AsyncForm');
|
||||
// ---- Do not remove this footer ----
|
||||
// Generated using Script# v0.5.0.0 (http://projects.nikhilk.net)
|
||||
// -----------------------------------
|
||||
@@ -1,881 +0,0 @@
|
||||
//!----------------------------------------------------------
|
||||
//! Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
//!----------------------------------------------------------
|
||||
//! MicrosoftMvcValidation.js
|
||||
|
||||
|
||||
Type.registerNamespace('Sys.Mvc');
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.Validation
|
||||
|
||||
Sys.Mvc.$create_Validation = function Sys_Mvc_Validation() { return {}; }
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.JsonValidationField
|
||||
|
||||
Sys.Mvc.$create_JsonValidationField = function Sys_Mvc_JsonValidationField() { return {}; }
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.JsonValidationOptions
|
||||
|
||||
Sys.Mvc.$create_JsonValidationOptions = function Sys_Mvc_JsonValidationOptions() { return {}; }
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.JsonValidationRule
|
||||
|
||||
Sys.Mvc.$create_JsonValidationRule = function Sys_Mvc_JsonValidationRule() { return {}; }
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.ValidationContext
|
||||
|
||||
Sys.Mvc.$create_ValidationContext = function Sys_Mvc_ValidationContext() { return {}; }
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.NumberValidator
|
||||
|
||||
Sys.Mvc.NumberValidator = function Sys_Mvc_NumberValidator() {
|
||||
}
|
||||
Sys.Mvc.NumberValidator.create = function Sys_Mvc_NumberValidator$create(rule) {
|
||||
/// <param name="rule" type="Sys.Mvc.JsonValidationRule">
|
||||
/// </param>
|
||||
/// <returns type="Sys.Mvc.Validator"></returns>
|
||||
return Function.createDelegate(new Sys.Mvc.NumberValidator(), new Sys.Mvc.NumberValidator().validate);
|
||||
}
|
||||
Sys.Mvc.NumberValidator.prototype = {
|
||||
|
||||
validate: function Sys_Mvc_NumberValidator$validate(value, context) {
|
||||
/// <param name="value" type="String">
|
||||
/// </param>
|
||||
/// <param name="context" type="Sys.Mvc.ValidationContext">
|
||||
/// </param>
|
||||
/// <returns type="Object"></returns>
|
||||
if (Sys.Mvc._validationUtil.stringIsNullOrEmpty(value)) {
|
||||
return true;
|
||||
}
|
||||
var n = Number.parseLocale(value);
|
||||
return (!isNaN(n));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.FormContext
|
||||
|
||||
Sys.Mvc.FormContext = function Sys_Mvc_FormContext(formElement, validationSummaryElement) {
|
||||
/// <param name="formElement" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="validationSummaryElement" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <field name="_validationSummaryErrorCss" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_validationSummaryValidCss" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_formValidationTag" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_onClickHandler" type="Sys.UI.DomEventHandler">
|
||||
/// </field>
|
||||
/// <field name="_onSubmitHandler" type="Sys.UI.DomEventHandler">
|
||||
/// </field>
|
||||
/// <field name="_errors" type="Array">
|
||||
/// </field>
|
||||
/// <field name="_submitButtonClicked" type="Object" domElement="true">
|
||||
/// </field>
|
||||
/// <field name="_validationSummaryElement" type="Object" domElement="true">
|
||||
/// </field>
|
||||
/// <field name="_validationSummaryULElement" type="Object" domElement="true">
|
||||
/// </field>
|
||||
/// <field name="fields" type="Array" elementType="FieldContext">
|
||||
/// </field>
|
||||
/// <field name="_formElement" type="Object" domElement="true">
|
||||
/// </field>
|
||||
/// <field name="replaceValidationSummary" type="Boolean">
|
||||
/// </field>
|
||||
this._errors = [];
|
||||
this.fields = new Array(0);
|
||||
this._formElement = formElement;
|
||||
this._validationSummaryElement = validationSummaryElement;
|
||||
formElement[Sys.Mvc.FormContext._formValidationTag] = this;
|
||||
if (validationSummaryElement) {
|
||||
var ulElements = validationSummaryElement.getElementsByTagName('ul');
|
||||
if (ulElements.length > 0) {
|
||||
this._validationSummaryULElement = ulElements[0];
|
||||
}
|
||||
}
|
||||
this._onClickHandler = Function.createDelegate(this, this._form_OnClick);
|
||||
this._onSubmitHandler = Function.createDelegate(this, this._form_OnSubmit);
|
||||
}
|
||||
Sys.Mvc.FormContext._Application_Load = function Sys_Mvc_FormContext$_Application_Load() {
|
||||
var allFormOptions = window.mvcClientValidationMetadata;
|
||||
if (allFormOptions) {
|
||||
while (allFormOptions.length > 0) {
|
||||
var thisFormOptions = allFormOptions.pop();
|
||||
Sys.Mvc.FormContext._parseJsonOptions(thisFormOptions);
|
||||
}
|
||||
}
|
||||
}
|
||||
Sys.Mvc.FormContext._getFormElementsWithName = function Sys_Mvc_FormContext$_getFormElementsWithName(formElement, name) {
|
||||
/// <param name="formElement" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="name" type="String">
|
||||
/// </param>
|
||||
/// <returns type="Array" elementType="Object" elementDomElement="true"></returns>
|
||||
var allElementsWithNameInForm = [];
|
||||
var allElementsWithName = document.getElementsByName(name);
|
||||
for (var i = 0; i < allElementsWithName.length; i++) {
|
||||
var thisElement = allElementsWithName[i];
|
||||
if (Sys.Mvc.FormContext._isElementInHierarchy(formElement, thisElement)) {
|
||||
Array.add(allElementsWithNameInForm, thisElement);
|
||||
}
|
||||
}
|
||||
return allElementsWithNameInForm;
|
||||
}
|
||||
Sys.Mvc.FormContext.getValidationForForm = function Sys_Mvc_FormContext$getValidationForForm(formElement) {
|
||||
/// <param name="formElement" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <returns type="Sys.Mvc.FormContext"></returns>
|
||||
return formElement[Sys.Mvc.FormContext._formValidationTag];
|
||||
}
|
||||
Sys.Mvc.FormContext._isElementInHierarchy = function Sys_Mvc_FormContext$_isElementInHierarchy(parent, child) {
|
||||
/// <param name="parent" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="child" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <returns type="Boolean"></returns>
|
||||
while (child) {
|
||||
if (parent === child) {
|
||||
return true;
|
||||
}
|
||||
child = child.parentNode;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Sys.Mvc.FormContext._parseJsonOptions = function Sys_Mvc_FormContext$_parseJsonOptions(options) {
|
||||
/// <param name="options" type="Sys.Mvc.JsonValidationOptions">
|
||||
/// </param>
|
||||
/// <returns type="Sys.Mvc.FormContext"></returns>
|
||||
var formElement = $get(options.FormId);
|
||||
var validationSummaryElement = (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(options.ValidationSummaryId)) ? $get(options.ValidationSummaryId) : null;
|
||||
var formContext = new Sys.Mvc.FormContext(formElement, validationSummaryElement);
|
||||
formContext.enableDynamicValidation();
|
||||
formContext.replaceValidationSummary = options.ReplaceValidationSummary;
|
||||
for (var i = 0; i < options.Fields.length; i++) {
|
||||
var field = options.Fields[i];
|
||||
var fieldElements = Sys.Mvc.FormContext._getFormElementsWithName(formElement, field.FieldName);
|
||||
var validationMessageElement = (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(field.ValidationMessageId)) ? $get(field.ValidationMessageId) : null;
|
||||
var fieldContext = new Sys.Mvc.FieldContext(formContext);
|
||||
Array.addRange(fieldContext.elements, fieldElements);
|
||||
fieldContext.validationMessageElement = validationMessageElement;
|
||||
fieldContext.replaceValidationMessageContents = field.ReplaceValidationMessageContents;
|
||||
for (var j = 0; j < field.ValidationRules.length; j++) {
|
||||
var rule = field.ValidationRules[j];
|
||||
var validator = Sys.Mvc.ValidatorRegistry.getValidator(rule);
|
||||
if (validator) {
|
||||
var validation = Sys.Mvc.$create_Validation();
|
||||
validation.fieldErrorMessage = rule.ErrorMessage;
|
||||
validation.validator = validator;
|
||||
Array.add(fieldContext.validations, validation);
|
||||
}
|
||||
}
|
||||
fieldContext.enableDynamicValidation();
|
||||
Array.add(formContext.fields, fieldContext);
|
||||
}
|
||||
var registeredValidatorCallbacks = formElement.validationCallbacks;
|
||||
if (!registeredValidatorCallbacks) {
|
||||
registeredValidatorCallbacks = [];
|
||||
formElement.validationCallbacks = registeredValidatorCallbacks;
|
||||
}
|
||||
registeredValidatorCallbacks.push(Function.createDelegate(null, function() {
|
||||
return Sys.Mvc._validationUtil.arrayIsNullOrEmpty(formContext.validate('submit'));
|
||||
}));
|
||||
return formContext;
|
||||
}
|
||||
Sys.Mvc.FormContext.prototype = {
|
||||
_onClickHandler: null,
|
||||
_onSubmitHandler: null,
|
||||
_submitButtonClicked: null,
|
||||
_validationSummaryElement: null,
|
||||
_validationSummaryULElement: null,
|
||||
_formElement: null,
|
||||
replaceValidationSummary: false,
|
||||
|
||||
addError: function Sys_Mvc_FormContext$addError(message) {
|
||||
/// <param name="message" type="String">
|
||||
/// </param>
|
||||
this.addErrors([ message ]);
|
||||
},
|
||||
|
||||
addErrors: function Sys_Mvc_FormContext$addErrors(messages) {
|
||||
/// <param name="messages" type="Array" elementType="String">
|
||||
/// </param>
|
||||
if (!Sys.Mvc._validationUtil.arrayIsNullOrEmpty(messages)) {
|
||||
Array.addRange(this._errors, messages);
|
||||
this._onErrorCountChanged();
|
||||
}
|
||||
},
|
||||
|
||||
clearErrors: function Sys_Mvc_FormContext$clearErrors() {
|
||||
Array.clear(this._errors);
|
||||
this._onErrorCountChanged();
|
||||
},
|
||||
|
||||
_displayError: function Sys_Mvc_FormContext$_displayError() {
|
||||
if (this._validationSummaryElement) {
|
||||
if (this._validationSummaryULElement) {
|
||||
Sys.Mvc._validationUtil.removeAllChildren(this._validationSummaryULElement);
|
||||
for (var i = 0; i < this._errors.length; i++) {
|
||||
var liElement = document.createElement('li');
|
||||
Sys.Mvc._validationUtil.setInnerText(liElement, this._errors[i]);
|
||||
this._validationSummaryULElement.appendChild(liElement);
|
||||
}
|
||||
}
|
||||
Sys.UI.DomElement.removeCssClass(this._validationSummaryElement, Sys.Mvc.FormContext._validationSummaryValidCss);
|
||||
Sys.UI.DomElement.addCssClass(this._validationSummaryElement, Sys.Mvc.FormContext._validationSummaryErrorCss);
|
||||
}
|
||||
},
|
||||
|
||||
_displaySuccess: function Sys_Mvc_FormContext$_displaySuccess() {
|
||||
var validationSummaryElement = this._validationSummaryElement;
|
||||
if (validationSummaryElement) {
|
||||
var validationSummaryULElement = this._validationSummaryULElement;
|
||||
if (validationSummaryULElement) {
|
||||
validationSummaryULElement.innerHTML = '';
|
||||
}
|
||||
Sys.UI.DomElement.removeCssClass(validationSummaryElement, Sys.Mvc.FormContext._validationSummaryErrorCss);
|
||||
Sys.UI.DomElement.addCssClass(validationSummaryElement, Sys.Mvc.FormContext._validationSummaryValidCss);
|
||||
}
|
||||
},
|
||||
|
||||
enableDynamicValidation: function Sys_Mvc_FormContext$enableDynamicValidation() {
|
||||
Sys.UI.DomEvent.addHandler(this._formElement, 'click', this._onClickHandler);
|
||||
Sys.UI.DomEvent.addHandler(this._formElement, 'submit', this._onSubmitHandler);
|
||||
},
|
||||
|
||||
_findSubmitButton: function Sys_Mvc_FormContext$_findSubmitButton(element) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <returns type="Object" domElement="true"></returns>
|
||||
if (element.disabled) {
|
||||
return null;
|
||||
}
|
||||
var tagName = element.tagName.toUpperCase();
|
||||
var inputElement = element;
|
||||
if (tagName === 'INPUT') {
|
||||
var type = inputElement.type;
|
||||
if (type === 'submit' || type === 'image') {
|
||||
return inputElement;
|
||||
}
|
||||
}
|
||||
else if ((tagName === 'BUTTON') && (inputElement.type === 'submit')) {
|
||||
return inputElement;
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
_form_OnClick: function Sys_Mvc_FormContext$_form_OnClick(e) {
|
||||
/// <param name="e" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
this._submitButtonClicked = this._findSubmitButton(e.target);
|
||||
},
|
||||
|
||||
_form_OnSubmit: function Sys_Mvc_FormContext$_form_OnSubmit(e) {
|
||||
/// <param name="e" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
var form = e.target;
|
||||
var submitButton = this._submitButtonClicked;
|
||||
if (submitButton && submitButton.disableValidation) {
|
||||
return;
|
||||
}
|
||||
var errorMessages = this.validate('submit');
|
||||
if (!Sys.Mvc._validationUtil.arrayIsNullOrEmpty(errorMessages)) {
|
||||
e.preventDefault();
|
||||
}
|
||||
},
|
||||
|
||||
_onErrorCountChanged: function Sys_Mvc_FormContext$_onErrorCountChanged() {
|
||||
if (!this._errors.length) {
|
||||
this._displaySuccess();
|
||||
}
|
||||
else {
|
||||
this._displayError();
|
||||
}
|
||||
},
|
||||
|
||||
validate: function Sys_Mvc_FormContext$validate(eventName) {
|
||||
/// <param name="eventName" type="String">
|
||||
/// </param>
|
||||
/// <returns type="Array" elementType="String"></returns>
|
||||
var fields = this.fields;
|
||||
var errors = [];
|
||||
for (var i = 0; i < fields.length; i++) {
|
||||
var field = fields[i];
|
||||
var thisErrors = field.validate(eventName);
|
||||
if (thisErrors) {
|
||||
Array.addRange(errors, thisErrors);
|
||||
}
|
||||
}
|
||||
if (this.replaceValidationSummary) {
|
||||
this.clearErrors();
|
||||
this.addErrors(errors);
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.FieldContext
|
||||
|
||||
Sys.Mvc.FieldContext = function Sys_Mvc_FieldContext(formContext) {
|
||||
/// <param name="formContext" type="Sys.Mvc.FormContext">
|
||||
/// </param>
|
||||
/// <field name="_hasTextChangedTag" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_hasValidationFiredTag" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_inputElementErrorCss" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_inputElementValidCss" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_validationMessageErrorCss" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_validationMessageValidCss" type="String" static="true">
|
||||
/// </field>
|
||||
/// <field name="_onBlurHandler" type="Sys.UI.DomEventHandler">
|
||||
/// </field>
|
||||
/// <field name="_onChangeHandler" type="Sys.UI.DomEventHandler">
|
||||
/// </field>
|
||||
/// <field name="_onInputHandler" type="Sys.UI.DomEventHandler">
|
||||
/// </field>
|
||||
/// <field name="_onPropertyChangeHandler" type="Sys.UI.DomEventHandler">
|
||||
/// </field>
|
||||
/// <field name="_errors" type="Array">
|
||||
/// </field>
|
||||
/// <field name="defaultErrorMessage" type="String">
|
||||
/// </field>
|
||||
/// <field name="elements" type="Array" elementType="Object" elementDomElement="true">
|
||||
/// </field>
|
||||
/// <field name="formContext" type="Sys.Mvc.FormContext">
|
||||
/// </field>
|
||||
/// <field name="replaceValidationMessageContents" type="Boolean">
|
||||
/// </field>
|
||||
/// <field name="validationMessageElement" type="Object" domElement="true">
|
||||
/// </field>
|
||||
/// <field name="validations" type="Array" elementType="Validation">
|
||||
/// </field>
|
||||
this._errors = [];
|
||||
this.elements = new Array(0);
|
||||
this.validations = new Array(0);
|
||||
this.formContext = formContext;
|
||||
this._onBlurHandler = Function.createDelegate(this, this._element_OnBlur);
|
||||
this._onChangeHandler = Function.createDelegate(this, this._element_OnChange);
|
||||
this._onInputHandler = Function.createDelegate(this, this._element_OnInput);
|
||||
this._onPropertyChangeHandler = Function.createDelegate(this, this._element_OnPropertyChange);
|
||||
}
|
||||
Sys.Mvc.FieldContext.prototype = {
|
||||
_onBlurHandler: null,
|
||||
_onChangeHandler: null,
|
||||
_onInputHandler: null,
|
||||
_onPropertyChangeHandler: null,
|
||||
defaultErrorMessage: null,
|
||||
formContext: null,
|
||||
replaceValidationMessageContents: false,
|
||||
validationMessageElement: null,
|
||||
|
||||
addError: function Sys_Mvc_FieldContext$addError(message) {
|
||||
/// <param name="message" type="String">
|
||||
/// </param>
|
||||
this.addErrors([ message ]);
|
||||
},
|
||||
|
||||
addErrors: function Sys_Mvc_FieldContext$addErrors(messages) {
|
||||
/// <param name="messages" type="Array" elementType="String">
|
||||
/// </param>
|
||||
if (!Sys.Mvc._validationUtil.arrayIsNullOrEmpty(messages)) {
|
||||
Array.addRange(this._errors, messages);
|
||||
this._onErrorCountChanged();
|
||||
}
|
||||
},
|
||||
|
||||
clearErrors: function Sys_Mvc_FieldContext$clearErrors() {
|
||||
Array.clear(this._errors);
|
||||
this._onErrorCountChanged();
|
||||
},
|
||||
|
||||
_displayError: function Sys_Mvc_FieldContext$_displayError() {
|
||||
var validationMessageElement = this.validationMessageElement;
|
||||
if (validationMessageElement) {
|
||||
if (this.replaceValidationMessageContents) {
|
||||
Sys.Mvc._validationUtil.setInnerText(validationMessageElement, this._errors[0]);
|
||||
}
|
||||
Sys.UI.DomElement.removeCssClass(validationMessageElement, Sys.Mvc.FieldContext._validationMessageValidCss);
|
||||
Sys.UI.DomElement.addCssClass(validationMessageElement, Sys.Mvc.FieldContext._validationMessageErrorCss);
|
||||
}
|
||||
var elements = this.elements;
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var element = elements[i];
|
||||
Sys.UI.DomElement.removeCssClass(element, Sys.Mvc.FieldContext._inputElementValidCss);
|
||||
Sys.UI.DomElement.addCssClass(element, Sys.Mvc.FieldContext._inputElementErrorCss);
|
||||
}
|
||||
},
|
||||
|
||||
_displaySuccess: function Sys_Mvc_FieldContext$_displaySuccess() {
|
||||
var validationMessageElement = this.validationMessageElement;
|
||||
if (validationMessageElement) {
|
||||
if (this.replaceValidationMessageContents) {
|
||||
Sys.Mvc._validationUtil.setInnerText(validationMessageElement, '');
|
||||
}
|
||||
Sys.UI.DomElement.removeCssClass(validationMessageElement, Sys.Mvc.FieldContext._validationMessageErrorCss);
|
||||
Sys.UI.DomElement.addCssClass(validationMessageElement, Sys.Mvc.FieldContext._validationMessageValidCss);
|
||||
}
|
||||
var elements = this.elements;
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var element = elements[i];
|
||||
Sys.UI.DomElement.removeCssClass(element, Sys.Mvc.FieldContext._inputElementErrorCss);
|
||||
Sys.UI.DomElement.addCssClass(element, Sys.Mvc.FieldContext._inputElementValidCss);
|
||||
}
|
||||
},
|
||||
|
||||
_element_OnBlur: function Sys_Mvc_FieldContext$_element_OnBlur(e) {
|
||||
/// <param name="e" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
if (e.target[Sys.Mvc.FieldContext._hasTextChangedTag] || e.target[Sys.Mvc.FieldContext._hasValidationFiredTag]) {
|
||||
this.validate('blur');
|
||||
}
|
||||
},
|
||||
|
||||
_element_OnChange: function Sys_Mvc_FieldContext$_element_OnChange(e) {
|
||||
/// <param name="e" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
e.target[Sys.Mvc.FieldContext._hasTextChangedTag] = true;
|
||||
},
|
||||
|
||||
_element_OnInput: function Sys_Mvc_FieldContext$_element_OnInput(e) {
|
||||
/// <param name="e" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
e.target[Sys.Mvc.FieldContext._hasTextChangedTag] = true;
|
||||
if (e.target[Sys.Mvc.FieldContext._hasValidationFiredTag]) {
|
||||
this.validate('input');
|
||||
}
|
||||
},
|
||||
|
||||
_element_OnPropertyChange: function Sys_Mvc_FieldContext$_element_OnPropertyChange(e) {
|
||||
/// <param name="e" type="Sys.UI.DomEvent">
|
||||
/// </param>
|
||||
if (e.rawEvent.propertyName === 'value') {
|
||||
e.target[Sys.Mvc.FieldContext._hasTextChangedTag] = true;
|
||||
if (e.target[Sys.Mvc.FieldContext._hasValidationFiredTag]) {
|
||||
this.validate('input');
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
enableDynamicValidation: function Sys_Mvc_FieldContext$enableDynamicValidation() {
|
||||
var elements = this.elements;
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var element = elements[i];
|
||||
if (Sys.Mvc._validationUtil.elementSupportsEvent(element, 'onpropertychange')) {
|
||||
var compatMode = document.documentMode;
|
||||
if (compatMode && compatMode >= 8) {
|
||||
Sys.UI.DomEvent.addHandler(element, 'propertychange', this._onPropertyChangeHandler);
|
||||
}
|
||||
}
|
||||
else {
|
||||
Sys.UI.DomEvent.addHandler(element, 'input', this._onInputHandler);
|
||||
}
|
||||
Sys.UI.DomEvent.addHandler(element, 'change', this._onChangeHandler);
|
||||
Sys.UI.DomEvent.addHandler(element, 'blur', this._onBlurHandler);
|
||||
}
|
||||
},
|
||||
|
||||
_getErrorString: function Sys_Mvc_FieldContext$_getErrorString(validatorReturnValue, fieldErrorMessage) {
|
||||
/// <param name="validatorReturnValue" type="Object">
|
||||
/// </param>
|
||||
/// <param name="fieldErrorMessage" type="String">
|
||||
/// </param>
|
||||
/// <returns type="String"></returns>
|
||||
var fallbackErrorMessage = fieldErrorMessage || this.defaultErrorMessage;
|
||||
if (Boolean.isInstanceOfType(validatorReturnValue)) {
|
||||
return (validatorReturnValue) ? null : fallbackErrorMessage;
|
||||
}
|
||||
if (String.isInstanceOfType(validatorReturnValue)) {
|
||||
return ((validatorReturnValue).length) ? validatorReturnValue : fallbackErrorMessage;
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
_getStringValue: function Sys_Mvc_FieldContext$_getStringValue() {
|
||||
/// <returns type="String"></returns>
|
||||
var elements = this.elements;
|
||||
return (elements.length > 0) ? elements[0].value : null;
|
||||
},
|
||||
|
||||
_markValidationFired: function Sys_Mvc_FieldContext$_markValidationFired() {
|
||||
var elements = this.elements;
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var element = elements[i];
|
||||
element[Sys.Mvc.FieldContext._hasValidationFiredTag] = true;
|
||||
}
|
||||
},
|
||||
|
||||
_onErrorCountChanged: function Sys_Mvc_FieldContext$_onErrorCountChanged() {
|
||||
if (!this._errors.length) {
|
||||
this._displaySuccess();
|
||||
}
|
||||
else {
|
||||
this._displayError();
|
||||
}
|
||||
},
|
||||
|
||||
validate: function Sys_Mvc_FieldContext$validate(eventName) {
|
||||
/// <param name="eventName" type="String">
|
||||
/// </param>
|
||||
/// <returns type="Array" elementType="String"></returns>
|
||||
var validations = this.validations;
|
||||
var errors = [];
|
||||
var value = this._getStringValue();
|
||||
for (var i = 0; i < validations.length; i++) {
|
||||
var validation = validations[i];
|
||||
var context = Sys.Mvc.$create_ValidationContext();
|
||||
context.eventName = eventName;
|
||||
context.fieldContext = this;
|
||||
context.validation = validation;
|
||||
var retVal = validation.validator(value, context);
|
||||
var errorMessage = this._getErrorString(retVal, validation.fieldErrorMessage);
|
||||
if (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(errorMessage)) {
|
||||
Array.add(errors, errorMessage);
|
||||
}
|
||||
}
|
||||
this._markValidationFired();
|
||||
this.clearErrors();
|
||||
this.addErrors(errors);
|
||||
return errors;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.RangeValidator
|
||||
|
||||
Sys.Mvc.RangeValidator = function Sys_Mvc_RangeValidator(minimum, maximum) {
|
||||
/// <param name="minimum" type="Number">
|
||||
/// </param>
|
||||
/// <param name="maximum" type="Number">
|
||||
/// </param>
|
||||
/// <field name="_minimum" type="Number">
|
||||
/// </field>
|
||||
/// <field name="_maximum" type="Number">
|
||||
/// </field>
|
||||
this._minimum = minimum;
|
||||
this._maximum = maximum;
|
||||
}
|
||||
Sys.Mvc.RangeValidator.create = function Sys_Mvc_RangeValidator$create(rule) {
|
||||
/// <param name="rule" type="Sys.Mvc.JsonValidationRule">
|
||||
/// </param>
|
||||
/// <returns type="Sys.Mvc.Validator"></returns>
|
||||
var min = rule.ValidationParameters['minimum'];
|
||||
var max = rule.ValidationParameters['maximum'];
|
||||
return Function.createDelegate(new Sys.Mvc.RangeValidator(min, max), new Sys.Mvc.RangeValidator(min, max).validate);
|
||||
}
|
||||
Sys.Mvc.RangeValidator.prototype = {
|
||||
_minimum: null,
|
||||
_maximum: null,
|
||||
|
||||
validate: function Sys_Mvc_RangeValidator$validate(value, context) {
|
||||
/// <param name="value" type="String">
|
||||
/// </param>
|
||||
/// <param name="context" type="Sys.Mvc.ValidationContext">
|
||||
/// </param>
|
||||
/// <returns type="Object"></returns>
|
||||
if (Sys.Mvc._validationUtil.stringIsNullOrEmpty(value)) {
|
||||
return true;
|
||||
}
|
||||
var n = Number.parseLocale(value);
|
||||
return (!isNaN(n) && this._minimum <= n && n <= this._maximum);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.RegularExpressionValidator
|
||||
|
||||
Sys.Mvc.RegularExpressionValidator = function Sys_Mvc_RegularExpressionValidator(pattern) {
|
||||
/// <param name="pattern" type="String">
|
||||
/// </param>
|
||||
/// <field name="_pattern" type="String">
|
||||
/// </field>
|
||||
this._pattern = pattern;
|
||||
}
|
||||
Sys.Mvc.RegularExpressionValidator.create = function Sys_Mvc_RegularExpressionValidator$create(rule) {
|
||||
/// <param name="rule" type="Sys.Mvc.JsonValidationRule">
|
||||
/// </param>
|
||||
/// <returns type="Sys.Mvc.Validator"></returns>
|
||||
var pattern = rule.ValidationParameters['pattern'];
|
||||
return Function.createDelegate(new Sys.Mvc.RegularExpressionValidator(pattern), new Sys.Mvc.RegularExpressionValidator(pattern).validate);
|
||||
}
|
||||
Sys.Mvc.RegularExpressionValidator.prototype = {
|
||||
_pattern: null,
|
||||
|
||||
validate: function Sys_Mvc_RegularExpressionValidator$validate(value, context) {
|
||||
/// <param name="value" type="String">
|
||||
/// </param>
|
||||
/// <param name="context" type="Sys.Mvc.ValidationContext">
|
||||
/// </param>
|
||||
/// <returns type="Object"></returns>
|
||||
if (Sys.Mvc._validationUtil.stringIsNullOrEmpty(value)) {
|
||||
return true;
|
||||
}
|
||||
var regExp = new RegExp(this._pattern);
|
||||
var matches = regExp.exec(value);
|
||||
return (!Sys.Mvc._validationUtil.arrayIsNullOrEmpty(matches) && matches[0].length === value.length);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.RequiredValidator
|
||||
|
||||
Sys.Mvc.RequiredValidator = function Sys_Mvc_RequiredValidator() {
|
||||
}
|
||||
Sys.Mvc.RequiredValidator.create = function Sys_Mvc_RequiredValidator$create(rule) {
|
||||
/// <param name="rule" type="Sys.Mvc.JsonValidationRule">
|
||||
/// </param>
|
||||
/// <returns type="Sys.Mvc.Validator"></returns>
|
||||
return Function.createDelegate(new Sys.Mvc.RequiredValidator(), new Sys.Mvc.RequiredValidator().validate);
|
||||
}
|
||||
Sys.Mvc.RequiredValidator._isRadioInputElement = function Sys_Mvc_RequiredValidator$_isRadioInputElement(element) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <returns type="Boolean"></returns>
|
||||
if (element.tagName.toUpperCase() === 'INPUT') {
|
||||
var inputType = (element.type).toUpperCase();
|
||||
if (inputType === 'RADIO') {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Sys.Mvc.RequiredValidator._isSelectInputElement = function Sys_Mvc_RequiredValidator$_isSelectInputElement(element) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <returns type="Boolean"></returns>
|
||||
if (element.tagName.toUpperCase() === 'SELECT') {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Sys.Mvc.RequiredValidator._isTextualInputElement = function Sys_Mvc_RequiredValidator$_isTextualInputElement(element) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <returns type="Boolean"></returns>
|
||||
if (element.tagName.toUpperCase() === 'INPUT') {
|
||||
var inputType = (element.type).toUpperCase();
|
||||
switch (inputType) {
|
||||
case 'TEXT':
|
||||
case 'PASSWORD':
|
||||
case 'FILE':
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (element.tagName.toUpperCase() === 'TEXTAREA') {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Sys.Mvc.RequiredValidator._validateRadioInput = function Sys_Mvc_RequiredValidator$_validateRadioInput(elements) {
|
||||
/// <param name="elements" type="Array" elementType="Object" elementDomElement="true">
|
||||
/// </param>
|
||||
/// <returns type="Object"></returns>
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var element = elements[i];
|
||||
if (element.checked) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Sys.Mvc.RequiredValidator._validateSelectInput = function Sys_Mvc_RequiredValidator$_validateSelectInput(optionElements) {
|
||||
/// <param name="optionElements" type="DOMElementCollection">
|
||||
/// </param>
|
||||
/// <returns type="Object"></returns>
|
||||
for (var i = 0; i < optionElements.length; i++) {
|
||||
var element = optionElements[i];
|
||||
if (element.selected) {
|
||||
if (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(element.value)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Sys.Mvc.RequiredValidator._validateTextualInput = function Sys_Mvc_RequiredValidator$_validateTextualInput(element) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <returns type="Object"></returns>
|
||||
return (!Sys.Mvc._validationUtil.stringIsNullOrEmpty(element.value));
|
||||
}
|
||||
Sys.Mvc.RequiredValidator.prototype = {
|
||||
|
||||
validate: function Sys_Mvc_RequiredValidator$validate(value, context) {
|
||||
/// <param name="value" type="String">
|
||||
/// </param>
|
||||
/// <param name="context" type="Sys.Mvc.ValidationContext">
|
||||
/// </param>
|
||||
/// <returns type="Object"></returns>
|
||||
var elements = context.fieldContext.elements;
|
||||
if (!elements.length) {
|
||||
return true;
|
||||
}
|
||||
var sampleElement = elements[0];
|
||||
if (Sys.Mvc.RequiredValidator._isTextualInputElement(sampleElement)) {
|
||||
return Sys.Mvc.RequiredValidator._validateTextualInput(sampleElement);
|
||||
}
|
||||
if (Sys.Mvc.RequiredValidator._isRadioInputElement(sampleElement)) {
|
||||
return Sys.Mvc.RequiredValidator._validateRadioInput(elements);
|
||||
}
|
||||
if (Sys.Mvc.RequiredValidator._isSelectInputElement(sampleElement)) {
|
||||
return Sys.Mvc.RequiredValidator._validateSelectInput((sampleElement).options);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.StringLengthValidator
|
||||
|
||||
Sys.Mvc.StringLengthValidator = function Sys_Mvc_StringLengthValidator(minLength, maxLength) {
|
||||
/// <param name="minLength" type="Number" integer="true">
|
||||
/// </param>
|
||||
/// <param name="maxLength" type="Number" integer="true">
|
||||
/// </param>
|
||||
/// <field name="_maxLength" type="Number" integer="true">
|
||||
/// </field>
|
||||
/// <field name="_minLength" type="Number" integer="true">
|
||||
/// </field>
|
||||
this._minLength = minLength;
|
||||
this._maxLength = maxLength;
|
||||
}
|
||||
Sys.Mvc.StringLengthValidator.create = function Sys_Mvc_StringLengthValidator$create(rule) {
|
||||
/// <param name="rule" type="Sys.Mvc.JsonValidationRule">
|
||||
/// </param>
|
||||
/// <returns type="Sys.Mvc.Validator"></returns>
|
||||
var minLength = rule.ValidationParameters['minimumLength'];
|
||||
var maxLength = rule.ValidationParameters['maximumLength'];
|
||||
return Function.createDelegate(new Sys.Mvc.StringLengthValidator(minLength, maxLength), new Sys.Mvc.StringLengthValidator(minLength, maxLength).validate);
|
||||
}
|
||||
Sys.Mvc.StringLengthValidator.prototype = {
|
||||
_maxLength: 0,
|
||||
_minLength: 0,
|
||||
|
||||
validate: function Sys_Mvc_StringLengthValidator$validate(value, context) {
|
||||
/// <param name="value" type="String">
|
||||
/// </param>
|
||||
/// <param name="context" type="Sys.Mvc.ValidationContext">
|
||||
/// </param>
|
||||
/// <returns type="Object"></returns>
|
||||
if (Sys.Mvc._validationUtil.stringIsNullOrEmpty(value)) {
|
||||
return true;
|
||||
}
|
||||
return (this._minLength <= value.length && value.length <= this._maxLength);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc._validationUtil
|
||||
|
||||
Sys.Mvc._validationUtil = function Sys_Mvc__validationUtil() {
|
||||
}
|
||||
Sys.Mvc._validationUtil.arrayIsNullOrEmpty = function Sys_Mvc__validationUtil$arrayIsNullOrEmpty(array) {
|
||||
/// <param name="array" type="Array" elementType="Object">
|
||||
/// </param>
|
||||
/// <returns type="Boolean"></returns>
|
||||
return (!array || !array.length);
|
||||
}
|
||||
Sys.Mvc._validationUtil.stringIsNullOrEmpty = function Sys_Mvc__validationUtil$stringIsNullOrEmpty(value) {
|
||||
/// <param name="value" type="String">
|
||||
/// </param>
|
||||
/// <returns type="Boolean"></returns>
|
||||
return (!value || !value.length);
|
||||
}
|
||||
Sys.Mvc._validationUtil.elementSupportsEvent = function Sys_Mvc__validationUtil$elementSupportsEvent(element, eventAttributeName) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="eventAttributeName" type="String">
|
||||
/// </param>
|
||||
/// <returns type="Boolean"></returns>
|
||||
return (eventAttributeName in element);
|
||||
}
|
||||
Sys.Mvc._validationUtil.removeAllChildren = function Sys_Mvc__validationUtil$removeAllChildren(element) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
while (element.firstChild) {
|
||||
element.removeChild(element.firstChild);
|
||||
}
|
||||
}
|
||||
Sys.Mvc._validationUtil.setInnerText = function Sys_Mvc__validationUtil$setInnerText(element, innerText) {
|
||||
/// <param name="element" type="Object" domElement="true">
|
||||
/// </param>
|
||||
/// <param name="innerText" type="String">
|
||||
/// </param>
|
||||
var textNode = document.createTextNode(innerText);
|
||||
Sys.Mvc._validationUtil.removeAllChildren(element);
|
||||
element.appendChild(textNode);
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Sys.Mvc.ValidatorRegistry
|
||||
|
||||
Sys.Mvc.ValidatorRegistry = function Sys_Mvc_ValidatorRegistry() {
|
||||
/// <field name="validators" type="Object" static="true">
|
||||
/// </field>
|
||||
}
|
||||
Sys.Mvc.ValidatorRegistry.getValidator = function Sys_Mvc_ValidatorRegistry$getValidator(rule) {
|
||||
/// <param name="rule" type="Sys.Mvc.JsonValidationRule">
|
||||
/// </param>
|
||||
/// <returns type="Sys.Mvc.Validator"></returns>
|
||||
var creator = Sys.Mvc.ValidatorRegistry.validators[rule.ValidationType];
|
||||
return (creator) ? creator(rule) : null;
|
||||
}
|
||||
Sys.Mvc.ValidatorRegistry._getDefaultValidators = function Sys_Mvc_ValidatorRegistry$_getDefaultValidators() {
|
||||
/// <returns type="Object"></returns>
|
||||
return { required: Function.createDelegate(null, Sys.Mvc.RequiredValidator.create), stringLength: Function.createDelegate(null, Sys.Mvc.StringLengthValidator.create), regularExpression: Function.createDelegate(null, Sys.Mvc.RegularExpressionValidator.create), range: Function.createDelegate(null, Sys.Mvc.RangeValidator.create), number: Function.createDelegate(null, Sys.Mvc.NumberValidator.create) };
|
||||
}
|
||||
|
||||
|
||||
Sys.Mvc.NumberValidator.registerClass('Sys.Mvc.NumberValidator');
|
||||
Sys.Mvc.FormContext.registerClass('Sys.Mvc.FormContext');
|
||||
Sys.Mvc.FieldContext.registerClass('Sys.Mvc.FieldContext');
|
||||
Sys.Mvc.RangeValidator.registerClass('Sys.Mvc.RangeValidator');
|
||||
Sys.Mvc.RegularExpressionValidator.registerClass('Sys.Mvc.RegularExpressionValidator');
|
||||
Sys.Mvc.RequiredValidator.registerClass('Sys.Mvc.RequiredValidator');
|
||||
Sys.Mvc.StringLengthValidator.registerClass('Sys.Mvc.StringLengthValidator');
|
||||
Sys.Mvc._validationUtil.registerClass('Sys.Mvc._validationUtil');
|
||||
Sys.Mvc.ValidatorRegistry.registerClass('Sys.Mvc.ValidatorRegistry');
|
||||
Sys.Mvc.FormContext._validationSummaryErrorCss = 'validation-summary-errors';
|
||||
Sys.Mvc.FormContext._validationSummaryValidCss = 'validation-summary-valid';
|
||||
Sys.Mvc.FormContext._formValidationTag = '__MVC_FormValidation';
|
||||
Sys.Mvc.FieldContext._hasTextChangedTag = '__MVC_HasTextChanged';
|
||||
Sys.Mvc.FieldContext._hasValidationFiredTag = '__MVC_HasValidationFired';
|
||||
Sys.Mvc.FieldContext._inputElementErrorCss = 'input-validation-error';
|
||||
Sys.Mvc.FieldContext._inputElementValidCss = 'input-validation-valid';
|
||||
Sys.Mvc.FieldContext._validationMessageErrorCss = 'field-validation-error';
|
||||
Sys.Mvc.FieldContext._validationMessageValidCss = 'field-validation-valid';
|
||||
Sys.Mvc.ValidatorRegistry.validators = Sys.Mvc.ValidatorRegistry._getDefaultValidators();
|
||||
|
||||
// ---- Do not remove this footer ----
|
||||
// Generated using Script# v0.5.0.0 (http://projects.nikhilk.net)
|
||||
// -----------------------------------
|
||||
|
||||
// register validation
|
||||
Sys.Application.add_load(function() {
|
||||
Sys.Application.remove_load(arguments.callee);
|
||||
Sys.Mvc.FormContext._Application_Load();
|
||||
});
|
||||
@@ -1,55 +0,0 @@
|
||||
//----------------------------------------------------------
|
||||
// Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
//----------------------------------------------------------
|
||||
// MicrosoftMvcValidation.js
|
||||
|
||||
Type.registerNamespace('Sys.Mvc');Sys.Mvc.$create_Validation=function(){return {};}
|
||||
Sys.Mvc.$create_JsonValidationField=function(){return {};}
|
||||
Sys.Mvc.$create_JsonValidationOptions=function(){return {};}
|
||||
Sys.Mvc.$create_JsonValidationRule=function(){return {};}
|
||||
Sys.Mvc.$create_ValidationContext=function(){return {};}
|
||||
Sys.Mvc.NumberValidator=function(){}
|
||||
Sys.Mvc.NumberValidator.create=function(rule){return Function.createDelegate(new Sys.Mvc.NumberValidator(),new Sys.Mvc.NumberValidator().validate);}
|
||||
Sys.Mvc.NumberValidator.prototype={validate:function(value,context){if(Sys.Mvc._ValidationUtil.$1(value)){return true;}var $0=Number.parseLocale(value);return (!isNaN($0));}}
|
||||
Sys.Mvc.FormContext=function(formElement,validationSummaryElement){this.$5=[];this.fields=new Array(0);this.$9=formElement;this.$7=validationSummaryElement;formElement['__MVC_FormValidation'] = this;if(validationSummaryElement){var $0=validationSummaryElement.getElementsByTagName('ul');if($0.length>0){this.$8=$0[0];}}this.$3=Function.createDelegate(this,this.$D);this.$4=Function.createDelegate(this,this.$E);}
|
||||
Sys.Mvc.FormContext._Application_Load=function(){var $0=window.mvcClientValidationMetadata;if($0){while($0.length>0){var $1=$0.pop();Sys.Mvc.FormContext.$12($1);}}}
|
||||
Sys.Mvc.FormContext.$F=function($p0,$p1){var $0=[];var $1=document.getElementsByName($p1);for(var $2=0;$2<$1.length;$2++){var $3=$1[$2];if(Sys.Mvc.FormContext.$10($p0,$3)){Array.add($0,$3);}}return $0;}
|
||||
Sys.Mvc.FormContext.getValidationForForm=function(formElement){return formElement['__MVC_FormValidation'];}
|
||||
Sys.Mvc.FormContext.$10=function($p0,$p1){while($p1){if($p0===$p1){return true;}$p1=$p1.parentNode;}return false;}
|
||||
Sys.Mvc.FormContext.$12=function($p0){var $0=$get($p0.FormId);var $1=(!Sys.Mvc._ValidationUtil.$1($p0.ValidationSummaryId))?$get($p0.ValidationSummaryId):null;var $2=new Sys.Mvc.FormContext($0,$1);$2.enableDynamicValidation();$2.replaceValidationSummary=$p0.ReplaceValidationSummary;for(var $4=0;$4<$p0.Fields.length;$4++){var $5=$p0.Fields[$4];var $6=Sys.Mvc.FormContext.$F($0,$5.FieldName);var $7=(!Sys.Mvc._ValidationUtil.$1($5.ValidationMessageId))?$get($5.ValidationMessageId):null;var $8=new Sys.Mvc.FieldContext($2);Array.addRange($8.elements,$6);$8.validationMessageElement=$7;$8.replaceValidationMessageContents=$5.ReplaceValidationMessageContents;for(var $9=0;$9<$5.ValidationRules.length;$9++){var $A=$5.ValidationRules[$9];var $B=Sys.Mvc.ValidatorRegistry.getValidator($A);if($B){var $C=Sys.Mvc.$create_Validation();$C.fieldErrorMessage=$A.ErrorMessage;$C.validator=$B;Array.add($8.validations,$C);}}$8.enableDynamicValidation();Array.add($2.fields,$8);}var $3=$0.validationCallbacks;if(!$3){$3=[];$0.validationCallbacks = $3;}$3.push(Function.createDelegate(null,function(){
|
||||
return Sys.Mvc._ValidationUtil.$0($2.validate('submit'));}));return $2;}
|
||||
Sys.Mvc.FormContext.prototype={$3:null,$4:null,$6:null,$7:null,$8:null,$9:null,replaceValidationSummary:false,addError:function(message){this.addErrors([message]);},addErrors:function(messages){if(!Sys.Mvc._ValidationUtil.$0(messages)){Array.addRange(this.$5,messages);this.$11();}},clearErrors:function(){Array.clear(this.$5);this.$11();},$A:function(){if(this.$7){if(this.$8){Sys.Mvc._ValidationUtil.$3(this.$8);for(var $0=0;$0<this.$5.length;$0++){var $1=document.createElement('li');Sys.Mvc._ValidationUtil.$4($1,this.$5[$0]);this.$8.appendChild($1);}}Sys.UI.DomElement.removeCssClass(this.$7,'validation-summary-valid');Sys.UI.DomElement.addCssClass(this.$7,'validation-summary-errors');}},$B:function(){var $0=this.$7;if($0){var $1=this.$8;if($1){$1.innerHTML='';}Sys.UI.DomElement.removeCssClass($0,'validation-summary-errors');Sys.UI.DomElement.addCssClass($0,'validation-summary-valid');}},enableDynamicValidation:function(){Sys.UI.DomEvent.addHandler(this.$9,'click',this.$3);Sys.UI.DomEvent.addHandler(this.$9,'submit',this.$4);},$C:function($p0){if($p0.disabled){return null;}var $0=$p0.tagName.toUpperCase();var $1=$p0;if($0==='INPUT'){var $2=$1.type;if($2==='submit'||$2==='image'){return $1;}}else if(($0==='BUTTON')&&($1.type==='submit')){return $1;}return null;},$D:function($p0){this.$6=this.$C($p0.target);},$E:function($p0){var $0=$p0.target;var $1=this.$6;if($1&&$1.disableValidation){return;}var $2=this.validate('submit');if(!Sys.Mvc._ValidationUtil.$0($2)){$p0.preventDefault();}},$11:function(){if(!this.$5.length){this.$B();}else{this.$A();}},validate:function(eventName){var $0=this.fields;var $1=[];for(var $2=0;$2<$0.length;$2++){var $3=$0[$2];var $4=$3.validate(eventName);if($4){Array.addRange($1,$4);}}if(this.replaceValidationSummary){this.clearErrors();this.addErrors($1);}return $1;}}
|
||||
Sys.Mvc.FieldContext=function(formContext){this.$A=[];this.elements=new Array(0);this.validations=new Array(0);this.formContext=formContext;this.$6=Function.createDelegate(this,this.$D);this.$7=Function.createDelegate(this,this.$E);this.$8=Function.createDelegate(this,this.$F);this.$9=Function.createDelegate(this,this.$10);}
|
||||
Sys.Mvc.FieldContext.prototype={$6:null,$7:null,$8:null,$9:null,defaultErrorMessage:null,formContext:null,replaceValidationMessageContents:false,validationMessageElement:null,addError:function(message){this.addErrors([message]);},addErrors:function(messages){if(!Sys.Mvc._ValidationUtil.$0(messages)){Array.addRange(this.$A,messages);this.$14();}},clearErrors:function(){Array.clear(this.$A);this.$14();},$B:function(){var $0=this.validationMessageElement;if($0){if(this.replaceValidationMessageContents){Sys.Mvc._ValidationUtil.$4($0,this.$A[0]);}Sys.UI.DomElement.removeCssClass($0,'field-validation-valid');Sys.UI.DomElement.addCssClass($0,'field-validation-error');}var $1=this.elements;for(var $2=0;$2<$1.length;$2++){var $3=$1[$2];Sys.UI.DomElement.removeCssClass($3,'input-validation-valid');Sys.UI.DomElement.addCssClass($3,'input-validation-error');}},$C:function(){var $0=this.validationMessageElement;if($0){if(this.replaceValidationMessageContents){Sys.Mvc._ValidationUtil.$4($0,'');}Sys.UI.DomElement.removeCssClass($0,'field-validation-error');Sys.UI.DomElement.addCssClass($0,'field-validation-valid');}var $1=this.elements;for(var $2=0;$2<$1.length;$2++){var $3=$1[$2];Sys.UI.DomElement.removeCssClass($3,'input-validation-error');Sys.UI.DomElement.addCssClass($3,'input-validation-valid');}},$D:function($p0){if($p0.target['__MVC_HasTextChanged']||$p0.target['__MVC_HasValidationFired']){this.validate('blur');}},$E:function($p0){$p0.target['__MVC_HasTextChanged'] = true;},$F:function($p0){$p0.target['__MVC_HasTextChanged'] = true;if($p0.target['__MVC_HasValidationFired']){this.validate('input');}},$10:function($p0){if($p0.rawEvent.propertyName==='value'){$p0.target['__MVC_HasTextChanged'] = true;if($p0.target['__MVC_HasValidationFired']){this.validate('input');}}},enableDynamicValidation:function(){var $0=this.elements;for(var $1=0;$1<$0.length;$1++){var $2=$0[$1];if(Sys.Mvc._ValidationUtil.$2($2,'onpropertychange')){var $3=document.documentMode;if($3&&$3>=8){Sys.UI.DomEvent.addHandler($2,'propertychange',this.$9);}}else{Sys.UI.DomEvent.addHandler($2,'input',this.$8);}Sys.UI.DomEvent.addHandler($2,'change',this.$7);Sys.UI.DomEvent.addHandler($2,'blur',this.$6);}},$11:function($p0,$p1){var $0=$p1||this.defaultErrorMessage;if(Boolean.isInstanceOfType($p0)){return ($p0)?null:$0;}if(String.isInstanceOfType($p0)){return (($p0).length)?$p0:$0;}return null;},$12:function(){var $0=this.elements;return ($0.length>0)?$0[0].value:null;},$13:function(){var $0=this.elements;for(var $1=0;$1<$0.length;$1++){var $2=$0[$1];$2['__MVC_HasValidationFired'] = true;}},$14:function(){if(!this.$A.length){this.$C();}else{this.$B();}},validate:function(eventName){var $0=this.validations;var $1=[];var $2=this.$12();for(var $3=0;$3<$0.length;$3++){var $4=$0[$3];var $5=Sys.Mvc.$create_ValidationContext();$5.eventName=eventName;$5.fieldContext=this;$5.validation=$4;var $6=$4.validator($2,$5);var $7=this.$11($6,$4.fieldErrorMessage);if(!Sys.Mvc._ValidationUtil.$1($7)){Array.add($1,$7);}}this.$13();this.clearErrors();this.addErrors($1);return $1;}}
|
||||
Sys.Mvc.RangeValidator=function(minimum,maximum){this.$0=minimum;this.$1=maximum;}
|
||||
Sys.Mvc.RangeValidator.create=function(rule){var $0=rule.ValidationParameters['minimum'];var $1=rule.ValidationParameters['maximum'];return Function.createDelegate(new Sys.Mvc.RangeValidator($0,$1),new Sys.Mvc.RangeValidator($0,$1).validate);}
|
||||
Sys.Mvc.RangeValidator.prototype={$0:null,$1:null,validate:function(value,context){if(Sys.Mvc._ValidationUtil.$1(value)){return true;}var $0=Number.parseLocale(value);return (!isNaN($0)&&this.$0<=$0&&$0<=this.$1);}}
|
||||
Sys.Mvc.RegularExpressionValidator=function(pattern){this.$0=pattern;}
|
||||
Sys.Mvc.RegularExpressionValidator.create=function(rule){var $0=rule.ValidationParameters['pattern'];return Function.createDelegate(new Sys.Mvc.RegularExpressionValidator($0),new Sys.Mvc.RegularExpressionValidator($0).validate);}
|
||||
Sys.Mvc.RegularExpressionValidator.prototype={$0:null,validate:function(value,context){if(Sys.Mvc._ValidationUtil.$1(value)){return true;}var $0=new RegExp(this.$0);var $1=$0.exec(value);return (!Sys.Mvc._ValidationUtil.$0($1)&&$1[0].length===value.length);}}
|
||||
Sys.Mvc.RequiredValidator=function(){}
|
||||
Sys.Mvc.RequiredValidator.create=function(rule){return Function.createDelegate(new Sys.Mvc.RequiredValidator(),new Sys.Mvc.RequiredValidator().validate);}
|
||||
Sys.Mvc.RequiredValidator.$0=function($p0){if($p0.tagName.toUpperCase()==='INPUT'){var $0=($p0.type).toUpperCase();if($0==='RADIO'){return true;}}return false;}
|
||||
Sys.Mvc.RequiredValidator.$1=function($p0){if($p0.tagName.toUpperCase()==='SELECT'){return true;}return false;}
|
||||
Sys.Mvc.RequiredValidator.$2=function($p0){if($p0.tagName.toUpperCase()==='INPUT'){var $0=($p0.type).toUpperCase();switch($0){case 'TEXT':case 'PASSWORD':case 'FILE':return true;}}if($p0.tagName.toUpperCase()==='TEXTAREA'){return true;}return false;}
|
||||
Sys.Mvc.RequiredValidator.$3=function($p0){for(var $0=0;$0<$p0.length;$0++){var $1=$p0[$0];if($1.checked){return true;}}return false;}
|
||||
Sys.Mvc.RequiredValidator.$4=function($p0){for(var $0=0;$0<$p0.length;$0++){var $1=$p0[$0];if($1.selected){if(!Sys.Mvc._ValidationUtil.$1($1.value)){return true;}}}return false;}
|
||||
Sys.Mvc.RequiredValidator.$5=function($p0){return (!Sys.Mvc._ValidationUtil.$1($p0.value));}
|
||||
Sys.Mvc.RequiredValidator.prototype={validate:function(value,context){var $0=context.fieldContext.elements;if(!$0.length){return true;}var $1=$0[0];if(Sys.Mvc.RequiredValidator.$2($1)){return Sys.Mvc.RequiredValidator.$5($1);}if(Sys.Mvc.RequiredValidator.$0($1)){return Sys.Mvc.RequiredValidator.$3($0);}if(Sys.Mvc.RequiredValidator.$1($1)){return Sys.Mvc.RequiredValidator.$4(($1).options);}return true;}}
|
||||
Sys.Mvc.StringLengthValidator=function(minLength,maxLength){this.$1=minLength;this.$0=maxLength;}
|
||||
Sys.Mvc.StringLengthValidator.create=function(rule){var $0=rule.ValidationParameters['minimumLength'];var $1=rule.ValidationParameters['maximumLength'];return Function.createDelegate(new Sys.Mvc.StringLengthValidator($0,$1),new Sys.Mvc.StringLengthValidator($0,$1).validate);}
|
||||
Sys.Mvc.StringLengthValidator.prototype={$0:0,$1:0,validate:function(value,context){if(Sys.Mvc._ValidationUtil.$1(value)){return true;}return (this.$1<=value.length&&value.length<=this.$0);}}
|
||||
Sys.Mvc._ValidationUtil=function(){}
|
||||
Sys.Mvc._ValidationUtil.$0=function($p0){return (!$p0||!$p0.length);}
|
||||
Sys.Mvc._ValidationUtil.$1=function($p0){return (!$p0||!$p0.length);}
|
||||
Sys.Mvc._ValidationUtil.$2=function($p0,$p1){return ($p1 in $p0);}
|
||||
Sys.Mvc._ValidationUtil.$3=function($p0){while($p0.firstChild){$p0.removeChild($p0.firstChild);}}
|
||||
Sys.Mvc._ValidationUtil.$4=function($p0,$p1){var $0=document.createTextNode($p1);Sys.Mvc._ValidationUtil.$3($p0);$p0.appendChild($0);}
|
||||
Sys.Mvc.ValidatorRegistry=function(){}
|
||||
Sys.Mvc.ValidatorRegistry.getValidator=function(rule){var $0=Sys.Mvc.ValidatorRegistry.validators[rule.ValidationType];return ($0)?$0(rule):null;}
|
||||
Sys.Mvc.ValidatorRegistry.$0=function(){return {required:Function.createDelegate(null,Sys.Mvc.RequiredValidator.create),stringLength:Function.createDelegate(null,Sys.Mvc.StringLengthValidator.create),regularExpression:Function.createDelegate(null,Sys.Mvc.RegularExpressionValidator.create),range:Function.createDelegate(null,Sys.Mvc.RangeValidator.create),number:Function.createDelegate(null,Sys.Mvc.NumberValidator.create)};}
|
||||
Sys.Mvc.NumberValidator.registerClass('Sys.Mvc.NumberValidator');Sys.Mvc.FormContext.registerClass('Sys.Mvc.FormContext');Sys.Mvc.FieldContext.registerClass('Sys.Mvc.FieldContext');Sys.Mvc.RangeValidator.registerClass('Sys.Mvc.RangeValidator');Sys.Mvc.RegularExpressionValidator.registerClass('Sys.Mvc.RegularExpressionValidator');Sys.Mvc.RequiredValidator.registerClass('Sys.Mvc.RequiredValidator');Sys.Mvc.StringLengthValidator.registerClass('Sys.Mvc.StringLengthValidator');Sys.Mvc._ValidationUtil.registerClass('Sys.Mvc._ValidationUtil');Sys.Mvc.ValidatorRegistry.registerClass('Sys.Mvc.ValidatorRegistry');Sys.Mvc.ValidatorRegistry.validators=Sys.Mvc.ValidatorRegistry.$0();
|
||||
// ---- Do not remove this footer ----
|
||||
// Generated using Script# v0.5.0.0 (http://projects.nikhilk.net)
|
||||
// -----------------------------------
|
||||
Sys.Application.add_load(function(){Sys.Application.remove_load(arguments.callee);Sys.Mvc.FormContext._Application_Load();});
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,167 +0,0 @@
|
||||
/*!
|
||||
* jQuery JavaScript Library v1.4.1
|
||||
* http://jquery.com/
|
||||
*
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
* http://sizzlejs.com/
|
||||
* Copyright 2010, The Dojo Foundation
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Date: Mon Jan 25 19:43:33 2010 -0500
|
||||
*/
|
||||
(function(z,v){function la(){if(!c.isReady){try{r.documentElement.doScroll("left")}catch(a){setTimeout(la,1);return}c.ready()}}function Ma(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,i){var j=a.length;if(typeof b==="object"){for(var n in b)X(a,n,b[n],f,e,d);return a}if(d!==v){f=!i&&f&&c.isFunction(d);for(n=0;n<j;n++)e(a[n],b,f?d.call(a[n],n,e(a[n],b)):d,i);return a}return j?
|
||||
e(a[0],b):null}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function ma(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function na(a){var b,d=[],f=[],e=arguments,i,j,n,o,m,s,x=c.extend({},c.data(this,"events").live);if(!(a.button&&a.type==="click")){for(o in x){j=x[o];if(j.live===a.type||j.altLive&&c.inArray(a.type,j.altLive)>-1){i=j.data;i.beforeFilter&&i.beforeFilter[a.type]&&!i.beforeFilter[a.type](a)||f.push(j.selector)}else delete x[o]}i=c(a.target).closest(f,
|
||||
a.currentTarget);m=0;for(s=i.length;m<s;m++)for(o in x){j=x[o];n=i[m].elem;f=null;if(i[m].selector===j.selector){if(j.live==="mouseenter"||j.live==="mouseleave")f=c(a.relatedTarget).closest(j.selector)[0];if(!f||f!==n)d.push({elem:n,fn:j})}}m=0;for(s=d.length;m<s;m++){i=d[m];a.currentTarget=i.elem;a.data=i.fn.data;if(i.fn.apply(i.elem,e)===false){b=false;break}}return b}}function oa(a,b){return"live."+(a?a+".":"")+b.replace(/\./g,"`").replace(/ /g,"&")}function pa(a){return!a||!a.parentNode||a.parentNode.nodeType===
|
||||
11}function qa(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var i in f)for(var j in f[i])c.event.add(this,i,f[i][j],f[i][j].data)}}})}function ra(a,b,d){var f,e,i;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&a[0].indexOf("<option")<0&&(c.support.checkClone||!sa.test(a[0]))){e=true;if(i=c.fragments[a[0]])if(i!==1)f=i}if(!f){b=b&&b[0]?b[0].ownerDocument||b[0]:r;f=b.createDocumentFragment();
|
||||
c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=i?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(ta.concat.apply([],ta.slice(0,b)),function(){d[this]=a});return d}function ua(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Na=z.jQuery,Oa=z.$,r=z.document,S,Pa=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Qa=/^.[^:#\[\.,]*$/,Ra=/\S/,Sa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Ta=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,O=navigator.userAgent,
|
||||
va=false,P=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,Q=Array.prototype.slice,wa=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(typeof a==="string")if((d=Pa.exec(a))&&(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:r;if(a=Ta.exec(a))if(c.isPlainObject(b)){a=[r.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=ra([d[1]],
|
||||
[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}}else{if(b=r.getElementById(d[2])){if(b.id!==d[2])return S.find(a);this.length=1;this[0]=b}this.context=r;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=r;a=r.getElementsByTagName(a)}else return!b||b.jquery?(b||S).find(a):c(b).find(a);else if(c.isFunction(a))return S.ready(a);if(a.selector!==v){this.selector=a.selector;this.context=a.context}return c.isArray(a)?this.setArray(a):c.makeArray(a,
|
||||
this)},selector:"",jquery:"1.4.1",length:0,size:function(){return this.length},toArray:function(){return Q.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){a=c(a||null);a.prevObject=this;a.context=this.context;if(b==="find")a.selector=this.selector+(this.selector?" ":"")+d;else if(b)a.selector=this.selector+"."+b+"("+d+")";return a},setArray:function(a){this.length=0;ba.apply(this,a);return this},each:function(a,b){return c.each(this,
|
||||
a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(r,c);else P&&P.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(Q.apply(this,arguments),"slice",Q.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};
|
||||
c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,i,j,n;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(i in e){j=a[i];n=e[i];if(a!==n)if(f&&n&&(c.isPlainObject(n)||c.isArray(n))){j=j&&(c.isPlainObject(j)||c.isArray(j))?j:c.isArray(n)?[]:{};a[i]=c.extend(f,j,n)}else if(n!==v)a[i]=n}return a};c.extend({noConflict:function(a){z.$=
|
||||
Oa;if(a)z.jQuery=Na;return c},isReady:false,ready:function(){if(!c.isReady){if(!r.body)return setTimeout(c.ready,13);c.isReady=true;if(P){for(var a,b=0;a=P[b++];)a.call(r,c);P=null}c.fn.triggerHandler&&c(r).triggerHandler("ready")}},bindReady:function(){if(!va){va=true;if(r.readyState==="complete")return c.ready();if(r.addEventListener){r.addEventListener("DOMContentLoaded",L,false);z.addEventListener("load",c.ready,false)}else if(r.attachEvent){r.attachEvent("onreadystatechange",L);z.attachEvent("onload",
|
||||
c.ready);var a=false;try{a=z.frameElement==null}catch(b){}r.documentElement.doScroll&&a&&la()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,"isPrototypeOf"))return false;var b;for(b in a);return b===v||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;
|
||||
return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return z.JSON&&z.JSON.parse?z.JSON.parse(a):(new Function("return "+a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Ra.test(a)){var b=r.getElementsByTagName("head")[0]||
|
||||
r.documentElement,d=r.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(r.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,i=a.length,j=i===v||c.isFunction(a);if(d)if(j)for(f in a){if(b.apply(a[f],d)===false)break}else for(;e<i;){if(b.apply(a[e++],d)===false)break}else if(j)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=
|
||||
a[0];e<i&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Sa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==
|
||||
v;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,i=a.length;e<i;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,i=0,j=a.length;i<j;i++){e=b(a[i],i,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=v}else if(b&&!c.isFunction(b)){d=b;b=v}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},
|
||||
uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});O=c.uaMatch(O);if(O.browser){c.browser[O.browser]=true;c.browser.version=O.version}if(c.browser.webkit)c.browser.safari=true;if(wa)c.inArray=function(a,b){return wa.call(b,a)};S=c(r);if(r.addEventListener)L=function(){r.removeEventListener("DOMContentLoaded",
|
||||
L,false);c.ready()};else if(r.attachEvent)L=function(){if(r.readyState==="complete"){r.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=r.documentElement,b=r.createElement("script"),d=r.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=d.getElementsByTagName("*"),i=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!i)){c.support=
|
||||
{leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(i.getAttribute("style")),hrefNormalized:i.getAttribute("href")==="/a",opacity:/^0.55$/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:r.createElement("select").appendChild(r.createElement("option")).selected,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};
|
||||
b.type="text/javascript";try{b.appendChild(r.createTextNode("window."+f+"=1;"))}catch(j){}a.insertBefore(b,a.firstChild);if(z[f]){c.support.scriptEval=true;delete z[f]}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function n(){c.support.noCloneEvent=false;d.detachEvent("onclick",n)});d.cloneNode(true).fireEvent("onclick")}d=r.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=r.createDocumentFragment();a.appendChild(d.firstChild);
|
||||
c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var n=r.createElement("div");n.style.width=n.style.paddingLeft="1px";r.body.appendChild(n);c.boxModel=c.support.boxModel=n.offsetWidth===2;r.body.removeChild(n).style.display="none"});a=function(n){var o=r.createElement("div");n="on"+n;var m=n in o;if(!m){o.setAttribute(n,"return;");m=typeof o[n]==="function"}return m};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=i=null}})();c.props=
|
||||
{"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ua=0,xa={},Va={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var f=a[G],e=c.cache;if(!b&&!f)return null;f||(f=++Ua);if(typeof b==="object"){a[G]=f;e=e[f]=c.extend(true,
|
||||
{},b)}else e=e[f]?e[f]:typeof d==="undefined"?Va:(e[f]={});if(d!==v){a[G]=f;e[b]=d}return typeof b==="string"?e[b]:e}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{try{delete a[G]}catch(i){a.removeAttribute&&a.removeAttribute(G)}delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,
|
||||
a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===v){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===v&&this.length)f=c.data(this[0],a);return f===v&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);
|
||||
return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===v)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||
|
||||
a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var ya=/[\n\t]/g,ca=/\s+/,Wa=/\r/g,Xa=/href|src|style/,Ya=/(button|input)/i,Za=/(button|input|object|select|textarea)/i,$a=/^(a|area)$/i,za=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(o){var m=
|
||||
c(this);m.addClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className)for(var i=" "+e.className+" ",j=0,n=b.length;j<n;j++){if(i.indexOf(" "+b[j]+" ")<0)e.className+=" "+b[j]}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var m=c(this);m.removeClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string"||a===v)for(var b=(a||"").split(ca),
|
||||
d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var i=(" "+e.className+" ").replace(ya," "),j=0,n=b.length;j<n;j++)i=i.replace(" "+b[j]+" "," ");e.className=i.substring(1,i.length-1)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var i=c(this);i.toggleClass(a.call(this,e,i.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,i=0,j=c(this),n=b,o=
|
||||
a.split(ca);e=o[i++];){n=f?n:!j.hasClass(e);j[n?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(ya," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===v){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||
|
||||
{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var i=b?d:0;for(d=b?d+1:e.length;i<d;i++){var j=e[i];if(j.selected){a=c(j).val();if(b)return a;f.push(a)}}return f}if(za.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Wa,"")}return v}var n=c.isFunction(a);return this.each(function(o){var m=c(this),s=a;if(this.nodeType===1){if(n)s=a.call(this,o,m.val());
|
||||
if(typeof s==="number")s+="";if(c.isArray(s)&&za.test(this.type))this.checked=c.inArray(m.val(),s)>=0;else if(c.nodeName(this,"select")){var x=c.makeArray(s);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),x)>=0});if(!x.length)this.selectedIndex=-1}else this.value=s}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return v;if(f&&b in c.attrFn)return c(a)[b](d);
|
||||
f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==v;b=f&&c.props[b]||b;if(a.nodeType===1){var i=Xa.test(b);if(b in a&&f&&!i){if(e){b==="type"&&Ya.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:Za.test(a.nodeName)||$a.test(a.nodeName)&&a.href?0:v;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=
|
||||
""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&i?a.getAttribute(b,2):a.getAttribute(b);return a===null?v:a}return c.style(a,b,d)}});var ab=function(a){return a.replace(/[^\w\s\.\|`]/g,function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==z&&!a.frameElement)a=z;if(!d.guid)d.guid=c.guid++;if(f!==v){d=c.proxy(d);d.data=f}var e=c.data(a,"events")||c.data(a,"events",{}),i=c.data(a,"handle"),j;if(!i){j=
|
||||
function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(j.elem,arguments):v};i=c.data(a,"handle",j)}if(i){i.elem=a;b=b.split(/\s+/);for(var n,o=0;n=b[o++];){var m=n.split(".");n=m.shift();if(o>1){d=c.proxy(d);if(f!==v)d.data=f}d.type=m.slice(0).sort().join(".");var s=e[n],x=this.special[n]||{};if(!s){s=e[n]={};if(!x.setup||x.setup.call(a,f,m,d)===false)if(a.addEventListener)a.addEventListener(n,i,false);else a.attachEvent&&a.attachEvent("on"+n,i)}if(x.add)if((m=x.add.call(a,
|
||||
d,f,m,s))&&c.isFunction(m)){m.guid=m.guid||d.guid;m.data=m.data||d.data;m.type=m.type||d.type;d=m}s[d.guid]=d;this.global[n]=true}a=null}}},global:{},remove:function(a,b,d){if(!(a.nodeType===3||a.nodeType===8)){var f=c.data(a,"events"),e,i,j;if(f){if(b===v||typeof b==="string"&&b.charAt(0)===".")for(i in f)this.remove(a,i+(b||""));else{if(b.type){d=b.handler;b=b.type}b=b.split(/\s+/);for(var n=0;i=b[n++];){var o=i.split(".");i=o.shift();var m=!o.length,s=c.map(o.slice(0).sort(),ab);s=new RegExp("(^|\\.)"+
|
||||
s.join("\\.(?:.*\\.)?")+"(\\.|$)");var x=this.special[i]||{};if(f[i]){if(d){j=f[i][d.guid];delete f[i][d.guid]}else for(var A in f[i])if(m||s.test(f[i][A].type))delete f[i][A];x.remove&&x.remove.call(a,o,j);for(e in f[i])break;if(!e){if(!x.teardown||x.teardown.call(a,o)===false)if(a.removeEventListener)a.removeEventListener(i,c.data(a,"handle"),false);else a.detachEvent&&a.detachEvent("on"+i,c.data(a,"handle"));e=null;delete f[i]}}}}for(e in f)break;if(!e){if(A=c.data(a,"handle"))A.elem=null;c.removeData(a,
|
||||
"events");c.removeData(a,"handle")}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();this.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return v;a.result=v;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,
|
||||
b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(i){}if(!a.isPropagationStopped()&&f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){d=a.target;var j;if(!(c.nodeName(d,"a")&&e==="click")&&!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()])){try{if(d[e]){if(j=d["on"+e])d["on"+e]=null;this.triggered=true;d[e]()}}catch(n){}if(j)d["on"+e]=j;this.triggered=false}}},handle:function(a){var b,
|
||||
d;a=arguments[0]=c.event.fix(a||z.event);a.currentTarget=this;d=a.type.split(".");a.type=d.shift();b=!d.length&&!a.exclusive;var f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)");d=(c.data(this,"events")||{})[a.type];for(var e in d){var i=d[e];if(b||f.test(i.type)){a.handler=i;a.data=i.data;i=i.apply(this,arguments);if(i!==v){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
|
||||
fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||r;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=r.documentElement;d=r.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
|
||||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==v)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a,b){c.extend(a,b||{});a.guid+=b.selector+b.live;b.liveProxy=a;c.event.add(this,b.live,na,b)},remove:function(a){if(a.length){var b=
|
||||
0,d=new RegExp("(^|\\.)"+a[0]+"(\\.|$)");c.each(c.data(this,"events").live||{},function(){d.test(this.type)&&b++});b<1&&c.event.remove(this,a[0],na)}},special:{}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};
|
||||
c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y};var Aa=function(a){for(var b=
|
||||
a.relatedTarget;b&&b!==this;)try{b=b.parentNode}catch(d){break}if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}},Ba=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ba:Aa,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ba:Aa)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(a,b,d){if(this.nodeName.toLowerCase()!==
|
||||
"form"){c.event.add(this,"click.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="submit"||i==="image")&&c(e).closest("form").length)return ma("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="text"||i==="password")&&c(e).closest("form").length&&f.keyCode===13)return ma("submit",this,arguments)})}else return false},remove:function(a,b){c.event.remove(this,"click.specialSubmit"+(b?"."+b.guid:""));c.event.remove(this,
|
||||
"keypress.specialSubmit"+(b?"."+b.guid:""))}};if(!c.support.changeBubbles){var da=/textarea|input|select/i;function Ca(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d}function ea(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Ca(d);if(a.type!=="focusout"||
|
||||
d.type!=="radio")c.data(d,"_change_data",e);if(!(f===v||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}}c.event.special.change={filters:{focusout:ea,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return ea.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return ea.call(this,a)},beforeactivate:function(a){a=
|
||||
a.target;a.nodeName.toLowerCase()==="input"&&a.type==="radio"&&c.data(a,"_change_data",Ca(a))}},setup:function(a,b,d){for(var f in T)c.event.add(this,f+".specialChange."+d.guid,T[f]);return da.test(this.nodeName)},remove:function(a,b){for(var d in T)c.event.remove(this,d+".specialChange"+(b?"."+b.guid:""),T[d]);return da.test(this.nodeName)}};var T=c.event.special.change.filters}r.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,
|
||||
f)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var i in d)this[b](i,f,d[i],e);return this}if(c.isFunction(f)){e=f;f=v}var j=b==="one"?c.proxy(e,function(n){c(this).unbind(n,j);return e.apply(this,arguments)}):e;return d==="unload"&&b!=="one"?this.one(d,f,e):this.each(function(){c.event.add(this,d,j,f)})}});c.fn.extend({unbind:function(a,
|
||||
b){if(typeof a==="object"&&!a.preventDefault){for(var d in a)this.unbind(d,a[d]);return this}return this.each(function(){c.event.remove(this,a,b)})},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+
|
||||
a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e){var i,j=0;if(c.isFunction(f)){e=f;f=v}for(d=(d||"").split(/\s+/);(i=d[j++])!=null;){i=i==="focus"?"focusin":i==="blur"?"focusout":i==="hover"?d.push("mouseleave")&&"mouseenter":i;b==="live"?c(this.context).bind(oa(i,this.selector),{data:f,selector:this.selector,
|
||||
live:i},e):c(this.context).unbind(oa(i,this.selector),e?{guid:e.guid+this.selector+i}:null)}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});z.attachEvent&&!z.addEventListener&&z.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});
|
||||
(function(){function a(g){for(var h="",k,l=0;g[l];l++){k=g[l];if(k.nodeType===3||k.nodeType===4)h+=k.nodeValue;else if(k.nodeType!==8)h+=a(k.childNodes)}return h}function b(g,h,k,l,q,p){q=0;for(var u=l.length;q<u;q++){var t=l[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===k){y=l[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=k;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}l[q]=y}}}function d(g,h,k,l,q,p){q=0;for(var u=l.length;q<u;q++){var t=l[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===
|
||||
k){y=l[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=k;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(o.filter(h,[t]).length>0){y=t;break}}t=t[g]}l[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,i=Object.prototype.toString,j=false,n=true;[0,0].sort(function(){n=false;return 0});var o=function(g,h,k,l){k=k||[];var q=h=h||r;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||
|
||||
typeof g!=="string")return k;for(var p=[],u,t,y,R,H=true,M=w(h),I=g;(f.exec(""),u=f.exec(I))!==null;){I=u[3];p.push(u[1]);if(u[2]){R=u[3];break}}if(p.length>1&&s.exec(g))if(p.length===2&&m.relative[p[0]])t=fa(p[0]+p[1],h);else for(t=m.relative[p[0]]?[h]:o(p.shift(),h);p.length;){g=p.shift();if(m.relative[g])g+=p.shift();t=fa(g,t)}else{if(!l&&p.length>1&&h.nodeType===9&&!M&&m.match.ID.test(p[0])&&!m.match.ID.test(p[p.length-1])){u=o.find(p.shift(),h,M);h=u.expr?o.filter(u.expr,u.set)[0]:u.set[0]}if(h){u=
|
||||
l?{expr:p.pop(),set:A(l)}:o.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=u.expr?o.filter(u.expr,u.set):u.set;if(p.length>0)y=A(t);else H=false;for(;p.length;){var D=p.pop();u=D;if(m.relative[D])u=p.pop();else D="";if(u==null)u=h;m.relative[D](y,u,M)}}else y=[]}y||(y=t);y||o.error(D||g);if(i.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))k.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&
|
||||
y[g].nodeType===1&&k.push(t[g]);else k.push.apply(k,y);else A(y,k);if(R){o(R,q,k,l);o.uniqueSort(k)}return k};o.uniqueSort=function(g){if(C){j=n;g.sort(C);if(j)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};o.matches=function(g,h){return o(g,null,null,h)};o.find=function(g,h,k){var l,q;if(!g)return[];for(var p=0,u=m.order.length;p<u;p++){var t=m.order[p];if(q=m.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");l=m.find[t](q,
|
||||
h,k);if(l!=null){g=g.replace(m.match[t],"");break}}}}l||(l=h.getElementsByTagName("*"));return{set:l,expr:g}};o.filter=function(g,h,k,l){for(var q=g,p=[],u=h,t,y,R=h&&h[0]&&w(h[0]);g&&h.length;){for(var H in m.filter)if((t=m.leftMatch[H].exec(g))!=null&&t[2]){var M=m.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(u===p)p=[];if(m.preFilter[H])if(t=m.preFilter[H](t,u,k,p,l,R)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=u[U])!=null;U++)if(D){I=M(D,t,U,u);var Da=
|
||||
l^!!I;if(k&&I!=null)if(Da)y=true;else u[U]=false;else if(Da){p.push(D);y=true}}if(I!==v){k||(u=p);g=g.replace(m.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)o.error(g);else break;q=g}return u};o.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var m=o.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
|
||||
TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,h){var k=typeof h==="string",l=k&&!/\W/.test(h);k=k&&!l;if(l)h=h.toLowerCase();l=0;for(var q=g.length,
|
||||
p;l<q;l++)if(p=g[l]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[l]=k||p&&p.nodeName.toLowerCase()===h?p||false:p===h}k&&o.filter(h,g,true)},">":function(g,h){var k=typeof h==="string";if(k&&!/\W/.test(h)){h=h.toLowerCase();for(var l=0,q=g.length;l<q;l++){var p=g[l];if(p){k=p.parentNode;g[l]=k.nodeName.toLowerCase()===h?k:false}}}else{l=0;for(q=g.length;l<q;l++)if(p=g[l])g[l]=k?p.parentNode:p.parentNode===h;k&&o.filter(h,g,true)}},"":function(g,h,k){var l=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=
|
||||
h=h.toLowerCase();q=b}q("parentNode",h,l,g,p,k)},"~":function(g,h,k){var l=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,l,g,p,k)}},find:{ID:function(g,h,k){if(typeof h.getElementById!=="undefined"&&!k)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var k=[];h=h.getElementsByName(g[1]);for(var l=0,q=h.length;l<q;l++)h[l].getAttribute("name")===g[1]&&k.push(h[l]);return k.length===0?null:k}},
|
||||
TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,k,l,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var u;(u=h[p])!=null;p++)if(u)if(q^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))k||l.push(u);else if(k)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&
|
||||
"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,k,l,q,p){h=g[1].replace(/\\/g,"");if(!p&&m.attrMap[h])g[1]=m.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,k,l,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=o(g[3],null,null,h);else{g=o.filter(g[3],h,k,true^q);k||l.push.apply(l,g);return false}else if(m.match.POS.test(g[0])||m.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);
|
||||
return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,k){return!!o(k[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===
|
||||
g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,h){return h===0},last:function(g,h,k,l){return h===l.length-1},even:function(g,h){return h%2===
|
||||
0},odd:function(g,h){return h%2===1},lt:function(g,h,k){return h<k[3]-0},gt:function(g,h,k){return h>k[3]-0},nth:function(g,h,k){return k[3]-0===h},eq:function(g,h,k){return k[3]-0===h}},filter:{PSEUDO:function(g,h,k,l){var q=h[1],p=m.filters[q];if(p)return p(g,k,h,l);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=h[3];k=0;for(l=h.length;k<l;k++)if(h[k]===g)return false;return true}else o.error("Syntax error, unrecognized expression: "+
|
||||
q)},CHILD:function(g,h){var k=h[1],l=g;switch(k){case "only":case "first":for(;l=l.previousSibling;)if(l.nodeType===1)return false;if(k==="first")return true;l=g;case "last":for(;l=l.nextSibling;)if(l.nodeType===1)return false;return true;case "nth":k=h[2];var q=h[3];if(k===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var u=0;for(l=p.firstChild;l;l=l.nextSibling)if(l.nodeType===1)l.nodeIndex=++u;p.sizcache=h}g=g.nodeIndex-q;return k===0?g===0:g%k===0&&g/k>=
|
||||
0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var k=h[1];g=m.attrHandle[k]?m.attrHandle[k](g):g[k]!=null?g[k]:g.getAttribute(k);k=g+"";var l=h[2];h=h[4];return g==null?l==="!=":l==="="?k===h:l==="*="?k.indexOf(h)>=0:l==="~="?(" "+k+" ").indexOf(h)>=0:!h?k&&g!==false:l==="!="?k!==h:l==="^="?
|
||||
k.indexOf(h)===0:l==="$="?k.substr(k.length-h.length)===h:l==="|="?k===h||k.substr(0,h.length+1)===h+"-":false},POS:function(g,h,k,l){var q=m.setFilters[h[2]];if(q)return q(g,k,h,l)}}},s=m.match.POS;for(var x in m.match){m.match[x]=new RegExp(m.match[x].source+/(?![^\[]*\])(?![^\(]*\))/.source);m.leftMatch[x]=new RegExp(/(^(?:.|\r|\n)*?)/.source+m.match[x].source.replace(/\\(\d+)/g,function(g,h){return"\\"+(h-0+1)}))}var A=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};
|
||||
try{Array.prototype.slice.call(r.documentElement.childNodes,0)}catch(B){A=function(g,h){h=h||[];if(i.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var k=0,l=g.length;k<l;k++)h.push(g[k]);else for(k=0;g[k];k++)h.push(g[k]);return h}}var C;if(r.documentElement.compareDocumentPosition)C=function(g,h){if(!g.compareDocumentPosition||!h.compareDocumentPosition){if(g==h)j=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===
|
||||
h?0:1;if(g===0)j=true;return g};else if("sourceIndex"in r.documentElement)C=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)j=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)j=true;return g};else if(r.createRange)C=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)j=true;return g.ownerDocument?-1:1}var k=g.ownerDocument.createRange(),l=h.ownerDocument.createRange();k.setStart(g,0);k.setEnd(g,0);l.setStart(h,0);l.setEnd(h,0);g=k.compareBoundaryPoints(Range.START_TO_END,
|
||||
l);if(g===0)j=true;return g};(function(){var g=r.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var k=r.documentElement;k.insertBefore(g,k.firstChild);if(r.getElementById(h)){m.find.ID=function(l,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(l[1]))?q.id===l[1]||typeof q.getAttributeNode!=="undefined"&&q.getAttributeNode("id").nodeValue===l[1]?[q]:v:[]};m.filter.ID=function(l,q){var p=typeof l.getAttributeNode!=="undefined"&&l.getAttributeNode("id");
|
||||
return l.nodeType===1&&p&&p.nodeValue===q}}k.removeChild(g);k=g=null})();(function(){var g=r.createElement("div");g.appendChild(r.createComment(""));if(g.getElementsByTagName("*").length>0)m.find.TAG=function(h,k){k=k.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var l=0;k[l];l++)k[l].nodeType===1&&h.push(k[l]);k=h}return k};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")m.attrHandle.href=function(h){return h.getAttribute("href",
|
||||
2)};g=null})();r.querySelectorAll&&function(){var g=o,h=r.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){o=function(l,q,p,u){q=q||r;if(!u&&q.nodeType===9&&!w(q))try{return A(q.querySelectorAll(l),p)}catch(t){}return g(l,q,p,u)};for(var k in g)o[k]=g[k];h=null}}();(function(){var g=r.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===
|
||||
0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){m.order.splice(1,0,"CLASS");m.find.CLASS=function(h,k,l){if(typeof k.getElementsByClassName!=="undefined"&&!l)return k.getElementsByClassName(h[1])};g=null}}})();var E=r.compareDocumentPosition?function(g,h){return g.compareDocumentPosition(h)&16}:function(g,h){return g!==h&&(g.contains?g.contains(h):true)},w=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},fa=function(g,h){var k=[],
|
||||
l="",q;for(h=h.nodeType?[h]:h;q=m.match.PSEUDO.exec(g);){l+=q[0];g=g.replace(m.match.PSEUDO,"")}g=m.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)o(g,h[q],k);return o.filter(l,k)};c.find=o;c.expr=o.selectors;c.expr[":"]=c.expr.filters;c.unique=o.uniqueSort;c.getText=a;c.isXMLDoc=w;c.contains=E})();var bb=/Until$/,cb=/^(?:parents|prevUntil|prevAll)/,db=/,/;Q=Array.prototype.slice;var Ea=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,i){return!!b.call(e,i,e)===d});else if(b.nodeType)return c.grep(a,
|
||||
function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Qa.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;c.find(a,this[f],b);if(f>0)for(var i=d;i<b.length;i++)for(var j=0;j<d;j++)if(b[j]===b[i]){b.splice(i--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=
|
||||
0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ea(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ea(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,i={},j;if(f&&a.length){e=0;for(var n=a.length;e<n;e++){j=a[e];i[j]||(i[j]=c.expr.match.POS.test(j)?c(j,b||this.context):j)}for(;f&&f.ownerDocument&&f!==b;){for(j in i){e=i[j];if(e.jquery?e.index(f)>
|
||||
-1:c(f).is(e)){d.push({selector:j,elem:f});delete i[j]}}f=f.parentNode}}return d}var o=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(m,s){for(;s&&s.ownerDocument&&s!==b;){if(o?o.index(s)>-1:c(s).is(a))return s;s=s.parentNode}return null})},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),
|
||||
a);return this.pushStack(pa(a[0])||pa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},
|
||||
nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);bb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):
|
||||
e;if((this.length>1||db.test(f))&&cb.test(a))e=e.reverse();return this.pushStack(e,a,Q.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===v||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==
|
||||
b&&d.push(a);return d}});var Fa=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ga=/(<([\w:]+)[^>]*?)\/>/g,eb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,Ha=/<([\w:]+)/,fb=/<tbody/i,gb=/<|&\w+;/,sa=/checked\s*(?:[^=]|=\s*.checked.)/i,Ia=function(a,b,d){return eb.test(d)?a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],
|
||||
col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==v)return this.empty().append((this[0]&&this[0].ownerDocument||r).createTextNode(a));return c.getText(this)},
|
||||
wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?
|
||||
d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,
|
||||
false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&
|
||||
!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Fa,"").replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){qa(this,b);qa(this.find("*"),b.find("*"))}return b},html:function(a){if(a===v)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Fa,""):null;else if(typeof a==="string"&&!/<script/i.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(Ha.exec(a)||
|
||||
["",""])[1].toLowerCase()]){a=a.replace(Ga,Ia);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var i=c(this),j=i.html();i.empty().append(function(){return a.call(this,e,j)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,
|
||||
b,f))});else a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(s){return c.nodeName(s,"table")?s.getElementsByTagName("tbody")[0]||s.appendChild(s.ownerDocument.createElement("tbody")):s}var e,i,j=a[0],n=[];if(!c.support.checkClone&&arguments.length===3&&typeof j===
|
||||
"string"&&sa.test(j))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(j))return this.each(function(s){var x=c(this);a[0]=j.call(this,s,b?x.html():v);x.domManip(a,b,d)});if(this[0]){e=a[0]&&a[0].parentNode&&a[0].parentNode.nodeType===11?{fragment:a[0].parentNode}:ra(a,this,n);if(i=e.fragment.firstChild){b=b&&c.nodeName(i,"tr");for(var o=0,m=this.length;o<m;o++)d.call(b?f(this[o],i):this[o],e.cacheable||this.length>1||o>0?e.fragment.cloneNode(true):e.fragment)}n&&c.each(n,
|
||||
Ma)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);for(var e=0,i=d.length;e<i;e++){var j=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),j);f=f.concat(j)}return this.pushStack(f,a,d.selector)}});c.each({remove:function(a,b){if(!a||c.filter(a,[this]).length){if(!b&&this.nodeType===1){c.cleanData(this.getElementsByTagName("*"));c.cleanData([this])}this.parentNode&&
|
||||
this.parentNode.removeChild(this)}},empty:function(){for(this.nodeType===1&&c.cleanData(this.getElementsByTagName("*"));this.firstChild;)this.removeChild(this.firstChild)}},function(a,b){c.fn[a]=function(){return this.each(b,arguments)}});c.extend({clean:function(a,b,d,f){b=b||r;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||r;var e=[];c.each(a,function(i,j){if(typeof j==="number")j+="";if(j){if(typeof j==="string"&&!gb.test(j))j=b.createTextNode(j);else if(typeof j===
|
||||
"string"){j=j.replace(Ga,Ia);var n=(Ha.exec(j)||["",""])[1].toLowerCase(),o=F[n]||F._default,m=o[0];i=b.createElement("div");for(i.innerHTML=o[1]+j+o[2];m--;)i=i.lastChild;if(!c.support.tbody){m=fb.test(j);n=n==="table"&&!m?i.firstChild&&i.firstChild.childNodes:o[1]==="<table>"&&!m?i.childNodes:[];for(o=n.length-1;o>=0;--o)c.nodeName(n[o],"tbody")&&!n[o].childNodes.length&&n[o].parentNode.removeChild(n[o])}!c.support.leadingWhitespace&&V.test(j)&&i.insertBefore(b.createTextNode(V.exec(j)[0]),i.firstChild);
|
||||
j=c.makeArray(i.childNodes)}if(j.nodeType)e.push(j);else e=c.merge(e,j)}});if(d)for(a=0;e[a];a++)if(f&&c.nodeName(e[a],"script")&&(!e[a].type||e[a].type.toLowerCase()==="text/javascript"))f.push(e[a].parentNode?e[a].parentNode.removeChild(e[a]):e[a]);else{e[a].nodeType===1&&e.splice.apply(e,[a+1,0].concat(c.makeArray(e[a].getElementsByTagName("script"))));d.appendChild(e[a])}return e},cleanData:function(a){for(var b=0,d;(d=a[b])!=null;b++){c.event.remove(d);c.removeData(d)}}});var hb=/z-?index|font-?weight|opacity|zoom|line-?height/i,
|
||||
Ja=/alpha\([^)]*\)/,Ka=/opacity=([^)]*)/,ga=/float/i,ha=/-([a-z])/ig,ib=/([A-Z])/g,jb=/^-?\d+(?:px)?$/i,kb=/^-?\d/,lb={position:"absolute",visibility:"hidden",display:"block"},mb=["Left","Right"],nb=["Top","Bottom"],ob=r.defaultView&&r.defaultView.getComputedStyle,La=c.support.cssFloat?"cssFloat":"styleFloat",ia=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===v)return c.curCSS(d,f);if(typeof e==="number"&&!hb.test(f))e+="px";c.style(d,f,e)})};
|
||||
c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return v;if((b==="width"||b==="height")&&parseFloat(d)<0)d=v;var f=a.style||a,e=d!==v;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=Ja.test(a)?a.replace(Ja,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Ka.exec(f.filter)[1])/100+"":""}if(ga.test(b))b=La;b=b.replace(ha,ia);if(e)f[b]=d;return f[b]},css:function(a,
|
||||
b,d,f){if(b==="width"||b==="height"){var e,i=b==="width"?mb:nb;function j(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(i,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,"border"+this+"Width",true))||0})}a.offsetWidth!==0?j():c.swap(a,lb,j);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&
|
||||
a.currentStyle){f=Ka.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ga.test(b))b=La;if(!d&&e&&e[b])f=e[b];else if(ob){if(ga.test(b))b="float";b=b.replace(ib,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ha,ia);f=a.currentStyle[b]||a.currentStyle[d];if(!jb.test(f)&&kb.test(f)){b=e.left;var i=a.runtimeStyle.left;a.runtimeStyle.left=
|
||||
a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=i}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var pb=
|
||||
J(),qb=/<script(.|\s)*?\/script>/gi,rb=/select|textarea/i,sb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ja=/\?/,tb=/(\?|&)_=.*?(&|$)/,ub=/^(\w+:)?\/\/([^\/?#]+)/,vb=/%20/g;c.fn.extend({_load:c.fn.load,load:function(a,b,d){if(typeof a!=="string")return this._load(a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=
|
||||
c.param(b,c.ajaxSettings.traditional);f="POST"}var i=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(j,n){if(n==="success"||n==="notmodified")i.html(e?c("<div />").append(j.responseText.replace(qb,"")).find(e):j.responseText);d&&i.each(d,[j.responseText,n,j])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&
|
||||
(this.checked||rb.test(this.nodeName)||sb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,
|
||||
b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:z.XMLHttpRequest&&(z.location.protocol!=="file:"||!z.ActiveXObject)?function(){return new z.XMLHttpRequest}:
|
||||
function(){try{return new z.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&e.success.call(o,n,j,w);e.global&&f("ajaxSuccess",[w,e])}function d(){e.complete&&e.complete.call(o,w,j);e.global&&f("ajaxComplete",[w,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}
|
||||
function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),i,j,n,o=a&&a.context||e,m=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(m==="GET")N.test(e.url)||(e.url+=(ja.test(e.url)?"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||
|
||||
N.test(e.url))){i=e.jsonpCallback||"jsonp"+pb++;if(e.data)e.data=(e.data+"").replace(N,"="+i+"$1");e.url=e.url.replace(N,"="+i+"$1");e.dataType="script";z[i]=z[i]||function(q){n=q;b();d();z[i]=v;try{delete z[i]}catch(p){}A&&A.removeChild(B)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===false&&m==="GET"){var s=J(),x=e.url.replace(tb,"$1_="+s+"$2");e.url=x+(x===e.url?(ja.test(e.url)?"&":"?")+"_="+s:"")}if(e.data&&m==="GET")e.url+=(ja.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&
|
||||
c.event.trigger("ajaxStart");s=(s=ub.exec(e.url))&&(s[1]&&s[1]!==location.protocol||s[2]!==location.host);if(e.dataType==="script"&&m==="GET"&&s){var A=r.getElementsByTagName("head")[0]||r.documentElement,B=r.createElement("script");B.src=e.url;if(e.scriptCharset)B.charset=e.scriptCharset;if(!i){var C=false;B.onload=B.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;b();d();B.onload=B.onreadystatechange=null;A&&B.parentNode&&
|
||||
A.removeChild(B)}}}A.insertBefore(B,A.firstChild);return v}var E=false,w=e.xhr();if(w){e.username?w.open(m,e.url,e.async,e.username,e.password):w.open(m,e.url,e.async);try{if(e.data||a&&a.contentType)w.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[e.url]);c.etag[e.url]&&w.setRequestHeader("If-None-Match",c.etag[e.url])}s||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",
|
||||
e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(fa){}if(e.beforeSend&&e.beforeSend.call(o,w,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");w.abort();return false}e.global&&f("ajaxSend",[w,e]);var g=w.onreadystatechange=function(q){if(!w||w.readyState===0||q==="abort"){E||d();E=true;if(w)w.onreadystatechange=c.noop}else if(!E&&w&&(w.readyState===4||q==="timeout")){E=true;w.onreadystatechange=c.noop;j=q==="timeout"?"timeout":!c.httpSuccess(w)?
|
||||
"error":e.ifModified&&c.httpNotModified(w,e.url)?"notmodified":"success";var p;if(j==="success")try{n=c.httpData(w,e.dataType,e)}catch(u){j="parsererror";p=u}if(j==="success"||j==="notmodified")i||b();else c.handleError(e,w,j,p);d();q==="timeout"&&w.abort();if(e.async)w=null}};try{var h=w.abort;w.abort=function(){w&&h.call(w);g("abort")}}catch(k){}e.async&&e.timeout>0&&setTimeout(function(){w&&!E&&g("timeout")},e.timeout);try{w.send(m==="POST"||m==="PUT"||m==="DELETE"?e.data:null)}catch(l){c.handleError(e,
|
||||
w,null,l);d()}e.async||g();return w}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=
|
||||
f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(j,n){if(c.isArray(n))c.each(n,
|
||||
function(o,m){b?f(j,m):d(j+"["+(typeof m==="object"||c.isArray(m)?o:"")+"]",m)});else!b&&n!=null&&typeof n==="object"?c.each(n,function(o,m){d(j+"["+o+"]",m)}):f(j,n)}function f(j,n){n=c.isFunction(n)?n():n;e[e.length]=encodeURIComponent(j)+"="+encodeURIComponent(n)}var e=[];if(b===v)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var i in a)d(i,a[i]);return e.join("&").replace(vb,"+")}});var ka={},wb=/toggle|show|hide/,xb=/^([+-]=)?([\d+-.]+)(.*)$/,
|
||||
W,ta=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(ka[d])f=ka[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();
|
||||
ka[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&
|
||||
c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var i=c.extend({},e),j,n=this.nodeType===1&&c(this).is(":hidden"),
|
||||
o=this;for(j in a){var m=j.replace(ha,ia);if(j!==m){a[m]=a[j];delete a[j];j=m}if(a[j]==="hide"&&n||a[j]==="show"&&!n)return i.complete.call(this);if((j==="height"||j==="width")&&this.style){i.display=c.css(this,"display");i.overflow=this.style.overflow}if(c.isArray(a[j])){(i.specialEasing=i.specialEasing||{})[j]=a[j][1];a[j]=a[j][0]}}if(i.overflow!=null)this.style.overflow="hidden";i.curAnim=c.extend({},a);c.each(a,function(s,x){var A=new c.fx(o,i,s);if(wb.test(x))A[x==="toggle"?n?"show":"hide":x](a);
|
||||
else{var B=xb.exec(x),C=A.cur(true)||0;if(B){x=parseFloat(B[2]);var E=B[3]||"px";if(E!=="px"){o.style[s]=(x||1)+E;C=(x||1)/A.cur(true)*C;o.style[s]=C+E}if(B[1])x=(B[1]==="-="?-1:1)*x+C;A.custom(C,x,E)}else A.custom(C,x,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",
|
||||
1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration==="number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,
|
||||
b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==
|
||||
null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(i){return e.step(i)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop===
|
||||
"width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=
|
||||
this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=
|
||||
c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=
|
||||
null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in r.documentElement?function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),
|
||||
f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(s){c.offset.setOffset(this,a,s)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=
|
||||
b,e=b.ownerDocument,i,j=e.documentElement,n=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var o=b.offsetTop,m=b.offsetLeft;(b=b.parentNode)&&b!==n&&b!==j;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;i=e?e.getComputedStyle(b,null):b.currentStyle;o-=b.scrollTop;m-=b.scrollLeft;if(b===d){o+=b.offsetTop;m+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){o+=parseFloat(i.borderTopWidth)||
|
||||
0;m+=parseFloat(i.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&i.overflow!=="visible"){o+=parseFloat(i.borderTopWidth)||0;m+=parseFloat(i.borderLeftWidth)||0}f=i}if(f.position==="relative"||f.position==="static"){o+=n.offsetTop;m+=n.offsetLeft}if(c.offset.supportsFixedPosition&&f.position==="fixed"){o+=Math.max(j.scrollTop,n.scrollTop);m+=Math.max(j.scrollLeft,n.scrollLeft)}return{top:o,left:m}};c.offset={initialize:function(){var a=r.body,b=r.createElement("div"),
|
||||
d,f,e,i=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);
|
||||
d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i;a.removeChild(b);c.offset.initialize=c.noop},
|
||||
bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),i=parseInt(c.curCSS(a,"top",true),10)||0,j=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,d,e);d={top:b.top-e.top+i,left:b.left-
|
||||
e.left+j};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=
|
||||
this.offsetParent||r.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],i;if(!e)return null;if(f!==v)return this.each(function(){if(i=ua(this))i.scrollTo(!a?f:c(i).scrollLeft(),a?f:c(i).scrollTop());else this[d]=f});else return(i=ua(e))?"pageXOffset"in i?i[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&i.document.documentElement[d]||i.document.body[d]:e[d]}});
|
||||
c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(i){var j=c(this);j[d](f.call(this,i,j[d]()))});return"scrollTo"in e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||
|
||||
e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===v?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});z.jQuery=z.$=c})(window);
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -1,35 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.ServiceModel.Syndication;
|
||||
using System.Web;
|
||||
using System.Web.Hosting;
|
||||
using System.Xml;
|
||||
|
||||
namespace PackageIndexReferenceImplementation.Services {
|
||||
public class FeedStorage {
|
||||
|
||||
public SyndicationFeed GetFeed() {
|
||||
var formatter = new Atom10FeedFormatter<SyndicationFeed>();
|
||||
var feedPath = HostingEnvironment.MapPath("~/App_Data/Feed.xml");
|
||||
if (!File.Exists(feedPath)) {
|
||||
string title = ConfigurationManager.AppSettings["Title"];
|
||||
return new SyndicationFeed() { Title = new TextSyndicationContent(title)};
|
||||
}
|
||||
using (var reader = XmlReader.Create(feedPath)) {
|
||||
formatter.ReadFrom(reader);
|
||||
return formatter.Feed;
|
||||
}
|
||||
}
|
||||
|
||||
public void StoreFeed(SyndicationFeed feed) {
|
||||
var formatter = new Atom10FeedFormatter<SyndicationFeed>(feed);
|
||||
var feedPath = HostingEnvironment.MapPath("~/App_Data/Feed.xml");
|
||||
using (var writer = XmlWriter.Create(feedPath)) {
|
||||
formatter.WriteTo(writer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Web.Hosting;
|
||||
|
||||
namespace PackageIndexReferenceImplementation.Services {
|
||||
public class MediaStorage {
|
||||
public void StoreMedia(string identifier, Stream data) {
|
||||
if (!Directory.Exists(HostingEnvironment.MapPath("~/App_Data/Media")))
|
||||
Directory.CreateDirectory(HostingEnvironment.MapPath("~/App_Data/Media"));
|
||||
|
||||
var safeIdentifier = GetSafeIdentifier(identifier);
|
||||
var filePath = HostingEnvironment.MapPath("~/App_Data/Media/" + safeIdentifier);
|
||||
using (var destination = new FileStream(filePath, FileMode.Create, FileAccess.Write)) {
|
||||
data.Seek(0, SeekOrigin.Begin);
|
||||
data.CopyTo(destination);
|
||||
}
|
||||
}
|
||||
|
||||
public Stream GetMedia(string identifier) {
|
||||
if (!Directory.Exists(HostingEnvironment.MapPath("~/App_Data/Media")))
|
||||
Directory.CreateDirectory(HostingEnvironment.MapPath("~/App_Data/Media"));
|
||||
|
||||
var safeIdentifier = GetSafeIdentifier(identifier);
|
||||
var filePath = HostingEnvironment.MapPath("~/App_Data/Media/" + safeIdentifier);
|
||||
return new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
|
||||
}
|
||||
|
||||
public DateTime GetLastModifiedDate(string identifier) {
|
||||
if (!Directory.Exists(HostingEnvironment.MapPath("~/App_Data/Media")))
|
||||
Directory.CreateDirectory(HostingEnvironment.MapPath("~/App_Data/Media"));
|
||||
|
||||
var safeIdentifier = GetSafeIdentifier(identifier);
|
||||
var filePath = HostingEnvironment.MapPath("~/App_Data/Media/" + safeIdentifier);
|
||||
return File.GetLastWriteTimeUtc(filePath);
|
||||
}
|
||||
|
||||
static string GetSafeIdentifier(string identifier) {
|
||||
var invalidFileNameChars = Path.GetInvalidFileNameChars().Concat(Path.GetInvalidPathChars()).Distinct();
|
||||
var safeIdentifier = identifier.Replace("^", string.Format("^{0:X2}", (int)'^'));
|
||||
foreach (var ch in invalidFileNameChars) {
|
||||
safeIdentifier = safeIdentifier.Replace(new string(ch, 1), string.Format("^{0:X2}", (int)ch));
|
||||
}
|
||||
return safeIdentifier;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<PackageIndexReferenceImplementation.Models.LogOnModel>" %>
|
||||
|
||||
<asp:Content ID="loginTitle" ContentPlaceHolderID="TitleContent" runat="server">
|
||||
Log On
|
||||
</asp:Content>
|
||||
|
||||
<asp:Content ID="loginContent" ContentPlaceHolderID="MainContent" runat="server">
|
||||
<h2>Log On</h2>
|
||||
<p>
|
||||
Please enter your username and password.
|
||||
</p>
|
||||
|
||||
<% using (Html.BeginForm()) { %>
|
||||
<%: Html.ValidationSummary(true, "Login was unsuccessful. Please correct the errors and try again.") %>
|
||||
<div>
|
||||
<fieldset>
|
||||
<legend>Account Information</legend>
|
||||
|
||||
<div class="editor-label">
|
||||
<%: Html.LabelFor(m => m.UserName) %>
|
||||
</div>
|
||||
<div class="editor-field">
|
||||
<%: Html.TextBoxFor(m => m.UserName) %>
|
||||
<%: Html.ValidationMessageFor(m => m.UserName) %>
|
||||
</div>
|
||||
|
||||
<div class="editor-label">
|
||||
<%: Html.LabelFor(m => m.Password) %>
|
||||
</div>
|
||||
<div class="editor-field">
|
||||
<%: Html.PasswordFor(m => m.Password) %>
|
||||
<%: Html.ValidationMessageFor(m => m.Password) %>
|
||||
</div>
|
||||
|
||||
<div class="editor-label">
|
||||
<%: Html.CheckBoxFor(m => m.RememberMe) %>
|
||||
<%: Html.LabelFor(m => m.RememberMe) %>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<input type="submit" value="Log On" />
|
||||
</p>
|
||||
</fieldset>
|
||||
</div>
|
||||
<% } %>
|
||||
</asp:Content>
|
||||
@@ -1,12 +0,0 @@
|
||||
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
|
||||
|
||||
<asp:Content ID="aboutTitle" ContentPlaceHolderID="TitleContent" runat="server">
|
||||
About Us
|
||||
</asp:Content>
|
||||
|
||||
<asp:Content ID="aboutContent" ContentPlaceHolderID="MainContent" runat="server">
|
||||
<h2>About</h2>
|
||||
<p>
|
||||
Put content here.
|
||||
</p>
|
||||
</asp:Content>
|
||||
@@ -1,12 +0,0 @@
|
||||
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
|
||||
|
||||
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
|
||||
Home Page
|
||||
</asp:Content>
|
||||
|
||||
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
|
||||
<h2><%: ViewData["Message"] %></h2>
|
||||
<p>
|
||||
To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
|
||||
</p>
|
||||
</asp:Content>
|
||||
@@ -1,11 +0,0 @@
|
||||
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<System.Web.Mvc.HandleErrorInfo>" %>
|
||||
|
||||
<asp:Content ID="errorTitle" ContentPlaceHolderID="TitleContent" runat="server">
|
||||
Error
|
||||
</asp:Content>
|
||||
|
||||
<asp:Content ID="errorContent" ContentPlaceHolderID="MainContent" runat="server">
|
||||
<h2>
|
||||
Sorry, an error occurred while processing your request.
|
||||
</h2>
|
||||
</asp:Content>
|
||||
@@ -1,14 +0,0 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
|
||||
<%
|
||||
if (Request.IsAuthenticated) {
|
||||
%>
|
||||
Welcome <b><%: Page.User.Identity.Name %></b>!
|
||||
[ <%: Html.ActionLink("Log Off", "LogOff", "Account") %> ]
|
||||
<%
|
||||
}
|
||||
else {
|
||||
%>
|
||||
[ <%: Html.ActionLink("Log On", "LogOn", "Account") %> ]
|
||||
<%
|
||||
}
|
||||
%>
|
||||
@@ -1,40 +0,0 @@
|
||||
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head runat="server">
|
||||
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
|
||||
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="page">
|
||||
|
||||
<div id="header">
|
||||
<div id="title">
|
||||
<h1>My MVC Application</h1>
|
||||
</div>
|
||||
|
||||
<div id="logindisplay">
|
||||
<% Html.RenderPartial("LogOnUserControl"); %>
|
||||
</div>
|
||||
|
||||
<div id="menucontainer">
|
||||
|
||||
<ul id="menu">
|
||||
<li><%: Html.ActionLink("Home", "Index", "Home")%></li>
|
||||
<li><%: Html.ActionLink("About", "About", "Home")%></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="main">
|
||||
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
|
||||
|
||||
<div id="footer">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,43 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<configuration>
|
||||
<system.web>
|
||||
<httpHandlers>
|
||||
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
|
||||
</httpHandlers>
|
||||
|
||||
<!--
|
||||
Enabling request validation in view pages would cause validation to occur
|
||||
after the input has already been processed by the controller. By default
|
||||
MVC performs request validation before a controller processes the input.
|
||||
To change this behavior apply the ValidateInputAttribute to a
|
||||
controller or action.
|
||||
-->
|
||||
<pages
|
||||
validateRequest="false"
|
||||
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"
|
||||
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"
|
||||
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<controls>
|
||||
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" namespace="System.Web.Mvc" tagPrefix="mvc" />
|
||||
</controls>
|
||||
</pages>
|
||||
</system.web>
|
||||
|
||||
<system.webServer>
|
||||
<validation validateIntegratedModeConfiguration="false" />
|
||||
|
||||
<handlers>
|
||||
<remove name="BlockViewHandler"/>
|
||||
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
|
||||
</handlers>
|
||||
</system.webServer>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="2.0.0.0" newVersion="3.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -1,30 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!-- For more information on using web.config transformation visit http://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 atrribute "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>
|
||||
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!-- For more information on using web.config transformation visit http://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 atrribute "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>
|
||||
@@ -1,58 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!--
|
||||
For more information on how to configure your ASP.NET application, please visit
|
||||
http://go.microsoft.com/fwlink/?LinkId=152368
|
||||
-->
|
||||
|
||||
<configuration>
|
||||
<appSettings>
|
||||
<add key="Title" value="Orchard Extensions Gallery"/>
|
||||
</appSettings>
|
||||
|
||||
<system.web>
|
||||
|
||||
<compilation targetFramework="4.0">
|
||||
<assemblies>
|
||||
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
|
||||
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
|
||||
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
|
||||
</assemblies>
|
||||
</compilation>
|
||||
|
||||
<authentication mode="Forms">
|
||||
<forms loginUrl="~/Account/LogOn" timeout="2880">
|
||||
<credentials passwordFormat="SHA1">
|
||||
<user name="UserName1" password="SHA1EncryptedPassword1"/>
|
||||
<user name="UserName2" password="SHA1EncryptedPassword2"/>
|
||||
<user name="UserName3" password="SHA1EncryptedPassword3"/>
|
||||
</credentials>
|
||||
</forms>
|
||||
</authentication>
|
||||
|
||||
<pages>
|
||||
<namespaces>
|
||||
<add namespace="System.Web.Mvc" />
|
||||
<add namespace="System.Web.Mvc.Ajax" />
|
||||
<add namespace="System.Web.Mvc.Html" />
|
||||
<add namespace="System.Web.Routing" />
|
||||
</namespaces>
|
||||
</pages>
|
||||
</system.web>
|
||||
|
||||
<system.webServer>
|
||||
<validation validateIntegratedModeConfiguration="false"/>
|
||||
<modules runAllManagedModulesForAllRequests="true"/>
|
||||
</system.webServer>
|
||||
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="2.0.0.0" newVersion="3.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
|
||||
</configuration>
|
||||
|
||||
Reference in New Issue
Block a user