From 0850c67fa6e2e95052b60df843a9db492dc32cad Mon Sep 17 00:00:00 2001 From: Alex Edelstein Date: Fri, 22 Jul 2016 11:45:15 -0700 Subject: [PATCH 001/266] Create Notifications.md --- Docs/ForDevelopers/Services/Notifications.md | 25 ++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Docs/ForDevelopers/Services/Notifications.md diff --git a/Docs/ForDevelopers/Services/Notifications.md b/Docs/ForDevelopers/Services/Notifications.md new file mode 100644 index 0000000000..a7c155216f --- /dev/null +++ b/Docs/ForDevelopers/Services/Notifications.md @@ -0,0 +1,25 @@ +Notification Services +===================== + + +Notifications are messages intended to be seen by end users, as distinct from [Events](). + +The primary mechanism for delivering Notifications to users is the [Activity Stream](), which is implemented based on [Pusher](). + +Terminals and Hubs generate Activity Stream messages by ________________________ + +The Client generates Activity Stream messages by ___________________________ + + +App Builder Apps are optimized visually for mobile screen sizes, so they don't use a visible Activity Stream. Instead, _____________________________ + + +Some Activity Stream messages are generated on behalf of the Terminal as a result of [Activity Reponses](). This is generally how a Terminal reports an +error of Validation or Execution back to the end user. They configure the ActivityResponse this way: _______________ + + +FE Details +============== +The client uses an Angular service called UINotificationService..... + +The client uses ngToast as well. We are migrating the ngToasts to UI NotificationService....... From 916e4903d048d75b979465db132481ebb2d8f696 Mon Sep 17 00:00:00 2001 From: Alex Edelstein Date: Fri, 22 Jul 2016 11:46:53 -0700 Subject: [PATCH 002/266] Create ServicesHome.md --- Docs/ForDevelopers/ServicesHome.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Docs/ForDevelopers/ServicesHome.md diff --git a/Docs/ForDevelopers/ServicesHome.md b/Docs/ForDevelopers/ServicesHome.md new file mode 100644 index 0000000000..b031ff3318 --- /dev/null +++ b/Docs/ForDevelopers/ServicesHome.md @@ -0,0 +1,5 @@ +Fr8 Services +================ + +[Notification](/Docs/ForDevelopers/Services/Notification.md) +[Scheduling](/Docs/ForDevelopers/Services/Scheduling.md) From 592b9f00d7813eea565f3a51c1b068f0546cc347 Mon Sep 17 00:00:00 2001 From: Alex Edelstein Date: Fri, 22 Jul 2016 11:47:12 -0700 Subject: [PATCH 003/266] Update ServicesHome.md --- Docs/ForDevelopers/ServicesHome.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Docs/ForDevelopers/ServicesHome.md b/Docs/ForDevelopers/ServicesHome.md index b031ff3318..87024a590b 100644 --- a/Docs/ForDevelopers/ServicesHome.md +++ b/Docs/ForDevelopers/ServicesHome.md @@ -1,5 +1,6 @@ Fr8 Services ================ -[Notification](/Docs/ForDevelopers/Services/Notification.md) +[Notification](/Docs/ForDevelopers/Services/Notifications.md) + [Scheduling](/Docs/ForDevelopers/Services/Scheduling.md) From 032188440f856e2b2563fb92dfb058c2d9cc9931 Mon Sep 17 00:00:00 2001 From: Alex Edelstein Date: Fri, 22 Jul 2016 11:48:03 -0700 Subject: [PATCH 004/266] Update Home.md --- Docs/Home.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Docs/Home.md b/Docs/Home.md index 4b723477c7..71d08a24c9 100644 --- a/Docs/Home.md +++ b/Docs/Home.md @@ -28,6 +28,9 @@ Specifications * [Fr8 Hub Specification](/Docs/ForDevelopers/Specifications/Fr8HubSpecification.md) * [Terminal Specification](/Docs/ForDevelopers/Specifications/TerminalSpecification.md) +[Services](/Docs/ForDevelopers/ServicesHome.md) +----------------------------------------------- + [Development Guides](ForDevelopers/DevGuideHome.md) ----------------------------- From d77d38254039ce8cb8f9b9ddaf58b759ba57b005 Mon Sep 17 00:00:00 2001 From: Alexei Avrutin Date: Tue, 26 Jul 2016 17:05:22 +0200 Subject: [PATCH 005/266] The MonitorTerminalSubmissionPlan test verification --- .../Integration/MonitorTerminalSubmissionPlanTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/terminalIntegrationTests/Integration/MonitorTerminalSubmissionPlanTest.cs b/Tests/terminalIntegrationTests/Integration/MonitorTerminalSubmissionPlanTest.cs index 97de345076..4989eb24a9 100644 --- a/Tests/terminalIntegrationTests/Integration/MonitorTerminalSubmissionPlanTest.cs +++ b/Tests/terminalIntegrationTests/Integration/MonitorTerminalSubmissionPlanTest.cs @@ -58,7 +58,7 @@ public static string SlackAuthToken - [Test, Ignore("Is being resolved with 4692")] + [Test] public async Task MonitorTerminalSubmissionPlan() { AutoMapperBootstrapper.ConfigureAutoMapper(); From 241650b4054e8a9ed0e1f57d32b025f6a4baafe1 Mon Sep 17 00:00:00 2001 From: Alexei Avrutin Date: Wed, 27 Jul 2016 00:01:24 +0200 Subject: [PATCH 006/266] GoogleFormEventWebServerUrl readded --- Tests/HealthMonitor/App.config | 1 + 1 file changed, 1 insertion(+) diff --git a/Tests/HealthMonitor/App.config b/Tests/HealthMonitor/App.config index 83e864ac78..543fdfb426 100644 --- a/Tests/HealthMonitor/App.config +++ b/Tests/HealthMonitor/App.config @@ -21,6 +21,7 @@ + From 6495adf5cafa246c93d7e6abf83e9d451fbb9876 Mon Sep 17 00:00:00 2001 From: Alexei Avrutin Date: Wed, 27 Jul 2016 00:14:40 +0200 Subject: [PATCH 007/266] Rebuild --- Tests/HealthMonitor/App.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/HealthMonitor/App.config b/Tests/HealthMonitor/App.config index 543fdfb426..cf2fa730fa 100644 --- a/Tests/HealthMonitor/App.config +++ b/Tests/HealthMonitor/App.config @@ -33,7 +33,7 @@ - ONG$EHWh`12y?tZ(_Q-bggLbdVjgndJ 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 Date: Thu, 28 Jul 2016 11:48:02 +0300 Subject: [PATCH 010/266] Notifications.md is finalized for review --- Docs/ForDevelopers/Services/Notifications.md | 46 +++++++++++++++++--- 1 file changed, 39 insertions(+), 7 deletions(-) diff --git a/Docs/ForDevelopers/Services/Notifications.md b/Docs/ForDevelopers/Services/Notifications.md index 5e67f04250..9e9e523c61 100644 --- a/Docs/ForDevelopers/Services/Notifications.md +++ b/Docs/ForDevelopers/Services/Notifications.md @@ -1,49 +1,81 @@ Notification Services ===================== + [Go to Contents]( /Docs/Home.md) -Notifications are messages intended to be seen by end users, as distinct from [Events]( /Docs/ForDevelopers/OperatingConcepts/Events.md). They can be divided to two categories as Activity Stream messages and toast notifications. +Notifications are messages intended to be seen by end users, as distinct from [Events](/Docs/ForDevelopers/OperatingConcepts/Events.md). They can be divided to two categories as Activity Stream messages and toast notifications. + ## Activity Stream -The primary mechanism for delivering Notifications to users is the Activity Stream, which is implemented based on [Pusher]( https://pusher.com/). Pusher services provide us server-to-client messaging channel per user session and later these messages are displayed in a panel named “Activity Stream”. These messages can be generated by Hub on behalf of Terminal as a result of [Activity Response](), or by terminal requests to the Hub. + +The primary mechanism for delivering Notifications to users is Activity Stream, which is implemented based on [Pusher](https://pusher.com/). It provide us server-to-client messaging channel per user session and later these messages are displayed in the right-side panel named “Activity Stream”. They can be generated by Hub on behalf of Terminal as a result of [Activity Response](), or by terminal requests to the Hub. ![ActivityStream](/Docs/img/ActivityStream.png) At the moment, there are 5 type of Notification messages at the Activity Stream: + • Generic Success + • Generic Failure + • Generic Info + • Terminal Event (Used for displaying specific messages generated by terminals during the execution) + • Execution Stopped -These notification types can report an error of validation, successful execution, or information on terminals/activity states. Although most of the notifications are pre-defined messages sent by Hub (based on Activity Responses), Terminals can also inform users with their “Terminal Event” notifications. They need to post a request to “URL“ with specific JSON as: +These notification types can report an error of validation, successful execution, or information on terminals/activity states. Although most of the notifications are pre-defined messages sent by Hub (based on Activity Responses), Terminals can also inform users with their “Terminal Event” notifications: + + +*Url* + + {{Fr8HubCallBackUrl}}/api/{{Fr8HubApiVersion}}/notifications + +*Method* + + POST + +*Request Body* ```javascript { "ActivityName" : "App_Builder", "ActivityVersion": "1", "Collapsed": false, "Message": "This is a plan message/description", - "NotificationArea": 1, + "NotificationArea": 1, // ActvityStream = 1, Toast = 2 "Subject": "This is a custom (optional) header for message", "TerminalName": "terminalFr8Core", "TerminalVersion" : "1" } ``` + ## Toast Messages -They have similar mechanism as Activity Stream and also uses Pusher service for sending messages from server to client. Toast messages can be seen in 4-5 types as: (which are implemented with [Noty library](). Only requirement for showing them is changing X part of JSON to “y” (which means “Toast”) before posting to “url”. Example JSON can be found down below: +They have similar mechanism as Activity Stream and also uses Pusher service for sending messages from server to client. Toast messages can be seen in 4 types as: *Success, Error, Info and Alert* (which are implemented with [Noty library](http://ned.im/noty/). Example request for Toast messages can be found down below: + +*Url* + + {{Fr8HubCallBackUrl}}/api/{{Fr8HubApiVersion}}/notifications + +*Method* + + POST + +*Request Body* ```javascript { "ActivityName" : "App_Builder", "ActivityVersion": "1", "Message": "This is a toast message", - "NotificationArea": 2, + "NotificationArea": 2, // ActivityStream = 1, Toast = 2 + "NotificationType": 1, // Success = 1, Error = 2, Info = 3, Alert = 4 "TerminalName": "terminalFr8Core", "TerminalVersion" : "1" } ``` -It is recommended to use Activity Stream as notifications but there can be some special cases arises for using toast messages like in App Builder activity. As discussed in XXX, App Builder Apps are optimized visually for mobile screen sizes, so they don't use a visible Activity Stream. Instead, we display toast messages for users in Kiosk mode. +It is recommended to use Activity Stream as notifications but there can be some special cases arises for using toast messages like in App Builder activity. App Builder Apps are optimized visually for mobile screen sizes, so they don't use a visible Activity Stream. Instead of activity stream, displaying toast messages in Kiosk mode is our best use-case. + [Go to Contents]( /Docs/Home.md) From 28afe6c872637fd21495031e69a020364b02b74e Mon Sep 17 00:00:00 2001 From: jarekrzdbk Date: Fri, 29 Jul 2016 19:02:02 +0300 Subject: [PATCH 011/266] fixed set upstream --- terminalGoogle/Services/GoogleMTSFPlan.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/terminalGoogle/Services/GoogleMTSFPlan.cs b/terminalGoogle/Services/GoogleMTSFPlan.cs index 3d367476ca..5d9e2401ff 100644 --- a/terminalGoogle/Services/GoogleMTSFPlan.cs +++ b/terminalGoogle/Services/GoogleMTSFPlan.cs @@ -239,6 +239,7 @@ private void SetUpstream(ActivityPayload payload, string crateLabel, string fiel var field = data.AvailableCrates.Where(c => c.Fields.Where(f => f.Name == fieldKey).FirstOrDefault() != null).FirstOrDefault().Fields.Where(f => f.Name == fieldKey).FirstOrDefault(); nameTextBox.ValueSource = "upstream"; nameTextBox.SelectedItem = field; + nameTextBox.selectedKey = field.Name; } private void SetDDL(ActivityPayload payload, string name, string key) From 10d5fca61f465873ef07447b8ed29bec18dd7afa Mon Sep 17 00:00:00 2001 From: jarekrzdbk Date: Fri, 29 Jul 2016 19:04:09 +0300 Subject: [PATCH 012/266] updated privet settings package version --- HubWeb.csproj | 4 ++-- Services/PlanDirectory/PlanDirectory.csproj | 4 ++-- Services/PlanDirectory/packages.config | 2 +- .../HealthMonitor.HubLauncher.csproj | 4 ++-- Tests/HealthMonitor.HubLauncher/packages.config | 2 +- Tests/HealthMonitor/HealthMonitor.csproj | 4 ++-- Tests/HealthMonitor/packages.config | 2 +- packages.config | 2 +- terminalAsana/packages.config | 2 +- terminalAsana/terminalAsana.csproj | 4 ++-- terminalBasecamp2/packages.config | 2 +- terminalBasecamp2/terminalBasecamp2.csproj | 4 ++-- terminalBox/packages.config | 2 +- terminalBox/terminalBox.csproj | 4 ++-- terminalDocuSign/packages.config | 2 +- terminalDocuSign/terminalDocuSign.csproj | 4 ++-- terminalDropbox/packages.config | 2 +- terminalDropbox/terminalDropbox.csproj | 4 ++-- terminalFacebook/packages.config | 2 +- terminalFacebook/terminalFacebook.csproj | 4 ++-- terminalFr8Core/packages.config | 2 +- terminalFr8Core/terminalFr8Core.csproj | 4 ++-- terminalGoogle/packages.config | 2 +- terminalGoogle/terminalGoogle.csproj | 4 ++-- terminalInstagram/packages.config | 2 +- terminalInstagram/terminalInstagram.csproj | 4 ++-- terminalPapertrail/packages.config | 2 +- terminalPapertrail/terminalPapertrail.csproj | 4 ++-- terminalQuickBooks/packages.config | 2 +- terminalQuickBooks/terminalQuickBooks.csproj | 4 ++-- terminalSalesforce/packages.config | 2 +- terminalSalesforce/terminalSalesforce.csproj | 4 ++-- terminalSendGrid/packages.config | 2 +- terminalSendGrid/terminalSendGrid.csproj | 4 ++-- terminalSlack/packages.config | 2 +- terminalSlack/terminalSlack.csproj | 4 ++-- terminalStatX/packages.config | 2 +- terminalStatX/terminalStatX.csproj | 4 ++-- terminalTelegram/Web.config | 2 +- terminalTelegram/packages.config | 2 +- terminalTelegram/terminalTelegram.csproj | 4 ++-- terminalTwilio/packages.config | 2 +- terminalTwilio/terminalTwilio.csproj | 4 ++-- terminalYammer/packages.config | 2 +- terminalYammer/terminalYammer.csproj | 4 ++-- 45 files changed, 67 insertions(+), 67 deletions(-) diff --git a/HubWeb.csproj b/HubWeb.csproj index 3665829744..4d659b668a 100644 --- a/HubWeb.csproj +++ b/HubWeb.csproj @@ -4473,7 +4473,7 @@ This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + @@ -4559,5 +4559,5 @@ - + \ No newline at end of file diff --git a/Services/PlanDirectory/PlanDirectory.csproj b/Services/PlanDirectory/PlanDirectory.csproj index 5d40cb85c4..173e26065b 100644 --- a/Services/PlanDirectory/PlanDirectory.csproj +++ b/Services/PlanDirectory/PlanDirectory.csproj @@ -513,7 +513,7 @@ - + @@ -529,7 +529,7 @@ - + From 67b17e13ca9efcb856a2f4fb3fb43ce53ee36e0b Mon Sep 17 00:00:00 2001 From: jarekrzdbk Date: Fri, 29 Jul 2016 19:05:30 +0300 Subject: [PATCH 014/266] moved tokens to private settings package --- .../MonitorTerminalSubmissionPlanTest.cs | 52 +++++++++++++------ 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/Tests/terminalIntegrationTests/Integration/MonitorTerminalSubmissionPlanTest.cs b/Tests/terminalIntegrationTests/Integration/MonitorTerminalSubmissionPlanTest.cs index 97de345076..e59b6534cd 100644 --- a/Tests/terminalIntegrationTests/Integration/MonitorTerminalSubmissionPlanTest.cs +++ b/Tests/terminalIntegrationTests/Integration/MonitorTerminalSubmissionPlanTest.cs @@ -2,7 +2,6 @@ using Data.Entities; using Data.Interfaces; using Fr8.Infrastructure.Data.DataTransferObjects; -using Fr8.Infrastructure.Utilities; using Fr8.Testing.Integration; using NUnit.Framework; using StructureMap; @@ -10,23 +9,17 @@ using System.Collections.Generic; using System.Linq; using System.Net.Http; -using System.Text; using System.Threading.Tasks; -using terminalGoogle.Services; using Newtonsoft.Json; using Fr8.TerminalBase.Models; using Newtonsoft.Json.Linq; -using Fr8.TerminalBase.Interfaces; using System.Diagnostics; using System.Configuration; using AutoMapper; using Fr8.Infrastructure.Data.Manifests; using Fr8.Infrastructure.Data.Crates; using Fr8.Infrastructure.Data.Control; -using Fr8.Infrastructure.Data.Managers; using Fr8.TerminalBase.Infrastructure; -using System.Web; -using terminalIntegrationTests.Fixtures; namespace terminalIntegrationTests.Integration { @@ -41,8 +34,8 @@ public override string TerminalName } } - private readonly string jiraToken = @"{""Terminal"":null,""Username"":""fr8_atlassian_test@fr8.co"",""Password"":""shoggoth34"",""Domain"":""https://maginot.atlassian.net"",""IsDemoAccount"":false}"; - + private static string AtlassianAccountId = ConfigurationManager.AppSettings["AtlassianTestAccountId"]; + private static string AtlassianAccountPassword = ConfigurationManager.AppSettings["AtlassianTestAccountPassword"]; private const int MaxAwaitPeriod = 45000; private const int SingleAwaitPeriod = 3000; private const int PlanExecutionPeriod = 10000; @@ -54,9 +47,36 @@ public static string SlackAuthToken return ConfigurationManager.AppSettings["SlackAuthToken"]; } } + public static string SlackExternalDomainId + { + get + { + return ConfigurationManager.AppSettings["SlackExternalDomainId"]; + } + } + public static string AtlassianToken + { + get + { + return "{\"Terminal\":null,\"Username\":\"" + AtlassianAccountId + "\",\"Password\":\"" + AtlassianAccountPassword + "\",\"Domain\":\"https://maginot.atlassian.net\",\"IsDemoAccount\":false}"; + } + } + public static string GoogleAuthToken + { + get + { + return ConfigurationManager.AppSettings["GoogleTestAccountToken"]; + } + } + public static string GoogleTestAccountId + { + get + { + return ConfigurationManager.AppSettings["GoogleTestAccountId"]; + } + } - [Test, Ignore("Is being resolved with 4692")] public async Task MonitorTerminalSubmissionPlan() @@ -111,7 +131,7 @@ public async Task MonitorTerminalSubmissionPlan() await Task.Delay(PlanExecutionPeriod); - Jira jira = CreateRestClient(jiraToken); + Jira jira = CreateRestClient(AtlassianToken); Issue[] issues = new Issue[0]; var slackUrl = "https://slack.com/api/search.messages?token=" + SlackAuthToken + "&query=" + guidTestId.ToString(); @@ -186,8 +206,8 @@ private string AddTokens() string userId = ""; var tokenADO = new AuthorizationTokenDO() { - Token = jiraToken, - ExternalAccountId = "fr8_atlassian_test@fr8.co", + Token = AtlassianToken, + ExternalAccountId = AtlassianAccountId, CreateDate = DateTime.Now, ExpiresAt = DateTime.Now.AddHours(1), Id = Guid.NewGuid() @@ -195,8 +215,8 @@ private string AddTokens() var tokenGDO = new AuthorizationTokenDO() { - Token = @"{""AccessToken"":""ya29.CjHXAnhqySXYWbq-JE3Nqpq18L_LGYw3xx_T-lD6jeQd6C2mMoKzQhTWRWFSkPcX-pH_"",""RefreshToken"":""1/ZmUihiXxjwiVd-kQe46hDXKB95VaHM5yP-6bfrS-EUUMEudVrK5jSpoR30zcRFq6"",""Expires"":""2017-11-28T13:29:12.653075+05:00""}", - ExternalAccountId = "fr8test1@gmail.com", + Token = GoogleAuthToken, + ExternalAccountId = GoogleTestAccountId, CreateDate = DateTime.Now, ExpiresAt = DateTime.Now.AddHours(1), Id = Guid.NewGuid() @@ -207,7 +227,7 @@ private string AddTokens() Token = SlackAuthToken, ExternalAccountId = "not_user", ExternalAccountName = "not_user", - ExternalDomainId = "T07F83QLE", + ExternalDomainId = SlackExternalDomainId, ExternalDomainName = "Fr8", CreateDate = DateTime.Now, ExpiresAt = DateTime.Now.AddHours(1), From bc663826f9613e73baaa27285753b37a40395e8e Mon Sep 17 00:00:00 2001 From: jarekrzdbk Date: Fri, 29 Jul 2016 19:07:08 +0300 Subject: [PATCH 015/266] temporary remove Ignore attribute from test --- .../Integration/MonitorTerminalSubmissionPlanTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/terminalIntegrationTests/Integration/MonitorTerminalSubmissionPlanTest.cs b/Tests/terminalIntegrationTests/Integration/MonitorTerminalSubmissionPlanTest.cs index e59b6534cd..716b267467 100644 --- a/Tests/terminalIntegrationTests/Integration/MonitorTerminalSubmissionPlanTest.cs +++ b/Tests/terminalIntegrationTests/Integration/MonitorTerminalSubmissionPlanTest.cs @@ -78,7 +78,7 @@ public static string GoogleTestAccountId - [Test, Ignore("Is being resolved with 4692")] + [Test] public async Task MonitorTerminalSubmissionPlan() { AutoMapperBootstrapper.ConfigureAutoMapper(); From dab8b6f3bb0701deed34fe1f8f11ced41b132355 Mon Sep 17 00:00:00 2001 From: jarekrzdbk Date: Fri, 29 Jul 2016 20:00:10 +0300 Subject: [PATCH 016/266] Ignore test --- .../Integration/MonitorTerminalSubmissionPlanTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/terminalIntegrationTests/Integration/MonitorTerminalSubmissionPlanTest.cs b/Tests/terminalIntegrationTests/Integration/MonitorTerminalSubmissionPlanTest.cs index 716b267467..e59b6534cd 100644 --- a/Tests/terminalIntegrationTests/Integration/MonitorTerminalSubmissionPlanTest.cs +++ b/Tests/terminalIntegrationTests/Integration/MonitorTerminalSubmissionPlanTest.cs @@ -78,7 +78,7 @@ public static string GoogleTestAccountId - [Test] + [Test, Ignore("Is being resolved with 4692")] public async Task MonitorTerminalSubmissionPlan() { AutoMapperBootstrapper.ConfigureAutoMapper(); From ee0ca592587fdad778a13d368faffeac4096822d Mon Sep 17 00:00:00 2001 From: Alexei Avrutin Date: Sat, 30 Jul 2016 21:06:41 +0200 Subject: [PATCH 017/266] Interim commit --- Data/Entities/TerminalRegistrationDO.cs | 2 ++ .../Data/DataTransferObjects/TerminalRegistrationDTO.cs | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/Data/Entities/TerminalRegistrationDO.cs b/Data/Entities/TerminalRegistrationDO.cs index 91a0834fa2..a3e3aa6079 100644 --- a/Data/Entities/TerminalRegistrationDO.cs +++ b/Data/Entities/TerminalRegistrationDO.cs @@ -14,5 +14,7 @@ public class TerminalRegistrationDO : BaseObject public String UserId { get; set; } public Fr8AccountDO User { get; set; } public bool IsFr8OwnTerminal { get; set; } + public string DevUrl { get; set; } + public string ProdUrl { get; set; } } } diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalRegistrationDTO.cs b/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalRegistrationDTO.cs index 7022ef7a7c..bbaa79d8c3 100644 --- a/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalRegistrationDTO.cs +++ b/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalRegistrationDTO.cs @@ -6,5 +6,11 @@ public class TerminalRegistrationDTO { [JsonProperty("endpoint")] public string Endpoint { get; set; } + + [JsonProperty("devUrl")] + public string DevUrl { get; set; } + + [JsonProperty("prodUrl")] + public string ProdUrl { get; set; } } } From 5af2fbf7bd6631e3121af6a8f2df124e6dd5a919 Mon Sep 17 00:00:00 2001 From: Alexei Avrutin Date: Sun, 31 Jul 2016 02:11:19 +0200 Subject: [PATCH 018/266] Fr8Principle renamed to Fr8Principal, added states --- Data/Data.csproj | 4 ++++ Data/Entities/TerminalRegistrationDO.cs | 13 ++++++++++- Data/States/OperationalState.cs | 9 ++++++++ Data/States/ParticipationState.cs | 10 +++++++++ Data/States/PermissionType.cs | 3 ++- .../Templates/_OperationalStateTemplate.cs | 22 +++++++++++++++++++ .../Templates/_ParticipationStateTemplate.cs | 22 +++++++++++++++++++ .../TerminalRegistrationDTO.cs | 7 ++++-- Global.asax.cs | 2 +- Hub/Infrastructure/Fr8Principle.cs | 4 ++-- Hub/Security/SecurityServices.cs | 2 +- Hub/Services/TerminalDiscoveryService.cs | 19 +++++++++++++--- ...Fr8PlanDirectoryAuthenticationAttribute.cs | 2 +- .../Fr8TerminalAuthenticationAttribute.cs | 2 +- ...Fr8HubWebHMACAuthenticateAttributeTests.cs | 2 +- 15 files changed, 109 insertions(+), 14 deletions(-) create mode 100644 Data/States/OperationalState.cs create mode 100644 Data/States/ParticipationState.cs create mode 100644 Data/States/Templates/_OperationalStateTemplate.cs create mode 100644 Data/States/Templates/_ParticipationStateTemplate.cs diff --git a/Data/Data.csproj b/Data/Data.csproj index 00e9f38ae6..c6fd2e3157 100644 --- a/Data/Data.csproj +++ b/Data/Data.csproj @@ -870,6 +870,8 @@ + + @@ -914,6 +916,8 @@ + + diff --git a/Data/Entities/TerminalRegistrationDO.cs b/Data/Entities/TerminalRegistrationDO.cs index a3e3aa6079..557926a9bc 100644 --- a/Data/Entities/TerminalRegistrationDO.cs +++ b/Data/Entities/TerminalRegistrationDO.cs @@ -1,4 +1,5 @@ -using System; +using Data.States.Templates; +using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; @@ -16,5 +17,15 @@ public class TerminalRegistrationDO : BaseObject public bool IsFr8OwnTerminal { get; set; } public string DevUrl { get; set; } public string ProdUrl { get; set; } + + [Required] + [ForeignKey("OperationalStateTemplate")] + public int OperationalState { get; set; } + public virtual _OperationalStateTemplate OperationalStateTemplate { get; set; } + + [Required] + [ForeignKey("ParticipationStateTemplate")] + public int ParticipationState { get; set; } + public virtual _ParticipationStateTemplate ParticipationStateTemplate { get; set; } } } diff --git a/Data/States/OperationalState.cs b/Data/States/OperationalState.cs new file mode 100644 index 0000000000..91574d7fb5 --- /dev/null +++ b/Data/States/OperationalState.cs @@ -0,0 +1,9 @@ +namespace Data.States +{ + public class OperationalState + { + public const int Undiscovered = 0; + public const int Active = 1; + public const int Inactive = 2; + } +} diff --git a/Data/States/ParticipationState.cs b/Data/States/ParticipationState.cs new file mode 100644 index 0000000000..d0843d17c4 --- /dev/null +++ b/Data/States/ParticipationState.cs @@ -0,0 +1,10 @@ +namespace Data.States +{ + public class ParticipationState + { + public const int Unapproved = 0; + public const int Approved = 1; + public const int Banned = 2; + public const int Deleted = 3; + } +} diff --git a/Data/States/PermissionType.cs b/Data/States/PermissionType.cs index 30f6535954..aad4d72336 100644 --- a/Data/States/PermissionType.cs +++ b/Data/States/PermissionType.cs @@ -11,6 +11,7 @@ public enum PermissionType ModifyAllObjects = 7, ManageFr8Users = 8, ManageInternalUsers = 9, - EditPageDefinitions = 10 + EditPageDefinitions = 10, + ManageTerminals = 11 } } diff --git a/Data/States/Templates/_OperationalStateTemplate.cs b/Data/States/Templates/_OperationalStateTemplate.cs new file mode 100644 index 0000000000..a56f0122bd --- /dev/null +++ b/Data/States/Templates/_OperationalStateTemplate.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Data.States.Templates +{ + public class _OperationalStateTemplate : IStateTemplate + { + [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] + public int Id { get; set; } + public string Name { get; set; } + + public override string ToString() + { + return Name; + } + } +} diff --git a/Data/States/Templates/_ParticipationStateTemplate.cs b/Data/States/Templates/_ParticipationStateTemplate.cs new file mode 100644 index 0000000000..6944beb15c --- /dev/null +++ b/Data/States/Templates/_ParticipationStateTemplate.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Data.States.Templates +{ + public class _ParticipationStateTemplate : IStateTemplate + { + [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] + public int Id { get; set; } + public string Name { get; set; } + + public override string ToString() + { + return Name; + } + } +} diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalRegistrationDTO.cs b/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalRegistrationDTO.cs index bbaa79d8c3..949f23bac2 100644 --- a/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalRegistrationDTO.cs +++ b/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalRegistrationDTO.cs @@ -10,7 +10,10 @@ public class TerminalRegistrationDTO [JsonProperty("devUrl")] public string DevUrl { get; set; } - [JsonProperty("prodUrl")] - public string ProdUrl { get; set; } + [JsonProperty("operationalState")] + public int OperationalState{ get; set; } + + [JsonProperty("participationState")] + public int ParticipationState { get; set; } } } diff --git a/Global.asax.cs b/Global.asax.cs index f1448d9589..69fd4cc8bf 100644 --- a/Global.asax.cs +++ b/Global.asax.cs @@ -229,7 +229,7 @@ protected void Application_PostAuthenticateRequest(Object sender, EventArgs e) { var claims = principal.Claims; var roles = claims.Where(c => c.Type == ClaimTypes.Role).Select(c => c.Value).ToArray(); - var userPrincipal = new Fr8Principle(null, principal.Identity, roles); + var userPrincipal = new Fr8Principal(null, principal.Identity, roles); /* GenericPrincipal userPrincipal = new GenericPrincipal(principal.Identity, claims.Where(c => c.Type == ClaimTypes.Role).Select(c => c.Value).ToArray()); diff --git a/Hub/Infrastructure/Fr8Principle.cs b/Hub/Infrastructure/Fr8Principle.cs index cbec0eb386..447cbeadf4 100644 --- a/Hub/Infrastructure/Fr8Principle.cs +++ b/Hub/Infrastructure/Fr8Principle.cs @@ -2,11 +2,11 @@ namespace Hub.Infrastructure { - public class Fr8Principle : GenericPrincipal + public class Fr8Principal : GenericPrincipal { private string TerminalId { get; set; } - public Fr8Principle(string terminalId, IIdentity identity, string[] roles = null) : base(identity, roles) + public Fr8Principal(string terminalId, IIdentity identity, string[] roles = null) : base(identity, roles) { TerminalId = terminalId; } diff --git a/Hub/Security/SecurityServices.cs b/Hub/Security/SecurityServices.cs index 087c218c85..a59c051c64 100644 --- a/Hub/Security/SecurityServices.cs +++ b/Hub/Security/SecurityServices.cs @@ -171,7 +171,7 @@ public bool AuthorizeActivity(PermissionType permissionType, string curObjectId, return true; //check if request came from terminal - if (Thread.CurrentPrincipal is Fr8Principle) + if (Thread.CurrentPrincipal is Fr8Principal) return true; //get all current roles for current user diff --git a/Hub/Services/TerminalDiscoveryService.cs b/Hub/Services/TerminalDiscoveryService.cs index 2f3d24a02e..3aeb80b25a 100644 --- a/Hub/Services/TerminalDiscoveryService.cs +++ b/Hub/Services/TerminalDiscoveryService.cs @@ -14,6 +14,8 @@ using Hub.Managers; using log4net; using Microsoft.AspNet.Identity; +using Data.States; +using Data.Infrastructure.StructureMap; namespace Hub.Services { @@ -28,14 +30,23 @@ public class TerminalDiscoveryService : ITerminalDiscoveryService private readonly IUnitOfWorkFactory _unitOfWorkFactory; private readonly string _serverUrl; private readonly HashSet _knownTerminals = new HashSet(StringComparer.InvariantCultureIgnoreCase); - - public TerminalDiscoveryService(IActivityTemplate activityTemplateService, ITerminal terminal, IRestfulServiceClient restfulServiceClient, EventReporter eventReporter, IUnitOfWorkFactory unitOfWorkFactory, IConfigRepository configRepository) + private readonly ISecurityServices _securityService; + + public TerminalDiscoveryService( + IActivityTemplate activityTemplateService, + ITerminal terminal, + IRestfulServiceClient restfulServiceClient, + EventReporter eventReporter, + IUnitOfWorkFactory unitOfWorkFactory, + IConfigRepository configRepository, + ISecurityServices securityService) { _activityTemplateService = activityTemplateService; _terminal = terminal; _restfulServiceClient = restfulServiceClient; _eventReporter = eventReporter; _unitOfWorkFactory = unitOfWorkFactory; + _securityService = securityService; var serverProtocol = configRepository.Get("ServerProtocol", String.Empty); var domainName = configRepository.Get("ServerDomainName", String.Empty); @@ -79,6 +90,8 @@ public async Task RegisterTerminal(string endpoint) using (var uow = _unitOfWorkFactory.Create()) { var terminalRegistration = new TerminalRegistrationDO(); + terminalRegistration.OperationalState = OperationalState.Undiscovered; + terminalRegistration.ParticipationState = ParticipationState.Unapproved; if (uow.TerminalRegistrationRepository.GetAll().FirstOrDefault(x => string.Equals(ExtractTerminalAuthority(x.Endpoint), endpoint, StringComparison.OrdinalIgnoreCase)) != null) { @@ -87,7 +100,7 @@ public async Task RegisterTerminal(string endpoint) } terminalRegistration.UserId = Thread.CurrentPrincipal.Identity.GetUserId(); - terminalRegistration.Endpoint = endpoint.ToLower(); + terminalRegistration.Endpoint = terminalRegistration.DevUrl = endpoint.ToLower(); // Consider terminal to be Fr8's if endpoint is "localhost". // This assumption may be changed in the future. diff --git a/Infrastructure_HubWeb/Fr8PlanDirectoryAuthenticationAttribute.cs b/Infrastructure_HubWeb/Fr8PlanDirectoryAuthenticationAttribute.cs index c7ac6e8bf5..e6971cb3b4 100644 --- a/Infrastructure_HubWeb/Fr8PlanDirectoryAuthenticationAttribute.cs +++ b/Infrastructure_HubWeb/Fr8PlanDirectoryAuthenticationAttribute.cs @@ -25,7 +25,7 @@ public class Fr8PlanDirectoryAuthenticationAttribute : Attribute, IAuthenticatio protected void Success(HttpAuthenticationContext context, string terminalToken, string userId) { var identity = new Fr8Identity("terminal-" + terminalToken, userId); - var principle = new Fr8Principle(terminalToken, identity, new[] { "Terminal" }); + var principle = new Fr8Principal(terminalToken, identity, new[] { "Terminal" }); Thread.CurrentPrincipal = principle; context.Principal = principle; if (HttpContext.Current != null) diff --git a/Infrastructure_HubWeb/Fr8TerminalAuthenticationAttribute.cs b/Infrastructure_HubWeb/Fr8TerminalAuthenticationAttribute.cs index 12581e7330..296145e2fc 100644 --- a/Infrastructure_HubWeb/Fr8TerminalAuthenticationAttribute.cs +++ b/Infrastructure_HubWeb/Fr8TerminalAuthenticationAttribute.cs @@ -32,7 +32,7 @@ public Fr8TerminalAuthenticationAttribute(bool allowRequestsWithoutUser = false) protected void Success(HttpAuthenticationContext context, string terminalToken, string userId) { var identity = new Fr8Identity("terminal-" + terminalToken, userId); - var principle = new Fr8Principle(terminalToken, identity, new[] { "Terminal" }); + var principle = new Fr8Principal(terminalToken, identity, new[] { "Terminal" }); Thread.CurrentPrincipal = principle; context.Principal = principle; if (HttpContext.Current != null) diff --git a/Tests/HubTests/Infrastructure/Fr8HubWebHMACAuthenticateAttributeTests.cs b/Tests/HubTests/Infrastructure/Fr8HubWebHMACAuthenticateAttributeTests.cs index 29d47e674e..88642b2fcb 100644 --- a/Tests/HubTests/Infrastructure/Fr8HubWebHMACAuthenticateAttributeTests.cs +++ b/Tests/HubTests/Infrastructure/Fr8HubWebHMACAuthenticateAttributeTests.cs @@ -55,7 +55,7 @@ public async Task ShouldSetCurrentUser_WithCorrectAuthentication() ObjectFactory.Configure(o => o.For().Use(terminalService.Object)); await CreateFilter().AuthenticateAsync(_authenticationContext, CancellationToken.None); - Assert.AreEqual(true, _authenticationContext.Principal is Fr8Principle); + Assert.AreEqual(true, _authenticationContext.Principal is Fr8Principal); Assert.AreEqual(true, _authenticationContext.Principal.Identity is Fr8Identity); } From 51145100ffe239b46f8d16c41f6328a9df0dcd1b Mon Sep 17 00:00:00 2001 From: Yakov Gnusin Date: Sun, 31 Jul 2016 22:33:39 +0700 Subject: [PATCH 019/266] Added DB-migration to create predefined ActivityCategories. --- Data/Migrations/MigrationConfiguration.cs | 44 +++++++++++++++ .../DataTransferObjects/ActivityCategories.cs | 53 ++++++++++++++++++- 2 files changed, 96 insertions(+), 1 deletion(-) diff --git a/Data/Migrations/MigrationConfiguration.cs b/Data/Migrations/MigrationConfiguration.cs index eb0c7a0a1c..dc78c180e9 100644 --- a/Data/Migrations/MigrationConfiguration.cs +++ b/Data/Migrations/MigrationConfiguration.cs @@ -11,6 +11,7 @@ using Data.Entities; using Data.Infrastructure; using Data.Interfaces; +using Fr8.Infrastructure.Data.DataTransferObjects; using StructureMap; using System.Text.RegularExpressions; @@ -67,6 +68,7 @@ protected override void Seed(DockyardDbContext context) uow.SaveChanges(); AddWebServices(uow); + AddPredefinedActivityCategories(uow); AddTestUser(uow); RenameActivity(uow); RegisterTerminals(uow); @@ -487,6 +489,48 @@ private void AddWebServices(IUnitOfWork uow) uow.SaveChanges(); } + private void AddPredefinedActivityCategories(IUnitOfWork uow) + { + var predefinedCategories = new List>() + { + new Tuple(ActivityCategories.MonitorId, ActivityCategories.MonitorName, "/Content/icons/monitor-icon-64x64.png"), + new Tuple(ActivityCategories.ReceiveId, ActivityCategories.ReceiveName, "/Content/icons/get-icon-64x64.png"), + new Tuple(ActivityCategories.ProcessId, ActivityCategories.ProcessName, "/Content/icons/process-icon-64x64.png"), + new Tuple(ActivityCategories.ForwardId, ActivityCategories.ForwardName, "/Content/icons/forward-icon-64x64.png"), + new Tuple(ActivityCategories.SolutionId, ActivityCategories.SolutionName, null) + }; + + foreach (var category in predefinedCategories) + { + AddOrUpdateActivityCategory(uow, category.Item1, category.Item2, category.Item3); + } + + uow.SaveChanges(); + } + + private void AddOrUpdateActivityCategory(IUnitOfWork uow, Guid id, string name, string iconPath) + { + var existingActivityCategory = uow.ActivityCategoryRepository + .GetQuery() + .FirstOrDefault(x => x.Id == id); + + if (existingActivityCategory == null) + { + var activityCategory = new ActivityCategoryDO() + { + Id = id, + Name = name, + IconPath = iconPath + }; + + uow.ActivityCategoryRepository.Add(activityCategory); + } + else + { + existingActivityCategory.IconPath = iconPath; + } + } + private void AddTestUser(IUnitOfWork uow) { const string email = "integration_test_runner@fr8.company"; diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategories.cs b/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategories.cs index a86747ce0d..2a11f21561 100644 --- a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategories.cs +++ b/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategories.cs @@ -1,4 +1,6 @@ -namespace Fr8.Infrastructure.Data.DataTransferObjects +using System; + +namespace Fr8.Infrastructure.Data.DataTransferObjects { public static class ActivityCategories { @@ -31,27 +33,76 @@ public static class ActivityCategories Name = "Solution" }; + public static Guid MonitorId + { + get { return Guid.Parse("417DD061-27A1-4DEC-AECD-4F468013FD24"); } + } + + public static string MonitorName + { + get { return "Monitor"; } + } public static ActivityCategoryDTO Monitor { get { return _monitor; } } + public static Guid ReceiveId + { + get { return Guid.Parse("29EFB1D7-A9EA-41C5-AC60-AEF1F520E814"); } + } + + public static string ReceiveName + { + get { return "Get"; } + } + public static ActivityCategoryDTO Receive { get { return _receive; } } + public static Guid ProcessId + { + get { return Guid.Parse("69FB6D2C-2083-4696-9457-B7B152D358C2"); } + } + + public static string ProcessName + { + get { return "Process"; } + } + public static ActivityCategoryDTO Process { get { return _process; } } + public static Guid ForwardId + { + get { return Guid.Parse("AFD7E981-A21A-4B05-B0B1-3115A5448F22"); } + } + + public static string ForwardName + { + get { return "Forward"; } + } + public static ActivityCategoryDTO Forward { get { return _forward; } } + public static Guid SolutionId + { + get { return Guid.Parse("F9DF2AC2-2F10-4D21-B97A-987D46AD65B0"); } + } + + public static string SolutionName + { + get { return "Solution"; } + } + public static ActivityCategoryDTO Solution { get { return _solution; } From b1e3dc90be1655647e914fc03620f6c488dd0d7d Mon Sep 17 00:00:00 2001 From: Alexei Avrutin Date: Mon, 1 Aug 2016 01:43:02 +0200 Subject: [PATCH 020/266] Interim commit --- Data/Entities/TerminalRegistrationDO.cs | 12 +++++++++++ Data/Migrations/MigrationConfiguration.cs | 2 -- Data/States/Roles.cs | 1 - Hub/Services/TerminalDiscoveryService.cs | 25 +++++++++++++++++++++-- Views/AngularTemplate/TerminalList.cshtml | 1 - 5 files changed, 35 insertions(+), 6 deletions(-) diff --git a/Data/Entities/TerminalRegistrationDO.cs b/Data/Entities/TerminalRegistrationDO.cs index 557926a9bc..2eec7ccf57 100644 --- a/Data/Entities/TerminalRegistrationDO.cs +++ b/Data/Entities/TerminalRegistrationDO.cs @@ -7,6 +7,14 @@ namespace Data.Entities { public class TerminalRegistrationDO : BaseObject { + /// + /// Currently active endpoint. + /// + /// + /// The 'Endpoint' property contains the currently active endpoint which may be changed + /// by deployment scripts or by promoting the terminal from Dev to Production + /// while ProdUrl/DevUrl contains whatever user or administrator have supplied. + /// [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public string Endpoint { get; set; } @@ -15,6 +23,10 @@ public class TerminalRegistrationDO : BaseObject public String UserId { get; set; } public Fr8AccountDO User { get; set; } public bool IsFr8OwnTerminal { get; set; } + + /// + /// Development endpoint URL. + /// public string DevUrl { get; set; } public string ProdUrl { get; set; } diff --git a/Data/Migrations/MigrationConfiguration.cs b/Data/Migrations/MigrationConfiguration.cs index 0e34cdea7b..d2de3db84c 100644 --- a/Data/Migrations/MigrationConfiguration.cs +++ b/Data/Migrations/MigrationConfiguration.cs @@ -400,7 +400,6 @@ private static void CreateAdmin(string userEmail, string curPassword, IUnitOfWor var user = uow.UserRepository.GetOrCreateUser(userEmail); uow.UserRepository.UpdateUserCredentials(userEmail, userEmail, curPassword); uow.AspNetUserRolesRepository.AssignRoleToUser(Roles.Admin, user.Id); - uow.AspNetUserRolesRepository.AssignRoleToUser(Roles.Booker, user.Id); uow.AspNetUserRolesRepository.AssignRoleToUser(Roles.Customer, user.Id); uow.AspNetUserRolesRepository.AssignRoleToUser(Roles.OwnerOfCurrentObject, user.Id); user.TestAccount = false; @@ -415,7 +414,6 @@ private static void CreateTestAccount(string userEmail, string curPassword, stri } uow.UserRepository.UpdateUserCredentials(userEmail, userEmail, curPassword); uow.AspNetUserRolesRepository.AssignRoleToUser(Roles.Admin, user.Id); - uow.AspNetUserRolesRepository.AssignRoleToUser(Roles.Booker, user.Id); uow.AspNetUserRolesRepository.AssignRoleToUser(Roles.Customer, user.Id); user.TestAccount = true; } diff --git a/Data/States/Roles.cs b/Data/States/Roles.cs index ea8f48d80d..27417b3237 100644 --- a/Data/States/Roles.cs +++ b/Data/States/Roles.cs @@ -5,7 +5,6 @@ namespace Data.States public class Roles { public const String Customer = "Customer"; - public const String Booker = "Booker"; public const String Admin = "Admin"; public const String Guest = "Guest"; public const String OwnerOfCurrentObject = "OwnerOfCurrentObject"; diff --git a/Hub/Services/TerminalDiscoveryService.cs b/Hub/Services/TerminalDiscoveryService.cs index 3aeb80b25a..8fdc00ced6 100644 --- a/Hub/Services/TerminalDiscoveryService.cs +++ b/Hub/Services/TerminalDiscoveryService.cs @@ -91,7 +91,23 @@ public async Task RegisterTerminal(string endpoint) { var terminalRegistration = new TerminalRegistrationDO(); terminalRegistration.OperationalState = OperationalState.Undiscovered; - terminalRegistration.ParticipationState = ParticipationState.Unapproved; + + // The 'Endpoint' property contains the currently active endpoint which may be changed + // by deployment scripts or by promoting the terminal from Dev to Production + // while ProdUrl/DevUrl contains whatever user or administrator have supplied. + terminalRegistration.Endpoint = endpoint.ToLower(); + if (UserHasTerminalAdministratorPermission()) + { + // Promote terminal directly to the Approved state if an admin adds it + terminalRegistration.ParticipationState = ParticipationState.Approved; + terminalRegistration.ProdUrl = terminalRegistration.Endpoint; + } + else + { + // If a Developer adds a terminal, it has to be approved by Fr8 Administrator + terminalRegistration.ParticipationState = ParticipationState.Unapproved; + terminalRegistration.DevUrl = terminalRegistration.Endpoint; + } if (uow.TerminalRegistrationRepository.GetAll().FirstOrDefault(x => string.Equals(ExtractTerminalAuthority(x.Endpoint), endpoint, StringComparison.OrdinalIgnoreCase)) != null) { @@ -100,7 +116,6 @@ public async Task RegisterTerminal(string endpoint) } terminalRegistration.UserId = Thread.CurrentPrincipal.Identity.GetUserId(); - terminalRegistration.Endpoint = terminalRegistration.DevUrl = endpoint.ToLower(); // Consider terminal to be Fr8's if endpoint is "localhost". // This assumption may be changed in the future. @@ -123,6 +138,12 @@ public async Task RegisterTerminal(string endpoint) Logger.Info($"Terminal at '{endpoint}' was successfully registered."); } + private bool UserHasTerminalAdministratorPermission() + { + //TODO: @alexavrutin: Plug Marjan's security system in here + return _securityService.IsCurrentUserHasRole("Admin"); + } + public async Task Discover() { var terminalUrls = ListTerminalEndpoints(); diff --git a/Views/AngularTemplate/TerminalList.cshtml b/Views/AngularTemplate/TerminalList.cshtml index fccd8fcdcc..999ec289db 100644 --- a/Views/AngularTemplate/TerminalList.cshtml +++ b/Views/AngularTemplate/TerminalList.cshtml @@ -6,7 +6,6 @@
All Terminals - weekly stats...
Add Terminal From c0f75f6d92c3c504e3dabe6b8eb565f35f39d60f Mon Sep 17 00:00:00 2001 From: Yakov Gnusin Date: Mon, 1 Aug 2016 14:02:07 +0700 Subject: [PATCH 021/266] Removed WebServiceDO and WebServiceDTO from Data, Fr8.*, Hub and HubWeb projects. --- Controllers/Api/WebServicesController.cs | 165 +++++++++------- Data/Entities/ActivityTemplateDO.cs | 3 +- Data/Entities/WebServiceDO.cs | 61 +++--- .../AutoMapper/DataAutoMapperBootstrapper.cs | 15 +- Data/Infrastructure/DockyardDbContext.cs | 16 +- Data/Infrastructure/UnitOfWork.cs | 19 +- Data/Interfaces/IUnitOfWork.cs | 4 +- Data/Migrations/MigrationConfiguration.cs | 137 ++++++------- Data/Repositories/WebServiceRepository.cs | 37 ++-- .../ActivityTemplateSampleFactory.cs | 17 +- .../SampleData/WebServiceSampleFactory.cs | 33 ++-- .../ActivityTemplateActivityConverter.cs | 12 +- .../Convertors/JsonNet/WebServiceConverter.cs | 81 ++++---- .../ActivityTemplateDTO.cs | 5 +- .../Data/DataTransferObjects/WebServiceDTO.cs | 77 ++++---- Hub/Interfaces/IActivityTemplate.cs | 2 +- Hub/Services/ActivityTemplate.cs | 181 +++++++++++------- Hub/Services/ContainerService.cs | 9 +- Hub/Services/Plan.cs | 21 +- Hub/Services/TerminalDiscoveryService.cs | 2 +- .../Activities/Extract_Table_Field_v1.cs | 3 +- terminalFr8Core/TerminalData.cs | 9 +- terminalGoogle/TerminalData.cs | 18 +- 23 files changed, 537 insertions(+), 390 deletions(-) diff --git a/Controllers/Api/WebServicesController.cs b/Controllers/Api/WebServicesController.cs index 42fe98104a..78d2a8876a 100644 --- a/Controllers/Api/WebServicesController.cs +++ b/Controllers/Api/WebServicesController.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using System.Net; using System.Web.Http; @@ -28,94 +29,128 @@ public WebServicesController() _fr8Account = ObjectFactory.GetInstance(); _activityTemplate = ObjectFactory.GetInstance(); } + /// /// Retrieves collection of web services which contain activities of specified category. If category is not specified returns list of web servies only /// - /// Id of activity category. 1 - Monitors, 2 - Receivers, 3 - Processors, 4 - Forwarders, 5 - Solutions - [HttpGet] - [SwaggerResponse(HttpStatusCode.OK, "Collection of web services including activity templates", typeof(List))] - public IHttpActionResult Get(int id = -1) - { - if (id >= 0) - { - var category = (Fr8.Infrastructure.Data.States.ActivityCategory)id; - List webServiceList; - - using (var uow = ObjectFactory.GetInstance()) - { - // Getting web services and their actions as one set, then filtering that set - // to get only those actions whose category matches any of categories provided - // resulting set is grouped into batches 1 x web service - n x actions - - var unknwonService = uow.WebServiceRepository.GetQuery().FirstOrDefault(x => x.Name == UknownWebServiceName); - - var activityTemplate = _activityTemplate.GetQuery() - .Where(x => x.ActivityTemplateState == ActivityTemplateState.Active) - .Where(x => id == 0 || category == x.Category) - .Where(x => x.Tags == null || (!x.Tags.Contains(Tags.Internal) || _fr8Account.IsCurrentUserInAdminRole())); - - webServiceList = activityTemplate - .GroupBy(x => x.WebService, x => x, (key, group) => new - { - WebService = key, - SortOrder = key == null ? 1 : 0, - Actions = group - }).OrderBy(x => x.SortOrder) - .Select(x => new WebServiceActivitySetDTO - { - WebServiceIconPath = x.WebService != null ? x.WebService.IconPath : (unknwonService != null ? unknwonService.IconPath : null), - WebServiceName = x.WebService != null ? x.WebService.Name : string.Empty, - Activities = x.Actions - .GroupBy(y => y.Name) - .Select(y => y.OrderByDescending(z => int.Parse(z.Version)).First()) - .Select(p => new ActivityTemplateDTO - { - Id = p.Id, - Name = p.Name, - Category = p.Category, - Label = p.Label, - MinPaneWidth = p.MinPaneWidth, - Version = p.Version, - Type = p.Type, - Tags = p.Tags, - WebService = Mapper.Map(p.WebService), - Terminal = Mapper.Map(p.Terminal) - }).ToList() - }).ToList(); - } + // Id of activity category. 1 - Monitors, 2 - Receivers, 3 - Processors, 4 - Forwarders, 5 - Solutions + // [HttpGet] + // [SwaggerResponse(HttpStatusCode.OK, "Collection of web services including activity templates", typeof(List))] + // public IHttpActionResult Get(int id = -1) + // { + // if (id >= 0) + // { + // var category = (Fr8.Infrastructure.Data.States.ActivityCategory)id; + // List webServiceList; + // + // using (var uow = ObjectFactory.GetInstance()) + // { + // // Getting web services and their actions as one set, then filtering that set + // // to get only those actions whose category matches any of categories provided + // // resulting set is grouped into batches 1 x web service - n x actions + // + // var unknwonService = uow.WebServiceRepository.GetQuery().FirstOrDefault(x => x.Name == UknownWebServiceName); + // + // var activityTemplate = _activityTemplate.GetQuery() + // .Where(x => x.ActivityTemplateState == ActivityTemplateState.Active) + // .Where(x => id == 0 || category == x.Category) + // .Where(x => x.Tags == null || (!x.Tags.Contains(Tags.Internal) || _fr8Account.IsCurrentUserInAdminRole())); + // + // webServiceList = activityTemplate + // .GroupBy(x => x.WebService, x => x, (key, group) => new + // { + // WebService = key, + // SortOrder = key == null ? 1 : 0, + // Actions = group + // }).OrderBy(x => x.SortOrder) + // .Select(x => new WebServiceActivitySetDTO + // { + // WebServiceIconPath = x.WebService != null ? x.WebService.IconPath : (unknwonService != null ? unknwonService.IconPath : null), + // WebServiceName = x.WebService != null ? x.WebService.Name : string.Empty, + // Activities = x.Actions + // .GroupBy(y => y.Name) + // .Select(y => y.OrderByDescending(z => int.Parse(z.Version)).First()) + // .Select(p => new ActivityTemplateDTO + // { + // Id = p.Id, + // Name = p.Name, + // Category = p.Category, + // Label = p.Label, + // MinPaneWidth = p.MinPaneWidth, + // Version = p.Version, + // Type = p.Type, + // Tags = p.Tags, + // WebService = Mapper.Map(p.WebService), + // Terminal = Mapper.Map(p.Terminal) + // }).ToList() + // }).ToList(); + // } + // + // return Ok(webServiceList); + // } + // + // // If there is no category + // using (var uow = ObjectFactory.GetInstance()) + // { + // var models = uow.WebServiceRepository + // .GetAll() + // .Select(Mapper.Map) + // .ToList(); + // return Ok(models); + // } + // } - return Ok(webServiceList); - } - - // If there is no category + public IHttpActionResult Get() + { using (var uow = ObjectFactory.GetInstance()) { - var models = uow.WebServiceRepository + var models = uow.ActivityCategoryRepository .GetAll() - .Select(Mapper.Map) + .Select(Mapper.Map) .ToList(); + return Ok(models); } } + /// /// Creates web service with specified data /// /// Web service data to create web service from /// Web service was successfully saved + // TODO: FR-4943, remove this. + // [HttpPost] + // [ResponseType(typeof(WebServiceDTO))] + // public IHttpActionResult Post(WebServiceDTO webService) + // { + // WebServiceDO entity = Mapper.Map(webService); + // + // using (var uow = ObjectFactory.GetInstance()) + // { + // uow.WebServiceRepository.Add(entity); + // + // uow.SaveChanges(); + // } + // + // var model = Mapper.Map(entity); + // + // return Ok(model); + // } + [HttpPost] - [ResponseType(typeof(WebServiceDTO))] - public IHttpActionResult Post(WebServiceDTO webService) + [ResponseType(typeof(ActivityCategoryDTO))] + public IHttpActionResult Post(ActivityCategoryDTO category) { - WebServiceDO entity = Mapper.Map(webService); + ActivityCategoryDO entity = Mapper.Map(category); + entity.Id = Guid.NewGuid(); using (var uow = ObjectFactory.GetInstance()) { - uow.WebServiceRepository.Add(entity); - + uow.ActivityCategoryRepository.Add(entity); uow.SaveChanges(); } - var model = Mapper.Map(entity); + var model = Mapper.Map(entity); return Ok(model); } diff --git a/Data/Entities/ActivityTemplateDO.cs b/Data/Entities/ActivityTemplateDO.cs index d048410fbf..4b8e6a83e0 100644 --- a/Data/Entities/ActivityTemplateDO.cs +++ b/Data/Entities/ActivityTemplateDO.cs @@ -96,6 +96,7 @@ public ActivityTemplateDO(string name, string version, [ForeignKey("WebService")] public int? WebServiceId { get; set; } - public virtual WebServiceDO WebService { get; set; } + // TODO: FR-4943, remove this. + // public virtual WebServiceDO WebService { get; set; } } } diff --git a/Data/Entities/WebServiceDO.cs b/Data/Entities/WebServiceDO.cs index 3cc2389dcc..594309ad71 100644 --- a/Data/Entities/WebServiceDO.cs +++ b/Data/Entities/WebServiceDO.cs @@ -1,30 +1,31 @@ -using System.ComponentModel.DataAnnotations; - -namespace Data.Entities -{ - public class WebServiceDO : BaseObject - { - [Key] - public int Id { get; set; } - public string Name { get; set; } - public string IconPath { get; set; } - - protected bool Equals(WebServiceDO other) - { - return Id == other.Id; - } - - public override bool Equals(object obj) - { - if (ReferenceEquals(null, obj)) return false; - if (ReferenceEquals(this, obj)) return true; - if (obj.GetType() != this.GetType()) return false; - return Equals((WebServiceDO) obj); - } - - public override int GetHashCode() - { - return Id; - } - } -} \ No newline at end of file +// TODO: FR-4943, remove this. +// using System.ComponentModel.DataAnnotations; +// +// namespace Data.Entities +// { +// public class WebServiceDO : BaseObject +// { +// [Key] +// public int Id { get; set; } +// public string Name { get; set; } +// public string IconPath { get; set; } +// +// protected bool Equals(WebServiceDO other) +// { +// return Id == other.Id; +// } +// +// public override bool Equals(object obj) +// { +// if (ReferenceEquals(null, obj)) return false; +// if (ReferenceEquals(this, obj)) return true; +// if (obj.GetType() != this.GetType()) return false; +// return Equals((WebServiceDO) obj); +// } +// +// public override int GetHashCode() +// { +// return Id; +// } +// } +// } \ No newline at end of file diff --git a/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs b/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs index 1d41e5a1f7..8dc1b01bfb 100644 --- a/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs +++ b/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs @@ -32,10 +32,12 @@ public static void ConfigureAutoMapper() .ForMember(dto => dto.EmailAddress, opts => opts.ResolveUsing(e => e.EmailAddress.Address)) .ForMember(dto => dto.Status, opts => opts.ResolveUsing(e => e.State.Value)); - Mapper.CreateMap(); - Mapper.CreateMap() - .ForMember(x => x.LastUpdated, opts => opts.Ignore()) - .ForMember(x => x.CreateDate, opts => opts.Ignore()); + // TODO: FR-4943, remove this. + // Mapper.CreateMap(); + // Mapper.CreateMap() + // .ForMember(x => x.LastUpdated, opts => opts.Ignore()) + // .ForMember(x => x.CreateDate, opts => opts.Ignore()); + Mapper.CreateMap().ConvertUsing(); Mapper.CreateMap().ConvertUsing(); @@ -90,7 +92,10 @@ public static void ConfigureAutoMapper() .ForMember(x => x.Version, opts => opts.ResolveUsing(x => x.Version)) .ForMember(x => x.Terminal, opts => opts.ResolveUsing(x => x.Terminal)) // .ForMember(x => x.AuthenticationType, opts => opts.ResolveUsing(x => x.AuthenticationType)) - .ForMember(x => x.WebService, opts => opts.ResolveUsing(x => Mapper.Map(x.WebService))) + + // TODO: FR-4943, remove this. + // .ForMember(x => x.WebService, opts => opts.ResolveUsing(x => Mapper.Map(x.WebService))) + // .ForMember(x => x.AuthenticationTypeTemplate, opts => opts.ResolveUsing((ActivityTemplateDTO x) => null)) .ForMember(x => x.NeedsAuthentication, opts => opts.ResolveUsing(x => x.NeedsAuthentication)) .ForMember(x => x.ActivityTemplateStateTemplate, diff --git a/Data/Infrastructure/DockyardDbContext.cs b/Data/Infrastructure/DockyardDbContext.cs index 3368e0fb7b..59db8d9acf 100644 --- a/Data/Infrastructure/DockyardDbContext.cs +++ b/Data/Infrastructure/DockyardDbContext.cs @@ -266,7 +266,10 @@ protected override void OnModelCreating(DbModelBuilder modelBuilder) modelBuilder.Entity().ToTable("ActivityTemplate"); modelBuilder.Entity().ToTable("ActivityCategory"); modelBuilder.Entity().ToTable("ActivityCategorySet"); - modelBuilder.Entity().ToTable("WebServices"); + + // TODO: FR-4943, remove this. + // modelBuilder.Entity().ToTable("WebServices"); + modelBuilder.Entity().ToTable("TerminalSubscription"); modelBuilder.Entity().ToTable("EncryptedAuthorizationData"); modelBuilder.Entity().ToTable("Tags"); @@ -346,11 +349,12 @@ protected override void OnModelCreating(DbModelBuilder modelBuilder) .WillCascadeOnDelete(false); - modelBuilder.Entity() - .HasOptional(x => x.WebService) // was HasRequired. In reality this relationship looks like to be optional. - .WithMany() - .HasForeignKey(x => x.WebServiceId) - .WillCascadeOnDelete(false); + // TODO: FR-4943, remove this. + // modelBuilder.Entity() + // .HasOptional(x => x.WebService) // was HasRequired. In reality this relationship looks like to be optional. + // .WithMany() + // .HasForeignKey(x => x.WebServiceId) + // .WillCascadeOnDelete(false); modelBuilder.Entity().ToTable("Organizations") .HasMany(x => x.Fr8Accounts) diff --git a/Data/Infrastructure/UnitOfWork.cs b/Data/Infrastructure/UnitOfWork.cs index 39c01e1030..7e24bad054 100644 --- a/Data/Infrastructure/UnitOfWork.cs +++ b/Data/Infrastructure/UnitOfWork.cs @@ -403,15 +403,16 @@ public ISubscriptionRepository SubscriptionRepository } } - private WebServiceRepository _webServiceRepository; - - public IWebServiceRepository WebServiceRepository - { - get - { - return _webServiceRepository ?? (_webServiceRepository = new WebServiceRepository(this)); - } - } + // TODO: FR-4943, remove this. + // private WebServiceRepository _webServiceRepository; + // + // public IWebServiceRepository WebServiceRepository + // { + // get + // { + // return _webServiceRepository ?? (_webServiceRepository = new WebServiceRepository(this)); + // } + // } private TagRepository _tagRepository; diff --git a/Data/Interfaces/IUnitOfWork.cs b/Data/Interfaces/IUnitOfWork.cs index 2761ebec29..c63f7c7e7a 100644 --- a/Data/Interfaces/IUnitOfWork.cs +++ b/Data/Interfaces/IUnitOfWork.cs @@ -59,7 +59,9 @@ public interface IUnitOfWork : IDisposable ITerminalSubscriptionRepository TerminalSubscriptionRepository { get; } ISubscriptionRepository SubscriptionRepository { get; } - IWebServiceRepository WebServiceRepository { get; } + + // TODO: FR-4943, remove this. + // IWebServiceRepository WebServiceRepository { get; } ITagRepository TagRepository { get; } IFileTagsRepository FileTagsRepository { get; } diff --git a/Data/Migrations/MigrationConfiguration.cs b/Data/Migrations/MigrationConfiguration.cs index dc78c180e9..c64884772e 100644 --- a/Data/Migrations/MigrationConfiguration.cs +++ b/Data/Migrations/MigrationConfiguration.cs @@ -67,7 +67,8 @@ protected override void Seed(DockyardDbContext context) uow.SaveChanges(); - AddWebServices(uow); + // TODO: FR-4943, remove this. + // AddWebServices(uow); AddPredefinedActivityCategories(uow); AddTestUser(uow); RenameActivity(uow); @@ -438,56 +439,57 @@ public static Fr8AccountDO CreateDockyardAccount(string userEmail, string curPas return user; } - private void AddWebServices(IUnitOfWork uow) - { - var terminalToWs = new Dictionary - { - {"terminalSalesforce", "Salesforce"}, - {"terminalFr8Core", "fr8 Core"}, - {"terminalDocuSign", "DocuSign"}, - {"terminalSlack", "Slack"}, - {"terminalTwilio", "Twilio"}, - {"terminalAzure", "Microsoft Azure"}, - {"terminalExcel", "Excel"}, - {"terminalGoogle", "Google"}, - {"terminalPapertrail", "Papertrail"} - }; - - var wsToId = new Dictionary(); - - AddWebService(uow, "AWS", "/Content/icons/web_services/aws-icon-64x64.png"); - AddWebService(uow, "Slack", "/Content/icons/web_services/slack-icon-64x64.png"); - AddWebService(uow, "DocuSign", "/Content/icons/web_services/docusign-icon-64x64.png"); - AddWebService(uow, "Microsoft Azure", "/Content/icons/web_services/ms-azure-icon-64x64.png"); - AddWebService(uow, "Excel", "/Content/icons/web_services/ms-excel-icon-64x64.png"); - AddWebService(uow, "Built-In Services", "/Content/icons/web_services/fr8-core-icon-64x64.png"); - AddWebService(uow, "Salesforce", "/Content/icons/web_services/salesforce-icon-64x64.png"); - AddWebService(uow, "SendGrid", "/Content/icons/web_services/sendgrid-icon-64x64.png"); - AddWebService(uow, "Dropbox", "/Content/icons/web_services/dropbox-icon-64x64.png"); - AddWebService(uow, "Atlassian", "/Content/icons/web_services/jira-icon-64x64.png"); - AddWebService(uow, "UnknownService", "/Content/icons/web_services/unknown-service.png"); - - foreach (var webServiceDo in uow.WebServiceRepository.GetAll()) - { - if (webServiceDo.Name != null) - { - wsToId[webServiceDo.Name] = webServiceDo.Id; - } - } - - foreach (var activity in uow.ActivityTemplateRepository.GetQuery().Include(x => x.Terminal)) - { - string wsName; - int wsId; - - if (terminalToWs.TryGetValue(activity.Terminal.Name, out wsName) && wsToId.TryGetValue(wsName, out wsId)) - { - activity.WebServiceId = wsId; - } - } - - uow.SaveChanges(); - } + // TODO: FR-4943, remove this. + // private void AddWebServices(IUnitOfWork uow) + // { + // var terminalToWs = new Dictionary + // { + // {"terminalSalesforce", "Salesforce"}, + // {"terminalFr8Core", "fr8 Core"}, + // {"terminalDocuSign", "DocuSign"}, + // {"terminalSlack", "Slack"}, + // {"terminalTwilio", "Twilio"}, + // {"terminalAzure", "Microsoft Azure"}, + // {"terminalExcel", "Excel"}, + // {"terminalGoogle", "Google"}, + // {"terminalPapertrail", "Papertrail"} + // }; + // + // var wsToId = new Dictionary(); + // + // AddWebService(uow, "AWS", "/Content/icons/web_services/aws-icon-64x64.png"); + // AddWebService(uow, "Slack", "/Content/icons/web_services/slack-icon-64x64.png"); + // AddWebService(uow, "DocuSign", "/Content/icons/web_services/docusign-icon-64x64.png"); + // AddWebService(uow, "Microsoft Azure", "/Content/icons/web_services/ms-azure-icon-64x64.png"); + // AddWebService(uow, "Excel", "/Content/icons/web_services/ms-excel-icon-64x64.png"); + // AddWebService(uow, "Built-In Services", "/Content/icons/web_services/fr8-core-icon-64x64.png"); + // AddWebService(uow, "Salesforce", "/Content/icons/web_services/salesforce-icon-64x64.png"); + // AddWebService(uow, "SendGrid", "/Content/icons/web_services/sendgrid-icon-64x64.png"); + // AddWebService(uow, "Dropbox", "/Content/icons/web_services/dropbox-icon-64x64.png"); + // AddWebService(uow, "Atlassian", "/Content/icons/web_services/jira-icon-64x64.png"); + // AddWebService(uow, "UnknownService", "/Content/icons/web_services/unknown-service.png"); + // + // foreach (var webServiceDo in uow.WebServiceRepository.GetAll()) + // { + // if (webServiceDo.Name != null) + // { + // wsToId[webServiceDo.Name] = webServiceDo.Id; + // } + // } + // + // foreach (var activity in uow.ActivityTemplateRepository.GetQuery().Include(x => x.Terminal)) + // { + // string wsName; + // int wsId; + // + // if (terminalToWs.TryGetValue(activity.Terminal.Name, out wsName) && wsToId.TryGetValue(wsName, out wsId)) + // { + // activity.WebServiceId = wsId; + // } + // } + // + // uow.SaveChanges(); + // } private void AddPredefinedActivityCategories(IUnitOfWork uow) { @@ -558,22 +560,23 @@ private void RegisterTestUser(IUnitOfWork uow, string userName, string password, uow.AspNetUserRolesRepository.AssignRoleToUser(roleId, userDO.Id); } - private void AddWebService(IUnitOfWork uow, string name, string iconPath) - { - var isWsExists = uow.WebServiceRepository.GetQuery().Any(x => x.Name == name); - - if (isWsExists) - { - return; - } - var webServiceDO = new WebServiceDO - { - Name = name, - IconPath = iconPath - }; - - uow.WebServiceRepository.Add(webServiceDO); - } + // TODO: FR-4943, remove this. + // private void AddWebService(IUnitOfWork uow, string name, string iconPath) + // { + // var isWsExists = uow.WebServiceRepository.GetQuery().Any(x => x.Name == name); + // + // if (isWsExists) + // { + // return; + // } + // var webServiceDO = new WebServiceDO + // { + // Name = name, + // IconPath = iconPath + // }; + // + // uow.WebServiceRepository.Add(webServiceDO); + // } private void UpdateRootPlanNodeId(IUnitOfWork uow) { diff --git a/Data/Repositories/WebServiceRepository.cs b/Data/Repositories/WebServiceRepository.cs index 3a2d3a4f2c..b9e73ae0d0 100644 --- a/Data/Repositories/WebServiceRepository.cs +++ b/Data/Repositories/WebServiceRepository.cs @@ -1,18 +1,19 @@ -using Data.Entities; -using Data.Interfaces; - -namespace Data.Repositories -{ - public class WebServiceRepository : GenericRepository, IWebServiceRepository - { - public WebServiceRepository(IUnitOfWork uow) : base(uow) - { - - } - } - - public interface IWebServiceRepository : IGenericRepository - { - - } -} \ No newline at end of file +// TODO: FR-4943, remove this. +// using Data.Entities; +// using Data.Interfaces; +// +// namespace Data.Repositories +// { +// public class WebServiceRepository : GenericRepository, IWebServiceRepository +// { +// public WebServiceRepository(IUnitOfWork uow) : base(uow) +// { +// +// } +// } +// +// public interface IWebServiceRepository : IGenericRepository +// { +// +// } +// } \ No newline at end of file diff --git a/Documentation/Swagger/SampleData/ActivityTemplateSampleFactory.cs b/Documentation/Swagger/SampleData/ActivityTemplateSampleFactory.cs index c626cf85a7..5a0aede1b9 100644 --- a/Documentation/Swagger/SampleData/ActivityTemplateSampleFactory.cs +++ b/Documentation/Swagger/SampleData/ActivityTemplateSampleFactory.cs @@ -8,11 +8,19 @@ public class ActivityTemplateSampleFactory : ISwaggerSampleFactory _terminalSampleFactory; - private readonly ISwaggerSampleFactory _webServiceSampleFactory; - public ActivityTemplateSampleFactory(ISwaggerSampleFactory terminalSampleFactory, ISwaggerSampleFactory webServiceSampleFactory) + // TODO: FR-4943, remove this. + // private readonly ISwaggerSampleFactory _webServiceSampleFactory; + + // TODO: FR-4943, remove this. + // public ActivityTemplateSampleFactory(ISwaggerSampleFactory terminalSampleFactory, ISwaggerSampleFactory webServiceSampleFactory) + // { + // _terminalSampleFactory = terminalSampleFactory; + // _webServiceSampleFactory = webServiceSampleFactory; + // } + + public ActivityTemplateSampleFactory(ISwaggerSampleFactory terminalSampleFactory) { _terminalSampleFactory = terminalSampleFactory; - _webServiceSampleFactory = webServiceSampleFactory; } public ActivityTemplateDTO GetSampleData() @@ -25,7 +33,8 @@ public ActivityTemplateDTO GetSampleData() Category = ActivityCategory.Processors, Version = "1", MinPaneWidth = 330, - WebService = _webServiceSampleFactory.GetSampleData(), + // TODO: FR-4943, remove this. + // WebService = _webServiceSampleFactory.GetSampleData(), Terminal = _terminalSampleFactory.GetSampleData(), Tags = string.Empty }; diff --git a/Documentation/Swagger/SampleData/WebServiceSampleFactory.cs b/Documentation/Swagger/SampleData/WebServiceSampleFactory.cs index e3cb16f199..009cf5a59f 100644 --- a/Documentation/Swagger/SampleData/WebServiceSampleFactory.cs +++ b/Documentation/Swagger/SampleData/WebServiceSampleFactory.cs @@ -2,20 +2,21 @@ namespace HubWeb.Documentation.Swagger { - public class WebServiceSampleFactory : ISwaggerSampleFactory - { - public WebServiceDTO GetSampleData() - { - return new WebServiceDTO - { - Name = "Built-In Services", - IconPath = "https://fr8.co/Content/img/site/site-logo.png" - }; - } - - object ISwaggerSampleFactory.GetSampleData() - { - return GetSampleData(); - } - } + // TODO: FR-4943, remove this. + // public class WebServiceSampleFactory : ISwaggerSampleFactory + // { + // public WebServiceDTO GetSampleData() + // { + // return new WebServiceDTO + // { + // Name = "Built-In Services", + // IconPath = "https://fr8.co/Content/img/site/site-logo.png" + // }; + // } + // + // object ISwaggerSampleFactory.GetSampleData() + // { + // return GetSampleData(); + // } + // } } \ No newline at end of file diff --git a/Fr8Infrastructure.NET/Data/Convertors/JsonNet/ActivityTemplateActivityConverter.cs b/Fr8Infrastructure.NET/Data/Convertors/JsonNet/ActivityTemplateActivityConverter.cs index d84264565d..34d8d4f0fb 100644 --- a/Fr8Infrastructure.NET/Data/Convertors/JsonNet/ActivityTemplateActivityConverter.cs +++ b/Fr8Infrastructure.NET/Data/Convertors/JsonNet/ActivityTemplateActivityConverter.cs @@ -23,7 +23,10 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var customTerminalConverter = new TerminalActivityTemplateConverter(); - var customWebServiceConvert = new WebServiceConverter(); + + // TODO: FR-4943, remove this. + // var customWebServiceConvert = new WebServiceConverter(); + var item = (ActivityTemplateDTO)value; writer.WriteStartObject(); writer.WritePropertyName("id"); @@ -46,8 +49,11 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s writer.WriteValue(item.MinPaneWidth); writer.WritePropertyName("needsAuthentication"); writer.WriteValue(item.NeedsAuthentication); - writer.WritePropertyName("webService"); - writer.WriteRawValue(JsonConvert.SerializeObject(item.WebService, customWebServiceConvert)); + + // TODO: FR-4943, remove this. + // writer.WritePropertyName("webService"); + // writer.WriteRawValue(JsonConvert.SerializeObject(item.WebService, customWebServiceConvert)); + writer.WriteEndObject(); writer.Flush(); } diff --git a/Fr8Infrastructure.NET/Data/Convertors/JsonNet/WebServiceConverter.cs b/Fr8Infrastructure.NET/Data/Convertors/JsonNet/WebServiceConverter.cs index 6b372759eb..75cca4b2ce 100644 --- a/Fr8Infrastructure.NET/Data/Convertors/JsonNet/WebServiceConverter.cs +++ b/Fr8Infrastructure.NET/Data/Convertors/JsonNet/WebServiceConverter.cs @@ -1,40 +1,41 @@ -using System; -using Fr8.Infrastructure.Data.DataTransferObjects; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; - -namespace Fr8.Infrastructure.Data.Convertors.JsonNet -{ - public class WebServiceConverter : JsonConverter - { - public override bool CanConvert(Type objectType) - { - return objectType == typeof(WebServiceDTO); - } - - public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) - { - var jsonObject = JObject.Load(reader); - var instance = (WebServiceDTO)Activator.CreateInstance(objectType); - serializer.Populate(jsonObject.CreateReader(), instance); - return instance; - } - - public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) - { - if (value != null) - { - var item = (WebServiceDTO)value; - writer.WriteStartObject(); - writer.WritePropertyName("id"); - writer.WriteValue(item.Id); - writer.WritePropertyName("name"); - writer.WriteValue(item.Name); - writer.WritePropertyName("iconPath"); - writer.WriteValue(item.IconPath); - writer.WriteEndObject(); - writer.Flush(); - } - } - } -} +// TODO: FR-4943, remove this. +// using System; +// using Fr8.Infrastructure.Data.DataTransferObjects; +// using Newtonsoft.Json; +// using Newtonsoft.Json.Linq; +// +// namespace Fr8.Infrastructure.Data.Convertors.JsonNet +// { +// public class WebServiceConverter : JsonConverter +// { +// public override bool CanConvert(Type objectType) +// { +// return objectType == typeof(WebServiceDTO); +// } +// +// public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) +// { +// var jsonObject = JObject.Load(reader); +// var instance = (WebServiceDTO)Activator.CreateInstance(objectType); +// serializer.Populate(jsonObject.CreateReader(), instance); +// return instance; +// } +// +// public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) +// { +// if (value != null) +// { +// var item = (WebServiceDTO)value; +// writer.WriteStartObject(); +// writer.WritePropertyName("id"); +// writer.WriteValue(item.Id); +// writer.WritePropertyName("name"); +// writer.WriteValue(item.Name); +// writer.WritePropertyName("iconPath"); +// writer.WriteValue(item.IconPath); +// writer.WriteEndObject(); +// writer.Flush(); +// } +// } +// } +// } diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTemplateDTO.cs b/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTemplateDTO.cs index 2582bbe400..72dc47cce1 100644 --- a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTemplateDTO.cs +++ b/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityTemplateDTO.cs @@ -46,8 +46,9 @@ public ActivityTemplateDTO() [JsonProperty("version")] public string Version { get; set; } - [JsonProperty("webService")] - public WebServiceDTO WebService { get; set; } + // TODO: FR-4943, remove this. + // [JsonProperty("webService")] + // public WebServiceDTO WebService { get; set; } [JsonProperty("terminal")] public TerminalDTO Terminal { get; set; } diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/WebServiceDTO.cs b/Fr8Infrastructure.NET/Data/DataTransferObjects/WebServiceDTO.cs index 5acb7e58e1..840b529390 100644 --- a/Fr8Infrastructure.NET/Data/DataTransferObjects/WebServiceDTO.cs +++ b/Fr8Infrastructure.NET/Data/DataTransferObjects/WebServiceDTO.cs @@ -1,38 +1,39 @@ -using System.Collections.Generic; -using Newtonsoft.Json; - -namespace Fr8.Infrastructure.Data.DataTransferObjects -{ - public class WebServiceDTO - { - private sealed class NameEqualityComparer : IEqualityComparer - { - public bool Equals(WebServiceDTO x, WebServiceDTO y) - { - if (ReferenceEquals(x, y)) return true; - if (ReferenceEquals(x, null)) return false; - if (ReferenceEquals(y, null)) return false; - if (x.GetType() != y.GetType()) return false; - return string.Equals(x.Name, y.Name); - } - - public int GetHashCode(WebServiceDTO obj) - { - return (obj.Name != null ? obj.Name.GetHashCode() : 0); - } - } - - private static readonly IEqualityComparer NameComparerInstance = new NameEqualityComparer(); - - public static IEqualityComparer NameComparer => NameComparerInstance; - - [JsonProperty("id")] - public int Id { get; set; } - - [JsonProperty("name")] - public string Name { get; set; } - - [JsonProperty("iconPath")] - public string IconPath { get; set; } - } -} \ No newline at end of file +// TODO: FR-4943, remove this. +// using System.Collections.Generic; +// using Newtonsoft.Json; +// +// namespace Fr8.Infrastructure.Data.DataTransferObjects +// { +// public class WebServiceDTO +// { +// private sealed class NameEqualityComparer : IEqualityComparer +// { +// public bool Equals(WebServiceDTO x, WebServiceDTO y) +// { +// if (ReferenceEquals(x, y)) return true; +// if (ReferenceEquals(x, null)) return false; +// if (ReferenceEquals(y, null)) return false; +// if (x.GetType() != y.GetType()) return false; +// return string.Equals(x.Name, y.Name); +// } +// +// public int GetHashCode(WebServiceDTO obj) +// { +// return (obj.Name != null ? obj.Name.GetHashCode() : 0); +// } +// } +// +// private static readonly IEqualityComparer NameComparerInstance = new NameEqualityComparer(); +// +// public static IEqualityComparer NameComparer => NameComparerInstance; +// +// [JsonProperty("id")] +// public int Id { get; set; } +// +// [JsonProperty("name")] +// public string Name { get; set; } +// +// [JsonProperty("iconPath")] +// public string IconPath { get; set; } +// } +// } \ No newline at end of file diff --git a/Hub/Interfaces/IActivityTemplate.cs b/Hub/Interfaces/IActivityTemplate.cs index 3c0e067d96..e34ca456bb 100644 --- a/Hub/Interfaces/IActivityTemplate.cs +++ b/Hub/Interfaces/IActivityTemplate.cs @@ -20,6 +20,6 @@ public interface IActivityTemplate ActivityTemplateDO GetByName(IUnitOfWork uow, string name); ActivityTemplateDO GetByNameAndVersion(string name, string version); // string AssemblePluginRegistrationName(ActivityTemplateDO curActivityTemplateDO); - void RemoveInactiveActivities(List activityTemplateDO); + void RemoveInactiveActivities(TerminalDO terminal, List activityTemplateDO); } } diff --git a/Hub/Services/ActivityTemplate.cs b/Hub/Services/ActivityTemplate.cs index 543a38fbc9..a147c999df 100644 --- a/Hub/Services/ActivityTemplate.cs +++ b/Hub/Services/ActivityTemplate.cs @@ -62,8 +62,17 @@ private void LoadFromDb() { using (var uow = ObjectFactory.GetInstance()) { + // TODO: FR-4943, remove this. + // var query = uow.ActivityTemplateRepository.GetQuery() + // .Include(x => x.WebService) + // .Include(x => x.Categories) + // .Include("Categories.ActivityCategory"); + // foreach (var activityTemplate in query) + // { + // _activityTemplates[activityTemplate.Id] = Clone(activityTemplate); + // } + var query = uow.ActivityTemplateRepository.GetQuery() - .Include(x => x.WebService) .Include(x => x.Categories) .Include("Categories.ActivityCategory"); foreach (var activityTemplate in query) @@ -176,12 +185,13 @@ private ActivityTemplateDO Clone(ActivityTemplateDO source) CopyPropertiesHelper.CopyProperties(source, newTemplate, false); newTemplate.Terminal = _terminal.GetByKey(source.TerminalId); - if (source.WebService != null) - { - var webService = new WebServiceDO(); - CopyPropertiesHelper.CopyProperties(source.WebService, webService, false); - newTemplate.WebService = webService; - } + // TODO: FR-4943, remove this. + // if (source.WebService != null) + // { + // var webService = new WebServiceDO(); + // CopyPropertiesHelper.CopyProperties(source.WebService, webService, false); + // newTemplate.WebService = webService; + // } if (source.Categories != null) { @@ -205,45 +215,67 @@ private ActivityTemplateDO Clone(ActivityTemplateDO source) return newTemplate; } - public void RemoveInactiveActivities(List activityTemplates) + // TODO: FR-4943, remove this. + // public void RemoveInactiveActivities(List activityTemplates) + // { + // using (var uow = ObjectFactory.GetInstance()) + // { + // //let's first get webservice of those activities + // var webService = activityTemplates.FirstOrDefault(a => a.WebService != null)?.WebService; + // if (webService == null) + // { + // //try to load webservice from db + // var dummyActivity = activityTemplates.First(); + // webService = uow.ActivityTemplateRepository.GetQuery() + // .FirstOrDefault(t => t.Name == dummyActivity.Name)? + // .WebService; + // } + // else + // { + // webService = uow.WebServiceRepository.GetQuery().FirstOrDefault(t => t.Name == webService.Name); + // } + // + // //we can't operate without a common webservice for those activities + // if (webService == null) + // { + // //wow we can't do anything about this + // return; + // } + // + // var currentActivityNames = activityTemplates.Select(x => x.Name); + // //get activities which we didn't receive as parameter + // var inactiveActivities = uow.ActivityTemplateRepository.GetQuery().Where(t => !currentActivityNames.Contains(t.Name) && t.WebServiceId == webService.Id).ToList(); + // + // //we need to remove those inactiveActivities both from db and cache + // foreach (var activityTemplateDO in inactiveActivities) + // { + // activityTemplateDO.ActivityTemplateState = ActivityTemplateState.Inactive; + // _activityTemplates.Remove(activityTemplateDO.Id); + // } + // uow.SaveChanges(); + // } + // + // } + + public void RemoveInactiveActivities(TerminalDO terminal, List activityTemplates) { using (var uow = ObjectFactory.GetInstance()) { - //let's first get webservice of those activities - var webService = activityTemplates.FirstOrDefault(a => a.WebService != null)?.WebService; - if (webService == null) - { - //try to load webservice from db - var dummyActivity = activityTemplates.First(); - webService = uow.ActivityTemplateRepository.GetQuery() - .FirstOrDefault(t => t.Name == dummyActivity.Name)? - .WebService; - } - else - { - webService = uow.WebServiceRepository.GetQuery().FirstOrDefault(t => t.Name == webService.Name); - } + var terminalActivitiesToBeRemoved = uow.ActivityTemplateRepository + .GetQuery() + .Where(x => x.TerminalId == terminal.Id) + .AsEnumerable() + .Where(x => !activityTemplates.Any(y => y.Name == x.Name && y.Version == x.Version)) + .ToList(); - //we can't operate without a common webservice for those activities - if (webService == null) + foreach (var activityToRemove in terminalActivitiesToBeRemoved) { - //wow we can't do anything about this - return; + activityToRemove.ActivityTemplateState = ActivityTemplateState.Inactive; + _activityTemplates.Remove(activityToRemove.Id); } - var currentActivityNames = activityTemplates.Select(x => x.Name); - //get activities which we didn't receive as parameter - var inactiveActivities = uow.ActivityTemplateRepository.GetQuery().Where(t => !currentActivityNames.Contains(t.Name) && t.WebServiceId == webService.Id).ToList(); - - //we need to remove those inactiveActivities both from db and cache - foreach (var activityTemplateDO in inactiveActivities) - { - activityTemplateDO.ActivityTemplateState = ActivityTemplateState.Inactive; - _activityTemplates.Remove(activityTemplateDO.Id); - } uow.SaveChanges(); - } - + } } private List ApplyActivityCategories( @@ -314,15 +346,17 @@ public void RegisterOrUpdate(ActivityTemplateDO activityTemplateDo) throw new ArgumentOutOfRangeException($"ActivityTemplate.Version is not a valid integer value: {activityTemplateDo.Version}"); } - if (activityTemplateDo.WebService == null) - { - throw new ArgumentOutOfRangeException("ActivityTemplate.WebService is not set"); - } + // TODO: FR-4943, remove this. + // if (activityTemplateDo.WebService == null) + // { + // throw new ArgumentOutOfRangeException("ActivityTemplate.WebService is not set"); + // } - if (string.IsNullOrWhiteSpace(activityTemplateDo.WebService.Name)) - { - throw new ArgumentOutOfRangeException("ActivityTemplate.WebService.Name can't be empty"); - } + // TODO: FR-4943, remove this. + // if (string.IsNullOrWhiteSpace(activityTemplateDo.WebService.Name)) + // { + // throw new ArgumentOutOfRangeException("ActivityTemplate.WebService.Name can't be empty"); + // } // we are going to change activityTemplateDo. It is not good to corrupt method's input parameters. // make a copy @@ -333,12 +367,13 @@ public void RegisterOrUpdate(ActivityTemplateDO activityTemplateDo) clone.Terminal = activityTemplateDo.Terminal; // Make copy of web-service reference and add it to - if (activityTemplateDo.WebService != null) - { - var wsClone = new WebServiceDO(); - CopyPropertiesHelper.CopyProperties(activityTemplateDo.WebService, wsClone, true); - clone.WebService = wsClone; - } + // TODO: FR-4943, remove this. + // if (activityTemplateDo.WebService != null) + // { + // var wsClone = new WebServiceDO(); + // CopyPropertiesHelper.CopyProperties(activityTemplateDo.WebService, wsClone, true); + // clone.WebService = wsClone; + // } // Create list of activity categories for current ActivityTemplate. var activityCategories = new List(); @@ -362,27 +397,28 @@ public void RegisterOrUpdate(ActivityTemplateDO activityTemplateDo) { using (var uow = ObjectFactory.GetInstance()) { - if (activityTemplateDo.WebService != null) - { - var existingWebService = uow.WebServiceRepository.FindOne(x => x.Name == activityTemplateDo.WebService.Name); - - // Update existing WebService entity. - if (existingWebService != null) - { - existingWebService.IconPath = activityTemplateDo.WebService.IconPath; - activityTemplateDo.WebServiceId = existingWebService.Id; - activityTemplateDo.WebService = existingWebService; - } - else - { - activityTemplateDo.WebService.Id = 0; - activityTemplateDo.WebServiceId = 0; - } - } + // TODO: FR-4943, remove this. + // if (activityTemplateDo.WebService != null) + // { + // var existingWebService = uow.WebServiceRepository.FindOne(x => x.Name == activityTemplateDo.WebService.Name); + // + // // Update existing WebService entity. + // if (existingWebService != null) + // { + // existingWebService.IconPath = activityTemplateDo.WebService.IconPath; + // activityTemplateDo.WebServiceId = existingWebService.Id; + // activityTemplateDo.WebService = existingWebService; + // } + // else + // { + // activityTemplateDo.WebService.Id = 0; + // activityTemplateDo.WebServiceId = 0; + // } + // } // Try to extract existing ActivityTemplate. var activity = uow.ActivityTemplateRepository.GetQuery() - .Include(x => x.WebService) + // .Include(x => x.WebService) .FirstOrDefault(t => t.Name == activityTemplateDo.Name && t.TerminalId == activityTemplateDo.TerminalId && t.Version == activityTemplateDo.Version); @@ -414,7 +450,10 @@ public void RegisterOrUpdate(ActivityTemplateDO activityTemplateDo) // This is for updating activity template CopyPropertiesHelper.CopyProperties(activityTemplateDo, activity, false, x => x.Name != "Id"); activity.ActivityTemplateState = ActivityTemplateState.Active; - activity.WebService = activityTemplateDo.WebService; + + // TODO: FR-4943, remove this. + // activity.WebService = activityTemplateDo.WebService; + uow.SaveChanges(); activity.Categories = ApplyActivityCategories(uow, activity, activityCategories); diff --git a/Hub/Services/ContainerService.cs b/Hub/Services/ContainerService.cs index 9d1da02be7..c541f2d55f 100644 --- a/Hub/Services/ContainerService.cs +++ b/Hub/Services/ContainerService.cs @@ -253,10 +253,13 @@ public IList GetByFr8Account(IUnitOfWork unitOfWork, Fr8AccountDO a private void ReportAuthError(Fr8AccountDO user, InvalidTokenRuntimeException ex) { - string errorMessage = $"Activity {ex?.FailedActivityDTO.Label} was unable to authenticate with " + - $"{ex?.FailedActivityDTO.ActivityTemplate.WebService.Name}. "; + // TODO: FR-4943, remove this. + // string errorMessage = $"Activity {ex?.FailedActivityDTO.Label} was unable to authenticate with " + + // $"{ex?.FailedActivityDTO.ActivityTemplate.WebService.Name}. "; - errorMessage += $"Please re-authorize Fr8 to connect to {ex?.FailedActivityDTO.ActivityTemplate.WebService.Name} " + + var errorMessage = $"Activity {ex?.FailedActivityDTO.Label} was unable to authenticate."; + + errorMessage += $"Please re-authorize Fr8 to connect to {ex?.FailedActivityDTO.ActivityTemplate.Terminal.Name}'s remote web-service " + $"by clicking on the Settings dots in the upper " + $"right corner of the activity and then selecting Choose Authentication. "; diff --git a/Hub/Services/Plan.cs b/Hub/Services/Plan.cs index b2bbcbe4d9..3992410691 100644 --- a/Hub/Services/Plan.cs +++ b/Hub/Services/Plan.cs @@ -922,10 +922,18 @@ public PlanDO Clone(Guid planId) private void ReportAuthError(Fr8AccountDO user, InvalidTokenRuntimeException ex) { - string errorMessage = $"Activity {ex?.FailedActivityDTO.Label} was unable to authenticate with " + - $"{ex?.FailedActivityDTO.ActivityTemplate.WebService.Name}. "; + // TODO: FR-4943, remove this. + // string errorMessage = $"Activity {ex?.FailedActivityDTO.Label} was unable to authenticate with " + + // $"{ex?.FailedActivityDTO.ActivityTemplate.WebService.Name}. "; - errorMessage += $"Please re-authorize Fr8 to connect to {ex?.FailedActivityDTO.ActivityTemplate.WebService.Name} " + + var errorMessage = $"Activity {ex?.FailedActivityDTO.Label} was unable to authenticate with."; + + // TODO: FR-4943, remove this. + // errorMessage += $"Please re-authorize Fr8 to connect to {ex?.FailedActivityDTO.ActivityTemplate.WebService.Name} " + + // $"by clicking on the Settings dots in the upper " + + // $"right corner of the activity and then selecting Choose Authentication. "; + + errorMessage += $"Please re-authorize Fr8 to connect to {ex?.FailedActivityDTO.ActivityTemplate.Terminal.Name}'s remote web-service " + $"by clicking on the Settings dots in the upper " + $"right corner of the activity and then selecting Choose Authentication. "; @@ -947,8 +955,11 @@ private void ReportAuthError(Fr8AccountDO user, InvalidTokenRuntimeException ex) private async Task ReportAuthDeactivation(PlanDO plan, InvalidTokenRuntimeException ex) { - string errorMessage = $"Activity {ex?.FailedActivityDTO.Label} was unable to authenticate with " + - $"{ex?.FailedActivityDTO.ActivityTemplate.WebService.Name}. "; + // TODO: FR-4943, remove this. + // string errorMessage = $"Activity {ex?.FailedActivityDTO.Label} was unable to authenticate with " + + // $"{ex?.FailedActivityDTO.ActivityTemplate.WebService.Name}. "; + + var errorMessage = $"Activity {ex?.FailedActivityDTO.Label} was unable to authenticate."; errorMessage += $"Plan \"{plan.Name}\" which contains failed activity was deactivated."; diff --git a/Hub/Services/TerminalDiscoveryService.cs b/Hub/Services/TerminalDiscoveryService.cs index 2f3d24a02e..4d8bbed547 100644 --- a/Hub/Services/TerminalDiscoveryService.cs +++ b/Hub/Services/TerminalDiscoveryService.cs @@ -220,7 +220,7 @@ private async Task DiscoverInternal(string terminalUrl) } } - _activityTemplateService.RemoveInactiveActivities(activityTemplates); + _activityTemplateService.RemoveInactiveActivities(terminal, activityTemplates); } catch (Exception ex) { diff --git a/terminalFr8Core/Activities/Extract_Table_Field_v1.cs b/terminalFr8Core/Activities/Extract_Table_Field_v1.cs index 99c5c030bb..f466c5bec4 100644 --- a/terminalFr8Core/Activities/Extract_Table_Field_v1.cs +++ b/terminalFr8Core/Activities/Extract_Table_Field_v1.cs @@ -24,7 +24,8 @@ public class Extract_Table_Field_v1 : ExplicitTerminalActivity MinPaneWidth = 330, Category = ActivityCategory.Processors, NeedsAuthentication = false, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { diff --git a/terminalFr8Core/TerminalData.cs b/terminalFr8Core/TerminalData.cs index f9fb14e514..12df98fbfa 100644 --- a/terminalFr8Core/TerminalData.cs +++ b/terminalFr8Core/TerminalData.cs @@ -6,7 +6,14 @@ namespace terminalFr8Core { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + // TODO: FR-4943, remove this. + // public static WebServiceDTO WebServiceDTO = new WebServiceDTO + // { + // Name = "Built-In Services", + // IconPath = "/Content/icons/web_services/fr8-core-icon-64x64.png" + // }; + + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "Built-In Services", IconPath = "/Content/icons/web_services/fr8-core-icon-64x64.png" diff --git a/terminalGoogle/TerminalData.cs b/terminalGoogle/TerminalData.cs index f55fcfa933..7a7eb46c52 100644 --- a/terminalGoogle/TerminalData.cs +++ b/terminalGoogle/TerminalData.cs @@ -7,13 +7,27 @@ namespace terminalGoogle { public static class TerminalData { - public static WebServiceDTO GooogleWebServiceDTO = new WebServiceDTO + // TODO: FR-4943, remove this. + // public static WebServiceDTO GooogleWebServiceDTO = new WebServiceDTO + // { + // Name = "Google", + // IconPath = "/Content/icons/web_services/google-icon-64x64.png" + // }; + + public static ActivityCategoryDTO GooogleActivityCategoryDTO = new ActivityCategoryDTO { Name = "Google", IconPath = "/Content/icons/web_services/google-icon-64x64.png" }; - public static WebServiceDTO GmailWebServiceDTO = new WebServiceDTO + // TODO: FR-4943, remove this. + // public static WebServiceDTO GmailWebServiceDTO = new WebServiceDTO + // { + // Name = "Gmail", + // IconPath = "/Content/icons/web_services/gmail-icon-64x64.png" + // }; + + public static ActivityCategoryDTO GmailActivityCategoryDTO = new ActivityCategoryDTO { Name = "Gmail", IconPath = "/Content/icons/web_services/gmail-icon-64x64.png" From 3454002ebf93ca676c74d7968a0ec46245e762cc Mon Sep 17 00:00:00 2001 From: Yakov Gnusin Date: Mon, 1 Aug 2016 15:36:09 +0700 Subject: [PATCH 022/266] Removed WebServiceDTO reference from terminals. --- terminalAsana/Activities/Get_Tasks_v1.cs | 5 +++-- terminalAsana/Activities/Post_Comment_v1.cs | 5 +++-- terminalAsana/TerminalData.cs | 2 +- terminalAtlassian/Activities/Get_Jira_Issue_v1.cs | 5 +++-- terminalAtlassian/Activities/Save_Jira_Issue_v1.cs | 5 +++-- terminalAtlassian/TerminalData.cs | 2 +- terminalAzure/Activities/Write_To_Sql_Server_v1.cs | 3 ++- terminalAzure/TerminalData.cs | 2 +- terminalBasecamp2/Activities/Create_Message_v1.cs | 5 +++-- terminalBasecamp2/TerminalData.cs | 2 +- terminalBox/Actions/Generate_Table_Activity_v1.cs | 5 +++-- terminalBox/Actions/Save_To_File_v1.cs | 5 +++-- terminalBox/TerminalData.cs | 2 +- .../Activities/Extract_Data_From_Envelopes_v1.cs | 3 ++- terminalDocuSign/Activities/Generate_DocuSign_Report_v1.cs | 5 +++-- terminalDocuSign/Activities/Get_DocuSign_Envelope_v1.cs | 5 +++-- terminalDocuSign/Activities/Get_DocuSign_Template_v1.cs | 5 +++-- terminalDocuSign/Activities/Mail_Merge_Into_DocuSign_v1.cs | 3 ++- .../Activities/Monitor_DocuSign_Envelope_Activity_v1.cs | 5 +++-- .../Activities/Prepare_DocuSign_Events_For_Storage_v1.cs | 5 +++-- terminalDocuSign/Activities/Query_DocuSign_v1.cs | 5 +++-- terminalDocuSign/Activities/Query_DocuSign_v2.cs | 5 +++-- terminalDocuSign/Activities/Search_DocuSign_History_v1.cs | 5 +++-- terminalDocuSign/Activities/Send_DocuSign_Envelope_v1.cs | 5 +++-- terminalDocuSign/Activities/Send_DocuSign_Envelope_v2.cs | 5 +++-- terminalDocuSign/Activities/Track_DocuSign_Recipients_v1.cs | 3 ++- terminalDocuSign/Activities/Track_DocuSign_Recipients_v2.cs | 3 ++- .../Activities/Use_DocuSign_Template_With_New_Document_v1.cs | 5 +++-- terminalDocuSign/TerminalData.cs | 2 +- terminalDropbox/Activities/Get_File_List_v1.cs | 5 +++-- terminalDropbox/TerminalData.cs | 2 +- terminalExcel/Activities/Load_Excel_File_v1.cs | 5 +++-- terminalExcel/Activities/Save_To_Excel_v1.cs | 5 +++-- terminalExcel/Activities/Set_Excel_Template_v1.cs | 5 +++-- terminalExcel/TerminalData.cs | 2 +- terminalFacebook/Activities/Monitor_Feed_Posts_v1.cs | 5 +++-- terminalFacebook/Activities/Post_To_Timeline_v1.cs | 5 +++-- terminalFacebook/TerminalData.cs | 2 +- terminalFr8Core/Activities/Add_Payload_Manually_v1.cs | 5 +++-- terminalFr8Core/Activities/App_Builder_v1.cs | 5 +++-- terminalFr8Core/Activities/Build_Message_v1.cs | 5 +++-- terminalFr8Core/Activities/Build_Query_v1.cs | 5 +++-- terminalFr8Core/Activities/Connect_To_Sql_v1.cs | 5 +++-- .../Activities/Convert_Related_Fields_Into_Table_v1.cs | 5 +++-- terminalFr8Core/Activities/Execute_Sql_v1.cs | 5 +++-- terminalFr8Core/Activities/Extract_Table_Field_v1.cs | 2 +- .../Activities/Filter_Object_List_By_Incoming_Message_v1.cs | 5 +++-- terminalFr8Core/Activities/Get_Data_From_Fr8_Warehouse_v1.cs | 5 +++-- terminalFr8Core/Activities/Get_File_From_Fr8_Store_v1.cs | 5 +++-- terminalFr8Core/Activities/Loop_v1.cs | 5 +++-- terminalFr8Core/Activities/Make_A_Decision_v1.cs | 5 +++-- terminalFr8Core/Activities/Monitor_Fr8_Events_v1.cs | 4 ++-- terminalFr8Core/Activities/Query_Fr8_Warehouse_v1.cs | 5 +++-- terminalFr8Core/Activities/Save_To_Fr8_Warehouse_v1.cs | 5 +++-- terminalFr8Core/Activities/Search_Fr8_Warehouse_v1.cs | 5 +++-- terminalFr8Core/Activities/Select_Fr8_Object_v1.cs | 5 +++-- terminalFr8Core/Activities/Send_Email_v1.cs | 5 +++-- terminalFr8Core/Activities/Send_SMS_v1.cs | 5 +++-- terminalFr8Core/Activities/Set_Delay_v1.cs | 5 +++-- terminalFr8Core/Activities/Store_File_v1.cs | 5 +++-- terminalFr8Core/Activities/Test_Incoming_Data_v1.cs | 5 +++-- terminalGoogle/Activities/Get_Google_Sheet_Data_v1.cs | 5 +++-- terminalGoogle/Activities/Monitor_Form_Responses_v1.cs | 5 +++-- terminalGoogle/Activities/Monitor_Gmail_Inbox_v1.cs | 5 +++-- terminalGoogle/Activities/Save_To_Google_Sheet_v1.cs | 5 +++-- .../Activities/Monitor_For_New_Media_Posted_v1.cs | 5 +++-- terminalInstagram/TerminalData.cs | 2 +- terminalPapertrail/Activities/Write_To_Log_v1.cs | 5 +++-- terminalPapertrail/TerminalData.cs | 2 +- terminalQuickBooks/Activities/Create_Journal_Entry_v1.cs | 5 +++-- terminalQuickBooks/TerminalData.cs | 2 +- terminalSalesforce/Activities/Get_Data_v1.cs | 5 +++-- .../Activities/Mail_Merge_From_Salesforce_v1.cs | 3 ++- terminalSalesforce/Activities/Monitor_Salesforce_Event_v1.cs | 5 +++-- terminalSalesforce/Activities/Post_To_Chatter_v1.cs | 5 +++-- terminalSalesforce/Activities/Post_To_Chatter_v2.cs | 5 +++-- terminalSalesforce/Activities/Save_To_SalesforceDotCom_v1.cs | 5 +++-- terminalSalesforce/TerminalData.cs | 2 +- terminalSendGrid/Activities/Send_Email_Via_SendGrid_v1.cs | 5 +++-- terminalSendGrid/TerminalData.cs | 2 +- terminalSlack/Activities/Monitor_Channel_v1.cs | 5 +++-- terminalSlack/Activities/Monitor_Channel_v2.cs | 5 +++-- terminalSlack/Activities/Publish_To_Slack_v1.cs | 5 +++-- terminalSlack/Activities/Publish_To_Slack_v2.cs | 5 +++-- terminalSlack/TerminalData.cs | 2 +- terminalStatX/Activities/Create_Stat_v1.cs | 5 +++-- terminalStatX/Activities/Monitor_Stat_Changes_v1.cs | 5 +++-- terminalStatX/Activities/Update_Stat_v1.cs | 5 +++-- terminalStatX/TerminalData.cs | 2 +- terminalTelegram/Activities/PostToTelegramV1.cs | 5 +++-- terminalTelegram/TerminalData.cs | 2 +- terminalTwilio/Activities/Send_Via_Twilio_v1.cs | 5 +++-- terminalTwilio/TerminalData.cs | 2 +- terminalYammer/Activities/Post_To_Yammer_v1.cs | 5 +++-- terminalYammer/TerminalData.cs | 2 +- 95 files changed, 238 insertions(+), 164 deletions(-) diff --git a/terminalAsana/Activities/Get_Tasks_v1.cs b/terminalAsana/Activities/Get_Tasks_v1.cs index 847f78e5c4..f34e717091 100644 --- a/terminalAsana/Activities/Get_Tasks_v1.cs +++ b/terminalAsana/Activities/Get_Tasks_v1.cs @@ -34,12 +34,13 @@ public class Get_Tasks_v1 : AsanaOAuthBaseActivity Category = ActivityCategory.Receivers, Version = "1", MinPaneWidth = 330, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, NeedsAuthentication = true, Categories = new[] { ActivityCategories.Receive, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalAsana/Activities/Post_Comment_v1.cs b/terminalAsana/Activities/Post_Comment_v1.cs index 54ac569518..d3b3d244a8 100644 --- a/terminalAsana/Activities/Post_Comment_v1.cs +++ b/terminalAsana/Activities/Post_Comment_v1.cs @@ -34,12 +34,13 @@ public class Post_Comment_v1 : AsanaOAuthBaseActivity ActivityTemplateDTO; diff --git a/terminalAsana/TerminalData.cs b/terminalAsana/TerminalData.cs index 0611a21ffd..ed64a6a1f0 100644 --- a/terminalAsana/TerminalData.cs +++ b/terminalAsana/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalAsana { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "Asana", IconPath = "/Content/icons/web_services/asana-icon-64x64.png" diff --git a/terminalAtlassian/Activities/Get_Jira_Issue_v1.cs b/terminalAtlassian/Activities/Get_Jira_Issue_v1.cs index cd6cfca396..9b3d944911 100644 --- a/terminalAtlassian/Activities/Get_Jira_Issue_v1.cs +++ b/terminalAtlassian/Activities/Get_Jira_Issue_v1.cs @@ -25,11 +25,12 @@ public class Get_Jira_Issue_v1 : TerminalActivity NeedsAuthentication = true, Category = ActivityCategory.Receivers, MinPaneWidth = 330, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new [] { ActivityCategories.Receive, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalAtlassian/Activities/Save_Jira_Issue_v1.cs b/terminalAtlassian/Activities/Save_Jira_Issue_v1.cs index b726e5938b..88fae5befb 100644 --- a/terminalAtlassian/Activities/Save_Jira_Issue_v1.cs +++ b/terminalAtlassian/Activities/Save_Jira_Issue_v1.cs @@ -27,11 +27,12 @@ public class Save_Jira_Issue_v1 : TerminalActivity ActivityTemplateDTO; diff --git a/terminalAtlassian/TerminalData.cs b/terminalAtlassian/TerminalData.cs index 2277140fa1..477e1fd520 100644 --- a/terminalAtlassian/TerminalData.cs +++ b/terminalAtlassian/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalAtlassian { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "Atlassian", IconPath = "/Content/icons/web_services/jira-icon-64x64.png" diff --git a/terminalAzure/Activities/Write_To_Sql_Server_v1.cs b/terminalAzure/Activities/Write_To_Sql_Server_v1.cs index c57f6e3caa..2cef3ebf17 100644 --- a/terminalAzure/Activities/Write_To_Sql_Server_v1.cs +++ b/terminalAzure/Activities/Write_To_Sql_Server_v1.cs @@ -30,7 +30,8 @@ public class Write_To_Sql_Server_v1 : ExplicitTerminalActivity Category = ActivityCategory.Forwarders, Version = "1", MinPaneWidth = 330, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Forward } }; diff --git a/terminalAzure/TerminalData.cs b/terminalAzure/TerminalData.cs index 76f4646ae6..847d40c08e 100644 --- a/terminalAzure/TerminalData.cs +++ b/terminalAzure/TerminalData.cs @@ -10,7 +10,7 @@ namespace terminalAzure { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO WebServiceDTO = new ActivityCategoryDTO { Name = "Microsoft Azure" }; diff --git a/terminalBasecamp2/Activities/Create_Message_v1.cs b/terminalBasecamp2/Activities/Create_Message_v1.cs index 7fb640c5ce..e03c15a337 100644 --- a/terminalBasecamp2/Activities/Create_Message_v1.cs +++ b/terminalBasecamp2/Activities/Create_Message_v1.cs @@ -27,13 +27,14 @@ public class Create_Message_v1 : TerminalActivity Category = ActivityCategory.Forwarders, Version = "1", MinPaneWidth = 330, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, NeedsAuthentication = true, Categories = new[] { ActivityCategories.Forward, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; diff --git a/terminalBasecamp2/TerminalData.cs b/terminalBasecamp2/TerminalData.cs index 8a32769579..8926fe292f 100644 --- a/terminalBasecamp2/TerminalData.cs +++ b/terminalBasecamp2/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalBasecamp2 { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "Basecamp2", IconPath = "/Content/icons/web_services/basecamp2-icon-64x64.png" diff --git a/terminalBox/Actions/Generate_Table_Activity_v1.cs b/terminalBox/Actions/Generate_Table_Activity_v1.cs index 269079d886..1aeeeeef15 100644 --- a/terminalBox/Actions/Generate_Table_Activity_v1.cs +++ b/terminalBox/Actions/Generate_Table_Activity_v1.cs @@ -19,12 +19,13 @@ public class Generate_Table_Activity_v1 : TerminalActivity ActivityTemplateDTO; diff --git a/terminalBox/Actions/Save_To_File_v1.cs b/terminalBox/Actions/Save_To_File_v1.cs index ae4d0aac75..6e9a37bcb7 100644 --- a/terminalBox/Actions/Save_To_File_v1.cs +++ b/terminalBox/Actions/Save_To_File_v1.cs @@ -30,12 +30,13 @@ public class Save_To_File_v1 : TerminalActivity Category = ActivityCategory.Forwarders, NeedsAuthentication = true, MinPaneWidth = 300, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Forward, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalBox/TerminalData.cs b/terminalBox/TerminalData.cs index 5356e3e5d1..5ccd539e49 100644 --- a/terminalBox/TerminalData.cs +++ b/terminalBox/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalBox { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "Box", IconPath = "/Content/icons/web_services/Box-logo_64x64.png" diff --git a/terminalDocuSign/Activities/Extract_Data_From_Envelopes_v1.cs b/terminalDocuSign/Activities/Extract_Data_From_Envelopes_v1.cs index b662e7e682..f49e182ef2 100644 --- a/terminalDocuSign/Activities/Extract_Data_From_Envelopes_v1.cs +++ b/terminalDocuSign/Activities/Extract_Data_From_Envelopes_v1.cs @@ -26,7 +26,8 @@ public class Extract_Data_From_Envelopes_v1 : BaseDocuSignActivity Category = ActivityCategory.Solution, MinPaneWidth = 380, NeedsAuthentication = true, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Solution } }; diff --git a/terminalDocuSign/Activities/Generate_DocuSign_Report_v1.cs b/terminalDocuSign/Activities/Generate_DocuSign_Report_v1.cs index 32fe4e30f7..bcceb96904 100644 --- a/terminalDocuSign/Activities/Generate_DocuSign_Report_v1.cs +++ b/terminalDocuSign/Activities/Generate_DocuSign_Report_v1.cs @@ -39,12 +39,13 @@ public class Generate_DocuSign_Report_v1 : ExplicitTerminalActivity Category = ActivityCategory.Receivers, NeedsAuthentication = true, MinPaneWidth = 330, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Receive, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalDocuSign/Activities/Get_DocuSign_Envelope_v1.cs b/terminalDocuSign/Activities/Get_DocuSign_Envelope_v1.cs index d5217dc650..e42484abe3 100644 --- a/terminalDocuSign/Activities/Get_DocuSign_Envelope_v1.cs +++ b/terminalDocuSign/Activities/Get_DocuSign_Envelope_v1.cs @@ -26,12 +26,13 @@ public class Get_DocuSign_Envelope_v1 : BaseDocuSignActivity Category = ActivityCategory.Receivers, NeedsAuthentication = true, MinPaneWidth = 330, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Receive, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalDocuSign/Activities/Get_DocuSign_Template_v1.cs b/terminalDocuSign/Activities/Get_DocuSign_Template_v1.cs index 35118a12ff..5355fda810 100644 --- a/terminalDocuSign/Activities/Get_DocuSign_Template_v1.cs +++ b/terminalDocuSign/Activities/Get_DocuSign_Template_v1.cs @@ -25,12 +25,13 @@ public class Get_DocuSign_Template_v1 : BaseDocuSignActivity Category = ActivityCategory.Receivers, NeedsAuthentication = true, MinPaneWidth = 330, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Receive, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalDocuSign/Activities/Mail_Merge_Into_DocuSign_v1.cs b/terminalDocuSign/Activities/Mail_Merge_Into_DocuSign_v1.cs index ad8abc8c41..f983fb15dc 100644 --- a/terminalDocuSign/Activities/Mail_Merge_Into_DocuSign_v1.cs +++ b/terminalDocuSign/Activities/Mail_Merge_Into_DocuSign_v1.cs @@ -33,7 +33,8 @@ public class Mail_Merge_Into_DocuSign_v1 : BaseDocuSignActivity Category = ActivityCategory.Solution, MinPaneWidth = 500, Tags = Tags.UsesReconfigureList, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Solution } }; diff --git a/terminalDocuSign/Activities/Monitor_DocuSign_Envelope_Activity_v1.cs b/terminalDocuSign/Activities/Monitor_DocuSign_Envelope_Activity_v1.cs index 7bcc81ea6a..36e8d6ee91 100644 --- a/terminalDocuSign/Activities/Monitor_DocuSign_Envelope_Activity_v1.cs +++ b/terminalDocuSign/Activities/Monitor_DocuSign_Envelope_Activity_v1.cs @@ -29,12 +29,13 @@ public class Monitor_DocuSign_Envelope_Activity_v1 : BaseDocuSignActivity Category = ActivityCategory.Monitors, NeedsAuthentication = true, MinPaneWidth = 380, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Monitor, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalDocuSign/Activities/Prepare_DocuSign_Events_For_Storage_v1.cs b/terminalDocuSign/Activities/Prepare_DocuSign_Events_For_Storage_v1.cs index 56f51ba4da..38a4add43e 100644 --- a/terminalDocuSign/Activities/Prepare_DocuSign_Events_For_Storage_v1.cs +++ b/terminalDocuSign/Activities/Prepare_DocuSign_Events_For_Storage_v1.cs @@ -26,12 +26,13 @@ public class Prepare_DocuSign_Events_For_Storage_v1 : ExplicitTerminalActivity NeedsAuthentication = true, MinPaneWidth = 330, Tags = Tags.Internal, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Monitor, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalDocuSign/Activities/Query_DocuSign_v1.cs b/terminalDocuSign/Activities/Query_DocuSign_v1.cs index d804eec713..f9c0a69ecc 100644 --- a/terminalDocuSign/Activities/Query_DocuSign_v1.cs +++ b/terminalDocuSign/Activities/Query_DocuSign_v1.cs @@ -29,12 +29,13 @@ public class Query_DocuSign_v1 : BaseDocuSignActivity Category = ActivityCategory.Receivers, NeedsAuthentication = true, MinPaneWidth = 380, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Receive, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalDocuSign/Activities/Query_DocuSign_v2.cs b/terminalDocuSign/Activities/Query_DocuSign_v2.cs index 999870e036..530045584b 100644 --- a/terminalDocuSign/Activities/Query_DocuSign_v2.cs +++ b/terminalDocuSign/Activities/Query_DocuSign_v2.cs @@ -28,12 +28,13 @@ public class Query_DocuSign_v2 : DocuSignActivity Category = ActivityCategory.Receivers, NeedsAuthentication = true, MinPaneWidth = 380, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Receive, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalDocuSign/Activities/Search_DocuSign_History_v1.cs b/terminalDocuSign/Activities/Search_DocuSign_History_v1.cs index fc42106265..12210c2567 100644 --- a/terminalDocuSign/Activities/Search_DocuSign_History_v1.cs +++ b/terminalDocuSign/Activities/Search_DocuSign_History_v1.cs @@ -39,12 +39,13 @@ public class Search_DocuSign_History_v1 : BaseDocuSignActivity NeedsAuthentication = true, MinPaneWidth = 380, Tags = Tags.Internal, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Receive, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalDocuSign/Activities/Send_DocuSign_Envelope_v1.cs b/terminalDocuSign/Activities/Send_DocuSign_Envelope_v1.cs index 5e4f9b362b..edb5085aa9 100644 --- a/terminalDocuSign/Activities/Send_DocuSign_Envelope_v1.cs +++ b/terminalDocuSign/Activities/Send_DocuSign_Envelope_v1.cs @@ -31,12 +31,13 @@ public class Send_DocuSign_Envelope_v1 : BaseDocuSignActivity Tags = string.Join(",", Tags.EmailDeliverer), NeedsAuthentication = true, MinPaneWidth = 330, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Forward, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalDocuSign/Activities/Send_DocuSign_Envelope_v2.cs b/terminalDocuSign/Activities/Send_DocuSign_Envelope_v2.cs index d9549bece2..d6eef0aba6 100644 --- a/terminalDocuSign/Activities/Send_DocuSign_Envelope_v2.cs +++ b/terminalDocuSign/Activities/Send_DocuSign_Envelope_v2.cs @@ -33,12 +33,13 @@ public class Send_DocuSign_Envelope_v2 : DocuSignActivity ActivityTemplateDTO; diff --git a/terminalDocuSign/Activities/Track_DocuSign_Recipients_v1.cs b/terminalDocuSign/Activities/Track_DocuSign_Recipients_v1.cs index a82e8a3d33..d276f57879 100644 --- a/terminalDocuSign/Activities/Track_DocuSign_Recipients_v1.cs +++ b/terminalDocuSign/Activities/Track_DocuSign_Recipients_v1.cs @@ -33,7 +33,8 @@ public class Track_DocuSign_Recipients_v1 : BaseDocuSignActivity Category = ActivityCategory.Solution, NeedsAuthentication = true, MinPaneWidth = 380, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Solution } }; diff --git a/terminalDocuSign/Activities/Track_DocuSign_Recipients_v2.cs b/terminalDocuSign/Activities/Track_DocuSign_Recipients_v2.cs index 20ab1cc04b..f7918c3e91 100644 --- a/terminalDocuSign/Activities/Track_DocuSign_Recipients_v2.cs +++ b/terminalDocuSign/Activities/Track_DocuSign_Recipients_v2.cs @@ -34,7 +34,8 @@ public class Track_DocuSign_Recipients_v2 : DocuSignActivity ActivityTemplateDTO; diff --git a/terminalDocuSign/TerminalData.cs b/terminalDocuSign/TerminalData.cs index 3544bdad80..c305ec42bc 100644 --- a/terminalDocuSign/TerminalData.cs +++ b/terminalDocuSign/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalDocuSign { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "DocuSign", IconPath = "/Content/icons/web_services/docusign-icon-64x64.png" diff --git a/terminalDropbox/Activities/Get_File_List_v1.cs b/terminalDropbox/Activities/Get_File_List_v1.cs index 03e0eaab5c..21ba2e484c 100644 --- a/terminalDropbox/Activities/Get_File_List_v1.cs +++ b/terminalDropbox/Activities/Get_File_List_v1.cs @@ -48,11 +48,12 @@ public ActivityUi() NeedsAuthentication = true, Category = ActivityCategory.Receivers, MinPaneWidth = 330, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Categories = new[] { ActivityCategories.Receive, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalDropbox/TerminalData.cs b/terminalDropbox/TerminalData.cs index ce33b5be81..7b2b780fb0 100644 --- a/terminalDropbox/TerminalData.cs +++ b/terminalDropbox/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalDropbox { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "Dropbox", IconPath = "/Content/icons/web_services/dropbox-icon-64x64.png" diff --git a/terminalExcel/Activities/Load_Excel_File_v1.cs b/terminalExcel/Activities/Load_Excel_File_v1.cs index 7029153f12..57623619e0 100644 --- a/terminalExcel/Activities/Load_Excel_File_v1.cs +++ b/terminalExcel/Activities/Load_Excel_File_v1.cs @@ -233,11 +233,12 @@ private KeyValueDTO SelectedFileDescription Terminal = TerminalData.TerminalDTO, Tags = "Table Data Generator,Getter", MinPaneWidth = 300, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Categories = new[] { ActivityCategories.Receive, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalExcel/Activities/Save_To_Excel_v1.cs b/terminalExcel/Activities/Save_To_Excel_v1.cs index aa7247be72..120b01b729 100644 --- a/terminalExcel/Activities/Save_To_Excel_v1.cs +++ b/terminalExcel/Activities/Save_To_Excel_v1.cs @@ -214,11 +214,12 @@ private string SelectedSpreadsheet Category = ActivityCategory.Forwarders, Terminal = TerminalData.TerminalDTO, MinPaneWidth = 300, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Categories = new[] { ActivityCategories.Forward, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalExcel/Activities/Set_Excel_Template_v1.cs b/terminalExcel/Activities/Set_Excel_Template_v1.cs index d4f733ecb1..bce1571085 100644 --- a/terminalExcel/Activities/Set_Excel_Template_v1.cs +++ b/terminalExcel/Activities/Set_Excel_Template_v1.cs @@ -31,11 +31,12 @@ public class Set_Excel_Template_v1 : ExplicitTerminalActivity Category = ActivityCategory.Processors, Terminal = TerminalData.TerminalDTO, Tags = "Table Data Generator,Skip At Run-Time", - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalExcel/TerminalData.cs b/terminalExcel/TerminalData.cs index b808d8e3a9..d76a74944d 100644 --- a/terminalExcel/TerminalData.cs +++ b/terminalExcel/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalExcel { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "Excel", IconPath = "/Content/icons/web_services/ms-excel-icon-64x64.png" diff --git a/terminalFacebook/Activities/Monitor_Feed_Posts_v1.cs b/terminalFacebook/Activities/Monitor_Feed_Posts_v1.cs index 42a0c35c1c..b369211f82 100644 --- a/terminalFacebook/Activities/Monitor_Feed_Posts_v1.cs +++ b/terminalFacebook/Activities/Monitor_Feed_Posts_v1.cs @@ -29,13 +29,14 @@ public class Monitor_Feed_Posts_v1 : TerminalActivity ActivityTemplateDTO; diff --git a/terminalFacebook/Activities/Post_To_Timeline_v1.cs b/terminalFacebook/Activities/Post_To_Timeline_v1.cs index f4cc29d07b..8bc4313edd 100644 --- a/terminalFacebook/Activities/Post_To_Timeline_v1.cs +++ b/terminalFacebook/Activities/Post_To_Timeline_v1.cs @@ -29,13 +29,14 @@ public class Post_To_Timeline_v1 : TerminalActivity ActivityTemplateDTO; diff --git a/terminalFacebook/TerminalData.cs b/terminalFacebook/TerminalData.cs index 025ea179bd..7782d80d54 100644 --- a/terminalFacebook/TerminalData.cs +++ b/terminalFacebook/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalFacebook { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "Facebook", IconPath = "/Content/icons/web_services/facebook-icon-64x64.png" diff --git a/terminalFr8Core/Activities/Add_Payload_Manually_v1.cs b/terminalFr8Core/Activities/Add_Payload_Manually_v1.cs index a2f25396c0..d060422c51 100644 --- a/terminalFr8Core/Activities/Add_Payload_Manually_v1.cs +++ b/terminalFr8Core/Activities/Add_Payload_Manually_v1.cs @@ -23,11 +23,12 @@ public class Add_Payload_Manually_v1 : ExplicitTerminalActivity Terminal = TerminalData.TerminalDTO, Version = "1", MinPaneWidth = 330, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/App_Builder_v1.cs b/terminalFr8Core/Activities/App_Builder_v1.cs index e16e0ca9bd..a4635322e3 100644 --- a/terminalFr8Core/Activities/App_Builder_v1.cs +++ b/terminalFr8Core/Activities/App_Builder_v1.cs @@ -34,12 +34,13 @@ public class App_Builder_v1 : ExplicitTerminalActivity Category = ActivityCategory.Processors, NeedsAuthentication = false, MinPaneWidth = 320, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Build_Message_v1.cs b/terminalFr8Core/Activities/Build_Message_v1.cs index c18a72fb2d..13add03fe0 100644 --- a/terminalFr8Core/Activities/Build_Message_v1.cs +++ b/terminalFr8Core/Activities/Build_Message_v1.cs @@ -21,12 +21,13 @@ public class Build_Message_v1 : TerminalActivity Category = ActivityCategory.Processors, Version = "1", MinPaneWidth = 330, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Build_Query_v1.cs b/terminalFr8Core/Activities/Build_Query_v1.cs index ec4493dcd8..eafd81a188 100644 --- a/terminalFr8Core/Activities/Build_Query_v1.cs +++ b/terminalFr8Core/Activities/Build_Query_v1.cs @@ -26,11 +26,12 @@ public class Build_Query_v1 : ExplicitTerminalActivity Version = "1", Tags = Tags.Internal, Terminal = TerminalData.TerminalDTO, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Connect_To_Sql_v1.cs b/terminalFr8Core/Activities/Connect_To_Sql_v1.cs index 22d584ab53..a99fc353bd 100644 --- a/terminalFr8Core/Activities/Connect_To_Sql_v1.cs +++ b/terminalFr8Core/Activities/Connect_To_Sql_v1.cs @@ -24,11 +24,12 @@ public class Connect_To_Sql_v1 : ExplicitTerminalActivity Version = "1", Tags = Tags.Internal, Terminal = TerminalData.TerminalDTO, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Convert_Related_Fields_Into_Table_v1.cs b/terminalFr8Core/Activities/Convert_Related_Fields_Into_Table_v1.cs index 55185ee9d1..42736e912f 100644 --- a/terminalFr8Core/Activities/Convert_Related_Fields_Into_Table_v1.cs +++ b/terminalFr8Core/Activities/Convert_Related_Fields_Into_Table_v1.cs @@ -28,12 +28,13 @@ public class Convert_Related_Fields_Into_Table_v1 : ExplicitTerminalActivity Category = ActivityCategory.Processors, Version = "1", MinPaneWidth = 400, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Execute_Sql_v1.cs b/terminalFr8Core/Activities/Execute_Sql_v1.cs index ce07e7ebd0..b0ae62b9b2 100644 --- a/terminalFr8Core/Activities/Execute_Sql_v1.cs +++ b/terminalFr8Core/Activities/Execute_Sql_v1.cs @@ -25,12 +25,13 @@ public class Execute_Sql_v1 : ExplicitTerminalActivity Category = ActivityCategory.Processors, Version = "1", Tags = Tags.Internal, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Extract_Table_Field_v1.cs b/terminalFr8Core/Activities/Extract_Table_Field_v1.cs index f466c5bec4..49ad69e3d4 100644 --- a/terminalFr8Core/Activities/Extract_Table_Field_v1.cs +++ b/terminalFr8Core/Activities/Extract_Table_Field_v1.cs @@ -30,7 +30,7 @@ public class Extract_Table_Field_v1 : ExplicitTerminalActivity Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Filter_Object_List_By_Incoming_Message_v1.cs b/terminalFr8Core/Activities/Filter_Object_List_By_Incoming_Message_v1.cs index 91235d7c1b..1aeb5740c9 100644 --- a/terminalFr8Core/Activities/Filter_Object_List_By_Incoming_Message_v1.cs +++ b/terminalFr8Core/Activities/Filter_Object_List_By_Incoming_Message_v1.cs @@ -29,12 +29,13 @@ public class Filter_Object_List_By_Incoming_Message_v1 : TerminalActivity ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Get_Data_From_Fr8_Warehouse_v1.cs b/terminalFr8Core/Activities/Get_Data_From_Fr8_Warehouse_v1.cs index aa7f7cbb25..59aa08a429 100644 --- a/terminalFr8Core/Activities/Get_Data_From_Fr8_Warehouse_v1.cs +++ b/terminalFr8Core/Activities/Get_Data_From_Fr8_Warehouse_v1.cs @@ -34,12 +34,13 @@ public class Get_Data_From_Fr8_Warehouse_v1 Category = Fr8.Infrastructure.Data.States.ActivityCategory.Processors, Version = "1", MinPaneWidth = 550, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Get_File_From_Fr8_Store_v1.cs b/terminalFr8Core/Activities/Get_File_From_Fr8_Store_v1.cs index e856d2f86b..6e101d401a 100644 --- a/terminalFr8Core/Activities/Get_File_From_Fr8_Store_v1.cs +++ b/terminalFr8Core/Activities/Get_File_From_Fr8_Store_v1.cs @@ -27,12 +27,13 @@ public class Get_File_From_Fr8_Store_v1 : ExplicitTerminalActivity Version = "1", Type = ActivityType.Standard, MinPaneWidth = 330, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Receive, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Loop_v1.cs b/terminalFr8Core/Activities/Loop_v1.cs index bacae1c65a..d156e02f04 100644 --- a/terminalFr8Core/Activities/Loop_v1.cs +++ b/terminalFr8Core/Activities/Loop_v1.cs @@ -30,12 +30,13 @@ public class Loop_v1 : ExplicitTerminalActivity MinPaneWidth = 330, Type = ActivityType.Loop, Tags = Tags.AggressiveReload, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Make_A_Decision_v1.cs b/terminalFr8Core/Activities/Make_A_Decision_v1.cs index 9caebac7fb..4a3f94a212 100644 --- a/terminalFr8Core/Activities/Make_A_Decision_v1.cs +++ b/terminalFr8Core/Activities/Make_A_Decision_v1.cs @@ -25,12 +25,13 @@ public class Make_A_Decision_v1 : Test_Incoming_Data_v1 Category = ActivityCategory.Processors, NeedsAuthentication = false, MinPaneWidth = 550, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Monitor_Fr8_Events_v1.cs b/terminalFr8Core/Activities/Monitor_Fr8_Events_v1.cs index 8ac5b5f749..bd6073e9db 100644 --- a/terminalFr8Core/Activities/Monitor_Fr8_Events_v1.cs +++ b/terminalFr8Core/Activities/Monitor_Fr8_Events_v1.cs @@ -24,12 +24,12 @@ public class Monitor_Fr8_Events_v1 : ExplicitTerminalActivity NeedsAuthentication = false, MinPaneWidth = 380, Tags = Tags.Internal, - WebService = TerminalData.WebServiceDTO, + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Monitor, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Query_Fr8_Warehouse_v1.cs b/terminalFr8Core/Activities/Query_Fr8_Warehouse_v1.cs index 3480c9026e..0ba17df3a8 100644 --- a/terminalFr8Core/Activities/Query_Fr8_Warehouse_v1.cs +++ b/terminalFr8Core/Activities/Query_Fr8_Warehouse_v1.cs @@ -35,12 +35,13 @@ public class Query_Fr8_Warehouse_v1 : ExplicitTerminalActivity Category = Fr8.Infrastructure.Data.States.ActivityCategory.Processors, Version = "1", MinPaneWidth = 550, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Save_To_Fr8_Warehouse_v1.cs b/terminalFr8Core/Activities/Save_To_Fr8_Warehouse_v1.cs index 201b4f2dde..118c3d80a5 100644 --- a/terminalFr8Core/Activities/Save_To_Fr8_Warehouse_v1.cs +++ b/terminalFr8Core/Activities/Save_To_Fr8_Warehouse_v1.cs @@ -26,12 +26,13 @@ public class Save_To_Fr8_Warehouse_v1 : ExplicitTerminalActivity Category = ActivityCategory.Processors, Version = "1", MinPaneWidth = 330, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; diff --git a/terminalFr8Core/Activities/Search_Fr8_Warehouse_v1.cs b/terminalFr8Core/Activities/Search_Fr8_Warehouse_v1.cs index da34fcfac1..5961955906 100644 --- a/terminalFr8Core/Activities/Search_Fr8_Warehouse_v1.cs +++ b/terminalFr8Core/Activities/Search_Fr8_Warehouse_v1.cs @@ -38,12 +38,13 @@ public class Search_Fr8_Warehouse_v1 : ExplicitTerminalActivity NeedsAuthentication = false, MinPaneWidth = 400, Tags = Tags.HideChildren, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Solution, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Select_Fr8_Object_v1.cs b/terminalFr8Core/Activities/Select_Fr8_Object_v1.cs index 11e3043074..4b10103a58 100644 --- a/terminalFr8Core/Activities/Select_Fr8_Object_v1.cs +++ b/terminalFr8Core/Activities/Select_Fr8_Object_v1.cs @@ -30,12 +30,13 @@ public class Select_Fr8_Object_v1 : ExplicitTerminalActivity Version = "1", MinPaneWidth = 330, Tags = Tags.Internal, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Send_Email_v1.cs b/terminalFr8Core/Activities/Send_Email_v1.cs index 7ccb021675..49d3eeb238 100644 --- a/terminalFr8Core/Activities/Send_Email_v1.cs +++ b/terminalFr8Core/Activities/Send_Email_v1.cs @@ -27,12 +27,13 @@ public class Send_Email_v1 : TerminalActivity Category = ActivityCategory.Forwarders, NeedsAuthentication = false, MinPaneWidth = 400, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Forward, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Send_SMS_v1.cs b/terminalFr8Core/Activities/Send_SMS_v1.cs index cb7497d89a..c94b1da570 100644 --- a/terminalFr8Core/Activities/Send_SMS_v1.cs +++ b/terminalFr8Core/Activities/Send_SMS_v1.cs @@ -29,12 +29,13 @@ public class Send_SMS_v1 : TerminalActivity Category = ActivityCategory.Forwarders, NeedsAuthentication = false, MinPaneWidth = 400, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Forward, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Set_Delay_v1.cs b/terminalFr8Core/Activities/Set_Delay_v1.cs index 8f02efe684..30e81c2bd5 100644 --- a/terminalFr8Core/Activities/Set_Delay_v1.cs +++ b/terminalFr8Core/Activities/Set_Delay_v1.cs @@ -21,12 +21,13 @@ public class Set_Delay_v1 : ExplicitTerminalActivity Version = "1", MinPaneWidth = 330, Type = ActivityType.Standard, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Store_File_v1.cs b/terminalFr8Core/Activities/Store_File_v1.cs index c6b4d71217..af39d82549 100644 --- a/terminalFr8Core/Activities/Store_File_v1.cs +++ b/terminalFr8Core/Activities/Store_File_v1.cs @@ -24,12 +24,13 @@ public class Store_File_v1 : ExplicitTerminalActivity Version = "1", MinPaneWidth = 330, Type = ActivityType.Standard, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalFr8Core/Activities/Test_Incoming_Data_v1.cs b/terminalFr8Core/Activities/Test_Incoming_Data_v1.cs index 5e22a5cb88..3183a5095d 100644 --- a/terminalFr8Core/Activities/Test_Incoming_Data_v1.cs +++ b/terminalFr8Core/Activities/Test_Incoming_Data_v1.cs @@ -28,12 +28,13 @@ public class Test_Incoming_Data_v1 : ExplicitTerminalActivity Category = ActivityCategory.Processors, Version = "1", MinPaneWidth = 550, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Process, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalGoogle/Activities/Get_Google_Sheet_Data_v1.cs b/terminalGoogle/Activities/Get_Google_Sheet_Data_v1.cs index 1197ebf9c5..aefb063783 100644 --- a/terminalGoogle/Activities/Get_Google_Sheet_Data_v1.cs +++ b/terminalGoogle/Activities/Get_Google_Sheet_Data_v1.cs @@ -27,12 +27,13 @@ public class Get_Google_Sheet_Data_v1 : BaseGoogleTerminalActivity ActivityTemplateDTO; diff --git a/terminalGoogle/Activities/Monitor_Form_Responses_v1.cs b/terminalGoogle/Activities/Monitor_Form_Responses_v1.cs index e6f9ad1692..d8a8f15916 100644 --- a/terminalGoogle/Activities/Monitor_Form_Responses_v1.cs +++ b/terminalGoogle/Activities/Monitor_Form_Responses_v1.cs @@ -65,12 +65,13 @@ private KeyValueDTO SelectedForm Category = ActivityCategory.Monitors, Terminal = TerminalData.TerminalDTO, NeedsAuthentication = true, - WebService = TerminalData.GooogleWebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.GooogleWebServiceDTO, MinPaneWidth = 300, Categories = new[] { ActivityCategories.Monitor, - new ActivityCategoryDTO(TerminalData.GooogleWebServiceDTO.Name, TerminalData.GooogleWebServiceDTO.IconPath) + TerminalData.GooogleActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalGoogle/Activities/Monitor_Gmail_Inbox_v1.cs b/terminalGoogle/Activities/Monitor_Gmail_Inbox_v1.cs index 6319d8d817..f0074ac52d 100644 --- a/terminalGoogle/Activities/Monitor_Gmail_Inbox_v1.cs +++ b/terminalGoogle/Activities/Monitor_Gmail_Inbox_v1.cs @@ -37,12 +37,13 @@ public Monitor_Gmail_Inbox_v1(ICrateManager crateManager, IGoogleIntegration goo Category = ActivityCategory.Monitors, Terminal = TerminalData.TerminalDTO, NeedsAuthentication = true, - WebService = TerminalData.GmailWebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.GmailWebServiceDTO, MinPaneWidth = 300, Categories = new[] { ActivityCategories.Monitor, - new ActivityCategoryDTO(TerminalData.GooogleWebServiceDTO.Name, TerminalData.GooogleWebServiceDTO.IconPath) + TerminalData.GooogleActivityCategoryDTO } }; diff --git a/terminalGoogle/Activities/Save_To_Google_Sheet_v1.cs b/terminalGoogle/Activities/Save_To_Google_Sheet_v1.cs index 9cb7a540c4..9c735a6763 100644 --- a/terminalGoogle/Activities/Save_To_Google_Sheet_v1.cs +++ b/terminalGoogle/Activities/Save_To_Google_Sheet_v1.cs @@ -31,11 +31,12 @@ public class Save_To_Google_Sheet_v1 : BaseGoogleTerminalActivity ActivityTemplateDTO; diff --git a/terminalInstagram/Activities/Monitor_For_New_Media_Posted_v1.cs b/terminalInstagram/Activities/Monitor_For_New_Media_Posted_v1.cs index 2f3955bc92..c35aaa77ef 100644 --- a/terminalInstagram/Activities/Monitor_For_New_Media_Posted_v1.cs +++ b/terminalInstagram/Activities/Monitor_For_New_Media_Posted_v1.cs @@ -25,12 +25,13 @@ public class Monitor_For_New_Media_Posted_v1: TerminalActivity ActivityTemplateDTO; diff --git a/terminalPapertrail/TerminalData.cs b/terminalPapertrail/TerminalData.cs index 74dba77313..f4580150cc 100644 --- a/terminalPapertrail/TerminalData.cs +++ b/terminalPapertrail/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalPapertrail { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "Papertrail", IconPath = "/Content/icons/web_services/papertrail-icon-64x64.png" diff --git a/terminalQuickBooks/Activities/Create_Journal_Entry_v1.cs b/terminalQuickBooks/Activities/Create_Journal_Entry_v1.cs index b3f572c334..a5c12f025c 100644 --- a/terminalQuickBooks/Activities/Create_Journal_Entry_v1.cs +++ b/terminalQuickBooks/Activities/Create_Journal_Entry_v1.cs @@ -26,11 +26,12 @@ public class ActivityUi : StandardConfigurationControlsCM { } Terminal = TerminalData.TerminalDTO, NeedsAuthentication = true, MinPaneWidth = 330, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Categories = new[] { ActivityCategories.Forward, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalQuickBooks/TerminalData.cs b/terminalQuickBooks/TerminalData.cs index 36020265b5..744dbccb73 100644 --- a/terminalQuickBooks/TerminalData.cs +++ b/terminalQuickBooks/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalQuickBooks { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "QuickBooks", IconPath = "/Content/icons/web_services/quickbooks-icon-64x64.png" diff --git a/terminalSalesforce/Activities/Get_Data_v1.cs b/terminalSalesforce/Activities/Get_Data_v1.cs index 709e0fc370..e3e519e6dd 100644 --- a/terminalSalesforce/Activities/Get_Data_v1.cs +++ b/terminalSalesforce/Activities/Get_Data_v1.cs @@ -29,12 +29,13 @@ public class Get_Data_v1 : BaseSalesforceTerminalActivity ActivityTemplateDTO; diff --git a/terminalSalesforce/Activities/Mail_Merge_From_Salesforce_v1.cs b/terminalSalesforce/Activities/Mail_Merge_From_Salesforce_v1.cs index 551112fdd5..9e86593457 100644 --- a/terminalSalesforce/Activities/Mail_Merge_From_Salesforce_v1.cs +++ b/terminalSalesforce/Activities/Mail_Merge_From_Salesforce_v1.cs @@ -30,7 +30,8 @@ public class Mail_Merge_From_Salesforce_v1 : BaseSalesforceTerminalActivity ActivityTemplateDTO; diff --git a/terminalSalesforce/Activities/Post_To_Chatter_v1.cs b/terminalSalesforce/Activities/Post_To_Chatter_v1.cs index e2e2beb413..f06a84d626 100644 --- a/terminalSalesforce/Activities/Post_To_Chatter_v1.cs +++ b/terminalSalesforce/Activities/Post_To_Chatter_v1.cs @@ -27,12 +27,13 @@ public class Post_To_Chatter_v1 : BaseSalesforceTerminalActivity ActivityTemplateDTO; diff --git a/terminalSalesforce/Activities/Post_To_Chatter_v2.cs b/terminalSalesforce/Activities/Post_To_Chatter_v2.cs index 2a24e033ff..e1b7196744 100644 --- a/terminalSalesforce/Activities/Post_To_Chatter_v2.cs +++ b/terminalSalesforce/Activities/Post_To_Chatter_v2.cs @@ -33,12 +33,13 @@ public class Post_To_Chatter_v2 : BaseSalesforceTerminalActivity ActivityTemplateDTO; diff --git a/terminalSalesforce/Activities/Save_To_SalesforceDotCom_v1.cs b/terminalSalesforce/Activities/Save_To_SalesforceDotCom_v1.cs index 28d65edfe1..afb54ae1b2 100644 --- a/terminalSalesforce/Activities/Save_To_SalesforceDotCom_v1.cs +++ b/terminalSalesforce/Activities/Save_To_SalesforceDotCom_v1.cs @@ -31,12 +31,13 @@ public class Save_To_SalesforceDotCom_v1 : ExplicitTerminalActivity NeedsAuthentication = true, Category = ActivityCategory.Forwarders, MinPaneWidth = 330, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO, Categories = new[] { ActivityCategories.Forward, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; diff --git a/terminalSalesforce/TerminalData.cs b/terminalSalesforce/TerminalData.cs index 70bc32de05..08008e7fb7 100644 --- a/terminalSalesforce/TerminalData.cs +++ b/terminalSalesforce/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalSalesforce { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "Salesforce", IconPath = "/Content/icons/web_services/salesforce-icon-64x64.png" diff --git a/terminalSendGrid/Activities/Send_Email_Via_SendGrid_v1.cs b/terminalSendGrid/Activities/Send_Email_Via_SendGrid_v1.cs index 37bee78a47..31bba60ba2 100644 --- a/terminalSendGrid/Activities/Send_Email_Via_SendGrid_v1.cs +++ b/terminalSendGrid/Activities/Send_Email_Via_SendGrid_v1.cs @@ -31,11 +31,12 @@ public class Send_Email_Via_SendGrid_v1 : ExplicitTerminalActivity Terminal = TerminalData.TerminalDTO, Category = ActivityCategory.Forwarders, MinPaneWidth = 330, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Categories = new[] { ActivityCategories.Forward, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalSendGrid/TerminalData.cs b/terminalSendGrid/TerminalData.cs index 9635353af1..32dd1b3390 100644 --- a/terminalSendGrid/TerminalData.cs +++ b/terminalSendGrid/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalSendGrid { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "SendGrid", IconPath = "/Content/icons/web_services/sendgrid-icon-64x64.png" diff --git a/terminalSlack/Activities/Monitor_Channel_v1.cs b/terminalSlack/Activities/Monitor_Channel_v1.cs index 16eaea701e..08908835a6 100644 --- a/terminalSlack/Activities/Monitor_Channel_v1.cs +++ b/terminalSlack/Activities/Monitor_Channel_v1.cs @@ -86,12 +86,13 @@ public ActivityUi() Terminal = TerminalData.TerminalDTO, NeedsAuthentication = true, Version = "1", - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, MinPaneWidth = 330, Categories = new[] { ActivityCategories.Monitor, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalSlack/Activities/Monitor_Channel_v2.cs b/terminalSlack/Activities/Monitor_Channel_v2.cs index 92ba956761..2befb8c4b9 100644 --- a/terminalSlack/Activities/Monitor_Channel_v2.cs +++ b/terminalSlack/Activities/Monitor_Channel_v2.cs @@ -25,12 +25,13 @@ public class Monitor_Channel_v2 : TerminalActivity ActivityTemplateDTO; diff --git a/terminalSlack/Activities/Publish_To_Slack_v1.cs b/terminalSlack/Activities/Publish_To_Slack_v1.cs index 0eeb7824a7..493ef713eb 100644 --- a/terminalSlack/Activities/Publish_To_Slack_v1.cs +++ b/terminalSlack/Activities/Publish_To_Slack_v1.cs @@ -31,12 +31,13 @@ public class Publish_To_Slack_v1 : ExplicitTerminalActivity Terminal = TerminalData.TerminalDTO, NeedsAuthentication = true, Version = "1", - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, MinPaneWidth = 330, Categories = new[] { ActivityCategories.Forward, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalSlack/Activities/Publish_To_Slack_v2.cs b/terminalSlack/Activities/Publish_To_Slack_v2.cs index 75614582ba..11816978c5 100644 --- a/terminalSlack/Activities/Publish_To_Slack_v2.cs +++ b/terminalSlack/Activities/Publish_To_Slack_v2.cs @@ -28,12 +28,13 @@ public class Publish_To_Slack_v2 : TerminalActivity ActivityTemplateDTO; diff --git a/terminalSlack/TerminalData.cs b/terminalSlack/TerminalData.cs index 8533ae8f14..abf6760744 100644 --- a/terminalSlack/TerminalData.cs +++ b/terminalSlack/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalSlack { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "Slack", IconPath = "/Content/icons/web_services/slack-icon-64x64.png" diff --git a/terminalStatX/Activities/Create_Stat_v1.cs b/terminalStatX/Activities/Create_Stat_v1.cs index cceba00be1..94ec56e16b 100644 --- a/terminalStatX/Activities/Create_Stat_v1.cs +++ b/terminalStatX/Activities/Create_Stat_v1.cs @@ -38,11 +38,12 @@ public Create_Stat_v1(ICrateManager crateManager, IStatXIntegration statXIntegra Terminal = TerminalData.TerminalDTO, NeedsAuthentication = true, MinPaneWidth = 300, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Categories = new[] { ActivityCategories.Forward, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; diff --git a/terminalStatX/Activities/Monitor_Stat_Changes_v1.cs b/terminalStatX/Activities/Monitor_Stat_Changes_v1.cs index 53556da489..599ab923de 100644 --- a/terminalStatX/Activities/Monitor_Stat_Changes_v1.cs +++ b/terminalStatX/Activities/Monitor_Stat_Changes_v1.cs @@ -29,11 +29,12 @@ public class Monitor_Stat_Changes_v1 : TerminalActivity Terminal = TerminalData.TerminalDTO, NeedsAuthentication = true, MinPaneWidth = 300, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Categories = new[] { ActivityCategories.Forward, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; diff --git a/terminalStatX/TerminalData.cs b/terminalStatX/TerminalData.cs index 8041063399..a0a4b31665 100644 --- a/terminalStatX/TerminalData.cs +++ b/terminalStatX/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalStatX { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "StatX", IconPath = "/Content/icons/web_services/statx-icon-64x64.png" diff --git a/terminalTelegram/Activities/PostToTelegramV1.cs b/terminalTelegram/Activities/PostToTelegramV1.cs index 3301f236cd..6934c4d9df 100644 --- a/terminalTelegram/Activities/PostToTelegramV1.cs +++ b/terminalTelegram/Activities/PostToTelegramV1.cs @@ -23,13 +23,14 @@ public class PostToTelegramV1 : TerminalActivity Category = ActivityCategory.Forwarders, Terminal = TerminalData.TerminalDTO, Version = "1", - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, MinPaneWidth = 330, NeedsAuthentication = true, Categories = new[] { ActivityCategories.Forward, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; diff --git a/terminalTelegram/TerminalData.cs b/terminalTelegram/TerminalData.cs index 224b68d6b4..864c76ff5e 100644 --- a/terminalTelegram/TerminalData.cs +++ b/terminalTelegram/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalTelegram { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "Telegram", IconPath = "/Content/icons/web_services/telegram-icon-64x64.png" diff --git a/terminalTwilio/Activities/Send_Via_Twilio_v1.cs b/terminalTwilio/Activities/Send_Via_Twilio_v1.cs index 6591f4f17a..fc7a19dd7d 100644 --- a/terminalTwilio/Activities/Send_Via_Twilio_v1.cs +++ b/terminalTwilio/Activities/Send_Via_Twilio_v1.cs @@ -29,11 +29,12 @@ public class Send_Via_Twilio_v1 : ExplicitTerminalActivity Version = "1", MinPaneWidth = 330, Terminal = TerminalData.TerminalDTO, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Categories = new[] { ActivityCategories.Forward, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalTwilio/TerminalData.cs b/terminalTwilio/TerminalData.cs index dad62cd7e4..42d9220621 100644 --- a/terminalTwilio/TerminalData.cs +++ b/terminalTwilio/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalTwilio { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "Twilio", IconPath = "/Content/icons/web_services/twilio-icon-64x64.png" diff --git a/terminalYammer/Activities/Post_To_Yammer_v1.cs b/terminalYammer/Activities/Post_To_Yammer_v1.cs index 9c76742735..83d95ece2e 100644 --- a/terminalYammer/Activities/Post_To_Yammer_v1.cs +++ b/terminalYammer/Activities/Post_To_Yammer_v1.cs @@ -29,11 +29,12 @@ public class Post_To_Yammer_v1 : ExplicitTerminalActivity Version = "1", MinPaneWidth = 330, Terminal = TerminalData.TerminalDTO, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Categories = new[] { ActivityCategories.Forward, - new ActivityCategoryDTO(TerminalData.WebServiceDTO.Name, TerminalData.WebServiceDTO.IconPath) + TerminalData.ActivityCategoryDTO } }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/terminalYammer/TerminalData.cs b/terminalYammer/TerminalData.cs index 05ec0d3529..025fa45644 100644 --- a/terminalYammer/TerminalData.cs +++ b/terminalYammer/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalYammer { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO ActivityCategoryDTO = new ActivityCategoryDTO { Name = "Yammer", IconPath = "/Content/icons/web_services/yammer-64x64.png" From a007eec8e7f8887376f12b5aa80829609b380ab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alp=20G=C3=BCrtan?= Date: Mon, 1 Aug 2016 11:55:37 +0300 Subject: [PATCH 023/266] Text review done and new links are added --- Docs/ForDevelopers/Services/Notifications.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Docs/ForDevelopers/Services/Notifications.md b/Docs/ForDevelopers/Services/Notifications.md index 9e9e523c61..601efe1913 100644 --- a/Docs/ForDevelopers/Services/Notifications.md +++ b/Docs/ForDevelopers/Services/Notifications.md @@ -8,7 +8,7 @@ Notifications are messages intended to be seen by end users, as distinct from [E ## Activity Stream -The primary mechanism for delivering Notifications to users is Activity Stream, which is implemented based on [Pusher](https://pusher.com/). It provide us server-to-client messaging channel per user session and later these messages are displayed in the right-side panel named “Activity Stream”. They can be generated by Hub on behalf of Terminal as a result of [Activity Response](), or by terminal requests to the Hub. +The primary mechanism for delivering Notifications to users is Activity Stream, which is based on [Pusher](https://pusher.com/). It provide us server-to-client messaging channel per user session and later these messages are displayed in the right-side panel named “Activity Stream”. They can be generated by Hub on behalf of Terminal as a result of [Activity Response](/Docs/ForDevelopers/Objects/Activities/ActivityResponses.md), or by direct terminal requests to the Hub. ![ActivityStream](/Docs/img/ActivityStream.png) @@ -24,7 +24,7 @@ At the moment, there are 5 type of Notification messages at the Activity Stream: • Execution Stopped -These notification types can report an error of validation, successful execution, or information on terminals/activity states. Although most of the notifications are pre-defined messages sent by Hub (based on Activity Responses), Terminals can also inform users with their “Terminal Event” notifications: +These notification types can report an error of validation, successful execution, or information on terminals/activity states. Although most of the notifications (except "Terminal Event") are pre-defined messages sent by Hub, Terminals can also create their individual notification with a request to Hub: *Url* @@ -52,7 +52,7 @@ These notification types can report an error of validation, successful execution ## Toast Messages -They have similar mechanism as Activity Stream and also uses Pusher service for sending messages from server to client. Toast messages can be seen in 4 types as: *Success, Error, Info and Alert* (which are implemented with [Noty library](http://ned.im/noty/). Example request for Toast messages can be found down below: +They have similar mechanism as Activity Stream and also uses Pusher service. These messages can be seen in 4 types as: *Success, Error, Info and Alert* (which are implemented with [Noty library](http://ned.im/noty/). Example request for Toast messages can be found down below: *Url* @@ -75,7 +75,7 @@ They have similar mechanism as Activity Stream and also uses Pusher service for } ``` -It is recommended to use Activity Stream as notifications but there can be some special cases arises for using toast messages like in App Builder activity. App Builder Apps are optimized visually for mobile screen sizes, so they don't use a visible Activity Stream. Instead of activity stream, displaying toast messages in Kiosk mode is our best use-case. +It is recommended to use Activity Stream as primary notification method but there can be some special cases more suitable to use Toast messages, like in [App Builder](Docs/ForDevelopers/OperatingConcepts/Apps.md). App Builder Apps are optimized visually for mobile screen sizes, so they haven't got visible Activity Stream. In this case, using toast messages are only way to notifiying users in Kiosk Mode. [Go to Contents]( /Docs/Home.md) From 1c6f1b1e1b6da47b76aadb6664afcdc4bcce877d Mon Sep 17 00:00:00 2001 From: Yakov Gnusin Date: Mon, 1 Aug 2016 16:29:35 +0700 Subject: [PATCH 024/266] Removed WebServiceDTO from PlanDirectory. --- .../AutoMapper/DataAutoMapperBootstrapper.cs | 4 +++ .../ActivityCategoryDTO.cs | 33 +++++++++++++++++++ .../Infrastructure/ActivityTemplateTag.cs | 12 +++++-- .../Infrastructure/TagGenerator.cs | 4 +-- .../Infrastructure/WebServiceTemplateTag.cs | 6 ++-- 5 files changed, 52 insertions(+), 7 deletions(-) diff --git a/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs b/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs index 8dc1b01bfb..13bb4b2f65 100644 --- a/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs +++ b/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs @@ -63,6 +63,8 @@ public static void ConfigureAutoMapper() .ForMember(a => a.AuthorizationTokenId, opts => opts.ResolveUsing(ad => ad.AuthToken != null && ad.AuthToken.Id != null ? new Guid(ad.AuthToken.Id) : (Guid?)null)) .ForMember(a => a.Fr8AccountId, opts => opts.ResolveUsing(ad => ad.Fr8AccountId)); + Mapper.CreateMap(); + Mapper.CreateMap(); Mapper.CreateMap() .ForMember(x => x.Id, opts => opts.ResolveUsing(x => x.Id)) @@ -78,6 +80,7 @@ public static void ConfigureAutoMapper() .Where(y => y.ActivityCategory != null) .Select(y => new ActivityCategoryDTO() { + Id = y.ActivityCategory.Id, Name = y.ActivityCategory.Name, IconPath = y.ActivityCategory.IconPath }) @@ -114,6 +117,7 @@ public static void ConfigureAutoMapper() { ActivityCategory = new ActivityCategoryDO() { + Id = y.Id, Name = y.Name, IconPath = y.IconPath } diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategoryDTO.cs b/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategoryDTO.cs index 24c75aa423..26172d460b 100644 --- a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategoryDTO.cs +++ b/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategoryDTO.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using Newtonsoft.Json; namespace Fr8.Infrastructure.Data.DataTransferObjects @@ -13,10 +14,42 @@ public ActivityCategoryDTO(string name, string iconPath) IconPath = iconPath; } + public ActivityCategoryDTO(Guid id, string name, string iconPath) + { + Id = id; + Name = name; + IconPath = iconPath; + } + + [JsonProperty("id")] + public Guid Id { get; set; } + [JsonProperty("name")] public string Name { get; set; } [JsonProperty("iconPath")] public string IconPath { get; set; } + + + private sealed class NameEqualityComparer : IEqualityComparer + { + public bool Equals(ActivityCategoryDTO x, ActivityCategoryDTO y) + { + if (ReferenceEquals(x, y)) return true; + if (ReferenceEquals(x, null)) return false; + if (ReferenceEquals(y, null)) return false; + if (x.GetType() != y.GetType()) return false; + return string.Equals(x.Name, y.Name); + } + + public int GetHashCode(ActivityCategoryDTO obj) + { + return (obj.Name != null ? obj.Name.GetHashCode() : 0); + } + } + + private static readonly IEqualityComparer NameComparerInstance = new NameEqualityComparer(); + + public static IEqualityComparer NameComparer => NameComparerInstance; } } diff --git a/Services/PlanDirectory/Infrastructure/ActivityTemplateTag.cs b/Services/PlanDirectory/Infrastructure/ActivityTemplateTag.cs index ad4b50e23d..5fac1c9761 100644 --- a/Services/PlanDirectory/Infrastructure/ActivityTemplateTag.cs +++ b/Services/PlanDirectory/Infrastructure/ActivityTemplateTag.cs @@ -9,7 +9,7 @@ namespace PlanDirectory.Infrastructure public class ActivityTemplateTag : TemplateTag { //id, WebServiceId, name - private List> _values = new List>(); + private List> _values = new List>(); [JsonIgnore] public override string Title { get { return string.Join(", ", _values.Select(a => a.Item3).ToArray()); } } @@ -17,7 +17,15 @@ public class ActivityTemplateTag : TemplateTag public ActivityTemplateTag(List values) { values.ForEach(a => - { _values.Add(new Tuple(a.Id, a.WebService.Id, a.Name)); }); + { + if (a.Categories != null) + { + a.Categories.ToList().ForEach(c => + { + _values.Add(new Tuple(a.Id, c.Id, a.Name)); + }); + } + }); } } } \ No newline at end of file diff --git a/Services/PlanDirectory/Infrastructure/TagGenerator.cs b/Services/PlanDirectory/Infrastructure/TagGenerator.cs index 2625e37ad5..0cad18c3f7 100644 --- a/Services/PlanDirectory/Infrastructure/TagGenerator.cs +++ b/Services/PlanDirectory/Infrastructure/TagGenerator.cs @@ -78,8 +78,8 @@ public async Task GetTags(PlanTemplateCM planTemplateCM, str activityTemplatesCombinations.ForEach(a => result.ActivityTemplateTags.Add(new ActivityTemplateTag(a))); //4. adding tags for webservices - var usedWebServices = usedActivityTemplates.Select(a => a.WebService).Distinct(WebServiceDTO.NameComparer).OrderBy(b => b.Name).ToList(); - var webServicesCombination = GetCombinations(usedWebServices); + var usedWebServices = usedActivityTemplates.SelectMany(a => a.Categories).Distinct(ActivityCategoryDTO.NameComparer).OrderBy(b => b.Name).ToList(); + var webServicesCombination = GetCombinations(usedWebServices); webServicesCombination.ForEach(a => result.WebServiceTemplateTags.Add(new WebServiceTemplateTag(a))); return result; diff --git a/Services/PlanDirectory/Infrastructure/WebServiceTemplateTag.cs b/Services/PlanDirectory/Infrastructure/WebServiceTemplateTag.cs index ead73f571a..622ecca6c3 100644 --- a/Services/PlanDirectory/Infrastructure/WebServiceTemplateTag.cs +++ b/Services/PlanDirectory/Infrastructure/WebServiceTemplateTag.cs @@ -10,7 +10,7 @@ namespace PlanDirectory.Infrastructure public class WebServiceTemplateTag : TemplateTag { //id, iconPath, name - private List> _values = new List>(); + private List> _values = new List>(); public Dictionary TagsWithIcons { @@ -23,10 +23,10 @@ public override string Title get { return string.Join(", ", _values.Select(a => a.Item3).ToArray()); } } - public WebServiceTemplateTag(List values) + public WebServiceTemplateTag(List values) { values.ForEach(a => - { _values.Add(new Tuple(a.Id, a.IconPath, a.Name)); }); + { _values.Add(new Tuple(a.Id, a.IconPath, a.Name)); }); } } } \ No newline at end of file From b2c63c1251c15c9407478eef3a9bbe82bc60f2a3 Mon Sep 17 00:00:00 2001 From: Yakov Gnusin Date: Mon, 1 Aug 2016 16:53:41 +0700 Subject: [PATCH 025/266] Removed ActivityTemplateDO.WebServiceId property. --- Data/Entities/ActivityTemplateDO.cs | 7 ++-- .../AutoMapper/DataAutoMapperBootstrapper.cs | 5 ++- .../Services/ActivityTemplateTests.cs | 35 +++++++++++++++++-- .../Fixtures/DocuSignActivitiesFixtureData.cs | 3 +- .../Unit/PageGeneratorTests.cs | 15 ++++---- .../Integration/Terminal_Discover_v1Tests.cs | 7 ++-- 6 files changed, 56 insertions(+), 16 deletions(-) diff --git a/Data/Entities/ActivityTemplateDO.cs b/Data/Entities/ActivityTemplateDO.cs index 4b8e6a83e0..0776512274 100644 --- a/Data/Entities/ActivityTemplateDO.cs +++ b/Data/Entities/ActivityTemplateDO.cs @@ -93,10 +93,11 @@ public ActivityTemplateDO(string name, string version, public int MinPaneWidth { get; set; } - [ForeignKey("WebService")] - public int? WebServiceId { get; set; } + // TODO: FR-4943, remove this. + // [ForeignKey("WebService")] + // public int? WebServiceId { get; set; } // TODO: FR-4943, remove this. - // public virtual WebServiceDO WebService { get; set; } + // public virtual WebServiceDO WebService { get; set; } } } diff --git a/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs b/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs index 13bb4b2f65..a2a6c614c1 100644 --- a/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs +++ b/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs @@ -103,7 +103,10 @@ public static void ConfigureAutoMapper() .ForMember(x => x.NeedsAuthentication, opts => opts.ResolveUsing(x => x.NeedsAuthentication)) .ForMember(x => x.ActivityTemplateStateTemplate, opts => opts.ResolveUsing((ActivityTemplateDTO x) => null)) - .ForMember(x => x.WebServiceId, opts => opts.ResolveUsing((ActivityTemplateDTO x) => null)) + + // TODO: FR-4943, remove this. + // .ForMember(x => x.WebServiceId, opts => opts.ResolveUsing((ActivityTemplateDTO x) => null)) + .ForMember(x => x.ActivityTemplateState, opts => opts.Ignore()) .ForMember(x => x.TerminalId, opts => opts.Ignore()) .ForMember(x => x.LastUpdated, opts => opts.Ignore()) diff --git a/Tests/HubTests/Services/ActivityTemplateTests.cs b/Tests/HubTests/Services/ActivityTemplateTests.cs index 06d6cca45a..5760df0bd3 100644 --- a/Tests/HubTests/Services/ActivityTemplateTests.cs +++ b/Tests/HubTests/Services/ActivityTemplateTests.cs @@ -49,10 +49,41 @@ private static bool AreEqual(ActivityTemplateDO a, ActivityTemplateDO b, bool sk a.Type == b.Type && a.Version == b.Version && (skipId || a.WebServiceId == b.WebServiceId) && - AreEqual(a.WebService, b.WebService, skipId); + AreEqual(a.Categories, b.Categories, skipId); } - private static bool AreEqual(WebServiceDO a, WebServiceDO b, bool skipId = false) + private static bool AreEqual(IEnumerable a, IEnumerable b, bool skipId = false) + { + if (a == null && b == null) + { + return true; + } + + if (a == null || b == null) + { + return false; + } + + var al = a.ToList(); + var bl = b.ToList(); + + if (al.Count != bl.Count) + { + return false; + } + + for (var i = 0; i < al.Count; ++i) + { + if (!AreEqual(al[i].ActivityCategory, bl[i].ActivityCategory, skipId)) + { + return false; + } + } + + return true; + } + + private static bool AreEqual(ActivityCategoryDO a, ActivityCategoryDO b, bool skipId = false) { return a.IconPath == b.IconPath && (skipId || a.Id == b.Id) && diff --git a/Tests/terminalDocuSignTests/Fixtures/DocuSignActivitiesFixtureData.cs b/Tests/terminalDocuSignTests/Fixtures/DocuSignActivitiesFixtureData.cs index 0ed41d9d97..662633ee8e 100644 --- a/Tests/terminalDocuSignTests/Fixtures/DocuSignActivitiesFixtureData.cs +++ b/Tests/terminalDocuSignTests/Fixtures/DocuSignActivitiesFixtureData.cs @@ -18,7 +18,8 @@ public class BaseDocusignActivityMock : BaseDocuSignActivity Label = "BaseDocusignActivityMock", NeedsAuthentication = true, MinPaneWidth = 330, - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/Tests/terminalIntegrationTests/Unit/PageGeneratorTests.cs b/Tests/terminalIntegrationTests/Unit/PageGeneratorTests.cs index 5113371096..b39fd6e7c0 100644 --- a/Tests/terminalIntegrationTests/Unit/PageGeneratorTests.cs +++ b/Tests/terminalIntegrationTests/Unit/PageGeneratorTests.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using Data.Entities; using Data.Repositories; using Fr8.Infrastructure.Data.DataTransferObjects; @@ -19,19 +20,19 @@ public void ShouldGeneratePagesFromTags() // Fixture setup Fixture fixture = new Fixture(); - var wsDTO1 = fixture.Build() - .With(x => x.Id, 1) + var wsDTO1 = fixture.Build() + .With(x => x.Id, Guid.Parse("9150ADCC-9996-44BF-A497-8993E51F5D37")) .With(x => x.Name, "Excel") .With(x => x.IconPath, @"/Content/icons/web_services/ms-excel-icon-64x64.png") .Create(); - var wsDTO2 = fixture.Build() - .With(x => x.Id, 1) + var wsDTO2 = fixture.Build() + .With(x => x.Id, Guid.Parse("6ABAD1CE-A41A-4098-95B9-9C8F0B589738")) .With(x => x.Name, "Slack") .With(x => x.IconPath, @"/Content/icons/web_services/slack-icon-64x64.png") .Create(); - var tag1 = new WebServiceTemplateTag(new List { wsDTO1 }); - var tag2 = new WebServiceTemplateTag(new List { wsDTO2, wsDTO1 }); + var tag1 = new WebServiceTemplateTag(new List { wsDTO1 }); + var tag2 = new WebServiceTemplateTag(new List { wsDTO2, wsDTO1 }); var pageDefinitionRepositoryStub = new Mock(); diff --git a/Tests/terminalQuickBooksTests/Integration/Terminal_Discover_v1Tests.cs b/Tests/terminalQuickBooksTests/Integration/Terminal_Discover_v1Tests.cs index 26d000626c..8593880bdb 100644 --- a/Tests/terminalQuickBooksTests/Integration/Terminal_Discover_v1Tests.cs +++ b/Tests/terminalQuickBooksTests/Integration/Terminal_Discover_v1Tests.cs @@ -35,8 +35,11 @@ public async Task Quickbooks_Discover() //Activity Create_Journal_Entry Assert.True(terminalDiscoverResponse.Activities.Any(a => a.Name == Create_Journal_Entry), "Activity " + Create_Journal_Entry + " was not loaded"); - Assert.AreEqual("QuickBooks", terminalDiscoverResponse.Activities[0].WebService.Name, - "No WebService set for activity " + Create_Journal_Entry); + + // TODO: FR-4943, remove this. + // Assert.AreEqual("QuickBooks", terminalDiscoverResponse.Activities[0].WebService.Name, + // "No WebService set for activity " + Create_Journal_Entry); + //Activity Convert_TableData_To_AccountingTransactions //Assert.True(terminalDiscoverResponse.Activities.Any(a => a.Name == Convert_TableData_To_AccountingTransactions), // "Activity " + Convert_TableData_To_AccountingTransactions + " was not loaded"); From 05795e9f39931dfb7446baf2d04a7b7b881a2538 Mon Sep 17 00:00:00 2001 From: Yakov Gnusin Date: Mon, 1 Aug 2016 20:28:59 +0700 Subject: [PATCH 026/266] Buildable solution after removing WebServiceDTO and WebServiceDO. --- .../WebServicesControllerFixtureData.cs | 4 +- .../Integration/WebServicesControllerTests.cs | 15 +-- .../Services/ActivityTemplateTests.cs | 91 ++++++++++++------- .../Activities/GenerateTableActivity_v1.cs | 3 +- .../Activities/SimpleActivity_v1.cs | 3 +- .../SimpleHierarchicalActivity_v1.cs | 3 +- .../Activities/SimpleJumperActivity_v1.cs | 3 +- Tests/terminalTest/TerminalData.cs | 2 +- 8 files changed, 79 insertions(+), 45 deletions(-) diff --git a/Tests/HubTests/Fixtures/WebServicesControllerFixtureData.cs b/Tests/HubTests/Fixtures/WebServicesControllerFixtureData.cs index f677a93a59..849dd51cb6 100644 --- a/Tests/HubTests/Fixtures/WebServicesControllerFixtureData.cs +++ b/Tests/HubTests/Fixtures/WebServicesControllerFixtureData.cs @@ -4,9 +4,9 @@ namespace HubTests.Fixtures { public partial class FixtureData { - public static WebServiceDTO BasicWebServiceDTOWithoutId() + public static ActivityCategoryDTO BasicWebServiceDTOWithoutId() { - var webServiceDTO = new WebServiceDTO { Name = "IntegrationTestWebService", IconPath = "IntegrationTestIconPath" }; + var webServiceDTO = new ActivityCategoryDTO { Name = "IntegrationTestWebService", IconPath = "IntegrationTestIconPath" }; return webServiceDTO; } diff --git a/Tests/HubTests/Integration/WebServicesControllerTests.cs b/Tests/HubTests/Integration/WebServicesControllerTests.cs index c51b607fde..cd4b95f74e 100644 --- a/Tests/HubTests/Integration/WebServicesControllerTests.cs +++ b/Tests/HubTests/Integration/WebServicesControllerTests.cs @@ -1,4 +1,5 @@ -using Data.Interfaces; +using System; +using Data.Interfaces; using Fr8.Testing.Integration; using HubTests.Fixtures; using NUnit.Framework; @@ -30,7 +31,7 @@ public async Task Get_AddNewWebService_GetSavedWebService() //Act string baseUrl = GetHubApiBaseUrl(); var webServicesGetUrl = baseUrl + "WebServices/Get"; - var webServices = await HttpGetAsync>(webServicesGetUrl); + var webServices = await HttpGetAsync>(webServicesGetUrl); //Assert Assert.IsNotNull(webServices, "Web Services are not retrieved from HubWeb"); @@ -48,7 +49,7 @@ public async Task Post_PostNewWebService_CheckDatabaseForTheNewWebService() //Assert Assert.IsNotNull(newWebService, "The new Web Service is not posted to HubWeb"); - Assert.IsTrue(newWebService.Id > 0, "There is no new web services added in HubWeb"); + Assert.IsTrue(newWebService.Id != Guid.Empty, "There is no new web services added in HubWeb"); Assert.IsTrue(newWebService.Name.Equals("IntegrationTestWebService"), "The newly created web service is missing in HubWeb"); CleanUpDatabase(); @@ -76,18 +77,18 @@ private void CleanUpDatabase() { using (var uow = ObjectFactory.GetInstance()) { - var integrationTestWebServices = uow.WebServiceRepository.GetQuery().Where(webService => webService.Name.Equals("IntegrationTestWebService")); + var integrationTestWebServices = uow.ActivityCategoryRepository.GetQuery().Where(webService => webService.Name.Equals("IntegrationTestWebService")); foreach (var webService in integrationTestWebServices.ToList()) { - uow.WebServiceRepository.Remove(webService); + uow.ActivityCategoryRepository.Remove(webService); } uow.SaveChanges(); } } - private async Task CreateNewWebService() + private async Task CreateNewWebService() { var webServiceDTO = FixtureData.BasicWebServiceDTOWithoutId(); @@ -95,7 +96,7 @@ private async Task CreateNewWebService() string baseUrl = GetHubApiBaseUrl(); var webServicesPostUrl = baseUrl + "WebServices/Post"; - var newWebService = await HttpPostAsync(webServicesPostUrl, webServiceDTO); + var newWebService = await HttpPostAsync(webServicesPostUrl, webServiceDTO); return newWebService; } diff --git a/Tests/HubTests/Services/ActivityTemplateTests.cs b/Tests/HubTests/Services/ActivityTemplateTests.cs index 5760df0bd3..52f0c21628 100644 --- a/Tests/HubTests/Services/ActivityTemplateTests.cs +++ b/Tests/HubTests/Services/ActivityTemplateTests.cs @@ -20,6 +20,8 @@ public class ActivityTemplateTests : BaseTest { private IApplicationSettings _originalSettings; + private readonly Dictionary _idIndex = new Dictionary(); + [SetUp] public override void SetUp() { @@ -33,6 +35,18 @@ public void Teardown() CloudConfigurationManager.RegisterApplicationSettings(_originalSettings); } + private Guid GetGuidId(int id) + { + Guid result; + if (!_idIndex.TryGetValue(id, out result)) + { + result = Guid.NewGuid(); + _idIndex.Add(id, result); + } + + return result; + } + private static bool AreEqual(ActivityTemplateDO a, ActivityTemplateDO b, bool skipId = false) { return a.NeedsAuthentication == b.NeedsAuthentication && @@ -48,7 +62,8 @@ private static bool AreEqual(ActivityTemplateDO a, ActivityTemplateDO b, bool sk AreEqual(a.Terminal, b.Terminal, skipId) && a.Type == b.Type && a.Version == b.Version && - (skipId || a.WebServiceId == b.WebServiceId) && + // TODO: FR-4943, remove this. + // (skipId || a.WebServiceId == b.WebServiceId) && AreEqual(a.Categories, b.Categories, skipId); } @@ -109,25 +124,27 @@ private static void CheckIntegrity(ActivityTemplateDO activityTemplate) Assert.IsNotNull(activityTemplate.Terminal); Assert.AreEqual(activityTemplate.Terminal.Id, activityTemplate.TerminalId); - if (activityTemplate.WebServiceId != null) - { - Assert.IsNotNull(activityTemplate.WebService); - Assert.AreEqual(activityTemplate.WebServiceId.Value, activityTemplate.WebService.Id); - } - else - { - Assert.IsNull(activityTemplate.WebService); - } + // TODO: FR-4943, remove this. + // if (activityTemplate.WebServiceId != null) + // { + // Assert.IsNotNull(activityTemplate.WebService); + // Assert.AreEqual(activityTemplate.WebServiceId.Value, activityTemplate.WebService.Id); + // } + // else + // { + // Assert.IsNull(activityTemplate.WebService); + // } AreEqual(activityTemplate.Terminal, ObjectFactory.GetInstance().GetByKey(activityTemplate.TerminalId)); - using (var uow = ObjectFactory.GetInstance()) - { - if (activityTemplate.WebServiceId != null) - { - AreEqual(activityTemplate.WebService, uow.WebServiceRepository.GetByKey(activityTemplate.WebServiceId)); - } - } + // TODO: FR-4943, remove this. + // using (var uow = ObjectFactory.GetInstance()) + // { + // if (activityTemplate.WebServiceId != null) + // { + // AreEqual(activityTemplate.WebService, uow.WebServiceRepository.GetByKey(activityTemplate.WebServiceId)); + // } + // } } public IEnumerable GenerateTerminals(int count, string prefix = "") @@ -153,7 +170,7 @@ private TerminalDO CreateTerminal(int id, string prefix = "") }; } - public IEnumerable GenerateWebServices(int count, string prefix = "") + public IEnumerable GenerateWebServices(int count, string prefix = "") { for (int i = 1; i <= count; i++) { @@ -161,19 +178,19 @@ public IEnumerable GenerateWebServices(int count, string prefix = } } - private WebServiceDO CreateWebService(int id, string prefix = "") + private ActivityCategoryDO CreateWebService(int id, string prefix = "") { - return new WebServiceDO() + return new ActivityCategoryDO() { - Id = id, + Id = GetGuidId(id), Name = "name" + id, IconPath = prefix + "iconPath" + id }; } - private ActivityTemplateDO CreateActivityTemplate(Guid id, TerminalDO terminal, WebServiceDO webService, string prefix = "") + private ActivityTemplateDO CreateActivityTemplate(Guid id, TerminalDO terminal, ActivityCategoryDO webService, string prefix = "") { - return new ActivityTemplateDO + var result = new ActivityTemplateDO { Id = id, ActivityTemplateState = 1, @@ -187,10 +204,19 @@ private ActivityTemplateDO CreateActivityTemplate(Guid id, TerminalDO terminal, TerminalId = terminal.Id, Terminal = terminal, Type = ActivityType.Standard, - Version = "1", - WebService = webService, - WebServiceId = webService?.Id + Version = "1" + }; + + result.Categories = new List() + { + new ActivityCategorySetDO() + { + ActivityCategory = webService, + ActivityTemplate = result + } }; + + return result; } private void CompareCollections(ActivityTemplateDO[] reference, ActivityTemplateDO[] fact, bool skipIds = false) @@ -243,12 +269,12 @@ private ActivityTemplateDO[] GenerateSeedData() uow.TerminalRepository.Add(terminal); } - var webServices = new WebServiceDO[5]; + var webServices = new ActivityCategoryDO[5]; for (int i = 1; i <= 5; i++) { webServices[i - 1] = CreateWebService(i); - uow.WebServiceRepository.Add(webServices[i - 1]); + uow.ActivityCategoryRepository.Add(webServices[i - 1]); } uow.SaveChanges(); @@ -289,7 +315,8 @@ public void CanRegister() CreateTerminal(-234, "new"), CreateWebService(234234, "new") ); - template.WebServiceId = -2344; + // TODO: FR-4943, remove this. + // template.WebServiceId = -2344; var terminalService = ObjectFactory.GetInstance(); template.Terminal = terminalService.RegisterOrUpdate(template.Terminal); @@ -303,7 +330,7 @@ public void CanRegister() using (var uow = ObjectFactory.GetInstance()) { - AreEqual(CreateWebService(234234, "new"), uow.WebServiceRepository.GetQuery().First(), true); + AreEqual(CreateWebService(234234, "new"), uow.ActivityCategoryRepository.GetQuery().First(), true); } } @@ -323,7 +350,9 @@ public void CanUpdate() var template = CreateActivityTemplate(FixtureData.GetTestGuidById(1), CreateTerminal(-234), CreateWebService(234234)); - template.WebServiceId = -2344; + // TODO: FR-4943, remove this. + // template.WebServiceId = -2344; + template.Id = Guid.NewGuid(); var terminalService = ObjectFactory.GetInstance(); diff --git a/Tests/terminalTest/Activities/GenerateTableActivity_v1.cs b/Tests/terminalTest/Activities/GenerateTableActivity_v1.cs index 1b939f42d9..340b784ae2 100644 --- a/Tests/terminalTest/Activities/GenerateTableActivity_v1.cs +++ b/Tests/terminalTest/Activities/GenerateTableActivity_v1.cs @@ -16,7 +16,8 @@ public class GenerateTableActivity_v1 : TestActivityBase ActivityTemplateDTO; diff --git a/Tests/terminalTest/Activities/SimpleActivity_v1.cs b/Tests/terminalTest/Activities/SimpleActivity_v1.cs index 7a0c7127db..fad1bdbfb8 100644 --- a/Tests/terminalTest/Activities/SimpleActivity_v1.cs +++ b/Tests/terminalTest/Activities/SimpleActivity_v1.cs @@ -18,7 +18,8 @@ public class SimpleActivity_v1 : TestActivityBase Label = "SimpleActivity", Category = ActivityCategory.Processors, Version = "1", - WebService = TerminalData.WebServiceDTO, + // TODO: FR-4943, remove this. + // WebService = TerminalData.WebServiceDTO, Terminal = TerminalData.TerminalDTO }; protected override ActivityTemplateDTO MyTemplate => ActivityTemplateDTO; diff --git a/Tests/terminalTest/Activities/SimpleHierarchicalActivity_v1.cs b/Tests/terminalTest/Activities/SimpleHierarchicalActivity_v1.cs index 724ebc2563..775e3a6c2c 100644 --- a/Tests/terminalTest/Activities/SimpleHierarchicalActivity_v1.cs +++ b/Tests/terminalTest/Activities/SimpleHierarchicalActivity_v1.cs @@ -18,7 +18,8 @@ public class SimpleHierarchicalActivity_v1 : TestActivityBase ActivityTemplateDTO; diff --git a/Tests/terminalTest/Activities/SimpleJumperActivity_v1.cs b/Tests/terminalTest/Activities/SimpleJumperActivity_v1.cs index 477d2393ed..5816c3337e 100644 --- a/Tests/terminalTest/Activities/SimpleJumperActivity_v1.cs +++ b/Tests/terminalTest/Activities/SimpleJumperActivity_v1.cs @@ -18,7 +18,8 @@ public class SimpleJumperActivity_v1 : TestActivityBase ActivityTemplateDTO; diff --git a/Tests/terminalTest/TerminalData.cs b/Tests/terminalTest/TerminalData.cs index 2ea064052d..f8e8b309bd 100644 --- a/Tests/terminalTest/TerminalData.cs +++ b/Tests/terminalTest/TerminalData.cs @@ -6,7 +6,7 @@ namespace terminalTest { public static class TerminalData { - public static WebServiceDTO WebServiceDTO = new WebServiceDTO + public static ActivityCategoryDTO WebServiceDTO = new ActivityCategoryDTO { Name = "Terminal for debugging" }; From 2230f31443ba892d78301ae7bf9e40b3762d7b5e Mon Sep 17 00:00:00 2001 From: Alex Edelstein Date: Mon, 1 Aug 2016 06:44:35 -0700 Subject: [PATCH 027/266] Update Notifications.md --- Docs/ForDevelopers/Services/Notifications.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Docs/ForDevelopers/Services/Notifications.md b/Docs/ForDevelopers/Services/Notifications.md index 601efe1913..fede1a0efd 100644 --- a/Docs/ForDevelopers/Services/Notifications.md +++ b/Docs/ForDevelopers/Services/Notifications.md @@ -3,16 +3,16 @@ Notification Services [Go to Contents]( /Docs/Home.md) -Notifications are messages intended to be seen by end users, as distinct from [Events](/Docs/ForDevelopers/OperatingConcepts/Events.md). They can be divided to two categories as Activity Stream messages and toast notifications. +Notifications are messages intended to be seen by end users, (as distinct from [Events](/Docs/ForDevelopers/OperatingConcepts/Events.md)). They can be divided into two categories: Activity Stream messages and Toast notifications. ## Activity Stream -The primary mechanism for delivering Notifications to users is Activity Stream, which is based on [Pusher](https://pusher.com/). It provide us server-to-client messaging channel per user session and later these messages are displayed in the right-side panel named “Activity Stream”. They can be generated by Hub on behalf of Terminal as a result of [Activity Response](/Docs/ForDevelopers/Objects/Activities/ActivityResponses.md), or by direct terminal requests to the Hub. +The primary mechanism for delivering Notifications to users is the Activity Stream, which is based on [Pusher](https://pusher.com/). Messages are displayed in the right-side of the screen. They can be generated by the Hub on behalf of the Terminal, often as a result of an [Activity Response](/Docs/ForDevelopers/Objects/Activities/ActivityResponses.md), or through direct Terminal requests to the Hub. ![ActivityStream](/Docs/img/ActivityStream.png) -At the moment, there are 5 type of Notification messages at the Activity Stream: +There are currently 5 type of Notification messages: • Generic Success @@ -24,7 +24,13 @@ At the moment, there are 5 type of Notification messages at the Activity Stream: • Execution Stopped -These notification types can report an error of validation, successful execution, or information on terminals/activity states. Although most of the notifications (except "Terminal Event") are pre-defined messages sent by Hub, Terminals can also create their individual notification with a request to Hub: +These notification types can report an error of validation, successful execution, or information on terminals/activity states. + + +Generating a Notification Message +--------------------------------- + + Terminals generate notification messages with this call: *Url* From 8a0ac5c81a7c4703fae990d276f666027d30d2bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alp=20G=C3=BCrtan?= Date: Mon, 1 Aug 2016 19:48:03 +0300 Subject: [PATCH 028/266] Script is updated according to constraints --- _PowerShellScripts/CleanUpAfterTests.ps1 | 63 ++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/_PowerShellScripts/CleanUpAfterTests.ps1 b/_PowerShellScripts/CleanUpAfterTests.ps1 index 28d085d96a..63ff0a3797 100644 --- a/_PowerShellScripts/CleanUpAfterTests.ps1 +++ b/_PowerShellScripts/CleanUpAfterTests.ps1 @@ -74,6 +74,69 @@ delete m from History m drop table #Nodes -- delete account used in register +IF object_id('tempdb..#TempUsers') IS NOT NULL + DROP TABLE #TempUsers; + +WITH TestUser (UserId) +AS +( + SELECT Users.Id + FROM Users + WHERE Users.EmailAddressID IN ( + SELECT EmailAddresses.Id + FROM EmailAddresses + WHERE EmailAddresses.Address LIKE 'testuser_%@fr8.co') +) +SELECT DISTINCT (TestUser.UserId) INTO #TempUsers FROM TestUser + +IF object_id('tempdb..#Nodes2') IS NOT NULL + DROP TABLE #Nodes2; + +WITH NodeTree AS ( + SELECT seedNodes.Id + FROM PlanNodes seedNodes INNER JOIN #TempUsers tu ON tu.UserId = seedNodes.Fr8AccountId +) +SELECT DISTINCT (NodeTree.Id) INTO #Nodes2 FROM NodeTree + +UPDATE derived +SET derived.ParentPlanNodeId = null, derived.RootPlanNodeId = null +FROM PlanNodes derived INNER JOIN #Nodes2 n on n.Id = derived.Id + +DELETE derived FROM ObjectRolePermissions derived INNER JOIN #Nodes2 n on n.Id = derived.ObjectId +WHERE derived.[Type] <> 'Plan Template' + +DELETE h FROM History h +INNER JOIN Containers AS derived ON CONVERT(NVARCHAR(50), derived.Id) = h.ObjectId +INNER JOIN #Nodes2 n ON n.Id = derived.PlanId + +DELETE derived FROM Containers derived INNER JOIN #Nodes2 n ON n.Id = derived.PlanId + +DELETE derived FROM Plans derived INNER JOIN #Nodes2 n ON n.Id = derived.Id + +DELETE derived FROM SubPlans derived INNER JOIN #Nodes2 n ON n.Id = derived.Id + +DELETE derived FROM Actions derived INNER JOIN #Nodes2 n ON n.Id = derived.Id + +DELETE derived FROM PlanNodes derived INNER JOIN #Nodes2 n ON n.Id = derived.Id + +DELETE derived FROM ObjectRolePermissions derived INNER JOIN #TempUsers tu ON tu.UserId = derived.Fr8AccountId + +DELETE derived FROM MTData derived INNER JOIN #TempUsers tu ON tu.UserId = derived.fr8AccountId + +DELETE derived FROM History derived INNER JOIN #TempUsers tu ON tu.UserId = derived.Fr8UserId OR tu.UserId = derived.CreatedByID + +DELETE derived FROM AuthorizationTokens derived INNER JOIN #TempUsers tu ON tu.UserId = derived.UserID + +DELETE derived FROM AspNetUserRoles derived INNER JOIN #TempUsers tu ON tu.UserId = derived.UserId + +DELETE derived FROM Users derived INNER JOIN #TempUsers tu ON tu.UserId = derived.Id + +DELETE FROM EmailAddresses WHERE EmailAddresses.Address LIKE 'testuser_%@fr8.co' + +DELETE derived FROM AspNetUsers derived INNER JOIN #TempUsers tu ON tu.UserId = derived.Id + +DROP TABLE #Nodes2; +DROP TABLE #TempUsers; " Write-Host $commandText From a2fa7d92da327146b410798d4db17036ab922444 Mon Sep 17 00:00:00 2001 From: Alexei Avrutin Date: Tue, 2 Aug 2016 00:04:11 +0200 Subject: [PATCH 029/266] Migration completed --- Controllers/Api/UsersController.cs | 7 +- Data/Data.csproj | 7 + Data/Entities/TerminalRegistrationDO.cs | 7 +- ...rminalRegistrationEnhancements.Designer.cs | 29 ++++ ...644376_TerminalRegistrationEnhancements.cs | 64 +++++++++ ...4376_TerminalRegistrationEnhancements.resx | 126 ++++++++++++++++++ Data/Migrations/MigrationConfiguration.cs | 2 + .../TerminalRegistrationDTO.cs | 3 + Hub/Hub.csproj | 2 +- .../{Fr8Principle.cs => Fr8Principal.cs} | 0 Hub/Security/SecurityServices.cs | 2 +- .../Controllers/UserControllerTests.cs | 13 +- 12 files changed, 240 insertions(+), 22 deletions(-) create mode 100644 Data/Migrations/201608011644376_TerminalRegistrationEnhancements.Designer.cs create mode 100644 Data/Migrations/201608011644376_TerminalRegistrationEnhancements.cs create mode 100644 Data/Migrations/201608011644376_TerminalRegistrationEnhancements.resx rename Hub/Infrastructure/{Fr8Principle.cs => Fr8Principal.cs} (100%) diff --git a/Controllers/Api/UsersController.cs b/Controllers/Api/UsersController.cs index 37d3503431..70a327e2bf 100644 --- a/Controllers/Api/UsersController.cs +++ b/Controllers/Api/UsersController.cs @@ -236,10 +236,7 @@ private ICollection ConvertRoleStringToRoles(string selectedRo switch (selectedRole) { case Roles.Admin: - userRoles = new[] { Roles.Admin, Roles.Booker, Roles.Customer }; - break; - case Roles.Booker: - userRoles = new[] { Roles.Booker, Roles.Customer }; + userRoles = new[] { Roles.Admin, Roles.Customer }; break; case Roles.Customer: userRoles = new[] { Roles.Customer }; @@ -260,8 +257,6 @@ private string ConvertRolesToRoleString(String[] userRoles) { if (userRoles.Contains(Roles.Admin)) return Roles.Admin; - else if (userRoles.Contains(Roles.Booker)) - return Roles.Booker; else if (userRoles.Contains(Roles.Customer)) return Roles.Customer; else diff --git a/Data/Data.csproj b/Data/Data.csproj index 9bf39d0b0f..64c5cfef73 100644 --- a/Data/Data.csproj +++ b/Data/Data.csproj @@ -763,6 +763,10 @@ 201607301037088_PlanDTO_PlanFullDTO_Refactoring.cs + + + 201608011644376_TerminalRegistrationEnhancements.cs + @@ -1409,6 +1413,9 @@ 201607301037088_PlanDTO_PlanFullDTO_Refactoring.cs + + 201608011644376_TerminalRegistrationEnhancements.cs + diff --git a/Data/Entities/TerminalRegistrationDO.cs b/Data/Entities/TerminalRegistrationDO.cs index 2eec7ccf57..330aa7fe4d 100644 --- a/Data/Entities/TerminalRegistrationDO.cs +++ b/Data/Entities/TerminalRegistrationDO.cs @@ -7,6 +7,10 @@ namespace Data.Entities { public class TerminalRegistrationDO : BaseObject { + [Key] + [Required] + public Guid Id { get; set; } + /// /// Currently active endpoint. /// @@ -15,7 +19,6 @@ public class TerminalRegistrationDO : BaseObject /// by deployment scripts or by promoting the terminal from Dev to Production /// while ProdUrl/DevUrl contains whatever user or administrator have supplied. /// - [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public string Endpoint { get; set; } @@ -30,12 +33,10 @@ public class TerminalRegistrationDO : BaseObject public string DevUrl { get; set; } public string ProdUrl { get; set; } - [Required] [ForeignKey("OperationalStateTemplate")] public int OperationalState { get; set; } public virtual _OperationalStateTemplate OperationalStateTemplate { get; set; } - [Required] [ForeignKey("ParticipationStateTemplate")] public int ParticipationState { get; set; } public virtual _ParticipationStateTemplate ParticipationStateTemplate { get; set; } diff --git a/Data/Migrations/201608011644376_TerminalRegistrationEnhancements.Designer.cs b/Data/Migrations/201608011644376_TerminalRegistrationEnhancements.Designer.cs new file mode 100644 index 0000000000..8b2f0b3091 --- /dev/null +++ b/Data/Migrations/201608011644376_TerminalRegistrationEnhancements.Designer.cs @@ -0,0 +1,29 @@ +// +namespace Data.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.1.0-30225")] + public sealed partial class TerminalRegistrationEnhancements : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(TerminalRegistrationEnhancements)); + + string IMigrationMetadata.Id + { + get { return "201608011644376_TerminalRegistrationEnhancements"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Data/Migrations/201608011644376_TerminalRegistrationEnhancements.cs b/Data/Migrations/201608011644376_TerminalRegistrationEnhancements.cs new file mode 100644 index 0000000000..6e43ba0c01 --- /dev/null +++ b/Data/Migrations/201608011644376_TerminalRegistrationEnhancements.cs @@ -0,0 +1,64 @@ +namespace Data.Migrations +{ + using States; + using System; + using System.Data.Entity.Migrations; + + public partial class TerminalRegistrationEnhancements : DbMigration + { + public override void Up() + { + DropPrimaryKey("dbo.TerminalRegistration"); + CreateTable( + "dbo._OperationalStateTemplate", + c => new + { + Id = c.Int(nullable: false), + Name = c.String(), + }) + .PrimaryKey(t => t.Id); + + CreateTable( + "dbo._ParticipationStateTemplate", + c => new + { + Id = c.Int(nullable: false), + Name = c.String(), + }) + .PrimaryKey(t => t.Id); + + AddColumn("dbo.TerminalRegistration", "Id", c => c.Guid(nullable: false, defaultValueSql: "newid()")); + AddColumn("dbo.TerminalRegistration", "DevUrl", c => c.String()); + AddColumn("dbo.TerminalRegistration", "ProdUrl", c => c.String()); + AddColumn("dbo.TerminalRegistration", "OperationalState", c => c.Int(nullable: true, defaultValue: OperationalState.Active)); + AddColumn("dbo.TerminalRegistration", "ParticipationState", c => c.Int(nullable: true, defaultValue: ParticipationState.Approved)); + + AlterColumn("dbo.TerminalRegistration", "Endpoint", c => c.String()); + AddPrimaryKey("dbo.TerminalRegistration", "Id"); + CreateIndex("dbo.TerminalRegistration", "OperationalState"); + CreateIndex("dbo.TerminalRegistration", "ParticipationState"); + AddForeignKey("dbo.TerminalRegistration", "OperationalState", "dbo._OperationalStateTemplate", "Id", cascadeDelete: true); + AddForeignKey("dbo.TerminalRegistration", "ParticipationState", "dbo._ParticipationStateTemplate", "Id", cascadeDelete: true); + Sql("INSERT INTO _OperationalStateTemplate(Id, Name) VALUES (1, 'Active') INSERT INTO _ParticipationStateTemplate(Id, Name) VALUES (1, 'Approved')"); + Sql("Update TerminalRegistration SET OperationalState = 1, ParticipationState = 1"); + } + + public override void Down() + { + DropForeignKey("dbo.TerminalRegistration", "ParticipationState", "dbo._ParticipationStateTemplate"); + DropForeignKey("dbo.TerminalRegistration", "OperationalState", "dbo._OperationalStateTemplate"); + DropIndex("dbo.TerminalRegistration", new[] { "ParticipationState" }); + DropIndex("dbo.TerminalRegistration", new[] { "OperationalState" }); + DropPrimaryKey("dbo.TerminalRegistration"); + AlterColumn("dbo.TerminalRegistration", "Endpoint", c => c.String(nullable: false, maxLength: 128)); + DropColumn("dbo.TerminalRegistration", "ParticipationState"); + DropColumn("dbo.TerminalRegistration", "OperationalState"); + DropColumn("dbo.TerminalRegistration", "ProdUrl"); + DropColumn("dbo.TerminalRegistration", "DevUrl"); + DropColumn("dbo.TerminalRegistration", "Id"); + DropTable("dbo._ParticipationStateTemplate"); + DropTable("dbo._OperationalStateTemplate"); + AddPrimaryKey("dbo.TerminalRegistration", "Endpoint"); + } + } +} diff --git a/Data/Migrations/201608011644376_TerminalRegistrationEnhancements.resx b/Data/Migrations/201608011644376_TerminalRegistrationEnhancements.resx new file mode 100644 index 0000000000..59803ccb75 --- /dev/null +++ b/Data/Migrations/201608011644376_TerminalRegistrationEnhancements.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + + dbo + + \ No newline at end of file diff --git a/Data/Migrations/MigrationConfiguration.cs b/Data/Migrations/MigrationConfiguration.cs index d2de3db84c..069b7c2bf8 100644 --- a/Data/Migrations/MigrationConfiguration.cs +++ b/Data/Migrations/MigrationConfiguration.cs @@ -138,6 +138,8 @@ private void RegisterTerminal(UnitOfWork uow, string terminalEndpoint) terminalRegistration.Endpoint = terminalEndpoint; terminalRegistration.IsFr8OwnTerminal = true; + terminalRegistration.OperationalState = OperationalState.Active; + terminalRegistration.ParticipationState = ParticipationState.Approved; uow.TerminalRegistrationRepository.Add(terminalRegistration); uow.SaveChanges(); diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalRegistrationDTO.cs b/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalRegistrationDTO.cs index 949f23bac2..57c9a16b91 100644 --- a/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalRegistrationDTO.cs +++ b/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalRegistrationDTO.cs @@ -4,6 +4,9 @@ namespace Fr8.Infrastructure.Data.DataTransferObjects { public class TerminalRegistrationDTO { + [JsonProperty("id")] + public string Id { get; set; } + [JsonProperty("endpoint")] public string Endpoint { get; set; } diff --git a/Hub/Hub.csproj b/Hub/Hub.csproj index ec361a90c9..4d86d6ef41 100644 --- a/Hub/Hub.csproj +++ b/Hub/Hub.csproj @@ -309,7 +309,7 @@ - + diff --git a/Hub/Infrastructure/Fr8Principle.cs b/Hub/Infrastructure/Fr8Principal.cs similarity index 100% rename from Hub/Infrastructure/Fr8Principle.cs rename to Hub/Infrastructure/Fr8Principal.cs diff --git a/Hub/Security/SecurityServices.cs b/Hub/Security/SecurityServices.cs index f33afc1572..6c83866901 100644 --- a/Hub/Security/SecurityServices.cs +++ b/Hub/Security/SecurityServices.cs @@ -158,7 +158,7 @@ public IEnumerable GetAllowedTerminalsByUser(IEnumerable if (!IsAuthenticated()) return terminals; - if (Thread.CurrentPrincipal is Fr8Principle) + if (Thread.CurrentPrincipal is Fr8Principal) return terminals; var roles = GetRoleNames().ToList(); diff --git a/Tests/HubTests/Controllers/UserControllerTests.cs b/Tests/HubTests/Controllers/UserControllerTests.cs index 6acb3de034..2536201b51 100644 --- a/Tests/HubTests/Controllers/UserControllerTests.cs +++ b/Tests/HubTests/Controllers/UserControllerTests.cs @@ -18,7 +18,6 @@ namespace HubTests.Controllers public class UserControllerTests : ApiControllerTestBase { private Fr8AccountDO _testAccount1; - private Fr8AccountDO _testAccount2; private Fr8AccountDO _testAccount3; public override void SetUp() @@ -40,8 +39,6 @@ public void Get() Assert.AreEqual(result.Content.Count, 3); Assert.AreEqual(result.Content[0].Id, _testAccount1.Id); - Assert.AreEqual(result.Content[1].Id, _testAccount2.Id); - Assert.AreEqual(result.Content[1].Role, Roles.Booker); Assert.AreEqual(result.Content[2].Id, _testAccount3.Id); } @@ -50,12 +47,11 @@ public void GetById() { var controller = CreateController(); - var result = controller.UserData(_testAccount2.Id) as OkNegotiatedContentResult; + var result = controller.UserData(_testAccount3.Id) as OkNegotiatedContentResult; Assert.IsNotNull(result); Assert.IsNotNull(result.Content); - Assert.AreEqual(result.Content.EmailAddress, _testAccount2.EmailAddress.Address); - Assert.AreEqual(result.Content.Role, Roles.Booker); + Assert.AreEqual(result.Content.EmailAddress, _testAccount3.EmailAddress.Address); } private void InitializeUsers() @@ -65,10 +61,6 @@ private void InitializeUsers() _testAccount1 = FixtureData.TestUser1(); uow.UserRepository.Add(_testAccount1); - _testAccount2 = FixtureData.TestUser2(); - uow.UserRepository.Add(_testAccount2); - uow.AspNetUserRolesRepository.AssignRoleToUser(Roles.Booker, _testAccount2.Id); - _testAccount3 = FixtureData.TestUser3(); uow.UserRepository.Add(_testAccount3); @@ -79,7 +71,6 @@ private void InitializeUsers() private void InitializeRoles() { CreateRole(Roles.Admin); - CreateRole(Roles.Booker); CreateRole(Roles.Customer); } From af790391b37e4b6e628e0e7f0c516add5aa9ea60 Mon Sep 17 00:00:00 2001 From: Yakov Gnusin Date: Tue, 2 Aug 2016 15:31:51 +0700 Subject: [PATCH 030/266] Added migration to remove WebServiceDO. --- Data/Data.csproj | 7 + ...8020813425_Remove_WebServiceDO.Designer.cs | 29 ++++ .../201608020813425_Remove_WebServiceDO.cs | 42 ++++++ .../201608020813425_Remove_WebServiceDO.resx | 126 ++++++++++++++++++ 4 files changed, 204 insertions(+) create mode 100644 Data/Migrations/201608020813425_Remove_WebServiceDO.Designer.cs create mode 100644 Data/Migrations/201608020813425_Remove_WebServiceDO.cs create mode 100644 Data/Migrations/201608020813425_Remove_WebServiceDO.resx diff --git a/Data/Data.csproj b/Data/Data.csproj index 00e9f38ae6..130aa8e560 100644 --- a/Data/Data.csproj +++ b/Data/Data.csproj @@ -759,6 +759,10 @@ 201607301037088_PlanDTO_PlanFullDTO_Refactoring.cs + + + 201608020813425_Remove_WebServiceDO.cs + @@ -1398,6 +1402,9 @@ 201607301037088_PlanDTO_PlanFullDTO_Refactoring.cs + + 201608020813425_Remove_WebServiceDO.cs + diff --git a/Data/Migrations/201608020813425_Remove_WebServiceDO.Designer.cs b/Data/Migrations/201608020813425_Remove_WebServiceDO.Designer.cs new file mode 100644 index 0000000000..ea43e16a2c --- /dev/null +++ b/Data/Migrations/201608020813425_Remove_WebServiceDO.Designer.cs @@ -0,0 +1,29 @@ +// +namespace Data.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.1.0-30225")] + public sealed partial class Remove_WebServiceDO : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(Remove_WebServiceDO)); + + string IMigrationMetadata.Id + { + get { return "201608020813425_Remove_WebServiceDO"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Data/Migrations/201608020813425_Remove_WebServiceDO.cs b/Data/Migrations/201608020813425_Remove_WebServiceDO.cs new file mode 100644 index 0000000000..565110c69a --- /dev/null +++ b/Data/Migrations/201608020813425_Remove_WebServiceDO.cs @@ -0,0 +1,42 @@ +namespace Data.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class Remove_WebServiceDO : DbMigration + { + public override void Up() + { + // TODO: FR-4943, remove this. + // AddColumn("dbo.ActivityCategory", "WebServiceId", c => c.Int(true)); + // Sql("INSERT INTO [dbo].[ActivityCategory]") + + DropForeignKey("dbo.ActivityTemplate", "WebServiceId", "dbo.WebServices"); + DropIndex("dbo.ActivityTemplate", new[] { "WebServiceId" }); + DropColumn("dbo.ActivityTemplate", "WebServiceId"); + DropTable("dbo.WebServices"); + + // TODO: FR-4943, remove this. + // DropColumn("dbo.ActivityCategory", "WebServiceId"); + } + + public override void Down() + { + CreateTable( + "dbo.WebServices", + c => new + { + Id = c.Int(nullable: false, identity: true), + Name = c.String(), + IconPath = c.String(), + LastUpdated = c.DateTimeOffset(nullable: false, precision: 7), + CreateDate = c.DateTimeOffset(nullable: false, precision: 7), + }) + .PrimaryKey(t => t.Id); + + AddColumn("dbo.ActivityTemplate", "WebServiceId", c => c.Int()); + CreateIndex("dbo.ActivityTemplate", "WebServiceId"); + AddForeignKey("dbo.ActivityTemplate", "WebServiceId", "dbo.WebServices", "Id"); + } + } +} diff --git a/Data/Migrations/201608020813425_Remove_WebServiceDO.resx b/Data/Migrations/201608020813425_Remove_WebServiceDO.resx new file mode 100644 index 0000000000..10d37af81c --- /dev/null +++ b/Data/Migrations/201608020813425_Remove_WebServiceDO.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + + dbo + + \ No newline at end of file From a8db6084f58be33c89a832f514b82f6556156cff Mon Sep 17 00:00:00 2001 From: Yakov Gnusin Date: Tue, 2 Aug 2016 16:11:30 +0700 Subject: [PATCH 031/266] Fixed ActivityCategory migration seed logic to replace categories with same name. --- Data/Migrations/MigrationConfiguration.cs | 49 ++++++++++++++++++++--- 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/Data/Migrations/MigrationConfiguration.cs b/Data/Migrations/MigrationConfiguration.cs index c64884772e..fc78a85de2 100644 --- a/Data/Migrations/MigrationConfiguration.cs +++ b/Data/Migrations/MigrationConfiguration.cs @@ -506,19 +506,40 @@ private void AddPredefinedActivityCategories(IUnitOfWork uow) { AddOrUpdateActivityCategory(uow, category.Item1, category.Item2, category.Item3); } - - uow.SaveChanges(); } private void AddOrUpdateActivityCategory(IUnitOfWork uow, Guid id, string name, string iconPath) { - var existingActivityCategory = uow.ActivityCategoryRepository + var activityTemplateAssignments = new List(); + + var existingActivityCategoryByName = uow.ActivityCategoryRepository + .GetQuery() + .FirstOrDefault(x => x.Name == name && x.Id != id); + + if (existingActivityCategoryByName != null) + { + var existingAssignments = uow.ActivityCategorySetRepository.GetQuery() + .Where(x => x.ActivityCategoryId == existingActivityCategoryByName.Id) + .ToList(); + + foreach (var assignment in existingAssignments) + { + activityTemplateAssignments.Add(assignment.ActivityTemplate); + uow.ActivityCategorySetRepository.Remove(assignment); + } + uow.SaveChanges(); + + uow.ActivityCategoryRepository.Remove(existingActivityCategoryByName); + uow.SaveChanges(); + } + + var activityCategory = uow.ActivityCategoryRepository .GetQuery() .FirstOrDefault(x => x.Id == id); - if (existingActivityCategory == null) + if (activityCategory == null) { - var activityCategory = new ActivityCategoryDO() + activityCategory = new ActivityCategoryDO() { Id = id, Name = name, @@ -529,8 +550,24 @@ private void AddOrUpdateActivityCategory(IUnitOfWork uow, Guid id, string name, } else { - existingActivityCategory.IconPath = iconPath; + activityCategory.IconPath = iconPath; + } + + foreach (var assignedActivityTemplate in activityTemplateAssignments) + { + uow.ActivityCategorySetRepository.Add( + new ActivityCategorySetDO() + { + Id = Guid.NewGuid(), + ActivityCategoryId = activityCategory.Id, + ActivityCategory = activityCategory, + ActivityTemplateId = assignedActivityTemplate.Id, + ActivityTemplate = assignedActivityTemplate + } + ); } + + uow.SaveChanges(); } private void AddTestUser(IUnitOfWork uow) From 1380e0f01c1ff5df44e06f15db71b464e87d307c Mon Sep 17 00:00:00 2001 From: jarekrzdbk Date: Tue, 2 Aug 2016 15:44:33 +0300 Subject: [PATCH 032/266] prevent Header dropdown from staying opening after click --- .../metronic/assets/admin/layout3/scripts/layout.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Content/templates/metronic/assets/admin/layout3/scripts/layout.js b/Content/templates/metronic/assets/admin/layout3/scripts/layout.js index c0e7018c16..3de9d90420 100644 --- a/Content/templates/metronic/assets/admin/layout3/scripts/layout.js +++ b/Content/templates/metronic/assets/admin/layout3/scripts/layout.js @@ -98,9 +98,9 @@ var Layout = function () { }); // hold mega menu content open on click/tap. - $(document).on('click', '.mega-menu-dropdown .dropdown-menu, .classic-menu-dropdown .dropdown-menu', function (e) { - e.stopPropagation(); - }); + //$(document).on('click', '.mega-menu-dropdown .dropdown-menu, .classic-menu-dropdown .dropdown-menu', function (e) { + // e.stopPropagation(); + //}); // handle fixed mega menu(minimized) $(window).scroll(function() { From 02d9d754b1779f0d1959ec95843c461049fe713e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bahad=C4=B1r=20Bozda=C4=9F?= Date: Tue, 2 Aug 2016 16:18:27 +0300 Subject: [PATCH 033/266] Added request delay interceptor --- Scripts/app/app.ts | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/Scripts/app/app.ts b/Scripts/app/app.ts index 08a47d6e51..fb7f0bd0dc 100644 --- a/Scripts/app/app.ts +++ b/Scripts/app/app.ts @@ -194,6 +194,7 @@ app.config(['$stateProvider', '$urlRouterProvider', '$httpProvider', '$locationP $locationProvider.html5Mode(true); $httpProvider.interceptors.push('fr8VersionInterceptor'); + $httpProvider.interceptors.push('fr8ActivityRequestQueue'); // Install a HTTP request interceptor that causes 'Processing...' message to display $httpProvider.interceptors.push(['$q', '$window', ($q: ng.IQService, $window: ng.IWindowService) => { @@ -303,14 +304,14 @@ app.config(['$stateProvider', '$urlRouterProvider', '$httpProvider', '$locationP if (url.indexOf(this.configurePattern) == -1) return; // check if such activity is currently being configured. if so, remove it from the array - let idx: number = this.currentConfigurationRequests.indexOf(activityId); + var idx: number = this.currentConfigurationRequests.indexOf(activityId); if (idx > -1) { this.currentConfigurationRequests.splice(idx, 1); } } } - let apiRequestCoordinatorService = new ApiRequestCoordinatorService(); + var apiRequestCoordinatorService = new ApiRequestCoordinatorService(); return { request: (config) => { @@ -326,7 +327,7 @@ app.config(['$stateProvider', '$urlRouterProvider', '$httpProvider', '$locationP }, response: (response) => { - let config = response.config; + var config = response.config; if (!config.url) return response; if (!response.data || !response.data.id) return response; apiRequestCoordinatorService.endRequest(config.url, response.data.id) @@ -538,6 +539,27 @@ app.factory('fr8VersionInterceptor', ['fr8ApiVersion', (fr8ApiVersion: string) = }; }]); +//this service delays an activityRequest until previous request completion +app.factory('fr8ActivityRequestQueue', ['$q',($q: ng.IQService) => { + var activityRequestMap: { [id: string]: ng.IPromise; } = {}; + return { + 'request': (config: ng.IRequestConfig) => { + var deferred = $q.defer(); + if (config.url.indexOf('/activities/') > -1 && config.params.id) { + if (activityRequestMap[config.params.id]) { + activityRequestMap[config.params.id].then(() => { + deferred.resolve(config); + }); + } else { + deferred.resolve(config); + } + activityRequestMap[config.params.id] = deferred.promise; + } + return deferred.promise; + } + }; +}]); + app.config(['ivhTreeviewOptionsProvider', ivhTreeviewOptionsProvider => { ivhTreeviewOptionsProvider.set({ From 1236a70ed7d2bd04f38ce6a795a8e8270aec47bd Mon Sep 17 00:00:00 2001 From: Yakov Gnusin Date: Tue, 2 Aug 2016 20:20:17 +0700 Subject: [PATCH 034/266] Fixed int tests after WebServiceDO removal. --- Controllers/Api/WebServicesController.cs | 62 ++++++++++++++++--- Data/Entities/ActivityCategoryDO.cs | 18 ++++++ .../DataTransferObjects/ActivityCategories.cs | 15 +++++ .../IntegrationTestTools_terminalGoogle.cs | 13 ++-- .../Integration/WebServicesControllerTests.cs | 2 +- ...t_Data_From_Envelopes_v1_EndToEnd_Tests.cs | 4 +- 6 files changed, 98 insertions(+), 16 deletions(-) diff --git a/Controllers/Api/WebServicesController.cs b/Controllers/Api/WebServicesController.cs index 78d2a8876a..5efa76e594 100644 --- a/Controllers/Api/WebServicesController.cs +++ b/Controllers/Api/WebServicesController.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Data.Entity; using System.Linq; using System.Net; using System.Web.Http; @@ -33,7 +34,7 @@ public WebServicesController() /// /// Retrieves collection of web services which contain activities of specified category. If category is not specified returns list of web servies only /// - // Id of activity category. 1 - Monitors, 2 - Receivers, 3 - Processors, 4 - Forwarders, 5 - Solutions + /// Id of activity category. 1 - Monitors, 2 - Receivers, 3 - Processors, 4 - Forwarders, 5 - Solutions // [HttpGet] // [SwaggerResponse(HttpStatusCode.OK, "Collection of web services including activity templates", typeof(List))] // public IHttpActionResult Get(int id = -1) @@ -100,16 +101,63 @@ public WebServicesController() // } // } - public IHttpActionResult Get() + [HttpGet] + [SwaggerResponse(HttpStatusCode.OK, "Collection of web services including activity templates", typeof(List))] + public IHttpActionResult Get(Guid? id = null) { using (var uow = ObjectFactory.GetInstance()) { - var models = uow.ActivityCategoryRepository - .GetAll() - .Select(Mapper.Map) - .ToList(); + if (id.HasValue) + { + if (!ActivityCategories.ActivityCategoryIds.Contains(id.Value)) + { + throw new ApplicationException("Invalid predefined activity category"); + } - return Ok(models); + var idValue = id.Value; + var activityTemplates = uow + .ActivityTemplateRepository + .GetQuery() + .Include("Categories.ActivityCategory") + .Where(x => x.Categories.Any(y => y.ActivityCategoryId == idValue)) + .ToList(); + + var categorySet = new HashSet(); + foreach (var category in activityTemplates.SelectMany(x => x.Categories).Select(x => x.ActivityCategory)) + { + if (ActivityCategories.ActivityCategoryIds.Contains(category.Id)) + { + continue; + } + + categorySet.Add(category); + } + + var result = categorySet + .OrderBy(x => x.Name) + .Select(x => new WebServiceActivitySetDTO() + { + WebServiceName = x.Name, + WebServiceIconPath = x.IconPath, + Activities = activityTemplates + .Where(y => y.Categories.Any(z => z.ActivityCategoryId == x.Id)) + .GroupBy(y => new { y.Name }) + .Select(y => Mapper.Map(y.OrderByDescending(z => int.Parse(z.Version)).First())) + .ToList() + }) + .ToList(); + + return Ok(result); + } + else + { + var models = uow.ActivityCategoryRepository + .GetAll() + .Select(Mapper.Map) + .ToList(); + + return Ok(models); + } } } diff --git a/Data/Entities/ActivityCategoryDO.cs b/Data/Entities/ActivityCategoryDO.cs index 8e398caefe..b9999d125b 100644 --- a/Data/Entities/ActivityCategoryDO.cs +++ b/Data/Entities/ActivityCategoryDO.cs @@ -11,5 +11,23 @@ public class ActivityCategoryDO : BaseObject [MaxLength(200)] public string Name { get; set; } public string IconPath { get; set; } + + protected bool Equals(ActivityCategoryDO other) + { + return Id == other.Id; + } + + public override bool Equals(object obj) + { + if (ReferenceEquals(null, obj)) return false; + if (ReferenceEquals(this, obj)) return true; + if (obj.GetType() != this.GetType()) return false; + return Equals((ActivityCategoryDO) obj); + } + + public override int GetHashCode() + { + return Id.GetHashCode(); + } } } diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategories.cs b/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategories.cs index 2a11f21561..32e5cfd01d 100644 --- a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategories.cs +++ b/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityCategories.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; namespace Fr8.Infrastructure.Data.DataTransferObjects { @@ -33,6 +34,15 @@ public static class ActivityCategories Name = "Solution" }; + private readonly static List _categoryIds = new List() + { + MonitorId, + ReceiveId, + ProcessId, + ForwardId, + SolutionId + }; + public static Guid MonitorId { get { return Guid.Parse("417DD061-27A1-4DEC-AECD-4F468013FD24"); } @@ -107,5 +117,10 @@ public static ActivityCategoryDTO Solution { get { return _solution; } } + + public static List ActivityCategoryIds + { + get { return _categoryIds; } + } } } diff --git a/Tests/Fr8.Testing.Integration.Tools/Activities/IntegrationTestTools_terminalGoogle.cs b/Tests/Fr8.Testing.Integration.Tools/Activities/IntegrationTestTools_terminalGoogle.cs index bdaebd5517..b1d6f3670f 100644 --- a/Tests/Fr8.Testing.Integration.Tools/Activities/IntegrationTestTools_terminalGoogle.cs +++ b/Tests/Fr8.Testing.Integration.Tools/Activities/IntegrationTestTools_terminalGoogle.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Fr8.Infrastructure.Data.Control; @@ -41,7 +42,7 @@ public async Task AddAndConfigureSaveToGoogleSheet(PlanDTO plan, { var activityName = "Save_To_Google_Sheet"; - var saveToGoogleSheetActivityDTO = await AddGoogleActivityToPlan(FixtureData.Save_To_Google_Sheet_v1_InitialConfiguration(), plan, ordering, ActivityCategory.Forwarders, activityName); + var saveToGoogleSheetActivityDTO = await AddGoogleActivityToPlan(FixtureData.Save_To_Google_Sheet_v1_InitialConfiguration(), plan, ordering, ActivityCategories.ForwardId, activityName); //Activity won't be able to run if there is no upstream data var upstreamCrateDescriptions = await _baseHubITest.GetRuntimeCrateDescriptionsFromUpstreamActivities(saveToGoogleSheetActivityDTO.Id); @@ -73,7 +74,7 @@ public async Task AddAndConfigureSaveToGoogleSheet(PlanDTO plan, public async Task CreateMonitorGmailInbox(PlanDTO plan, int ordering) { - return await AddGoogleActivityToPlan(FixtureData.Monitor_Gmail_Inbox_v1_InitialConfiguration(), plan, ordering, ActivityCategory.Monitors, "Monitor_Gmail_Inbox", false); + return await AddGoogleActivityToPlan(FixtureData.Monitor_Gmail_Inbox_v1_InitialConfiguration(), plan, ordering, ActivityCategories.MonitorId, "Monitor_Gmail_Inbox", false); } public async Task SaveActivity(ActivityDTO activity) @@ -99,7 +100,7 @@ public async Task AddAndConfigureGetFromGoogleSheet(PlanDTO plan, i { var activityName = "Get_Google_Sheet_Data"; - var getFromGoogleSheetActivityDTO = await AddGoogleActivityToPlan(FixtureData.Get_Google_Sheet_Data_v1_InitialConfiguration(), plan, ordering, ActivityCategory.Receivers, activityName); + var getFromGoogleSheetActivityDTO = await AddGoogleActivityToPlan(FixtureData.Get_Google_Sheet_Data_v1_InitialConfiguration(), plan, ordering, ActivityCategories.ReceiveId, activityName); return await ConfigureGetFromGoogleSheetActivity(getFromGoogleSheetActivityDTO, spreadsheetName, includeFixtureAuthToken); } @@ -171,10 +172,10 @@ public async Task ConfigureGetFromGoogleSheetActivity(ActivityDTO g /// /// /// - private async Task AddGoogleActivityToPlan(ActivityDTO activity, PlanDTO plan, int ordering, ActivityCategory activityCategory, string activityName, bool checkAuthentication = true) + private async Task AddGoogleActivityToPlan(ActivityDTO activity, PlanDTO plan, int ordering, Guid activityCategory, string activityName, bool checkAuthentication = true) { var googleActivityDTO = activity; - var activityCategoryParam = (int)activityCategory; + var activityCategoryParam = activityCategory.ToString(); var activityTemplates = await _baseHubITest .HttpGetAsync>(_baseHubITest.GetHubApiBaseUrl() + "webservices?id=" + activityCategoryParam); var apmActivityTemplate = activityTemplates.SelectMany(a => a.Activities).Single(a => a.Name == activityName); diff --git a/Tests/HubTests/Integration/WebServicesControllerTests.cs b/Tests/HubTests/Integration/WebServicesControllerTests.cs index cd4b95f74e..39a65217b3 100644 --- a/Tests/HubTests/Integration/WebServicesControllerTests.cs +++ b/Tests/HubTests/Integration/WebServicesControllerTests.cs @@ -59,7 +59,7 @@ public async Task Post_PostNewWebService_CheckDatabaseForTheNewWebService() public async Task GetActivities_ShouldGetOneMonitorActivity() { //Arrange - int activityCategoryId = (int)ActivityCategory.Monitors; + var activityCategoryId = ActivityCategories.MonitorId.ToString(); //Act string baseUrl = GetHubApiBaseUrl(); diff --git a/Tests/terminalDocuSignTests/Integration/Extract_Data_From_Envelopes_v1_EndToEnd_Tests.cs b/Tests/terminalDocuSignTests/Integration/Extract_Data_From_Envelopes_v1_EndToEnd_Tests.cs index 5d1bffd56a..674f8af6a7 100644 --- a/Tests/terminalDocuSignTests/Integration/Extract_Data_From_Envelopes_v1_EndToEnd_Tests.cs +++ b/Tests/terminalDocuSignTests/Integration/Extract_Data_From_Envelopes_v1_EndToEnd_Tests.cs @@ -236,8 +236,8 @@ await HttpPostAsync( await HttpDeleteAsync(_baseUrl + "activities?id=" + _solution.ChildrenActivities[0].Id); // Add Add Payload Manually action - var activityCategoryParam =(int)ActivityCategory.Processors; - var activityTemplates = await HttpGetAsync>(_baseUrl + "webservices?id="+ activityCategoryParam); + var activityCategoryParam = ActivityCategories.ProcessId.ToString(); + var activityTemplates = await HttpGetAsync>(_baseUrl + "webservices?id=" + activityCategoryParam); var apmActivityTemplate = activityTemplates.SelectMany(a => a.Activities).Single(a => a.Name == "Add_Payload_Manually"); var apmAction = new ActivityDTO() From 4627a9914a9d464d0450575e62ada10e67af802f Mon Sep 17 00:00:00 2001 From: Alexei Avrutin Date: Tue, 2 Aug 2016 15:34:32 +0200 Subject: [PATCH 035/266] Interim commit --- Hub/Security/SecurityServices.cs | 2 +- Tests/HubTests/Controllers/UserControllerTests.cs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Hub/Security/SecurityServices.cs b/Hub/Security/SecurityServices.cs index baff66da74..8c28521a28 100644 --- a/Hub/Security/SecurityServices.cs +++ b/Hub/Security/SecurityServices.cs @@ -180,7 +180,7 @@ public IEnumerable GetAllowedTerminalsByUser(IEnumerable if (!IsAuthenticated()) return terminals; - if (Thread.CurrentPrincipal is Fr8Principle) + if (Thread.CurrentPrincipal is Fr8Principal) return terminals; var roles = GetRoleNames().ToList(); diff --git a/Tests/HubTests/Controllers/UserControllerTests.cs b/Tests/HubTests/Controllers/UserControllerTests.cs index 45805f25db..6466786f60 100644 --- a/Tests/HubTests/Controllers/UserControllerTests.cs +++ b/Tests/HubTests/Controllers/UserControllerTests.cs @@ -19,6 +19,7 @@ public class UserControllerTests : ApiControllerTestBase { private Fr8AccountDO _testAccount1; private Fr8AccountDO _testAccount3; + private Fr8AccountDO _testAccount2; public override void SetUp() { From e43f049beea3bc63457afa3c5ee21be771ce99bd Mon Sep 17 00:00:00 2001 From: Yakov Gnusin Date: Tue, 2 Aug 2016 21:26:57 +0700 Subject: [PATCH 036/266] Fixed couple more tests. --- .../Activities/IntegrationTestTools_terminalFr8.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests/Fr8.Testing.Integration.Tools/Activities/IntegrationTestTools_terminalFr8.cs b/Tests/Fr8.Testing.Integration.Tools/Activities/IntegrationTestTools_terminalFr8.cs index c66d483423..d1e80508a4 100644 --- a/Tests/Fr8.Testing.Integration.Tools/Activities/IntegrationTestTools_terminalFr8.cs +++ b/Tests/Fr8.Testing.Integration.Tools/Activities/IntegrationTestTools_terminalFr8.cs @@ -35,7 +35,7 @@ public async Task AddAndConfigureBuildMessage(PlanDTO plan, int ord var activityName = "Build_Message"; var buildMessageActivityDTO = FixtureData.Build_Message_v1_InitialConfiguration(); - var activityCategoryParam = (int)ActivityCategory.Processors; + var activityCategoryParam = ActivityCategories.ProcessId.ToString(); var activityTemplates = await _baseHubITest.HttpGetAsync>(_baseHubITest.GetHubApiBaseUrl() + "webservices?id=" + activityCategoryParam); var apmActivityTemplate = activityTemplates.SelectMany(a => a.Activities).Single(a => a.Name == activityName); @@ -104,7 +104,7 @@ public async Task AddAndConfigureSaveToFr8Warehouse(PlanDTO plan, i { var activityName = "Save_To_Fr8_Warehouse"; var saveToFr8WarehouseActivity = FixtureData.Save_To_Fr8_Warehouse_InitialConfiguration(); - var activityCategoryParam = (int)ActivityCategory.Processors; + var activityCategoryParam = ActivityCategories.ProcessId.ToString(); var activityTemplates = await _baseHubITest.HttpGetAsync>(_baseHubITest.GetHubApiBaseUrl() + "webservices?id=" + activityCategoryParam); var apmActivityTemplate = activityTemplates.SelectMany(a => a.Activities).Single(a => a.Name == activityName); From e6f5f97d2e4bbdc2fd792e07436c6330f141e55d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alp=20G=C3=BCrtan?= Date: Tue, 2 Aug 2016 18:12:44 +0300 Subject: [PATCH 037/266] Notifications.md is update with new design --- Docs/ForDevelopers/Services/Notifications.md | 29 ++++--------------- Docs/img/ToastMessageTable.png | Bin 0 -> 16146 bytes 2 files changed, 6 insertions(+), 23 deletions(-) create mode 100644 Docs/img/ToastMessageTable.png diff --git a/Docs/ForDevelopers/Services/Notifications.md b/Docs/ForDevelopers/Services/Notifications.md index fede1a0efd..40a2e9be86 100644 --- a/Docs/ForDevelopers/Services/Notifications.md +++ b/Docs/ForDevelopers/Services/Notifications.md @@ -46,42 +46,25 @@ Generating a Notification Message { "ActivityName" : "App_Builder", "ActivityVersion": "1", + "NotificationType": 1, // Generic Success = 1, Generic Failure = 2, Generic Info = 3 "Collapsed": false, "Message": "This is a plan message/description", - "NotificationArea": 1, // ActvityStream = 1, Toast = 2 "Subject": "This is a custom (optional) header for message", "TerminalName": "terminalFr8Core", "TerminalVersion" : "1" } ``` +> *NotificationType* - This parameter is only implemented for toast notifications and determines color/priority of messages. Although there are 5 type of notifications, only "Generic Success", "Generic Failure" and "Generic Info" is used in terminal requests. More information can be found down below, in "Toast Notifications". -## Toast Messages -They have similar mechanism as Activity Stream and also uses Pusher service. These messages can be seen in 4 types as: *Success, Error, Info and Alert* (which are implemented with [Noty library](http://ned.im/noty/). Example request for Toast messages can be found down below: +## Toast Notifications -*Url* - - {{Fr8HubCallBackUrl}}/api/{{Fr8HubApiVersion}}/notifications - -*Method* - - POST +They uses same mechanism as in Activity Stream and render incoming pusher messages as Toast messages, based on whether there is a Activity Stream panel on screen. With this automatic rendering, developers are not supposed to have to worry about front end layout issues. Only thing to consider is "NotificationType" parameter in request body, which determines type of message in front-end. Toast messages (implemented with [Noty library](http://ned.im/noty/)) corresponding to "NotificationType" parameter can be seen in this table: -*Request Body* -```javascript -{ - "ActivityName" : "App_Builder", - "ActivityVersion": "1", - "Message": "This is a toast message", - "NotificationArea": 2, // ActivityStream = 1, Toast = 2 - "NotificationType": 1, // Success = 1, Error = 2, Info = 3, Alert = 4 - "TerminalName": "terminalFr8Core", - "TerminalVersion" : "1" -} -``` +![ActivityStream](/Docs/img/ToastMessageTable.png) -It is recommended to use Activity Stream as primary notification method but there can be some special cases more suitable to use Toast messages, like in [App Builder](Docs/ForDevelopers/OperatingConcepts/Apps.md). App Builder Apps are optimized visually for mobile screen sizes, so they haven't got visible Activity Stream. In this case, using toast messages are only way to notifiying users in Kiosk Mode. +Example usage of these messages can be found in [App Builder Activity](Docs/ForDevelopers/OperatingConcepts/Apps.md) which is optimized visually for mobile screen sizes. Absence of Activity Stream causes usage of toast messages in Kiosk mode. [Go to Contents]( /Docs/Home.md) diff --git a/Docs/img/ToastMessageTable.png b/Docs/img/ToastMessageTable.png new file mode 100644 index 0000000000000000000000000000000000000000..0a716dd1a7322261f84ebe930d71474c1b14e9eb GIT binary patch literal 16146 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 ZCK Date: Tue, 2 Aug 2016 22:28:55 +0200 Subject: [PATCH 038/266] Naming updates --- Views/AngularTemplate/TerminalDetail.cshtml | 4 ++-- Views/AngularTemplate/TerminalForm.cshtml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Views/AngularTemplate/TerminalDetail.cshtml b/Views/AngularTemplate/TerminalDetail.cshtml index 38ab7f84c8..a7cbdca78a 100644 --- a/Views/AngularTemplate/TerminalDetail.cshtml +++ b/Views/AngularTemplate/TerminalDetail.cshtml @@ -36,7 +36,7 @@
- +
@@ -44,7 +44,7 @@ Set Permissions - Cancel + Close
diff --git a/Views/AngularTemplate/TerminalForm.cshtml b/Views/AngularTemplate/TerminalForm.cshtml index 192c0640f1..97ca5e8d45 100644 --- a/Views/AngularTemplate/TerminalForm.cshtml +++ b/Views/AngularTemplate/TerminalForm.cshtml @@ -12,7 +12,7 @@
- +
@@ -21,7 +21,7 @@
From fb1e975d0c6237380b5e758a4125750dc5016280 Mon Sep 17 00:00:00 2001 From: Andrei Chaplygin Date: Tue, 2 Aug 2016 23:47:00 +0200 Subject: [PATCH 039/266] Reworded diagram nodes and small fixes to activities documentation flow --- ...ctivityDevelopmentBuildingDocumentation.md | 12 +++++++----- .../ActivityDevelopment_DocumentationFlow.png | Bin 68781 -> 55512 bytes 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Docs/ForDevelopers/ActivityDevelopmentBuildingDocumentation.md b/Docs/ForDevelopers/ActivityDevelopmentBuildingDocumentation.md index 0398b19f10..b37b4db646 100644 --- a/Docs/ForDevelopers/ActivityDevelopmentBuildingDocumentation.md +++ b/Docs/ForDevelopers/ActivityDevelopmentBuildingDocumentation.md @@ -38,14 +38,16 @@ If an Activity can provide support for documentation requests (doing so is recom "displayMechanism":"HelpMenu" } ``` -If the client encounters this string, it will display the Help Menu Item in the Activity’s Settings menu and POST to /actions/documentation/ when the Help Menu is clicked/hovered. +If the client encounters this string, it will display the Help Menu Item in the Activity’s Settings menu and POST to `/activities/documentation/` when the Help Menu is clicked/hovered. -At tthat his point, the Activity should assemble HTML content and pack it into a “ShowDocumentation” [ActivityResponse](/Docs/ForDevelopers/Objects/Activities/ActivityResponses.md) [add to ActivityResponse docs] such as: +At that his point, the Activity should assemble HTML content and pack it into a `DocumentationResponse` which structure is displayed below: ```javascript { -"type": "ShowDocumentation" //Here might be Error, if contantPath is unknown -"body": "This solution interacts with the DocuSign service and provides a way to Track DocuSign Recipients. Yadda, yadda, yadda" +"name" : "Buil_Message", +"version": "1", +"terminal" : "Fr8 Core", +"body" : "

Some HTML goes here

" } ``` The client will render the provide content by popping up a help dialog window. @@ -56,7 +58,7 @@ The client will render the provide content by popping up a help dialog window. An Activity Overview is a page that describes an activity. It’s similar to the page generated by a Help Menu request (see above) but is intended for use outside of actual Plan design. An Activity Overview is a page that will show up in a directory of different activities, while Help Menu content will show up when the user is in the Plan Builder trying to build an actual Plan. -Activity Overviews are currently requested by the Fr8.co website on pages such as https://fr8.co/Services/DocuSign. To request an Activity Overview, the caller posts to /documentation with displayMechanism set to “MainPage”. The resulting data is formatted as a TerminalContent json element, which looks like this: +Activity Overviews are currently requested by the Fr8.co website on pages such as https://fr8.co/Services/DocuSign. To request an Activity Overview, the caller posts to `/activities/documentation` with displayMechanism set to “MainPage”. The resulting data is formatted as a TerminalContent json element, which looks like this: Element | Description | Notes --- | --- | --- diff --git a/Docs/img/ActivityDevelopment_DocumentationFlow.png b/Docs/img/ActivityDevelopment_DocumentationFlow.png index 55bd7aa68f035f5b80f3f8ff34b1df08f4be12b5..28473ed187d3dd1170c5b353bd46d5def21348c6 100644 GIT binary patch literal 55512 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 G_kRFV8KnXM literal 68781 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 From e3c4a4151d3ad2ad0fd8ae63b315bb3ce31a5308 Mon Sep 17 00:00:00 2001 From: Douglas Silvio Correa Date: Tue, 2 Aug 2016 19:15:54 -0300 Subject: [PATCH 040/266] Including action picker in the UI blocker --- Scripts/app/directives/ActionPicker.ts | 5 +++++ Views/AngularTemplate/ActionPicker.cshtml | 2 +- Views/AngularTemplate/PlanBuilder.cshtml | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Scripts/app/directives/ActionPicker.ts b/Scripts/app/directives/ActionPicker.ts index 5ce9a4b842..6151ff3415 100644 --- a/Scripts/app/directives/ActionPicker.ts +++ b/Scripts/app/directives/ActionPicker.ts @@ -20,6 +20,9 @@ module dockyard.directives { return { restrict: 'E', templateUrl: '/AngularTemplate/ActionPicker', + scope: { + plan: '=' + }, link: (scope: IActionPickerScope, element: any, attr: any) => { var containerEl = $('
'); containerEl.insertAfter($('designer-header')); @@ -45,6 +48,7 @@ module dockyard.directives { }, controller: ['$scope', '$timeout', ($scope: IActionPickerScope, $timeout: ng.ITimeoutService) => { + console.log($scope); $scope.panelCallback = {}; $scope.$on('$destroy', () => { @@ -52,6 +56,7 @@ module dockyard.directives { }); $scope.onAddActivity = () => { + console.log($scope); if ($scope.visible) { return; } diff --git a/Views/AngularTemplate/ActionPicker.cshtml b/Views/AngularTemplate/ActionPicker.cshtml index 3d38585baf..6c4c8de090 100644 --- a/Views/AngularTemplate/ActionPicker.cshtml +++ b/Views/AngularTemplate/ActionPicker.cshtml @@ -1,4 +1,4 @@ -
'; - var controller = ['$scope', '$timeout', 'PlanService', '$modal', ($scope: IContainerTransitionScope, $timeout: ng.ITimeoutService, PlanService: services.IPlanService, $modal: any) => { + var controller = ['$scope', '$timeout', 'PlanService', '$modal', 'ActivityTemplateHelperService', ($scope: IContainerTransitionScope, $timeout: ng.ITimeoutService, PlanService: services.IPlanService, $modal: any, ActivityTemplateHelperService: services.IActivityTemplateHelperService) => { var planOptions = new Array(); @@ -142,11 +142,13 @@ module dockyard.directives.containerTransition { var subplanActivities = new Array(); for (var i = 0; i < subplan.activities.length; i++) { var current = subplan.activities[i]; - subplanActivities.push(new model.DropDownListItem(current.name, current.id)); + var currentAt = ActivityTemplateHelperService.getActivityTemplate(current); + subplanActivities.push(new model.DropDownListItem(currentAt.label, current.id)); if (!isThisCurrentLevel(subplan.activities[i])) { var childActivityTree = getActivityTree(current); for (var j = 0; j < childActivityTree.length; j++) { - subplanActivities.push(new model.DropDownListItem(childActivityTree[j].name, childActivityTree[j].id)); + var childAT = ActivityTemplateHelperService.getActivityTemplate(childActivityTree[j]); + subplanActivities.push(new model.DropDownListItem(childAT.label, childActivityTree[j].id)); } } } diff --git a/Scripts/app/directives/PaneConfigureAction/PaneConfigureAction.ts b/Scripts/app/directives/PaneConfigureAction/PaneConfigureAction.ts index 20941377a7..5f2c685b8b 100644 --- a/Scripts/app/directives/PaneConfigureAction/PaneConfigureAction.ts +++ b/Scripts/app/directives/PaneConfigureAction/PaneConfigureAction.ts @@ -543,7 +543,7 @@ module dockyard.directives.paneConfigureAction { //in case of reconfiguring the solution check the child actions again //not needed in case of Loop action - if (this.$scope.currentAction.name !== "Loop") { + if (this.$scope.currentAction.activityTemplate.name !== "Loop") { this.$scope.$emit(MessageType[MessageType.PaneConfigureAction_ChildActionsDetected]); } } diff --git a/Scripts/app/model/ActionDTO.ts b/Scripts/app/model/ActionDTO.ts index 62707f74b5..75a2c48dc9 100644 --- a/Scripts/app/model/ActionDTO.ts +++ b/Scripts/app/model/ActionDTO.ts @@ -4,7 +4,6 @@ parentPlanNodeId: string; id: string; label: string; - name: string; authTokenId: string; crateStorage: model.CrateStorage; configurationControls: model.ControlsList; @@ -52,7 +51,6 @@ result.configurationControls = dataObject.configurationControls; result.id = dataObject.id; result.label = dataObject.label; - result.name = dataObject.name; result.parentPlanNodeId = dataObject.parentPlanNodeId; result.ordering = dataObject.ordering; return result; diff --git a/Tests/terminalDocuSignTests/Integration/Extract_Data_From_Envelopes_v1_EndToEnd_Tests.cs b/Tests/terminalDocuSignTests/Integration/Extract_Data_From_Envelopes_v1_EndToEnd_Tests.cs index a55634c684..3f424994bf 100644 --- a/Tests/terminalDocuSignTests/Integration/Extract_Data_From_Envelopes_v1_EndToEnd_Tests.cs +++ b/Tests/terminalDocuSignTests/Integration/Extract_Data_From_Envelopes_v1_EndToEnd_Tests.cs @@ -72,14 +72,14 @@ public async Task Extract_Data_From_Envelopes_EndToEnd() _solution = await HttpPostAsync(baseUrl + "activities/configure?id=" + _solution.Id, _solution); _crateStorage = Crate.FromDto(_solution.CrateStorage); Assert.AreEqual(2, _solution.ChildrenActivities.Count(), "Solution child activities failed to create."); - Assert.True(_solution.ChildrenActivities.Any(a => a.Name == "Monitor DocuSign Envelope Activity" && a.Ordering == 1), + Assert.True(_solution.ChildrenActivities.Any(a => a.ActivityTemplate.Name == "Monitor_DocuSign_Envelope_Activity" && a.Ordering == 1), "Failed to detect Monitor DocuSign Envelope Activity as the first child activity"); - Assert.True(_solution.ChildrenActivities.Any(a => a.Name == "Send DocuSign Envelope" && a.Ordering == 2), + Assert.True(_solution.ChildrenActivities.Any(a => a.ActivityTemplate.Name == "Send_DocuSign_Envelope" && a.Ordering == 2), "Failed to detect Send DocuSign Envelope as the second child activity"); var monitorDocuSignEnvelopeActivity = _solution.ChildrenActivities - .Single(x => x.Name == "Monitor DocuSign Envelope Activity"); + .Single(x => x.ActivityTemplate.Name == "Monitor_DocuSign_Envelope_Activity"); // // Apply auth-token to child MonitorDocuSignEvnelope activity. @@ -159,7 +159,7 @@ await HttpPostAsync(_baseUrl + "plans?id=" + plan.Id, // // Configure Send DocuSign Envelope action // - var sendEnvelopeAction = _solution.ChildrenActivities.Single(a => a.Name == "Send DocuSign Envelope"); + var sendEnvelopeAction = _solution.ChildrenActivities.Single(a => a.ActivityTemplate.Name == "Send_DocuSign_Envelope"); var sendEnvelopeApplyToken = new AuthenticationTokenGrantDTO() { @@ -247,7 +247,6 @@ await HttpPostAsync( var apmAction = new ActivityDTO() { ActivityTemplate = activityTemplateSummary, - Name = apmActivityTemplate.Label, ParentPlanNodeId = _solution.Id, RootPlanNodeId = plan.Id }; diff --git a/Tests/terminalDocuSignTests/Integration/Mail_Merge_Into_DocuSign_v1_EndToEnd_Tests.cs b/Tests/terminalDocuSignTests/Integration/Mail_Merge_Into_DocuSign_v1_EndToEnd_Tests.cs index a500620a30..907956848c 100644 --- a/Tests/terminalDocuSignTests/Integration/Mail_Merge_Into_DocuSign_v1_EndToEnd_Tests.cs +++ b/Tests/terminalDocuSignTests/Integration/Mail_Merge_Into_DocuSign_v1_EndToEnd_Tests.cs @@ -84,13 +84,13 @@ public async Task Mail_Merge_Into_DocuSign_EndToEnd_Upstream_Values_From_Google_ // // configure Get_Google_Sheet_Data activity // - var googleSheetActivity = this.solution.ChildrenActivities.Single(a => a.Name.Equals("get google sheet data", StringComparison.InvariantCultureIgnoreCase)); + var googleSheetActivity = this.solution.ChildrenActivities.Single(a => a.ActivityTemplate.Name.Equals("Get_Google_Sheet_Data", StringComparison.InvariantCultureIgnoreCase)); await googleActivityTestTools.ConfigureGetFromGoogleSheetActivity(googleSheetActivity, spreadsheetName, false, worksheetName); // // configure Loop activity // - var loopActivity = this.solution.ChildrenActivities.Single(a => a.Name.Equals("loop", StringComparison.InvariantCultureIgnoreCase)); + var loopActivity = this.solution.ChildrenActivities.Single(a => a.ActivityTemplate.Name.Equals("Loop", StringComparison.InvariantCultureIgnoreCase)); var terminalFr8CoreTools = new IntegrationTestTools_terminalFr8(this); loopActivity = await terminalFr8CoreTools.ConfigureLoopActivity(loopActivity, "Standard Table Data", "Table Generated From Google Sheet Data"); @@ -101,7 +101,7 @@ public async Task Mail_Merge_Into_DocuSign_EndToEnd_Upstream_Values_From_Google_ // // Initial Configuration // - var sendEnvelopeAction = loopActivity.ChildrenActivities.Single(a => a.Name == "Send DocuSign Envelope"); + var sendEnvelopeAction = loopActivity.ChildrenActivities.Single(a => a.ActivityTemplate.Name == "Send_DocuSign_Envelope"); crateStorage = Crate.FromDto(sendEnvelopeAction.CrateStorage); var controlsCrate = crateStorage.CratesOfType().First(); diff --git a/Tests/terminalDocuSignTests/Integration/Track_DocuSign_Recipients_v1_EndToEnd_Tests.cs b/Tests/terminalDocuSignTests/Integration/Track_DocuSign_Recipients_v1_EndToEnd_Tests.cs index a5b4f9eb17..1b4cbe6a37 100644 --- a/Tests/terminalDocuSignTests/Integration/Track_DocuSign_Recipients_v1_EndToEnd_Tests.cs +++ b/Tests/terminalDocuSignTests/Integration/Track_DocuSign_Recipients_v1_EndToEnd_Tests.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using NUnit.Framework; using Fr8.Testing.Integration; @@ -213,16 +214,20 @@ public async Task Track_DocuSign_Recipients_EndToEnd() //from now on our solution should have followup crate structure Assert.True(this._solution.ChildrenActivities.Length == 4, "Solution child actions failed to create."); - Assert.True(this._solution.ChildrenActivities.Any(a => a.Name == "Monitor Docusign Envelope Activity" && a.Ordering == 1)); - Assert.True(this._solution.ChildrenActivities.Any(a => a.Name == "Set Delay" && a.Ordering == 2)); - Assert.True(this._solution.ChildrenActivities.Any(a => a.Name == "Query Fr8 Warehouse" && a.Ordering == 3)); - Assert.True(this._solution.ChildrenActivities.Any(a => a.Name == "Test Incoming Data" && a.Ordering == 4)); + Assert.True(this._solution.ChildrenActivities.Any(a => a.ActivityTemplate.Name == "Monitor_DocuSign_Envelope_Activity" && a.Ordering == 1)); + Assert.True(this._solution.ChildrenActivities.Any(a => a.ActivityTemplate.Name == "Set_Delay" && a.Ordering == 2)); + Assert.True(this._solution.ChildrenActivities.Any(a => a.ActivityTemplate.Name == "Query_Fr8_Warehouse" && a.Ordering == 3)); + Assert.True(this._solution.ChildrenActivities.Any(a => a.ActivityTemplate.Name == "Test_Incoming_Data" && a.Ordering == 4)); plan = await HttpGetAsync(planReloadUrl); Assert.AreEqual(3, plan.SubPlans.First().Activities.Count); - Assert.True(plan.SubPlans.First().Activities.Any(a => a.Name == "Build a Message" && a.Ordering == 2)); + Assert.True(plan.SubPlans.First().Activities.Any(a => a.ActivityTemplate.Name == "Build_Message" && a.Ordering == 2)); var emailActivity = plan.SubPlans.First().Activities.Last(); - Assert.True(emailActivity.Name == notificationHandler.selectedKey); + + var activityTemplates = await HttpGetAsync>($"{baseUrl}/activity_templates"); + var templates = activityTemplates.SelectMany(x => x.Activities); + var selectedActivityName = templates.Single(x => x.Id == Guid.Parse(notificationHandler.Value)); + Assert.True(emailActivity.ActivityTemplate.Name == selectedActivityName.Name); //let's configure email settings diff --git a/Tests/terminalFr8CoreTests/Integration/SetDelay_v1_Tests.cs b/Tests/terminalFr8CoreTests/Integration/SetDelay_v1_Tests.cs index f8559091b1..fdfcb1fe5b 100644 --- a/Tests/terminalFr8CoreTests/Integration/SetDelay_v1_Tests.cs +++ b/Tests/terminalFr8CoreTests/Integration/SetDelay_v1_Tests.cs @@ -149,7 +149,6 @@ private ActivityDTO CreateRequestActivityFixture() var requestActionDTO = new ActivityDTO { Id = Guid.NewGuid(), - Name = "Set_Delay", Label = "Delay Action Processing", ActivityTemplate = activityTemplate, AuthToken = null From bf55bba3dbc185f6270e6ac87f1d71c729b08069 Mon Sep 17 00:00:00 2001 From: jarekrzdbk Date: Wed, 3 Aug 2016 14:06:49 +0300 Subject: [PATCH 053/266] fixed Plan --- terminalGoogle/Services/Event.cs | 2 +- terminalGoogle/Services/GoogleMTSFPlan.cs | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/terminalGoogle/Services/Event.cs b/terminalGoogle/Services/Event.cs index 59c5c3ef56..0adaf8b664 100644 --- a/terminalGoogle/Services/Event.cs +++ b/terminalGoogle/Services/Event.cs @@ -33,7 +33,7 @@ public async Task Process(IContainer container, string externalEventPaylo if (!string.IsNullOrEmpty(curFr8UserId)) { var hub = container.GetInstance(); - var plan = new GoogleMTSFPlan(curFr8UserId,hub, "alexed","dev"); + var plan = new GoogleMTSFPlan(curFr8UserId,hub, "alexed","general"); await plan.CreateAndActivateNewMTSFPlan(); } } diff --git a/terminalGoogle/Services/GoogleMTSFPlan.cs b/terminalGoogle/Services/GoogleMTSFPlan.cs index afe22edf21..dd34a9ca9a 100644 --- a/terminalGoogle/Services/GoogleMTSFPlan.cs +++ b/terminalGoogle/Services/GoogleMTSFPlan.cs @@ -39,7 +39,7 @@ public async Task PlanConfiguration() await InitialPlanConfiguration(); await CreateAndConfigureGoogle("ga_admin@fr8.co"); await CreateAndConfigureJiraMessages(); - await CreateAndConfigureSaveToJiraActivity("fr8test"); + await CreateAndConfigureSaveToJiraActivity("Fr8"); await CreateAndConfigureSlackMessage("Created new jira issue for terminal submission: [jira issue key], [jira domain]/browse/[jira issue key]"); foreach (var channel in _slackChannels) { @@ -239,6 +239,7 @@ private void SetUpstream(ActivityPayload payload, string crateLabel, string fiel var field = data.AvailableCrates.Where(c => c.Fields.Where(f => f.Name == fieldKey).FirstOrDefault() != null).FirstOrDefault().Fields.Where(f => f.Name == fieldKey).FirstOrDefault(); nameTextBox.ValueSource = "upstream"; nameTextBox.SelectedItem = field; + nameTextBox.selectedKey = field.Name; } private void SetDDL(ActivityPayload payload, string name, string key) From 7243a5cfc6e3749a7ffed4194f6398038ebb5e77 Mon Sep 17 00:00:00 2001 From: jarekrzdbk Date: Wed, 3 Aug 2016 14:08:18 +0300 Subject: [PATCH 054/266] added Publish Terminal --- HubWeb.csproj | 1 + .../app/controllers/TerminalListController.ts | 11 +++++++++++ Views/AngularTemplate/HeaderNav.cshtml | 2 +- Views/AngularTemplate/TerminalList.cshtml | 1 + .../TerminalPublishForm.cshtml | 19 +++++++++++++++++++ 5 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 Views/AngularTemplate/TerminalPublishForm.cshtml diff --git a/HubWeb.csproj b/HubWeb.csproj index f6364c0feb..b364f7ec07 100644 --- a/HubWeb.csproj +++ b/HubWeb.csproj @@ -867,6 +867,7 @@ + diff --git a/Scripts/app/controllers/TerminalListController.ts b/Scripts/app/controllers/TerminalListController.ts index 53239135a6..3d597eb3f2 100644 --- a/Scripts/app/controllers/TerminalListController.ts +++ b/Scripts/app/controllers/TerminalListController.ts @@ -7,6 +7,7 @@ module dockyard.controllers { terminals: Array; openDetails(terminal: interfaces.ITerminalVM); showAddTerminalModal: () => void; + showPublishTerminalModal: () => void; } class TerminalListController { @@ -28,6 +29,7 @@ module dockyard.controllers { private $state: ng.ui.IStateService, private $modal: any) { + $scope.showPublishTerminalModal = <() => void>angular.bind(this, this.showPublishTerminalModal); $scope.showAddTerminalModal = <() => void>angular.bind(this, this.showAddTerminalModal); TerminalService.getAll().$promise.then(data => { @@ -51,6 +53,15 @@ module dockyard.controllers { this.$scope.terminals.push(terminal); }); } + private showPublishTerminalModal() { + this.$modal.open({ + animation: true, + templateUrl: '/AngularTemplate/TerminalPublishForm', + controller: ['$scope', '$modalInstance', function ($scope, $modalInstance) { + $scope.cancel = () => { $modalInstance.dismiss('cancel'); } + }] + }) + } } app.controller('TerminalListController', TerminalListController); diff --git a/Views/AngularTemplate/HeaderNav.cshtml b/Views/AngularTemplate/HeaderNav.cshtml index b3f63ece8e..1adabc68b8 100644 --- a/Views/AngularTemplate/HeaderNav.cshtml +++ b/Views/AngularTemplate/HeaderNav.cshtml @@ -72,7 +72,7 @@
+ - +
From 43fc342d2ab09c72be18a6d50429e70b356b042e Mon Sep 17 00:00:00 2001 From: Vadim Yarovikov Date: Wed, 3 Aug 2016 07:42:59 +0700 Subject: [PATCH 041/266] Use https instead of http in Box redirect uri. --- terminalBox/Web.Dev.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terminalBox/Web.Dev.config b/terminalBox/Web.Dev.config index 22b8fdfd71..767ad84367 100644 --- a/terminalBox/Web.Dev.config +++ b/terminalBox/Web.Dev.config @@ -32,6 +32,6 @@ - + From d808efa4187954fa7d5f92b5c785ed97000131b2 Mon Sep 17 00:00:00 2001 From: Alexei Avrutin Date: Wed, 3 Aug 2016 04:57:59 +0200 Subject: [PATCH 042/266] DfeaultHubURL is added to HM for Dev --- Tests/HealthMonitor/App.Dev.config | 1 + 1 file changed, 1 insertion(+) diff --git a/Tests/HealthMonitor/App.Dev.config b/Tests/HealthMonitor/App.Dev.config index 18bdc645f2..d3172b4a3c 100644 --- a/Tests/HealthMonitor/App.Dev.config +++ b/Tests/HealthMonitor/App.Dev.config @@ -6,6 +6,7 @@ + From 56d479cea4cc058c80e7e13b77bf13bd36153fc8 Mon Sep 17 00:00:00 2001 From: Anton Yakovets Date: Wed, 3 Aug 2016 11:21:35 +0600 Subject: [PATCH 043/266] FR-4073 PD homepage and js+css transfered (FE only) --- Content/css/plan-category.css | 38 + Content/css/plan-directory.css | 187 + Content/css/shared/PlanDirectoryMain.css | 203 + Content/icons/plus.png | Bin 0 -> 487 bytes Content/img/plan-bg.jpg | Bin 0 -> 275810 bytes Content/img/white-bg-overlay.png | Bin 0 -> 17699 bytes Content/metronic/components.css | 13922 ++++++++++++++++++ Content/metronic/jquery.blockui.min.js | 15 + Content/metronic/loading.gif | Bin 0 -> 8964 bytes Content/metronic/ui.js | 73 + Controllers/Api/AuthenticationController.cs | 17 +- Controllers/PlanDirectoryController.cs | 65 + HubWeb.csproj | 12 + Scripts/PlanDirectoryApp.js | 143 + Scripts/PlanDirectoryMain.js | 117 + Views/PlanDirectory/Index.cshtml | 132 + bower.json | 1 + 17 files changed, 14924 insertions(+), 1 deletion(-) create mode 100644 Content/css/plan-category.css create mode 100644 Content/css/plan-directory.css create mode 100644 Content/css/shared/PlanDirectoryMain.css create mode 100644 Content/icons/plus.png create mode 100644 Content/img/plan-bg.jpg create mode 100644 Content/img/white-bg-overlay.png create mode 100644 Content/metronic/components.css create mode 100644 Content/metronic/jquery.blockui.min.js create mode 100644 Content/metronic/loading.gif create mode 100644 Content/metronic/ui.js create mode 100644 Controllers/PlanDirectoryController.cs create mode 100644 Scripts/PlanDirectoryApp.js create mode 100644 Scripts/PlanDirectoryMain.js create mode 100644 Views/PlanDirectory/Index.cshtml diff --git a/Content/css/plan-category.css b/Content/css/plan-category.css new file mode 100644 index 0000000000..7dbfd2b1aa --- /dev/null +++ b/Content/css/plan-category.css @@ -0,0 +1,38 @@ +html, body { + height: 100%; + width: 100%; +} + +body { + font-family: 'Didact Gothic', sans-serif; +} + +h1, h2, h3, h4, h5, h6 { + font-family: 'Francois One', sans-serif; + font-weight: 200; + color: #646464; + margin-top: 0; +} + +.icons { + background: lightcoral; + padding: 10px; + text-align: center; +} + + .icons img { + width: 36px; + height: 36px; + } + + .icons .web-service-icon { + width: 64px; + height: 64px; + background-color: white; + -ms-border-radius: 8px !important; + border-radius: 8px !important; + } + +.table th { + text-align: center; +} \ No newline at end of file diff --git a/Content/css/plan-directory.css b/Content/css/plan-directory.css new file mode 100644 index 0000000000..1a66c340fc --- /dev/null +++ b/Content/css/plan-directory.css @@ -0,0 +1,187 @@ +.panel-body { + line-height: 1.2em; +} + +html, button, input, select, textarea { + color: #222; +} + +::-moz-selection { + background: #b3d4fc; + text-shadow: none; +} + +::selection { + background: #F2E9DF; + text-shadow: none; +} + +hr { + display: block; + height: 1px; + border: 0; + border-top: 1px solid #ccc; + margin: 1em 0; + padding: 0; +} + +audio, canvas, img, video { + vertical-align: middle; +} + +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +textarea { + resize: vertical; +} + +ul { + list-style: square; +} + +ul ul { + list-style: circle; +} + +ul li, ol li { + margin: 3px 0; +} + +.browsehappy { + margin: 0.2em 0; + background: #ccc; + color: #000; + padding: 0.2em 0; +} + +#planDirectory .container { + position: relative; + z-index: 2; + text-align: center; +} + +.full-height-block .inner-wrap.centered { + position: relative; +} + +/* Header Styles */ +header#site-header { + width: 100%; + position: fixed; + z-index: 3; + top: 0; +} + +header#site-header:after { + content: ""; + clear: both; +} + +/* Background */ +.full-size-bg { + background-position: bottom center; + background-size: cover; + background-attachment: fixed; + background-repeat: no-repeat; + height: 100%; + width: 100%; + position: absolute; + z-index: 1; +} + +.inner-bg { + background-image: url('/Content/img/plan-bg.jpg'); + opacity: 0.65; +} + +.plan-directory-background { + background-color: rgb(30,70,140); +} + +.base-block-white { + background: url('/Content/img/white-bg-overlay.png'); +} + +/*Search Bar Container*/ +.search-bar-container { + text-align: center; + display: inline-block; + padding: 0 1em; +} + +.search-bar-container h2 { + text-align: left; + font-weight: bold; + font-size: 32px; + color: #697882; + float: left; + width: 45%; + padding-left: 20px; +} + +.search-bar-container form { + margin-top: 25px; + margin-bottom: 10px; + padding-right: 2em; +} + +.search-bar-container .base-block-white { + padding: 2em 2em 1em 2em; +} + +/*Result Container*/ +.result-container { + text-align: center; + padding: 0 1em; + display: inline-block; +} + +.result-container .base-block-white { + padding: 0 2em 2em 2em; +} + +.result-container .item { + position: relative; + display: inline-block; + width: 80%; + text-align: left; + padding: 5px; + border: 1px solid #eaeaea; + margin: 5px 0 5px 0; +} + +.result-container .item .info-row { + margin-top: 5px; + margin-right: 150px; +} + +.result-container .item .info-row.first { + margin-top: 0; +} + +.result-container .item .label { + color: black; + font-weight: bold; + margin: 0; + padding: 0; +} + +.result-container .item .create-plan-btn { + position: absolute; + right: 10px; + top: 10px; +} + +.result-container .item .create-plan-btn.privileged { + right: 90px; +} + +.result-container .item .remove-plan-btn { + position: absolute; + right: 10px; + top: 10px; +} diff --git a/Content/css/shared/PlanDirectoryMain.css b/Content/css/shared/PlanDirectoryMain.css new file mode 100644 index 0000000000..435f6fe6e1 --- /dev/null +++ b/Content/css/shared/PlanDirectoryMain.css @@ -0,0 +1,203 @@ +/* NAVIGATION BAR */ +.navbar-brand { + padding: 20px 30px; +} + +.navbar-brand img { + width: 74px; + height: auto; +} + +.navbar { + font-family: 'Didact Gothic', sans-serif; + color: #f7f7f7; + -moz-transition-property: all; + -o-transition-property: all; + -webkit-transition-property: all; + transition-property: all; + -moz-transition-duration: 0.2s; + -o-transition-duration: 0.2s; + -webkit-transition-duration: 0.2s; + transition-duration: 0.2s; + -moz-transition-timing-function: linear; + -o-transition-timing-function: linear; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transform: translateZ(0); + -moz-border-radius: 0; + -webkit-border-radius: 0; + border-radius: 0; +} + +.navbar a { + color: #f7f7f7; +} + +.nav > li > a:focus { + background-color: transparent; + outline: none; +} + +.navbar-nav { + padding: 30px 0; +} + +.navbar-nav > li { + margin: 0 10px; +} + +.navbar-nav > li > a { + -moz-transition-property: all; + -o-transition-property: all; + -webkit-transition-property: all; + transition-property: all; + -moz-transition-duration: 0.1s; + -o-transition-duration: 0.1s; + -webkit-transition-duration: 0.1s; + transition-duration: 0.1s; + -moz-transition-timing-function: ease-out; + -o-transition-timing-function: ease-out; + -webkit-transition-timing-function: ease-out; + transition-timing-function: ease-out; + padding-left: 3px; + padding-right: 3px; + padding-top: 5px; + padding-bottom: 5px; + border-bottom: 2px solid transparent; + font-size: 16px; + font-weight: 400; +} + +.navbar-nav > li > a:hover, +.navbar-text > a:hover { + border-bottom: 2px solid #f7f7f7; + padding-bottom: 0; + background-color: transparent; +} + +.navbar-nav > li.active > a { + border-bottom: 2px solid #f7f7f7; + padding-bottom: 0; + background-color: transparent; + outline: none; +} + +.navbar-nav > li a.btn { + text-transform: uppercase; +} + +.navbar-btn { + margin-top: -1px; + margin-bottom: -1px; +} + +.navbar.navbar-light { + color: #444C58; + background-color: #f7f7f7; + border-bottom: 1px solid #eee; +} + +.nav.navbar-nav .dropdown-menu:before, +.nav.navbar-nav .dropdown-menu:after { + border: none !important; + content: none !important; +} + +.navbar.navbar-light .navbar-nav > li > a, +.navbar.navbar-light .navbar-text > a { + color: #444C58; +} + +.navbar.navbar-light .navbar-nav > li > a:hover, +.navbar.navbar-light .navbar-text > a:hover { + border-bottom-color: #444C58; +} + +.navbar.navbar-light .navbar-nav > li.active > a { + border-bottom-color: #444C58; +} + +@media screen and (max-width: 767px) { + .navbar.navbar-light .navbar-nav > li > a { + color: #e6e6e6; + border-bottom: none; + padding-top: 15px; + padding-bottom: 15px; + } + + .navbar.navbar-light .navbar-nav > li > a:hover { + color: #fff; + padding-top: 15px; + padding-bottom: 15px; + text-decoration: underline; + } + + .navbar-collapse { + background-color: #444C58; + } +} + +.navbar-toggle { + background-color: #444C58; +} + +.navbar-toggle .icon-bar { + background-color: #f7f7f7; +} + +.mdl-button--login { + color: #fff; + background-color: #EA3C53; +} + +.mdl-button--raised { + color: #fff; + background-color: #26A599; +} + +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: initial; + border-color: initial; +} + +.navbar .userinfo { + position: absolute; + right: 0; +} + +.navbar .userinfo p { + margin-top: 0; +} + +.navbar .container { + position: relative; +} + +.navbar-header h1.site-logo { + float: left; + margin: 0; + padding: 0; +} + +.navbar-header h1.site-logo > a.navbar-brand { + margin: 0; + padding: 10px; + display: block; +} + +/* FOOTER */ +#site-footer { + padding: 10px 0; + position: relative; + z-index: 3; + bottom: 0; + width: 100%; +} + +.copyright { + font-size: 0.8em; + line-height: 36px; + text-align: center; +} \ No newline at end of file diff --git a/Content/icons/plus.png b/Content/icons/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..72df7b972187c10f55e5e3cbe9dc0d79e6d651bf GIT binary patch literal 487 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'),I=n.theme?e(''):e(''),n.theme&&k?(U='"):n.theme?(U='"):U=k?'':'',w=e(U),y&&(n.theme?(w.css(h),w.addClass("ui-widget-content")):w.css(s)),n.theme||I.css(n.overlayCSS),I.css("position",k?"fixed":"absolute"),(r||n.forceIframe)&&g.css("opacity",0);var C=[g,I,w],S=k?e("body"):e(t);e.each(C,function(){this.appendTo(S)}),n.theme&&n.draggable&&e.fn.draggable&&w.draggable({handle:".ui-dialog-titlebar",cancel:"li"});var O=f&&(!e.support.boxModel||e("object,embed",k?null:t).length>0);if(u||O){if(k&&n.allowBodyStretch&&e.support.boxModel&&e("html,body").css("height","100%"),(u||!e.support.boxModel)&&!k)var E=d(t,"borderTopWidth"),T=d(t,"borderLeftWidth"),M=E?"(0 - "+E+")":0,B=T?"(0 - "+T+")":0;e.each(C,function(e,t){var o=t[0].style;if(o.position="absolute",2>e)k?o.setExpression("height","Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:"+n.quirksmodeOffsetHack+') + "px"'):o.setExpression("height",'this.parentNode.offsetHeight + "px"'),k?o.setExpression("width",'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'):o.setExpression("width",'this.parentNode.offsetWidth + "px"'),B&&o.setExpression("left",B),M&&o.setExpression("top",M);else if(n.centerY)k&&o.setExpression("top",'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"'),o.marginTop=0;else if(!n.centerY&&k){var i=n.css&&n.css.top?parseInt(n.css.top,10):0,s="((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "+i+') + "px"';o.setExpression("top",s)}})}if(y&&(n.theme?w.find(".ui-widget-content").append(y):w.append(y),(y.jquery||y.nodeType)&&e(y).show()),(r||n.forceIframe)&&n.showOverlay&&g.show(),n.fadeIn){var j=n.onBlock?n.onBlock:c,H=n.showOverlay&&!y?j:c,z=y?j:c;n.showOverlay&&I._fadeIn(n.fadeIn,H),y&&w._fadeIn(n.fadeIn,z)}else n.showOverlay&&I.show(),y&&w.show(),n.onBlock&&n.onBlock();if(i(1,t,n),k?(p=w[0],b=e(n.focusableElements,p),n.focusInput&&setTimeout(l,20)):a(w[0],n.centerX,n.centerY),n.timeout){var W=setTimeout(function(){k?e.unblockUI(n):e(t).unblock(n)},n.timeout);e(t).data("blockUI.timeout",W)}}}function o(t,o){var s,l=t==window,a=e(t),d=a.data("blockUI.history"),c=a.data("blockUI.timeout");c&&(clearTimeout(c),a.removeData("blockUI.timeout")),o=e.extend({},e.blockUI.defaults,o||{}),i(0,t,o),null===o.onUnblock&&(o.onUnblock=a.data("blockUI.onUnblock"),a.removeData("blockUI.onUnblock"));var r;r=l?e("body").children().filter(".blockUI").add("body > .blockUI"):a.find(">.blockUI"),o.cursorReset&&(r.length>1&&(r[1].style.cursor=o.cursorReset),r.length>2&&(r[2].style.cursor=o.cursorReset)),l&&(p=b=null),o.fadeOut?(s=r.length,r.stop().fadeOut(o.fadeOut,function(){0===--s&&n(r,d,o,t)})):n(r,d,o,t)}function n(t,o,n,i){var s=e(i);if(!s.data("blockUI.isBlocked")){t.each(function(){this.parentNode&&this.parentNode.removeChild(this)}),o&&o.el&&(o.el.style.display=o.display,o.el.style.position=o.position,o.parent&&o.parent.appendChild(o.el),s.removeData("blockUI.history")),s.data("blockUI.static")&&s.css("position","static"),"function"==typeof n.onUnblock&&n.onUnblock(i,n);var l=e(document.body),a=l.width(),d=l[0].style.width;l.width(a-1).width(a),l[0].style.width=d}}function i(t,o,n){var i=o==window,l=e(o);if((t||(!i||p)&&(i||l.data("blockUI.isBlocked")))&&(l.data("blockUI.isBlocked",t),i&&n.bindEvents&&(!t||n.showOverlay))){var a="mousedown mouseup keydown keypress keyup touchstart touchend touchmove";t?e(document).bind(a,n,s):e(document).unbind(a,s)}}function s(t){if("keydown"===t.type&&t.keyCode&&9==t.keyCode&&p&&t.data.constrainTabKey){var o=b,n=!t.shiftKey&&t.target===o[o.length-1],i=t.shiftKey&&t.target===o[0];if(n||i)return setTimeout(function(){l(i)},10),!1}var s=t.data,a=e(t.target);return a.hasClass("blockOverlay")&&s.onOverlayClick&&s.onOverlayClick(t),a.parents("div."+s.blockMsgClass).length>0?!0:0===a.parents().children().filter("div.blockUI").length}function l(e){if(b){var t=b[e===!0?b.length-1:0];t&&t.focus()}}function a(e,t,o){var n=e.parentNode,i=e.style,s=(n.offsetWidth-e.offsetWidth)/2-d(n,"borderLeftWidth"),l=(n.offsetHeight-e.offsetHeight)/2-d(n,"borderTopWidth");t&&(i.left=s>0?s+"px":"0"),o&&(i.top=l>0?l+"px":"0")}function d(t,o){return parseInt(e.css(t,o),10)||0}e.fn._fadeIn=e.fn.fadeIn;var c=e.noop||function(){},r=/MSIE/.test(navigator.userAgent),u=/MSIE 6.0/.test(navigator.userAgent)&&!/MSIE 8.0/.test(navigator.userAgent),f=(document.documentMode||0,e.isFunction(document.createElement("div").style.setExpression));e.blockUI=function(e){t(window,e)},e.unblockUI=function(e){o(window,e)},e.growlUI=function(t,o,n,i){var s=e('
');t&&s.append("

"+t+"

"),o&&s.append("

"+o+"

"),void 0===n&&(n=3e3);var l=function(t){t=t||{},e.blockUI({message:s,fadeIn:"undefined"!=typeof t.fadeIn?t.fadeIn:700,fadeOut:"undefined"!=typeof t.fadeOut?t.fadeOut:1e3,timeout:"undefined"!=typeof t.timeout?t.timeout:n,centerY:!1,showOverlay:!1,onUnblock:i,css:e.blockUI.defaults.growlCSS})};l();s.css("opacity");s.mouseover(function(){l({fadeIn:0,timeout:3e4});var t=e(".blockMsg");t.stop(),t.fadeTo(300,1)}).mouseout(function(){e(".blockMsg").fadeOut(1e3)})},e.fn.block=function(o){if(this[0]===window)return e.blockUI(o),this;var n=e.extend({},e.blockUI.defaults,o||{});return this.each(function(){var t=e(this);n.ignoreIfBlocked&&t.data("blockUI.isBlocked")||t.unblock({fadeOut:0})}),this.each(function(){"static"==e.css(this,"position")&&(this.style.position="relative",e(this).data("blockUI.static",!0)),this.style.zoom=1,t(this,o)})},e.fn.unblock=function(t){return this[0]===window?(e.unblockUI(t),this):this.each(function(){o(this,t)})},e.blockUI.version=2.66,e.blockUI.defaults={message:"

Please wait...

",title:null,draggable:!0,theme:!1,css:{padding:0,margin:0,width:"30%",top:"40%",left:"35%",textAlign:"center",color:"#000",border:"3px solid #aaa",backgroundColor:"#fff",cursor:"wait"},themedCSS:{width:"30%",top:"40%",left:"35%"},overlayCSS:{backgroundColor:"#000",opacity:.6,cursor:"wait"},cursorReset:"default",growlCSS:{width:"350px",top:"10px",left:"",right:"10px",border:"none",padding:"5px",opacity:.6,cursor:"default",color:"#fff",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px","border-radius":"10px"},iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",forceIframe:!1,baseZ:1e3,centerX:!0,centerY:!0,allowBodyStretch:!0,bindEvents:!0,constrainTabKey:!0,fadeIn:200,fadeOut:400,timeout:0,showOverlay:!0,focusInput:!0,focusableElements:":input:enabled:visible",onBlock:null,onUnblock:null,onOverlayClick:null,quirksmodeOffsetHack:4,blockMsgClass:"blockMsg",ignoreIfBlocked:!1};var p=null,b=[]}"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],e):e(jQuery)}(); \ No newline at end of file diff --git a/Content/metronic/loading.gif b/Content/metronic/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..5c209f89dfc7cc1f68b39f534ab889d208434312 GIT binary patch literal 8964 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' + '' + '

ic$ts%o%_UkwRO{G8$N>L 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%0A!$tN=i@fN$#7;BPY*SsFuo`}YZs@!6 zVe9X{hjjj=lNHw`Mk8lzuEVGFsY?W1O}RKD@{y2~ubvh%P#AuRN;)3>^r{97O<7T* z-X%`Fgfk zrO-8R=$uX<^;2ItkoGRWsd+t>vAtukwv^tcwFjzmQ{nY2s}P4 z91_(N_ebV+;H!KZ$ZxBkU{OE5Nt&1s$*+)QNJp)4Hr)-_JmGZmPy25i(zUZhU;3%u z?(Wf|=Hpngx6`~Z=J8IoiD8LEd%@##UCuR(-5lq0BPzM0%~Mr=120NlinFV+-IH`g zDN3VAAZ{i_#qpqmx(K-yv`gMwsT*$8oEz?lHA&z7hz`+>0-<7+9`sh}`z3`$f^cyLLV&zOrpt@Gc!~Odfv!V9QHhtSRV==nsGhs46+z zj6p$@*~K6XwHkxfk)t|k!QEZ%ClZPoPNY})DbJEUEN?UQNCYRZWmqhqu2O8Ik4J(s zPC@>txi`gJc3Upo=SW>oE@e+>lk&jYIp<)j{QuCrQ)=ezl019Mc{i<>>wewbN-fnb z--?P!rEWPEj~C1&z-~T_eqo@kBI9yyv1&Y%{z#MU=s8~izC~!s&UJe0+AdO1;mmXm z4vR_$IRAkb4+aec0(9{EBSH3`KqVTAn7-2TDbL{N`0_J&a|Gt*_iKB-9vXH*5F;Fk zqL?k36JWsS?$J^WH?jCK^YJSr=P0S_09ZBkQO*oAhZCDa@}i!UN71!%7}5SVL8UG!_~E6hO0m&S!G4;jbghvp3s9?K?QiJX^jyMCS4cJ`XRn6HTunkQiojw<}Yp=H1($yH*B~s9Kv!CclAy83}6nvWldpWRKP=Cnose0%4s3t&`WWd)5U)akdy|Myc0wp!sD5% z_GAm9tkE&4v!xQF2jV3K%a}B6`IGBndSC(tJxe@QQ?co`(`tJD=&Ud76up-pJ#YIh zaf~}Mp56cFuMaL5Nnl-*gU?C4%x&V!L(F6>np^Y6dHog+qi=Ueq(Mi$;cU>K_TxFh zz|{Y{q!05i-EYMv6}@FoVR6Fa+`_dFxj$@OE)k^eS48e-v28kw9-na+UPqNZs_05= z)e=divikc$`X!0J ztpa$mCPwiYe#!yhOxoI>kruZR%{bW2)N|iyTL+xa7QD3234Iatu!)_xe>pu(6BzQU zheF>xLBd^Iji`u1+;FDxBsuxUhPRu53B$!K#BkWhDFbX$oU+x=Ru-F296|?skU>W& z9Bn7RPh@ty)I6X>al+cPPTT~!n#`3>o3H2MlxAP11T{1D>tnObf(Ys9QhxFk6qy~i z4Erb?Ws~9y?cPc@DtJLgz+7Vfv#)L`LJ~U0TN_)1BEDi(zaa2M&tK1P}bRE zqJp;0DRxR%&q+R47ER%2<=`#2r5292{aukVmoCmgS#RL57^Hi{8(O@+R)Bp#k!j%T zVt0dZl6PBoHgeQmmnXm)AJcbwjkk|aDBSk8aSDU!u<2UB54!yEQowUWS_fCa#3zir zH_PK#2+$>e-!_A2Jz1;Ax)1pFzJ)`3*e(DS9UgWW1GKBBPO!!JMTUptwsUv!YBo9V zYEFDXM#uQoBIwG0bW9uNusrK?~B^Pu=VNEL)s zK}Z$+4rJX3=0Wj!5avOc2Vvg#gn3YW9)x)i=0TYEJz*ZJ`S2mM093;1TP8p6qe5?o UNC2&Z!2+dUR5swtX!f@0e|&XEGXMYp literal 0 HcmV?d00001 diff --git a/Content/img/white-bg-overlay.png b/Content/img/white-bg-overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..197b8dc84c6be128e1b12baf40091f3cb5a0bea2 GIT binary patch literal 17699 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 literal 0 HcmV?d00001 diff --git a/Content/metronic/components.css b/Content/metronic/components.css new file mode 100644 index 0000000000..e080030332 --- /dev/null +++ b/Content/metronic/components.css @@ -0,0 +1,13922 @@ +/********************************* + METRONIC SQUARE STYLE COMPONENTS +*********************************/ +/*-------------------------------------------------- + [TRANSITION] +----------------------------------------------------*/ +/* Cubic Bezier Transition */ +/*** +Rounded corners reset +***/ +/* Reset rounded corners for all elements */ +div, +input, +select, +textarea, +span, +img, +table, +label, +td, +th, +p, +a, +button, +ul, +code, +pre, +li { + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; +} + +/* except below bootstrap elements */ +.img-circle { + border-radius: 50% !important; +} + +.img-rounded { + border-radius: 6px !important; +} + +/*** +General reset +***/ +/* Set default body */ +body { + color: #333333; + font-family: "Open Sans", sans-serif; + padding: 0px !important; + margin: 0px !important; + font-size: 13px; + direction: ltr; +} + +/* + Internet Explorer 10 doesn't differentiate device width from viewport width, and thus doesn't + properly apply the media queries in Bootstrap's CSS. To address this, + you can optionally include the following CSS and JavaScript to work around this problem until Microsoft issues a fix. +*/ +@-webkit-viewport { + width: device-width; +} +@-moz-viewport { + width: device-width; +} +@-ms-viewport { + width: device-width; +} +@-o-viewport { + width: device-width; +} +@viewport { + width: device-width; +} +/* + Internet Explorer 10 doesn't differentiate device width from viewport width, + and thus doesn't properly apply the media queries in Bootstrap's CSS. To address this, following CSS code applied +*/ +@-ms-viewport { + width: auto !important; +} +.md-shadow-z-1 { + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18); +} + +.md-shadow-z-1-i { + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.18) !important; +} + +.md-shadow-z-1-hover { + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.14), 0 1px 2px rgba(0, 0, 0, 0.22); +} + +.md-shadow-z-2 { + box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22); +} + +.md-shadow-z-2-i { + box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.22) !important; +} + +.md-shadow-z-2-hover { + box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2), 0 3px 6px rgba(0, 0, 0, 0.26); +} + +.md-shadow-z-3 { + box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.23); +} + +.md-shadow-z-3-i { + box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), 0 6px 6px rgba(0, 0, 0, 0.24) !important; +} + +.md-shadow-z-3-hover { + box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22), 0 6px 6px rgba(0, 0, 0, 0.26); +} + +.md-shadow-z-4 { + box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22); +} + +.md-shadow-z-4-i { + box-shadow: 0 14px 28px rgba(0, 0, 0, 0.26), 0 10px 10px rgba(0, 0, 0, 0.22) !important; +} + +.md-shadow-z-5 { + box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22); +} + +.md-shadow-z-5-i { + box-shadow: 0 19px 38px rgba(0, 0, 0, 0.28), 0 15px 12px rgba(0, 0, 0, 0.22) !important; +} + +.md-shadow-none { + box-shadow: none !important; +} + +.md-click-circle { + display: block; + position: absolute; + background: rgba(0, 0, 0, 0.2); + border-radius: 50%; + -webkit-animation: scale(0); + -moz-transform: scale(0); + transform: scale(0); +} +.md-click-circle.md-click-animate { + -webkit-animation: mdClickEffect 0.55s linear; + -moz-animation: mdClickEffect 0.55s linear; + animation: mdClickEffect 0.55s linear; +} + +@-webkit-keyframes mdClickEffect { + 100% { + opacity: 0; + -webkit-transform: scale(1.5); + } +} +@-moz-keyframes mdClickEffect { + 100% { + opacity: 0; + -moz-transform: scale(2.5); + } +} +@keyframes mdClickEffect { + 100% { + opacity: 0; + transform: scale(2.5); + } +} +.form-group.form-md-line-input { + position: relative; + margin: 0 0 35px 0; + padding-top: 20px; +} +.form-horizontal .form-group.form-md-line-input { + padding-top: 10px; + margin-bottom: 20px; + margin: 0 -15px 20px -15px; +} +.form-horizontal .form-group.form-md-line-input > label { + padding-top: 5px; + font-size: 13px; + color: #888888; + opacity: 1 ; + filter: alpha(opacity=100) ; +} +.form-group.form-md-line-input .form-control { + background: none; + border: 0; + border-bottom: 1px solid #e5e5e5; + -webkit-border-radius: 0; + -moz-border-radius: 0; + -ms-border-radius: 0; + -o-border-radius: 0; + border-radius: 0; + color: #333; + box-shadow: none; + padding-left: 0; + padding-right: 0; + font-size: 16px; +} +.form-group.form-md-line-input .form-control::-moz-placeholder { + color: #999; + opacity: 1; +} +.form-group.form-md-line-input .form-control:-ms-input-placeholder { + color: #999; +} +.form-group.form-md-line-input .form-control::-webkit-input-placeholder { + color: #999; +} +.form-group.form-md-line-input .form-control.form-control-static { + border-bottom: 0; +} +.form-group.form-md-line-input .form-control.input-sm { + font-size: 14px; + padding: 6px 0; +} +.form-group.form-md-line-input .form-control.input-lg { + font-size: 20px; + padding: 14px 0; +} +.form-group.form-md-line-input .form-control ~ label, +.form-group.form-md-line-input .form-control ~ .form-control-focus { + width: 100%; + position: absolute; + left: 0; + bottom: 0; + pointer-events: none; +} +.form-horizontal .form-group.form-md-line-input .form-control ~ label, .form-horizontal +.form-group.form-md-line-input .form-control ~ .form-control-focus { + width: auto; + left: 15px; + right: 15px; +} +.form-group.form-md-line-input .form-control ~ label:after, +.form-group.form-md-line-input .form-control ~ .form-control-focus:after { + content: ''; + position: absolute; + z-index: 5; + bottom: 0; + left: 50%; + width: 0; + height: 2px; + width: 0; + visibility: hidden; + transition: 0.2s ease all; +} +.form-group.form-md-line-input .form-control ~ label { + top: 0; + margin-bottom: 0; + font-size: 13px; + color: #888888; + opacity: 1 ; + filter: alpha(opacity=100) ; +} +.form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label, +.form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label, +.form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus, .form-group.form-md-line-input .form-control.focus:not([readonly]) ~ label, +.form-group.form-md-line-input .form-control.focus:not([readonly]) ~ .form-control-focus { + color: #888888; +} +.form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label:after, +.form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label:after, +.form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input .form-control.focus:not([readonly]) ~ label:after, +.form-group.form-md-line-input .form-control.focus:not([readonly]) ~ .form-control-focus:after { + visibility: visible; + left: 0; + width: 100%; + background: #45B6AF; +} +.form-group.form-md-line-input .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input .form-control.focus:not([readonly]) ~ label { + opacity: 1 ; + filter: alpha(opacity=100) ; +} +.form-group.form-md-line-input .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input .form-control.focus:not([readonly]) ~ .help-block { + color: #45B6AF; + opacity: 1 ; + filter: alpha(opacity=100) ; +} +.form-group.form-md-line-input .form-control[readonly], .form-group.form-md-line-input .form-control[disabled], fieldset[disabled] .form-group.form-md-line-input .form-control { + background: none; + cursor: not-allowed; + border-bottom: 1px dashed #e5e5e5; +} +.form-group.form-md-line-input.form-md-floating-label .form-control ~ label { + font-size: 16px; + top: 25px; + transition: 0.2s ease all; + color: #999; +} +.form-group.form-md-line-input.form-md-floating-label .form-control[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.focus:not([readonly]) ~ label { + top: 0; + font-size: 13px; +} +.form-group.form-md-line-input.form-md-floating-label .form-control.input-sm ~ label { + font-size: 14px; + top: 24px; +} +.form-group.form-md-line-input.form-md-floating-label .form-control.input-sm[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-sm.focus:not([readonly]) ~ label { + top: 0; + font-size: 13px; +} +.form-group.form-md-line-input.form-md-floating-label .form-control.input-lg ~ label { + font-size: 20px; + top: 30px; +} +.form-group.form-md-line-input.form-md-floating-label .form-control.input-lg[readonly] ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.edited ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.form-control-static ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg:focus:not([readonly]) ~ label, .form-group.form-md-line-input.form-md-floating-label .form-control.input-lg.focus:not([readonly]) ~ label { + top: 0; + font-size: 13px; +} +.form-group.form-md-line-input.form-md-floating-label .input-icon > label { + padding-left: 34px; +} +.form-group.form-md-line-input.form-md-floating-label .input-icon.right > label { + padding-left: 0; + padding-right: 34px; +} +.form-group.form-md-line-input.form-md-floating-label .input-group.left-addon label { + padding-left: 34px; +} +.form-group.form-md-line-input.form-md-floating-label .input-group.right-addon label { + padding-right: 34px; +} +.form-group.form-md-line-input + .input-icon { + padding-top: 0; +} +.form-group.form-md-line-input .help-block { + position: absolute; + margin: 2px 0 0 0; + opacity: 0 ; + filter: alpha(opacity=0) ; + font-size: 13px; +} +.form-group.form-md-line-input > .input-icon > i { + left: 0; + bottom: 0; + margin: 9px 2px 10px 10px; + color: #888888; +} +.form-group.form-md-line-input > .input-icon.input-icon-lg > i { + top: 6px; +} +.form-group.form-md-line-input > .input-icon.input-icon-sm > i { + top: -1px; +} +.form-group.form-md-line-input > .input-icon .form-control { + padding-left: 34px; +} +.form-group.form-md-line-input > .input-icon > label { + margin-top: -20px; +} +.form-group.form-md-line-input > .input-icon.right .form-control { + padding-left: 0; + padding-right: 34px; +} +.form-group.form-md-line-input > .input-icon.right > i { + left: auto; + right: 8px; + margin: 11px 2px 10px 10px; +} +.form-group.form-md-line-input + .input-group { + padding-top: 0; +} +.form-group.form-md-line-input .input-group { + padding-top: 0; +} +.form-group.form-md-line-input .input-group > label { + margin-top: -20px; +} +.form-group.form-md-line-input .input-group .input-group-addon { + -webkit-border-radius: 0; + -moz-border-radius: 0; + -ms-border-radius: 0; + -o-border-radius: 0; + border-radius: 0; + background: none; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +.form-group.form-md-line-input .input-group + .input-group-control { + padding-top: 0; +} +.form-group.form-md-line-input .input-group .input-group-control { + padding-top: 0; + position: relative; + display: table-cell; + vertical-align: bottom; +} +.form-group.form-md-line-input .input-group .input-group-control > label { + margin-top: -20px; +} +.form-group.form-md-line-input .input-group .input-group-btn .btn { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + -ms-border-radius: 4px; + -o-border-radius: 4px; + border-radius: 4px; +} +.form-group.form-md-line-input .input-group .input-group-btn.btn-left .btn { + margin-right: 10px; +} +.form-group.form-md-line-input .input-group .input-group-btn.btn-right .btn { + margin-left: 10px; +} +.form-group.form-md-line-input .input-group .help-block { + margin-top: 35px; +} +.form-group.form-md-line-input .input-group.input-group-sm .help-block { + margin-top: 30px; +} +.form-group.form-md-line-input .input-group.input-group-lg .help-block { + margin-top: 47px; +} +.form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label:after, +.form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label:after, +.form-group.form-md-line-input.has-success .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label:after, +.form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label:after, +.form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .form-control-focus:after { + background: #3c763d; +} +.form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ label { + color: #3c763d; +} +.form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ i { + color: #3c763d; +} +.form-group.form-md-line-input.has-success .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-success .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-success .form-control.focus:not([readonly]) ~ .help-block { + color: #3c763d; +} +.form-group.form-md-line-input.has-success .input-group-addon { + color: #3c763d; +} +.form-horizontal .form-group.form-md-line-input.has-success > label { + color: #3c763d; +} +.form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label:after, +.form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label:after, +.form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label:after, +.form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label:after, +.form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .form-control-focus:after { + background: #8a6d3b; +} +.form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ label { + color: #8a6d3b; +} +.form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ i { + color: #8a6d3b; +} +.form-group.form-md-line-input.has-warning .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-warning .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-warning .form-control.focus:not([readonly]) ~ .help-block { + color: #8a6d3b; +} +.form-group.form-md-line-input.has-warning .input-group-addon { + color: #8a6d3b; +} +.form-horizontal .form-group.form-md-line-input.has-warning > label { + color: #8a6d3b; +} +.form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label:after, +.form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label:after, +.form-group.form-md-line-input.has-error .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label:after, +.form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label:after, +.form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .form-control-focus:after { + background: #a94442; +} +.form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ label { + color: #a94442; +} +.form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ i { + color: #a94442; +} +.form-group.form-md-line-input.has-error .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-error .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-error .form-control.focus:not([readonly]) ~ .help-block { + color: #a94442; +} +.form-group.form-md-line-input.has-error .input-group-addon { + color: #a94442; +} +.form-horizontal .form-group.form-md-line-input.has-error > label { + color: #a94442; +} +.form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label:after, +.form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label:after, +.form-group.form-md-line-input.has-info .form-control.form-control-static ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label:after, +.form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .form-control-focus:after, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label:after, +.form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .form-control-focus:after { + background: #31708f; +} +.form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ label, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ label, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ label { + color: #31708f; +} +.form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ i, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ i, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ i { + color: #31708f; +} +.form-group.form-md-line-input.has-info .form-control.edited:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.form-control-static ~ .help-block, .form-group.form-md-line-input.has-info .form-control:focus:not([readonly]) ~ .help-block, .form-group.form-md-line-input.has-info .form-control.focus:not([readonly]) ~ .help-block { + color: #31708f; +} +.form-group.form-md-line-input.has-info .input-group-addon { + color: #31708f; +} +.form-horizontal .form-group.form-md-line-input.has-info > label { + color: #31708f; +} + +.form-inline .form-md-line-input { + margin: 0; + padding-top: 0; + margin-right: 20px; +} +.form-inline .form-md-line-input > .input-icon { + padding: 0; +} + +.form-horizontal .form-group.form-md-line-input .input-icon .form-control { + padding-left: 33px; +} +.form-horizontal .form-group.form-md-line-input .input-icon > i { + top: 0; +} +.form-horizontal .form-group.form-md-line-input .input-icon.right .form-control { + padding-left: 0; + padding-right: 33px; +} +.form-horizontal .form-group.form-md-line-input .input-icon > .form-control-focus { + left: 0 !important; + right: 0 !important; +} +.form-horizontal .form-group.form-md-line-input .input-group { + padding-top: 0; +} +.form-horizontal .form-group.form-md-line-input .input-group > .input-group-btn .btn { + margin-bottom: 0 !important; +} +.form-horizontal .form-group.form-md-line-input .input-group > .input-group-control { + padding-top: 0; +} +.form-horizontal .form-group.form-md-line-input .input-group > .input-group-control > .form-control-focus { + left: 0 !important; + right: 0 !important; +} +.form-horizontal .form-group.form-md-line-input .input-group > .form-control-focus { + left: 0 !important; + right: 0 !important; +} + +.md-checkbox { + position: relative; + /* handling click events */ + /* when checkbox is checked */ +} +.md-checkbox.md-checkbox-inline { + display: inline-block; +} +.form-inline .md-checkbox.md-checkbox-inline { + margin-right: 20px; + top: 3px; +} +.md-checkbox input[type=checkbox] { + visibility: hidden; + position: absolute; +} +.md-checkbox label { + cursor: pointer; + padding-left: 30px; +} +.md-checkbox label > span { + display: block; + position: absolute; + left: 0; + -webkit-transition-duration: 0.3s; + -moz-transition-duration: 0.3s; + transition-duration: 0.3s; +} +.md-checkbox label > span.inc { + background: #fff; + left: -20px; + top: -20px; + height: 60px; + width: 60px; + opacity: 0; + border-radius: 50% !important; + -moz-border-radius: 50% !important; + -webkit-border-radius: 50% !important; +} +.md-checkbox label > .box { + top: 0px; + border: 2px solid #666; + height: 20px; + width: 20px; + z-index: 5; + -webkit-transition-delay: 0.2s; + -moz-transition-delay: 0.2s; + transition-delay: 0.2s; +} +.md-checkbox label > .check { + top: -4px; + left: 6px; + width: 10px; + height: 20px; + border: 2px solid #45B6AF; + border-top: none; + border-left: none; + opacity: 0; + z-index: 5; + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + transform: rotate(180deg); + -webkit-transition-delay: 0.3s; + -moz-transition-delay: 0.3s; + transition-delay: 0.3s; +} +.md-checkbox label > span.inc { + -webkit-animation: growCircle 0.3s ease; + -moz-animation: growCircle 0.3s ease; + animation: growCircle 0.3s ease; +} +.md-checkbox input[type=checkbox]:checked ~ label > .box { + opacity: 0; + -webkit-transform: scale(0) rotate(-180deg); + -moz-transform: scale(0) rotate(-180deg); + transform: scale(0) rotate(-180deg); +} +.md-checkbox input[type=checkbox]:checked ~ label > .check { + opacity: 1; + -webkit-transform: scale(1) rotate(45deg); + -moz-transform: scale(1) rotate(45deg); + transform: scale(1) rotate(45deg); +} +.md-checkbox input[type=checkbox]:disabled ~ label, +.md-checkbox input[type=checkbox][disabled] ~ label { + cursor: not-allowed; + opacity: 0.7 ; + filter: alpha(opacity=70) ; +} +.md-checkbox input[type=checkbox]:disabled ~ label > .box, +.md-checkbox input[type=checkbox][disabled] ~ label > .box { + cursor: not-allowed; + opacity: 0.7 ; + filter: alpha(opacity=70) ; +} +.md-checkbox input[type=checkbox]:disabled:checked ~ label > .check, +.md-checkbox input[type=checkbox][disabled]:checked ~ label > .check { + cursor: not-allowed; + opacity: 0.7 ; + filter: alpha(opacity=70) ; +} +.md-checkbox.has-error label { + color: #F3565D; +} +.md-checkbox.has-error label > .box { + border-color: #F3565D; +} +.md-checkbox.has-error label > .check { + border-color: #F3565D; +} +.md-checkbox.has-info label { + color: #89C4F4; +} +.md-checkbox.has-info label > .box { + border-color: #89C4F4; +} +.md-checkbox.has-info label > .check { + border-color: #89C4F4; +} +.md-checkbox.has-success label { + color: #45B6AF; +} +.md-checkbox.has-success label > .box { + border-color: #45B6AF; +} +.md-checkbox.has-success label > .check { + border-color: #45B6AF; +} +.md-checkbox.has-warning label { + color: #dfba49; +} +.md-checkbox.has-warning label > .box { + border-color: #dfba49; +} +.md-checkbox.has-warning label > .check { + border-color: #dfba49; +} + +.form-md-checkboxes > label { + font-size: 13px; + color: #888888; + opacity: 1 ; + filter: alpha(opacity=100) ; +} +.form-md-checkboxes.has-error > label { + color: #F3565D; +} +.form-md-checkboxes.has-info > label { + color: #89C4F4; +} +.form-md-checkboxes.has-success > label { + color: #45B6AF; +} +.form-md-checkboxes.has-warning > label { + color: #dfba49; +} + +.md-checkbox-list { + margin: 10px 0; +} +.form-horizontal .md-checkbox-list { + margin-top: 0px; +} +.md-checkbox-list .md-checkbox { + display: block; + margin-bottom: 10px; +} + +.md-checkbox-inline { + margin: 10px 0; +} +.form-horizontal .md-checkbox-inline { + margin-top: 5px; +} +.md-checkbox-inline .md-checkbox { + display: inline-block; + margin-right: 20px; +} +.md-checkbox-inline .md-checkbox:last-child { + margin-right: 0; +} + +/* bubble animation */ +@-webkit-keyframes growCircle { + 0%, 100% { + -webkit-transform: scale(0); + opacity: 1; + } + 70% { + background: #eee; + -webkit-transform: scale(1.25); + } +} +@-moz-keyframes growCircle { + 0%, 100% { + -moz-transform: scale(0); + opacity: 1; + } + 70% { + background: #eee; + -moz-transform: scale(1.25); + } +} +@keyframes growCircle { + 0%, 100% { + transform: scale(0); + opacity: 1; + } + 70% { + background: #eee; + transform: scale(1.25); + } +} +.md-radio { + position: relative; + /* handling click events */ + /* when radio is checked */ +} +.md-radio input[type=radio] { + visibility: hidden; + position: absolute; +} +.md-radio label { + cursor: pointer; + padding-left: 30px; +} +.md-radio label > span { + display: block; + position: absolute; + left: 0; + -webkit-transition-duration: 0.3s; + -moz-transition-duration: 0.3s; + transition-duration: 0.3s; +} +.md-radio label > span.inc { + background: #fff; + left: -20px; + top: -20px; + height: 60px; + width: 60px; + opacity: 0; + border-radius: 50% !important; + -moz-border-radius: 50% !important; + -webkit-border-radius: 50% !important; +} +.md-radio label > .box { + top: 0px; + border: 2px solid #666; + height: 20px; + width: 20px; + border-radius: 50% !important; + -moz-border-radius: 50% !important; + -webkit-border-radius: 50% !important; + z-index: 5; +} +.md-radio label > .check { + top: 5px; + left: 5px; + width: 10px; + height: 10px; + background: #45B6AF; + opacity: 0; + z-index: 6; + border-radius: 50% !important; + -moz-border-radius: 50% !important; + -webkit-border-radius: 50% !important; + -webkit-transform: scale(0); + -moz-transform: scale(0); + transform: scale(0); +} +.md-radio label > span.inc { + -webkit-animation: growCircleRadio 0.3s ease; + -moz-animation: growCircleRadio 0.3s ease; + animation: growCircleRadio 0.3s ease; +} +.md-radio input[type=radio]:checked ~ label > .check { + opacity: 1; + -webkit-transform: scale(1); + -moz-transform: scale(1); + transform: scale(1); +} +.md-radio input[type=radio]:disabled ~ label, +.md-radio input[type=radio][disabled] ~ label { + cursor: not-allowed; + opacity: 0.7 ; + filter: alpha(opacity=70) ; +} +.md-radio input[type=radio]:disabled ~ label > .box, +.md-radio input[type=radio][disabled] ~ label > .box { + cursor: not-allowed; + opacity: 0.7 ; + filter: alpha(opacity=70) ; +} +.md-radio input[type=radio]:disabled:checked ~ label > .check, +.md-radio input[type=radio][disabled]:checked ~ label > .check { + cursor: not-allowed; + opacity: 0.7 ; + filter: alpha(opacity=70) ; +} +.md-radio.has-error label { + color: #F3565D; +} +.md-radio.has-error label > .box { + border-color: #F3565D; +} +.md-radio.has-error label > .check { + background: #F3565D; +} +.md-radio.has-info label { + color: #89C4F4; +} +.md-radio.has-info label > .box { + border-color: #89C4F4; +} +.md-radio.has-info label > .check { + background: #89C4F4; +} +.md-radio.has-success label { + color: #45B6AF; +} +.md-radio.has-success label > .box { + border-color: #45B6AF; +} +.md-radio.has-success label > .check { + background: #45B6AF; +} +.md-radio.has-warning label { + color: #dfba49; +} +.md-radio.has-warning label > .box { + border-color: #dfba49; +} +.md-radio.has-warning label > .check { + background: #dfba49; +} + +.form-md-radios > label { + font-size: 13px; + color: #888888; + opacity: 1 ; + filter: alpha(opacity=100) ; +} +.form-md-radios.has-error > label { + color: #F3565D; +} +.form-md-radios.has-info > label { + color: #89C4F4; +} +.form-md-radios.has-success > label { + color: #45B6AF; +} +.form-md-radios.has-warning > label { + color: #dfba49; +} + +.md-radio-list { + margin: 10px 0; +} +.form-horizontal .md-radio-list { + margin-top: 0px; +} +.md-radio-list .md-radio { + display: block; + margin-bottom: 10px; +} + +.md-radio-inline { + margin: 10px 0; +} +.form-horizontal .md-radio-inline { + margin-top: 5px; +} +.md-radio-inline .md-radio { + display: inline-block; + margin-right: 20px; +} +.md-radio-inline .md-radio:last-child { + margin-right: 0; +} + +/* bubble animation */ +@-webkit-keyframes growCircleRadio { + 0%, 100% { + -webkit-transform: scale(0); + opacity: 1; + } + 70% { + background: #eee; + -webkit-transform: scale(1.25); + } +} +@-moz-keyframes growCircleRadio { + 0%, 100% { + -moz-transform: scale(0); + opacity: 1; + } + 70% { + background: #eee; + -moz-transform: scale(1.25); + } +} +@keyframes growCircleRadio { + 0%, 100% { + transform: scale(0); + opacity: 1; + } + 70% { + background: #eee; + transform: scale(1.25); + } +} +/*** +General typography +***/ +/* Headings */ +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: "Open Sans", sans-serif; + font-weight: 300; +} + +h1 { + font-size: 33px; +} + +h2 { + font-size: 27px; +} + +h3 { + font-size: 23px; +} + +h4 { + font-size: 17px; +} + +h5 { + font-size: 13px; +} + +h6 { + font-size: 12px; +} + +/* Headings helper text */ +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + color: #444444; +} + +/* Block headings */ +h1.block, +h2.block, +h3.block, +h4.block, +h5.block, +h6.block { + padding-top: 10px; + padding-bottom: 10px; +} + +/* Links */ +a { + text-shadow: none; + color: #5b9bd1; +} +a:hover { + color: #3175af; +} +a:focus, a:hover, a:active { + outline: 0; +} + +/* Horizontal break */ +hr { + margin: 20px 0; + border: 0; + border-top: 1px solid #eee; + border-bottom: 0; +} + +/* Unstyled List */ +.list-unstyled li > .list-unstyled { + margin-left: 25px; +} + +/* Code */ +code { + border: 1px solid #e1e1e1; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); +} + +/* Disabled Navigation Link */ +.disabled-link .disable-target { + opacity: 0.5 !important; + filter: alpha(opacity=50) !important; +} +.disabled-link .disable-target:hover { + cursor: not-allowed !important; +} +.disabled-link:hover { + cursor: not-allowed !important; +} + +/*** +Utilities +***/ +/* Links */ +a:hover { + cursor: pointer; +} + +/* Primary Link */ +.primary-link { + color: #65A0D0; + font-weight: 600; +} +.primary-link:hover { + color: #5194ca; +} + +/* Rounded Element */ +.rounded-2 { + border-radius: 2px !important; +} + +.rounded-3 { + border-radius: 3px !important; +} + +.rounded-4 { + border-radius: 4px !important; +} + +/* Circle Element */ +.circle { + border-radius: 25px !important; +} + +.circle-right { + border-radius: 0 25px 25px 0 !important; +} + +.circle-left { + border-radius: 25px 0 0 25px !important; +} + +.circle-bottom { + border-radius: 0 0 25px 25px !important; +} + +.circle-top { + border-radius: 25px 25px 0 0 !important; +} + +/* General utilities */ +.display-none, +.display-hide { + display: none; +} + +.hidden { + display: none !important; +} + +.primary-font { + font-family: "Open Sans", sans-serif !important; +} + +.bold { + font-weight: 700 !important; +} + +.thin { + font-weight: 300 !important; +} + +.uppercase { + text-transform: uppercase !important; +} + +.fix-margin { + margin-left: 0px !important; +} + +.border { + border: 1px solid red; +} + +.font-hg { + font-size: 23px; +} + +.font-lg { + font-size: 18px; +} + +.font-md { + font-size: 14px; +} + +.font-sm { + font-size: 13px; +} + +.font-xs { + font-size: 11px; +} + +.inline { + display: inline; +} + +.inline-block { + display: inline-block; +} + +.text-align-reverse { + text-align: right; +} + +/* Margin and padding utilities */ +.no-space { + margin: 0px !important; + padding: 0px !important; +} + +.no-margin { + margin: 0; +} + +.margin-bottom-5 { + margin-bottom: 5px; +} + +.margin-bottom-10 { + margin-bottom: 10px !important; +} + +.margin-top-10 { + margin-top: 10px !important; +} + +.margin-top-15 { + margin-top: 15px !important; +} + +.margin-bottom-15 { + margin-bottom: 15px !important; +} + +.margin-bottom-20 { + margin-bottom: 20px !important; +} + +.margin-top-20 { + margin-top: 20px !important; +} + +.margin-top-25 { + margin-top: 25px !important; +} + +.margin-bottom-25 { + margin-bottom: 25px !important; +} + +.margin-bottom-30 { + margin-bottom: 30px !important; +} + +.margin-bottom-40 { + margin-bottom: 40px !important; +} + +.margin-right-10 { + margin-right: 10px !important; +} + +/* IE8 & IE9 mode utilities */ +.visible-ie8 { + display: none; +} + +.ie8 .visible-ie8 { + display: inherit !important; +} + +.visible-ie9 { + display: none; +} + +.ie9 .visible-ie9 { + display: inherit !important; +} + +.hidden-ie8 { + display: inherit; +} + +.ie8 .hidden-ie8 { + display: none !important; +} + +.hidden-ie9 { + display: inherit; +} + +.ie9 .hidden-ie9 { + display: none !important; +} + +/*** +Responsive Utils +***/ +@media (max-width: 1024px) { + .hidden-1024 { + display: none; + } +} +@media (max-width: 480px) { + .hidden-480 { + display: none; + } +} +@media (max-width: 320px) { + .hidden-320 { + display: none; + } +} +/*** +Demo Utils +***/ +.scrollspy-example { + position: relative; + height: 200px; + margin-top: 10px; + overflow: auto; +} + +.util-btn-margin-bottom-5 .btn { + margin-bottom: 5px !important; +} + +.util-btn-group-margin-bottom-5 .btn-group { + margin-bottom: 5px !important; +} + +/*** +Users +***/ +.user-info { + margin-bottom: 10px !important; +} +.user-info img { + float: left; + margin-right: 5px; +} +.user-info .details { + display: inline-block; +} +.user-info .label { + font-weight: 300; + font-size: 11px; +} + +/*** +Top News Blocks(new in v1.2.2) +***/ +.top-news { + color: #fff; + margin: 8px 0; +} +.top-news em { + font-size: 13px; + margin-bottom: 8px; + margin-bottom: 0; + font-style: normal; + display: block; +} +.top-news em i { + font-size: 14px; +} +.top-news span { + font-size: 18px; + margin-bottom: 5px; + display: block; + text-align: left; +} +.top-news a { + display: block; + text-align: left; + padding: 10px; + position: relative; + margin-bottom: 10px; +} +.top-news a .top-news-icon { + right: 8px; + bottom: 15px; + opacity: 0.3; + font-size: 35px; + position: absolute; + filter: alpha(opacity=30); + /*For IE8*/ +} +.top-news .btn + .btn { + margin-left: 0; +} + +/*** +Block Images(new in v1.2.2) +***/ +.blog-images { + margin-bottom: 0; +} +.blog-images li { + padding: 0; + margin: 0; + display: inline; +} +.blog-images li a:hover { + text-decoration: none; +} +.blog-images li img { + width: 50px; + height: 50px; + opacity: 0.6; + margin: 0 2px 8px; +} +.blog-images li img:hover { + opacity: 1; + box-shadow: 0 0 0 4px #72c02c; + transition: all 0.4s ease-in-out 0s; + -moz-transition: all 0.4s ease-in-out 0s; + -webkit-transition: all 0.4s ease-in-out 0s; +} + +/*** +Sidebar Tags +***/ +.sidebar-tags li { + padding: 0; +} +.sidebar-tags li a { + color: #555; + font-size: 12px; + padding: 3px 5px; + background: #f7f7f7; + margin: 0 2px 5px 0; + display: inline-block; +} +.sidebar-tags li a:hover, .sidebar-tags li a:hover i { + background: #EEE; + text-decoration: none; + -webkit-transition: all 0.3s ease-in-out; + -moz-transition: all 0.3s ease-in-out; + -o-transition: all 0.3s ease-in-out; + transition: all 0.3s ease-in-out; +} +.sidebar-tags li a i { + color: #777; +} + +/*** +Custom vertical inline menu +***/ +.ver-inline-menu { + padding: 0; + margin: 0; + list-style: none; +} +.ver-inline-menu li { + position: relative; + margin-bottom: 1px; +} +.ver-inline-menu li i { + width: 37px; + height: 37px; + display: inline-block; + color: #b9cbd5; + font-size: 15px; + padding: 12px 10px 10px 8px; + margin: 0 8px 0 0; + text-align: center; + background: #e0eaf0 !important; +} +.ver-inline-menu li a { + font-size: 14px; + font-weight: 300; + color: #557386; + display: block; + background: #f0f6fa; + border-left: solid 2px #c4d5df; +} +.ver-inline-menu li:hover a { + background: #e0eaf0; + text-decoration: none; +} +.ver-inline-menu li:hover i { + color: #fff; + background: #c4d5df !important; +} +.ver-inline-menu li.active a { + border-left: solid 2px #0c91e5; +} +.ver-inline-menu li.active i { + background: #0c91e5 !important; +} +.ver-inline-menu li.active a, .ver-inline-menu li.active i { + color: #fff; + background: #169ef4; + text-decoration: none; +} +.ver-inline-menu li.active a, .ver-inline-menu li:hover a { + font-size: 14px; +} +.ver-inline-menu li.active:after { + content: ''; + display: inline-block; + border-bottom: 6px solid transparent; + border-top: 6px solid transparent; + border-left: 6px solid #169ef4; + position: absolute; + top: 12px; + right: -5px; +} + +@media (max-width: 767px) { + .ver-inline-menu > li.active:after { + display: none; + } +} +/*** +Separated List +***/ +.list-separated { + margin-top: 10px; + margin-bottom: 15px; +} +.list-separated > div:last-child { + border-right: 0; +} +@media (max-width: 767px) { + .list-separated { + /* 767px */ + } + .list-separated > div { + margin-bottom: 20px; + } +} + +/*** +Number & Chart Stats +***/ +.number-stats { + margin: 10px 0; +} +.number-stats .stat-number { + display: inline-block; + margin: 0 5px; +} +.number-stats .stat-number .title { + font-size: 13px; + margin-bottom: 3px; + color: #B8C3C7; +} +.number-stats .stat-number .number { + font-size: 27px; + line-height: 27px; + color: #7D8C9D; +} +.number-stats .stat-chart { + display: inline-block; + margin: 0 5px; +} +.number-stats > div { + border-right: 1px solid #f5f5f5; +} +.number-stats > div:last-child { + border-right: 0; +} +.number-stats .stat-left { + float: right; +} +.number-stats .stat-left .stat-number { + float: right; + text-align: right; +} +.number-stats .stat-left .stat-chart { + float: right; +} +.number-stats .stat-right { + float: left !important; +} +.number-stats .stat-right .stat-number { + float: left; + text-align: left; +} +.number-stats .stat-right .stat-chart { + float: left; +} +.number-stats .stat-number { + float: left; + text-align: left; +} +.number-stats .stat-chart { + float: left; +} + +/*** +General User Record Listing +***/ +.general-item-list > .item { + padding: 10px 0; + border-bottom: 1px solid #F1F4F7; +} +.general-item-list > .item:last-child { + border-bottom: 0; +} +.general-item-list > .item > .item-head { + margin-bottom: 5px; +} +.general-item-list > .item > .item-head:before, .general-item-list > .item > .item-head:after { + content: " "; + display: table; +} +.general-item-list > .item > .item-head:after { + clear: both; +} +.general-item-list > .item > .item-head > .item-details { + display: inline-block; + float: left; +} +.general-item-list > .item > .item-head > .item-details > .item-pic { + height: 35px; + margin-right: 10px; + -webkit-border-radius: 100%; + -moz-border-radius: 100%; + -ms-border-radius: 100%; + -o-border-radius: 100%; + border-radius: 100%; +} +.general-item-list > .item > .item-head > .item-details > .item-name { + display: inline-block; + margin-right: 10px; +} +.general-item-list > .item > .item-head > .item-details > .item-label { + color: #C0C9CC; +} +.general-item-list > .item > .item-head > .item-status { + color: #C0C9CC; + top: 10px; + position: relative; + display: inline-block; + float: right; +} +.general-item-list > .item > .item-head > .item-status > .badge { + margin-top: -2px; +} +.general-item-list > .item > .item-body { + color: #96a5aa; +} + +/*** +File dropzone +***/ +.file-drop-zone { + border: 2px dashed #ddd; + padding: 30px; + text-align: center; +} +.file-drop-zone.file-drop-zone-over { + border-color: #aaa; +} + +/*** +Fontawesome Icons +***/ +[class^="fa-"]:not(.fa-stack), +[class^="glyphicon-"], +[class^="icon-"], +[class*=" fa-"]:not(.fa-stack), +[class*=" glyphicon-"], +[class*=" icon-"] { + display: inline-block; + font-size: 14px; + *margin-right: .3em; + line-height: 14px; + -webkit-font-smoothing: antialiased; +} + +/* Make font awesome icons fixed width */ +li [class^="fa-"], +li [class^="glyphicon-"], +li [class^="icon-"], +li [class*=" fa-"], +li [class*=" glyphicon-"], +li [class*=" icon-"] { + display: inline-block; + width: 1.25em; + text-align: center; +} + +li [class^="glyphicon-"], +li [class*=" glyphicon-"] { + top: 2px; +} + +li [class^="icon-"], +li [class*=" icon-"] { + top: 1px; + position: relative; +} + +li [class^="fa-"].icon-large, +li [class^="glyphicon-"].icon-large, +li [class^="icon-"].icon-large, +li [class*=" fa-"].icon-large, +li [class*=" glyphicon-"].icon-large, +li [class*=" icon-"].icon-large { + /* increased font size for icon-large */ + width: 1.5625em; +} + +/* Icon sizing */ +.fa-sm:not(.fa-stack), +.icon-sm { + font-size: 12px; +} + +.fa-lg:not(.fa-stack), +.icon-lg { + font-size: 16px !important; +} + +.fa-2x { + font-size: 2em; +} + +.fa-3x { + font-size: 3em; +} + +.fa-4x { + font-size: 4em; +} + +.fa-5x { + font-size: 5em; +} + +/* Icon coloring */ +.icon-state-default { + color: #c6c6c6; +} + +.icon-state-success { + color: #45B6AF; +} + +.icon-state-info { + color: #89C4F4; +} + +.icon-state-warning { + color: #dfba49; +} + +.icon-state-danger { + color: #F3565D; +} + +/*** +Font Awesome 4.x Demo +***/ +.fa-item { + font-size: 14px; + padding: 10px 10px 10px 20px; +} +.fa-item i { + font-size: 16px; + display: inline-block; + width: 20px; + color: #333; +} +.fa-item:hover { + cursor: pointer; + background: #eee; +} + +/*** +Simple Line Icons Demo +***/ +.simplelineicons-demo .item-box { + display: inline-block; + font-size: 16px; + margin: 0 -0.22em 1em 0; + padding-left: 1em; + width: 100%; +} +.simplelineicons-demo .item-box .item { + background-color: #fff; + color: #33383e; + border-radius: 8px; + display: inline-block; + padding: 10px; + width: 100%; +} +.simplelineicons-demo .item-box .item span { + font-size: 22px; +} + +@media only screen and (min-width: 768px) { + .simplelineicons-demo .item-box { + width: 33.333%; + } +} +/*** +Glyphicons Demo +***/ +.glyphicons-demo ul { + padding-left: 0; + padding-bottom: 1px; + margin-bottom: 20px; + list-style: none; + overflow: hidden; +} + +.bs-glyphicon-class { + text-align: center; +} + +.bs-glyphicons { + padding-left: 0; + padding-bottom: 1px; + margin-bottom: 20px; + list-style: none; + overflow: hidden; +} + +.glyphicons-demo ul li { + float: left; + width: 25%; + height: 115px; + padding: 10px; + margin: 0 -1px -1px 0; + font-size: 14px; + line-height: 1.4; + text-align: center; + border: 1px solid #ddd; +} + +.glyphicons-demo .glyphicon { + display: block; + margin: 5px auto 10px; + font-size: 24px; + color: #444; +} + +.glyphicons-demo ul li:hover { + background-color: rgba(86, 61, 124, 0.1); +} + +@media (min-width: 768px) { + .glyphicons-demo ul li { + width: 12.5%; + } +} +/*** +Customized Bootstrap Alerts +***/ +.alert { + border-width: 1px; +} +.alert.alert-borderless { + border: 0; +} + +/*** +Bootstrap Alerts +***/ +.alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; + color: #3c763d; +} +.alert-success hr { + border-top-color: #c9e2b3; +} +.alert-success .alert-link { + color: #2b542c; +} + +.alert-info { + background-color: #d9edf7; + border-color: #bce8f1; + color: #31708f; +} +.alert-info hr { + border-top-color: #a6e1ec; +} +.alert-info .alert-link { + color: #245269; +} + +.alert-warning { + background-color: #fcf8e3; + border-color: #faebcc; + color: #8a6d3b; +} +.alert-warning hr { + border-top-color: #f7e1b5; +} +.alert-warning .alert-link { + color: #66512c; +} + +.alert-danger { + background-color: #f2dede; + border-color: #ebccd1; + color: #a94442; +} +.alert-danger hr { + border-top-color: #e4b9c0; +} +.alert-danger .alert-link { + color: #843534; +} + +/*** +Custom Bootstrap Badges +***/ +.badge { + font-size: 11px !important; + font-weight: 300; + text-align: center; + height: 18px; + padding: 3px 6px 3px 6px; + -webkit-border-radius: 12px !important; + -moz-border-radius: 12px !important; + border-radius: 12px !important; + text-shadow: none !important; + text-align: center; + vertical-align: middle; +} +.badge.badge-roundless { + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; +} +.badge.badge-empty { + display: inline-block; + padding: 0; + min-width: 8px; + height: 8px; + width: 8px; +} + +/* Badge variants */ +.badge-default { + background-color: #c6c6c6; + background-image: none; +} + +.badge-primary { + background-color: #428bca; + background-image: none; +} + +.badge-info { + background-color: #89C4F4; + background-image: none; +} + +.badge-success { + background-color: #45B6AF; + background-image: none; +} + +.badge-danger { + background-color: #F3565D; + background-image: none; +} + +.badge-warning { + background-color: #dfba49; + background-image: none; +} + +/* Fix badge position for navs */ +.nav.nav-pills > li > a > .badge, +.nav.nav-stacked > li > a > .badge { + margin-top: -2px; +} + +/*** +Dropdown Menu Badges +***/ +.dropdown-menu > li > a > .badge { + position: absolute; + margin-top: 1px; + right: 3px; + display: inline; + font-size: 11px; + font-weight: 300; + text-shadow: none; + height: 18px; + padding: 3px 6px 3px 6px; + text-align: center; + vertical-align: middle; + -webkit-border-radius: 12px !important; + -moz-border-radius: 12px !important; + border-radius: 12px !important; +} +.dropdown-menu.badge-roundless { + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; +} + +/*** +Customized Bootstrap Buttons +***/ +/* Default buttons */ +.btn { + border-width: 0; + padding: 7px 14px; + font-size: 14px; + outline: none !important; + background-image: none !important; + filter: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + text-shadow: none; +} +.btn.dropdown-toggle, .btn-group .btn.dropdown-toggle, .btn:hover, .btn:disabled, .btn[disabled], .btn:focus, .btn:active, .btn.active { + outline: none !important; + background-image: none !important; + filter: none; + text-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn + .btn { + margin-left: 5px; +} + +.btn-default { + border-width: 1px; + padding: 6px 13px; +} + +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} + +/* Bootstrap buttons */ +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc; +} +.btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active { + color: #333; + background-color: #ededed; + border-color: #b3b3b3; +} +.open .btn-default.dropdown-toggle { + color: #333; + background-color: #ededed; + border-color: #b3b3b3; +} +.btn-default:active, .btn-default.active { + background-image: none; + background-color: #e0e0e0; +} +.btn-default:active:hover, .btn-default.active:hover { + background-color: #e6e6e6; +} +.open .btn-default.dropdown-toggle { + background-image: none; +} +.btn-default.disabled, .btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled:active, .btn-default.disabled.active, .btn-default[disabled], .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled]:active, .btn-default[disabled].active, fieldset[disabled] .btn-default, fieldset[disabled] .btn-default:hover, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default:active, fieldset[disabled] .btn-default.active { + background-color: #fff; + border-color: #ccc; +} +.btn-default .badge { + color: #fff; + background-color: #333; +} +.btn-default > i { + color: #aaa; +} +.btn-default > i[class^="icon-"], +.btn-default > i[class*="icon-"] { + color: #8c8c8c; +} + +.btn-primary { + color: #fff; + background-color: #428bca; + border-color: #357ebd; +} +.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active { + color: #fff; + background-color: #3379b5; + border-color: #2a6496; +} +.open .btn-primary.dropdown-toggle { + color: #fff; + background-color: #3379b5; + border-color: #2a6496; +} +.btn-primary:active, .btn-primary.active { + background-image: none; + background-color: #2d6ca2; +} +.btn-primary:active:hover, .btn-primary.active:hover { + background-color: #3071a9; +} +.open .btn-primary.dropdown-toggle { + background-image: none; +} +.btn-primary.disabled, .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled:active, .btn-primary.disabled.active, .btn-primary[disabled], .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled]:active, .btn-primary[disabled].active, fieldset[disabled] .btn-primary, fieldset[disabled] .btn-primary:hover, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary:active, fieldset[disabled] .btn-primary.active { + background-color: #428bca; + border-color: #357ebd; +} +.btn-primary .badge { + color: #428bca; + background-color: #fff; +} + +.btn-success { + color: #fff; + background-color: #45B6AF; + border-color: #3ea49d; +} +.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active { + color: #fff; + background-color: #3b9c96; + border-color: #307f7a; +} +.open .btn-success.dropdown-toggle { + color: #fff; + background-color: #3b9c96; + border-color: #307f7a; +} +.btn-success:active, .btn-success.active { + background-image: none; + background-color: #348a84; +} +.btn-success:active:hover, .btn-success.active:hover { + background-color: #37918b; +} +.open .btn-success.dropdown-toggle { + background-image: none; +} +.btn-success.disabled, .btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled:active, .btn-success.disabled.active, .btn-success[disabled], .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled]:active, .btn-success[disabled].active, fieldset[disabled] .btn-success, fieldset[disabled] .btn-success:hover, fieldset[disabled] .btn-success:focus, fieldset[disabled] .btn-success:active, fieldset[disabled] .btn-success.active { + background-color: #45B6AF; + border-color: #3ea49d; +} +.btn-success .badge { + color: #45B6AF; + background-color: #fff; +} + +.btn-info { + color: #fff; + background-color: #89C4F4; + border-color: #72b8f2; +} +.btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active { + color: #fff; + background-color: #68b4f1; + border-color: #43a1ed; +} +.open .btn-info.dropdown-toggle { + color: #fff; + background-color: #68b4f1; + border-color: #43a1ed; +} +.btn-info:active, .btn-info.active { + background-image: none; + background-color: #51a8ef; +} +.btn-info:active:hover, .btn-info.active:hover { + background-color: #5aadf0; +} +.open .btn-info.dropdown-toggle { + background-image: none; +} +.btn-info.disabled, .btn-info.disabled:hover, .btn-info.disabled:focus, .btn-info.disabled:active, .btn-info.disabled.active, .btn-info[disabled], .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled]:active, .btn-info[disabled].active, fieldset[disabled] .btn-info, fieldset[disabled] .btn-info:hover, fieldset[disabled] .btn-info:focus, fieldset[disabled] .btn-info:active, fieldset[disabled] .btn-info.active { + background-color: #89C4F4; + border-color: #72b8f2; +} +.btn-info .badge { + color: #89C4F4; + background-color: #fff; +} + +.btn-warning { + color: #fff; + background-color: #dfba49; + border-color: #dbb233; +} +.btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active { + color: #fff; + background-color: #daae2b; + border-color: #bb9521; +} +.open .btn-warning.dropdown-toggle { + color: #fff; + background-color: #daae2b; + border-color: #bb9521; +} +.btn-warning:active, .btn-warning.active { + background-image: none; + background-color: #c89f23; +} +.btn-warning:active:hover, .btn-warning.active:hover { + background-color: #d0a625; +} +.open .btn-warning.dropdown-toggle { + background-image: none; +} +.btn-warning.disabled, .btn-warning.disabled:hover, .btn-warning.disabled:focus, .btn-warning.disabled:active, .btn-warning.disabled.active, .btn-warning[disabled], .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled]:active, .btn-warning[disabled].active, fieldset[disabled] .btn-warning, fieldset[disabled] .btn-warning:hover, fieldset[disabled] .btn-warning:focus, fieldset[disabled] .btn-warning:active, fieldset[disabled] .btn-warning.active { + background-color: #dfba49; + border-color: #dbb233; +} +.btn-warning .badge { + color: #dfba49; + background-color: #fff; +} + +.btn-danger { + color: #fff; + background-color: #F3565D; + border-color: #f13e46; +} +.btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active { + color: #fff; + background-color: #f1353d; + border-color: #ec111b; +} +.open .btn-danger.dropdown-toggle { + color: #fff; + background-color: #f1353d; + border-color: #ec111b; +} +.btn-danger:active, .btn-danger.active { + background-image: none; + background-color: #ef1d26; +} +.btn-danger:active:hover, .btn-danger.active:hover { + background-color: #f0262f; +} +.open .btn-danger.dropdown-toggle { + background-image: none; +} +.btn-danger.disabled, .btn-danger.disabled:hover, .btn-danger.disabled:focus, .btn-danger.disabled:active, .btn-danger.disabled.active, .btn-danger[disabled], .btn-danger[disabled]:hover, .btn-danger[disabled]:focus, .btn-danger[disabled]:active, .btn-danger[disabled].active, fieldset[disabled] .btn-danger, fieldset[disabled] .btn-danger:hover, fieldset[disabled] .btn-danger:focus, fieldset[disabled] .btn-danger:active, fieldset[disabled] .btn-danger.active { + background-color: #F3565D; + border-color: #f13e46; +} +.btn-danger .badge { + color: #F3565D; + background-color: #fff; +} + +/* Button sizes */ +.btn > i { + font-size: 14px; +} + +.btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + vertical-align: middle; +} +.btn-lg > i { + font-size: 18px; +} + +.btn-sm, +.btn-xs { + padding: 4px 10px 5px 10px; + font-size: 13px; + line-height: 1.5; +} +.btn-sm > i, +.btn-xs > i { + font-size: 13px; +} + +.btn-xs { + padding: 1px 5px; +} +.btn-xs > i { + font-size: 12px; +} + +/* Small button in button group */ +.btn-group .input-sm .btn-default { + padding-top: 3px; + padding-bottom: 3px; +} + +/* Arrow link */ +.btn-arrow-link { + vertical-align: middle; + display: inline-block; + font-size: 13px; +} +.btn-arrow-link > i { + font-size: 14px; + line-height: 14px; + vertical-align: top; + margin: 2px 3px 2px 3px; + color: #999; +} +.btn-arrow-link.btn-arrow-link-lg { + font-size: 14px; +} +.btn-arrow-link.btn-arrow-link-lg > i { + font-size: 16px; + line-height: 16px; + margin: 2px 3px 1px 3px; +} + +/* Circle Buttons */ +.btn-circle { + border-radius: 25px !important; +} + +.btn-circle-right { + border-radius: 0 25px 25px 0 !important; +} + +.btn-circle-left { + border-radius: 25px 0 0 25px !important; +} + +.btn-circle-bottom { + border-radius: 0 0 25px 25px !important; +} + +.btn-circle-top { + border-radius: 25px 25px 0 0 !important; +} + +.btn-icon-only { + height: 34px; + width: 34px; + text-align: center; + padding-left: 0; + padding-right: 0; +} +.btn-icon-only > [class^="icon-"], +.btn-icon-only > i { + text-align: center; + margin-top: 2px; +} + +.btn-sm > [class^="glyphicon-"], +.btn-sm > [class*=" glyphicon-"], +.btn-sm > i { + font-size: 13px; +} + +.btn-xs > [class^="glyphicon-"], +.btn-xs > [class*=" glyphicon-"], +.btn-xs > i { + font-size: 11px; +} + +.btn-group.btn-group-circle > .btn:first-child { + border-radius: 25px 0 0 25px !important; +} +.btn-group.btn-group-circle > .btn:last-child { + border-radius: 0 25px 25px 0 !important; +} + +.btn-group.btn-group-devided > .btn { + margin-right: 5px; +} +.btn-group.btn-group-devided > .btn:last-child { + margin-right: 0; +} + +.btn-group-vertical.btn-group-vertical-circle > .btn:first-child { + border-radius: 25px 25px 0 0 !important; +} +.btn-group-vertical.btn-group-vertical-circle > .btn:last-child { + border-radius: 0 0 25px 25px !important; +} + +/*** +Image Carousel +***/ +.carousel.image-carousel .carousel-inner { + padding-top: 0; + padding-bottom: 0; +} +.carousel.image-carousel .carousel-control i { + position: absolute; + top: 40%; +} +.carousel.image-carousel.image-carousel-hoverable .carousel-control i { + display: none; +} +.carousel.image-carousel.image-carousel-hoverable:hover .carousel-control i { + display: inline-block; +} +.carousel.image-carousel .carousel-control.left i { + left: 10px; +} +.carousel.image-carousel .carousel-control.right i { + right: 10px; +} +.carousel.image-carousel .carousel-indicators { + margin-top: 10px; + bottom: -7px; +} +.carousel.image-carousel .carousel-indicators li { + background-color: #666; +} +.carousel.image-carousel .carousel-indicators li.active { + background-color: #666; +} +.carousel.image-carousel .carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 15px 15px 25px 15px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} +.carousel.image-carousel .carousel-caption h4, +.carousel.image-carousel .carousel-caption h3, +.carousel.image-carousel .carousel-caption h2, +.carousel.image-carousel .carousel-caption p { + text-align: left; + line-height: 20px; + color: #ffffff; +} +.carousel.image-carousel .carousel-caption h4, +.carousel.image-carousel .carousel-caption h3, +.carousel.image-carousel .carousel-caption h2 { + margin: 0 0 5px; +} +.carousel.image-carousel .carousel-caption h4 a, +.carousel.image-carousel .carousel-caption h3 a, +.carousel.image-carousel .carousel-caption h2 a { + color: #aaa; +} +.carousel.image-carousel .carousel-caption p { + margin-bottom: 0; +} +.carousel.image-carousel .carousel-caption .item { + margin: 0; +} + +/*** +Charts and statistics +***/ +.chart, +.pie, +.bars { + overflow: hidden; + height: 300px; + width: 100%; + font-family: "Open Sans", sans-serif !important; + font-size: 14px; +} + +/*** +Statistic lists +***/ +.item-list.table .percent { + width: 30px; + float: right; + margin-right: 10px; + margin-top: 3px; +} + +/*** +Chart tooltips +***/ +.chart-tooltip { + clear: both; + z-index: 100; + background-color: #736e6e !important; + padding: 5px !important; + color: #fff; +} +.chart-tooltip .label { + clear: both; + display: block; + margin-bottom: 2px; +} + +/*** +Mini chart containers +***/ +.bar-chart, +.line-chart { + display: none; +} + +/*** +Chats +***/ +.chats { + margin: 0; + padding: 0; + margin-top: -15px; +} +.chats li { + list-style: none; + padding: 5px 0; + margin: 10px auto; + font-size: 12px; +} +.chats li .body { + display: block; +} +.chats li .avatar { + height: 45px; + width: 45px; + -webkit-border-radius: 50% !important; + -moz-border-radius: 50% !important; + border-radius: 50% !important; +} +.chats li.in .avatar { + float: left; + margin-right: 10px; +} +.chats li.out .avatar { + float: right; + margin-left: 10px; +} +.chats li .name { + color: #3590c1; + font-size: 13px; + font-weight: 400; +} +.chats li .datetime { + color: #333; + font-size: 13px; + font-weight: 400; +} +.chats li .message { + display: block; + padding: 5px; + position: relative; +} +.chats li.in .message { + text-align: left; + border-left: 2px solid #1BBC9B; + margin-left: 65px; + background: #fafafa; +} +.chats li.in .message .arrow { + display: block; + position: absolute; + top: 5px; + left: -8px; + width: 0; + height: 0; + border-top: 8px solid transparent; + border-bottom: 8px solid transparent; + border-right: 8px solid #1BBC9B; +} +.chats li.out .message { + border-right: 2px solid #F3565D; + margin-right: 65px; + background: #fafafa; + text-align: right; +} +.chats li.out .message .arrow { + display: block; + position: absolute; + top: 5px; + right: -8px; + border-top: 8px solid transparent; + border-bottom: 8px solid transparent; + border-left: 8px solid #F3565D; +} +.chats li.out .name, +.chats li.out .datetime { + text-align: right; +} + +.chat-form { + margin-top: 15px; + padding: 10px; + background-color: #e9eff3; + overflow: hidden; + clear: both; +} +.chat-form .input-cont { + margin-right: 40px; +} +.chat-form .input-cont .form-control { + border: 1px solid #ddd; + width: 100% !important; + margin-top: 0; + background-color: #fff !important; +} +.chat-form .input-cont .form-control:focus { + border: 1px solid #4b8df9 !important; +} +.chat-form .btn-cont { + margin-top: -42px; + position: relative; + float: right; + width: 44px; +} +.chat-form .btn-cont .arrow { + position: absolute; + top: 17px; + right: 43px; + border-top: 8px solid transparent; + border-bottom: 8px solid transparent; + border-right: 8px solid #4d90fe; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.chat-form .btn-cont .btn { + margin-top: 8px; +} +.chat-form .btn-cont:hover .arrow { + border-right-color: #0362fd; +} +.chat-form .btn-cont:hover .btn { + background-color: #0362fd; +} + +/*** +Customized Bootstrap Close Icon +***/ +.close { + display: inline-block; + margin-top: 0px; + margin-right: 0px; + width: 9px; + height: 9px; + background-repeat: no-repeat !important; + text-indent: -10000px; + outline: none; + background-image: url("../img/remove-icon-small.png") !important; +} + +/*** +Customized Bootstrap Dropdowns +***/ +/*** +Dropdowns +***/ +.dropup.open > .dropdown-toggle, +.dropdown.open > .dropdown-toggle { + border-color: #ddd; +} + +/*** +Dropdown Menu +***/ +.dropdown-menu { + min-width: 175px; + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + list-style: none; + text-shadow: none; + padding: 0px; + background-color: #ffffff; + margin: 10px 0px 0px 0px; + box-shadow: 5px 5px rgba(102, 102, 102, 0.1); + border: 1px solid #eee; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + -ms-border-radius: 4px; + -o-border-radius: 4px; + border-radius: 4px; +} +.dropdown-menu li.divider { + background: #f1f3f6; +} +.dropdown-menu li.dropdown-header { + padding: 8px 14px 2px 14px; +} +.dropdown-menu li > a { + padding: 8px 14px; + color: #555; + text-decoration: none; + display: block; + clear: both; + font-weight: 300; + line-height: 18px; + white-space: nowrap; +} +.dropdown-menu li > a > [class^="fa-"], +.dropdown-menu li > a > [class*=" fa-"] { + color: #888; +} +.dropdown-menu li > a > [class^="icon-"], +.dropdown-menu li > a > [class*=" icon-"] { + color: #666; +} +.dropdown-menu li > a > [class^="glyphicon-"], +.dropdown-menu li > a > [class*=" glyphicon-"] { + color: #888; +} +.dropdown-menu li > a:hover, +.dropdown-menu .active > a, +.dropdown-menu .active > a:hover { + text-decoration: none; + background-image: none; + background-color: #f6f6f6; + color: #555; + filter: none; +} +.dropdown-menu.bottom-up { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} +.dropdown-menu > li:first-child:hover > a { + border-radius: 4px 4px 0px 0px; +} +.dropdown-menu > li:last-child:hover > a { + border-radius: 0px 0px 4px 4px; +} + +.dropdown > .dropdown-menu, +.dropdown-toggle > .dropdown-menu, +.btn-group > .dropdown-menu { + margin-top: 10px; +} +.dropdown > .dropdown-menu:before, +.dropdown-toggle > .dropdown-menu:before, +.btn-group > .dropdown-menu:before { + position: absolute; + top: -8px; + left: 9px; + right: auto; + display: inline-block !important; + border-right: 8px solid transparent; + border-bottom: 8px solid #e0e0e0; + border-left: 8px solid transparent; + content: ''; +} +.dropdown > .dropdown-menu:after, +.dropdown-toggle > .dropdown-menu:after, +.btn-group > .dropdown-menu:after { + position: absolute; + top: -7px; + left: 10px; + right: auto; + display: inline-block !important; + border-right: 7px solid transparent; + border-bottom: 7px solid #fff; + border-left: 7px solid transparent; + content: ''; +} +.dropdown > .dropdown-menu.pull-left:before, +.dropdown-toggle > .dropdown-menu.pull-left:before, +.btn-group > .dropdown-menu.pull-left:before { + left: auto; + right: 9px; +} +.dropdown > .dropdown-menu.pull-left:after, +.dropdown-toggle > .dropdown-menu.pull-left:after, +.btn-group > .dropdown-menu.pull-left:after { + left: auto; + right: 10px; +} +.dropdown > .dropdown-menu.pull-right:before, +.dropdown-toggle > .dropdown-menu.pull-right:before, +.btn-group > .dropdown-menu.pull-right:before { + left: auto; + right: 9px; +} +.dropdown > .dropdown-menu.pull-right:after, +.dropdown-toggle > .dropdown-menu.pull-right:after, +.btn-group > .dropdown-menu.pull-right:after { + left: auto; + right: 10px; +} +.dropdown.dropup > .dropdown-menu, +.dropdown-toggle.dropup > .dropdown-menu, +.btn-group.dropup > .dropdown-menu { + margin-top: 0px; + margin-bottom: 10px; +} +.dropdown.dropup > .dropdown-menu:after, .dropdown.dropup > .dropdown-menu:before, +.dropdown-toggle.dropup > .dropdown-menu:after, +.dropdown-toggle.dropup > .dropdown-menu:before, +.btn-group.dropup > .dropdown-menu:after, +.btn-group.dropup > .dropdown-menu:before { + display: none !important; +} + +/* Dropdown submenu support for Bootsrap 3 */ +.dropdown-submenu { + position: relative; +} +.dropdown-submenu > .dropdown-menu { + top: 5px; + left: 100%; + margin-top: -6px; + margin-left: -1px; +} +.dropdown-submenu > a:after { + position: absolute; + display: inline-block; + font-size: 14px; + right: 7px; + top: 7px; + font-family: FontAwesome; + height: auto; + content: "\f105"; + font-weight: 300; +} +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} +.dropdown-submenu:hover > a:after { + border-left-color: #ffffff; +} +.dropdown-submenu.pull-left { + float: none; +} +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; +} +.dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; +} + +.nav.pull-right > li > .dropdown-menu, +.nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} +.nav.pull-right > li > .dropdown-menu:before, +.nav > li > .dropdown-menu.pull-right:before { + right: 12px; + left: auto; +} +.nav.pull-right > li > .dropdown-menu:after, +.nav > li > .dropdown-menu.pull-right:after { + right: 13px; + left: auto; +} +.nav.pull-right > li > .dropdown-menu .dropdown-menu, +.nav > li > .dropdown-menu.pull-right .dropdown-menu { + right: 100%; + left: auto; + margin-right: -1px; + margin-left: 0; +} + +@media (max-width: 767px) { + /* 767px */ + .navbar-nav .open .dropdown-menu { + position: absolute; + float: left; + width: auto; + margin-top: 0; + background-color: #ffffff; + border: 1px solid #efefef; + box-shadow: 5px 5px rgba(102, 102, 102, 0.1); + } + .navbar-nav .open .dropdown-menu > li > a { + padding: 6px 0 6px 13px; + color: #333; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:active { + background-color: #eee; + } +} +/*** +Dropdown Checkboxes +***/ +.dropdown-content { + padding: 5px; +} +.dropdown-content form { + margin: 0; +} + +.dropdown.inline .dropdown-menu { + display: inline-block; + position: relative; +} + +.dropdown-radiobuttons, +.dropdown-checkboxes { + padding: 5px; +} +.dropdown-radiobuttons label, +.dropdown-checkboxes label { + display: block; + font-weight: 300; + color: #333; + margin-bottom: 4px; + margin-top: 4px; +} +.dropdown-radiobuttons label .radio, +.dropdown-checkboxes label .radio { + margin-right: 3px; +} + +/*-------------------------------------------------- + [Dropdown Menu v2] +----------------------------------------------------*/ +.dropdown-menu-v2 { + top: 100%; + right: 0; + z-index: 1001; + display: none; + float: left; + min-width: 225px; + padding: 20px 0; + margin: 25px 0 0; + font-size: 13px; + text-align: left; + list-style: none; + position: absolute; + background: #242b31; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + -o-border-radius: 2px; + border-radius: 2px; + -webkit-background-clip: padding-box; + background-clip: padding-box; + transition-duration: 300ms; + transition-property: all; + transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1); +} +.dropdown-menu-v2:before { + top: -10px; + right: 0; + width: 0; + height: 0; + content: ' '; + position: absolute; + border-style: solid; + display: inline-block; + border-width: 0 0 15px 15px; + border-color: transparent transparent #242b31 transparent; +} +.dropdown-menu-v2 > li > a { + clear: both; + color: #606e7a; + display: block; + font-weight: 600; + padding: 8px 20px; + position: relative; + white-space: nowrap; + line-height: 1.42857143; + text-transform: uppercase; +} +.dropdown-menu-v2 > li > a:hover, .dropdown-menu-v2 > li > a:focus { + background: #21282e; + text-decoration: none; + color: #009dc7; +} +.dropdown-menu-v2 .active > a, +.dropdown-menu-v2 .active > a:hover, +.dropdown-menu-v2 .active > a:focus, +.dropdown-menu-v2 .active > a, +.dropdown-menu-v2 .active > a:hover, +.dropdown-menu-v2 .active > a:focus, +.dropdown-menu-v2 .active > a, +.dropdown-menu-v2 .active > a:hover, +.dropdown-menu-v2 .active > a:focus { + outline: 0; + text-decoration: none; + background-color: #21282e; + color: #009dc7; +} +.dropdown-menu-v2 .disabled > a, +.dropdown-menu-v2 .disabled > a:hover, +.dropdown-menu-v2 .disabled > a:focus, +.dropdown-menu-v2 .disabled > a, +.dropdown-menu-v2 .disabled > a:hover, +.dropdown-menu-v2 .disabled > a:focus, +.dropdown-menu-v2 .disabled > a, +.dropdown-menu-v2 .disabled > a:hover, +.dropdown-menu-v2 .disabled > a:focus { + color: #009dc7; +} +.dropdown-menu-v2 .disabled > a:hover, +.dropdown-menu-v2 .disabled > a:focus, +.dropdown-menu-v2 .disabled > a:hover, +.dropdown-menu-v2 .disabled > a:focus { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; +} +.dropdown-menu-v2 .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background: #2e353c; +} +.dropdown-menu-v2 .badge { + top: 8px; + right: 10px; + position: absolute; +} + +.dropdown-menu-v2.pull-right { + right: 0; + left: auto; +} + +.open > .dropdown-menu-v2 { + display: block; +} + +.pull-right > .dropdown-menu-v2 { + right: 0; + left: auto; +} + +/*** +System feeds +***/ +.feeds { + margin: 0px; + padding: 0px; + list-style: none; +} +.feeds li { + background-color: #fafafa; + color: #82949a; + margin-bottom: 7px; +} +.feeds li:before, .feeds li:after { + display: table; + line-height: 0; + content: ""; +} +.feeds li:after { + clear: both; +} +.feeds li:last-child { + margin-bottom: 0px; +} +.feeds li .col1 { + float: left; + width: 100%; + clear: both; +} +.feeds li .col1 > .cont { + float: left; + margin-right: 75px; + overflow: hidden; +} +.feeds li .col1 > .cont > .cont-col1 { + float: left; + margin-right: -100%; +} +.feeds li .col1 > .cont > .cont-col1 > .label { + display: inline-block; + padding: 5px 4px 6px 5px; + vertical-align: middle; + text-align: center; +} +.feeds li .col1 > .cont > .cont-col1 > .label > i { + text-align: center; + font-size: 14px; +} +.feeds li .col1 > .cont > .cont-col2 { + float: left; + width: 100%; +} +.feeds li .col1 > .cont > .cont-col2 > .desc { + margin-left: 35px; + padding-top: 4px; + padding-bottom: 5px; + overflow: hidden; +} +.feeds li .col2 { + float: left; + width: 75px; + margin-left: -75px; +} +.feeds li .col2 > .date { + padding: 4px 9px 5px 4px; + text-align: right; + font-style: italic; + color: #c1cbd0; +} + +/*** +Form Layouts +****/ +/* Static info */ +.static-info { + margin-bottom: 10px; +} +.static-info .name { + font-size: 14px; +} +.static-info .value { + font-size: 14px; + font-weight: 600; +} +.static-info.align-reverse .name, .static-info.align-reverse .value { + text-align: right; +} + +/* Help blocks */ +.help-block { + margin-top: 5px; + margin-bottom: 5px; +} + +.help-inline { + font-size: 13px; + color: #737373; + display: inline-block; + padding: 5px; +} + +.form-inline input { + margin-bottom: 0px !important; +} + +/* Control Label */ +.control-label { + margin-top: 1px; + margin-bottom: 1px; +} +.control-label .required { + color: #e02222; + font-size: 12px; + padding-left: 2px; +} + +.form { + padding: 0 !important; +} +.form .form-body { + padding: 10px; +} +.portlet.light .form .form-body { + padding-left: 0; + padding-right: 0; +} +.form .form-actions { + padding: 20px 10px; + margin: 0; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} +.portlet.light .form .form-actions { + background: none; + padding-left: 0; + padding-right: 0; +} +.form .form-actions.noborder { + border-top: 0; +} +.portlet .form .form-actions { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + -ms-border-radius: 0 0 4px 4px; + -o-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.form .form-actions:before, .form .form-actions:after { + content: " "; + display: table; +} +.form .form-actions:after { + clear: both; +} +.form .form-actions.right { + padding-left: 0; + padding-right: 10px; + text-align: right; +} +.portlet.light .form .form-actions.right { + padding-right: 0; +} +.form .form-actions.left { + padding-left: 10px; + padding-right: 0; + text-align: left; +} +.portlet.light .form .form-actions.left { + padding-left: 0; +} +.form .form-actions.nobg { + background-color: transparent; +} +.form .form-actions.top { + margin-top: 0; + margin-bottom: 20px; + border-top: 0; + border-bottom: 1px solid #e5e5e5; +} +.portlet.light .form .form-actions.top { + background: none; +} +.form .form-actions .btn-set { + display: inline-block; +} +@media (max-width: 767px) { + .form .form-actions { + /* 767px */ + } + .form .form-actions .btn-set { + margin-bottom: 3px; + margin-top: 3px; + float: left !important; + } +} +.form .form-section { + margin: 30px 0px 25px 0px; + padding-bottom: 5px; + border-bottom: 1px solid #eee; +} +.form .form-section:first-child { + margin-top: 5px; +} + +/* Checkboxes */ +.checkbox, +.form-horizontal .checkbox { + padding: 0; +} +.checkbox > label, +.form-horizontal .checkbox > label { + padding-left: 0; +} + +.checkbox-list > label { + display: block; +} +.checkbox-list > label.checkbox-inline { + display: inline-block; +} +.checkbox-list > label.checkbox-inline:first-child { + padding-left: 0; +} + +/* Radio buttons */ +.radio-list > label { + display: block; +} +.radio-list > label.radio-inline { + display: inline-block; +} +.radio-list > label.radio-inline:first-child { + padding-left: 0; +} + +/* Radio buttons in horizontal forms */ +.form-horizontal .radio-list .radio { + padding-top: 1px; +} +.form-horizontal .radio-list > label { + margin-bottom: 0; +} +.form-horizontal .radio > span { + margin-top: 2px; +} + +/* Rows seperated form layout */ +.form .form-row-seperated .portlet-body { + padding: 0; +} +.form .form-row-seperated .form-group { + margin: 0; + border-bottom: 1px solid #efefef; + padding: 15px 0; +} +.form .form-row-seperated .form-group.last { + border-bottom: 0; + margin-bottom: 0; + padding-bottom: 13px; +} +.form .form-row-seperated .form-group .help-block { + margin-bottom: 0; +} +.form .form-row-seperated .form-body { + padding: 0; +} +.form .form-row-seperated .form-actions { + padding-left: 15px !important; + padding-right: 15px !important; +} + +/* Form bordered */ +.form .form-bordered .form-group { + margin: 0; + border-bottom: 1px solid #efefef; +} +.form .form-bordered .form-group > div { + padding: 15px; + border-left: 1px solid #efefef; +} +@media (max-width: 991px) { + .form .form-bordered .form-group > div { + /* 991px */ + border-left: 0; + } +} +.form .form-bordered .form-group.last { + border-bottom: 0; +} +.form .form-bordered .form-group .control-label { + padding-top: 20px; +} +@media (max-width: 991px) { + .form .form-bordered .form-group .control-label { + /* 991px */ + padding-top: 10px; + } +} +.form .form-bordered .form-group .help-block { + margin-bottom: 0; +} +.form .form-bordered .form-group .form-control { + margin: 0; +} +.form .form-bordered .form-body { + margin: 0; + padding: 0; +} +.form .form-bordered .form-actions { + margin-top: 0; + padding-left: 16px !important; + padding-right: 16px !important; +} +@media (max-width: 991px) { + .form .form-bordered .form-actions { + /* 991px */ + padding-left: 15px !important; + padding-right: 15px !important; + } +} + +/* Horizontal bordered form */ +.form .form-horizontal.form-bordered.form-row-stripped .form-group:nth-child(even) { + background-color: #fcfcfc; +} +.form .form-horizontal.form-bordered.form-row-stripped .form-control { + background: #fff !important; +} +.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) { + background-color: #fcfcfc; +} +.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) > div { + background-color: #ffffff; +} +.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even) { + background-color: #fcfcfc; +} + +/*** +Forms +***/ +/* Input placeholder font color */ +.form-control::-moz-placeholder { + color: #b3b3b3; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: #b3b3b3; +} +.form-control::-webkit-input-placeholder { + color: #b3b3b3; +} + +/* Form inputs */ +.form-control { + font-size: 14px; + font-weight: normal; + color: #333; + background-color: #fff; + border: 1px solid #e5e5e5; + box-shadow: none; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + -ms-border-radius: 4px; + -o-border-radius: 4px; + border-radius: 4px; +} +.form-control:focus { + border-color: #999; + outline: 0; + -webkit-box-shadow: none; + box-shadow: none; +} +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { + cursor: not-allowed; + background-color: #eeeeee; +} +.form-control.height-auto { + height: auto; +} +.form-control.form-control-solid { + background-color: #F1F3F8; + border-color: #F1F3F8; + color: #A6B2BA; +} +.form-control.form-control-solid:focus { + border-color: #e3e7f1; +} +.form-control.form-control-solid::-moz-placeholder { + color: #acb7be; + opacity: 1; +} +.form-control.form-control-solid:-ms-input-placeholder { + color: #acb7be; +} +.form-control.form-control-solid::-webkit-input-placeholder { + color: #acb7be; +} + +/* Form uneditable input */ +.uneditable-input { + padding: 6px 12px; + min-width: 206px; + font-size: 14px; + font-weight: normal; + height: 34px; + color: #333; + background-color: #fff; + border: 1px solid #e5e5e5; + -webkit-box-shadow: none; + box-shadow: none; + -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} + +/* Form input sizing */ +.input-mini { + width: 45px !important; +} + +.input-xsmall { + width: 80px !important; +} + +.input-small { + width: 145px !important; +} + +.input-medium { + width: 240px !important; +} + +.input-large { + width: 320px !important; +} + +.input-xlarge { + width: 420px !important; +} + +.input-inline { + display: inline-block; + width: auto; + vertical-align: middle; +} + +.input-fixed { + overflow: hidden; +} + +.form-group .input-inline { + margin-right: 5px; +} + +.input-sm { + height: 28px; + padding: 5px 10px; + font-size: 13px; +} + +select.input-sm { + height: 28px; + line-height: 28px; + padding: 2px 10px; +} + +@media (max-width: 768px) { + /* 768px */ + .input-large { + width: 250px !important; + } + + .input-xlarge { + width: 300px !important; + } +} +/* Input groups */ +.input-group .btn-default { + border-color: #e5e5e5; +} +.input-group .input-group-addon { + border-color: #e5e5e5; + background: #e5e5e5; + min-width: 39px; +} +.input-group .input-group-addon > i { + color: #999; +} + +/* Input spinner */ +input[type="text"].spinner, +input[type="password"].spinner, +input[type="datetime"].spinner, +input[type="datetime-local"].spinner, +input[type="date"].spinner, +input[type="month"].spinner, +input[type="time"].spinner, +input[type="week"].spinner, +input[type="number"].spinner, +input[type="email"].spinner, +input[type="url"].spinner, +input[type="search"].spinner, +input[type="tel"].spinner, +input[type="color"].spinner { + background-image: url("../img/input-spinner.gif") !important; + background-repeat: no-repeat; + background-position: right 8px; +} + +/* Form labels */ +label { + font-weight: 400; + font-size: 14px; +} + +/* Static form control */ +.form-control-static { + margin: 2px 0; + display: inline-block; +} + +/* Feedback states */ +.has-success .help-block, +.has-success .help-inline, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline { + color: #3c763d; +} +.has-success .form-control { + border-color: #d6e9c6; + -webkit-box-shadow: none; + box-shadow: none; +} +.has-success .form-control:focus { + border-color: #bbdba1; + -webkit-box-shadow: none; + box-shadow: none; +} +.has-success .input-group-addon { + color: #3c763d; + border-color: #d6e9c6; + background-color: #dff0d8; +} +.has-success .input-group-addon > i { + color: #3c763d; +} +.has-success .form-control-feedback { + color: #3c763d; +} + +.has-warning .help-block, +.has-warning .help-inline, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline { + color: #8a6d3b; +} +.has-warning .form-control { + border-color: #faebcc; + -webkit-box-shadow: none; + box-shadow: none; +} +.has-warning .form-control:focus { + border-color: #f5d89e; + -webkit-box-shadow: none; + box-shadow: none; +} +.has-warning .input-group-addon { + color: #8a6d3b; + border-color: #faebcc; + background-color: #fcf8e3; +} +.has-warning .input-group-addon > i { + color: #8a6d3b; +} +.has-warning .form-control-feedback { + color: #8a6d3b; +} + +.has-error .help-block, +.has-error .help-inline, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline { + color: #a94442; +} +.has-error .form-control { + border-color: #ebccd1; + -webkit-box-shadow: none; + box-shadow: none; +} +.has-error .form-control:focus { + border-color: #dca7b0; + -webkit-box-shadow: none; + box-shadow: none; +} +.has-error .input-group-addon { + color: #a94442; + border-color: #ebccd1; + background-color: #f2dede; +} +.has-error .input-group-addon > i { + color: #a94442; +} +.has-error .form-control-feedback { + color: #a94442; +} + +/* Circle Inputs */ +.input-circle { + border-radius: 25px !important; +} + +.input-circle-right { + border-radius: 0 25px 25px 0 !important; +} + +.input-circle-left { + border-radius: 25px 0 0 25px !important; +} + +.input-circle-bottom { + border-radius: 0 0 25px 25px !important; +} + +.input-circle-top { + border-radius: 25px 25px 0 0 !important; +} + +/*** +Custom icon buttons +***/ +.icon-btn { + height: 60px; + min-width: 80px; + margin: 5px 5px 0 0; + border: 1px solid #ddd; + padding: 12px 0px 0px 0px; + background-color: #fafafa; + background-image: none; + filter: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + display: inline-block; + color: #646464; + text-shadow: none; + text-align: center; + cursor: pointer; + position: relative; + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; +} +.icon-btn:hover { + text-decoration: none; + border-color: #999; + color: #444; + text-shadow: 0 1px 0px white; + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.icon-btn:hover > .badge { + -webkit-transition: all 0.3s ease; + -moz-transition: all 0.3s ease; + -ms-transition: all 0.3s ease; + -o-transition: all 0.3s ease; + transition: all 0.3s ease; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.icon-btn > div { + margin-top: 5px; + margin-bottom: 20px; + color: #000; + font-size: 12px; + font-weight: 300; +} +.icon-btn > .badge { + position: absolute; + font-size: 11px; + font-weight: 300; + top: -5px; + right: -5px; + padding: 3px 6px 3px 6px; + color: white; + text-shadow: none; + border-width: 0; + border-style: solid; + -webkit-border-radius: 12px; + -moz-border-radius: 12px; + border-radius: 12px; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.icon-btn > i { + font-size: 18px; +} +.ie8 .icon-btn:hover { + filter: none; +} + +/*** +Input icons +***/ +.input-icon { + position: relative; +} +.input-icon > .form-control { + padding-left: 33px; +} +.input-group .input-icon > .form-control { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + -ms-border-radius: 4px 0 0 4px; + -o-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.input-icon > i { + color: #ccc; + display: block; + position: absolute; + margin: 11px 2px 4px 10px; + z-index: 3; + width: 16px; + font-size: 16px; + text-align: center; +} +.modal .input-icon > i { + z-index: 10055; +} +.has-success .input-icon > i { + color: #45B6AF; +} +.has-warning .input-icon > i { + color: #dfba49; +} +.has-info .input-icon > i { + color: #89C4F4; +} +.has-error .input-icon > i { + color: #F3565D; +} +.input-icon.right > .form-control { + padding-right: 33px; + padding-left: 12px; +} +.input-group .input-icon.right > .form-control { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + -ms-border-radius: 0 4px 4px 0; + -o-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.input-icon.right > i { + right: 8px; + float: right; +} +.input-icon.input-icon-lg > i { + margin-top: 16px; +} +.input-icon.input-icon-sm > i { + margin-top: 8px; + font-size: 13px; +} + +/*** +Customized Bootstrap Labels +***/ +.label { + text-shadow: none !important; + font-size: 13px; + font-weight: 300; + padding: 3px 6px 3px 6px; + color: #fff; + font-family: "Open Sans", sans-serif; +} +.label.label-sm { + font-size: 12px; + padding: 0px 4px 1px 4px; +} +h1 .label, h2 .label, h3 .label, h4 .label, h5 .label, h6 .label { + font-size: 75%; +} + +/* Labels variants */ +.label-default { + background-color: #c6c6c6; +} +.label-default[href]:hover, .label-default[href]:focus { + background-color: #adadad; +} + +.label-primary { + background-color: #428bca; +} +.label-primary[href]:hover, .label-primary[href]:focus { + background-color: #3071a9; +} + +.label-success { + background-color: #45B6AF; +} +.label-success[href]:hover, .label-success[href]:focus { + background-color: #37918b; +} + +.label-info { + background-color: #89C4F4; +} +.label-info[href]:hover, .label-info[href]:focus { + background-color: #5aadf0; +} + +.label-warning { + background-color: #dfba49; +} +.label-warning[href]:hover, .label-warning[href]:focus { + background-color: #d0a625; +} + +.label-danger { + background-color: #F3565D; +} +.label-danger[href]:hover, .label-danger[href]:focus { + background-color: #f0262f; +} + +/*** +Iconic labels +***/ +.label.label-icon { + padding: 4px 0px 4px 4px; + margin-right: 2px; + text-align: center !important; +} +.label.label-icon > i { + font-size: 12px; + text-align: center !important; +} +.ie8 .label.label-icon, .ie9 .label.label-icon { + padding: 3px 0px 3px 3px; +} + +/*** +Text states +***/ +.text-default { + color: #c6c6c6; +} + +.text-primary { + color: #428bca; +} + +.text-success { + color: #45B6AF; +} + +.text-info { + color: #89C4F4; +} + +.text-warning { + color: #dfba49; +} + +.text-danger { + color: #F3565D; +} + +/*** +Customized List Group +***/ +/* Contextual variants */ +.list-group > li:first-child { + border-radius-topleft: 4px; + border-radius-topright: 4px; +} +.list-group > li:last-child { + border-radius-bottomleft: 4px; + border-radius-bottomright: 4px; +} + +.list-group .list-group-item-success { + color: #3c763d; + background-color: #dff0d8; +} +.list-group a.list-group-item-success { + color: #3c763d; +} +.list-group a.list-group-item-success .list-group-item-heading { + color: inherit; +} +.list-group a.list-group-item-success:hover, .list-group a.list-group-item-success:focus { + color: #3c763d; + background-color: #d0e9c6; +} +.list-group a.list-group-item-success.active, .list-group a.list-group-item-success.active:hover, .list-group a.list-group-item-success.active:focus { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; +} + +.list-group .list-group-item-info { + color: #31708f; + background-color: #d9edf7; +} +.list-group a.list-group-item-info { + color: #31708f; +} +.list-group a.list-group-item-info .list-group-item-heading { + color: inherit; +} +.list-group a.list-group-item-info:hover, .list-group a.list-group-item-info:focus { + color: #31708f; + background-color: #c4e3f3; +} +.list-group a.list-group-item-info.active, .list-group a.list-group-item-info.active:hover, .list-group a.list-group-item-info.active:focus { + color: #fff; + background-color: #31708f; + border-color: #31708f; +} + +.list-group .list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; +} +.list-group a.list-group-item-warning { + color: #8a6d3b; +} +.list-group a.list-group-item-warning .list-group-item-heading { + color: inherit; +} +.list-group a.list-group-item-warning:hover, .list-group a.list-group-item-warning:focus { + color: #8a6d3b; + background-color: #faf2cc; +} +.list-group a.list-group-item-warning.active, .list-group a.list-group-item-warning.active:hover, .list-group a.list-group-item-warning.active:focus { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; +} + +.list-group .list-group-item-danger { + color: #a94442; + background-color: #f2dede; +} +.list-group a.list-group-item-danger { + color: #a94442; +} +.list-group a.list-group-item-danger .list-group-item-heading { + color: inherit; +} +.list-group a.list-group-item-danger:hover, .list-group a.list-group-item-danger:focus { + color: #a94442; + background-color: #ebcccc; +} +.list-group a.list-group-item-danger.active, .list-group a.list-group-item-danger.active:hover, .list-group a.list-group-item-danger.active:focus { + color: #fff; + background-color: #a94442; + border-color: #a94442; +} + +/*** +UI Loading +***/ +.loading-message { + display: inline-block; + min-width: 125px; + margin-left: -60px; + padding: 10px; + margin: 0 auto; + color: #000 !important; + font-size: 13px; + font-weight: 400; + text-align: center; + vertical-align: middle; +} +.loading-message.loading-message-boxed { + border: 1px solid #ddd; + background-color: #eee; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + -ms-border-radius: 4px; + -o-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); +} +.loading-message > span { + line-height: 20px; + vertical-align: middle; +} + +.page-loading { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + -ms-border-radius: 4px; + -o-border-radius: 4px; + border-radius: 4px; + position: fixed; + top: 50%; + left: 50%; + min-width: 125px; + margin-left: -60px; + margin-top: -30px; + padding: 7px; + text-align: center; + color: #333; + font-size: 13px; + border: 1px solid #ddd; + background-color: #eee; + vertical-align: middle; + -webkit-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1); +} +.page-loading > span { + line-height: 20px; + vertical-align: middle; +} + +.page-spinner-bar { + position: fixed; + z-index: 10051; + width: 100px; + top: 40%; + left: 50%; + margin-left: -55px; + text-align: center; +} +.page-spinner-bar > div { + margin: 0 5px; + width: 18px; + height: 18px; + background: #eee; + border-radius: 100% !important; + display: inline-block; + -webkit-animation: bounceDelay 1.4s infinite ease-in-out; + animation: bounceDelay 1.4s infinite ease-in-out; + /* Prevent first frame from flickering when animation starts */ + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} +.page-spinner-bar .bounce1 { + -webkit-animation-delay: -0.32s; + animation-delay: -0.32s; +} +.page-spinner-bar .bounce2 { + -webkit-animation-delay: -0.16s; + animation-delay: -0.16s; +} + +.block-spinner-bar { + display: inline-block; + width: 80px; + text-align: center; +} +.block-spinner-bar > div { + margin: 0 2px; + width: 15px; + height: 15px; + background: #eee; + border-radius: 100% !important; + display: inline-block; + -webkit-animation: bounceDelay 1.4s infinite ease-in-out; + animation: bounceDelay 1.4s infinite ease-in-out; + /* Prevent first frame from flickering when animation starts */ + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} +.block-spinner-bar .bounce1 { + -webkit-animation-delay: -0.32s; + animation-delay: -0.32s; +} +.block-spinner-bar .bounce2 { + -webkit-animation-delay: -0.16s; + animation-delay: -0.16s; +} + +/*** +Metro icons +***/ +[class^="m-icon-"] { + display: inline-block; + width: 14px; + height: 14px; + margin-top: 3px; + line-height: 14px; + vertical-align: top; + background-image: url(../img/syncfusion-icons.png); + background-position: 0 0; + background-repeat: no-repeat; +} + +[class^="m-icon-big-"] { + display: inline-block; + width: 30px; + height: 30px; + margin: 6px; + vertical-align: middle; + background-image: url(../img/syncfusion-icons.png); + background-position: 0 0px; + background-repeat: no-repeat; +} + +/* large icons */ +.btn.m-icon-big { + padding: 9px 16px 8px 16px; +} + +.btn.m-icon-big.m-icon-only { + padding: 9px 8px 8px 0px; +} + +.btn.m-icon-big [class^="m-icon-big-"] { + margin: 0 0 0 10px; +} + +.btn.m-icon-ony > i { + margin-left: 0px; +} + +/* default icons */ +.btn.m-icon { + padding: 7px 14px 7px 14px; +} + +.btn.m-icon [class^="m-icon-"] { + margin: 4px 0 0 5px; +} + +.btn.m-icon.m-icon-only { + padding: 7px 10px 7px 6px; +} + +/* white icon */ +.m-icon-white { + background-image: url(../img/syncfusion-icons-white.png); +} + +/* Misc */ +.m-icon-swapright { + background-position: -27px -10px; +} + +.m-icon-swapdown { + background-position: -68px -10px; +} + +.m-icon-swapleft { + background-position: -8px -10px; +} + +.m-icon-swapup { + background-position: -46px -10px; +} + +.m-icon-big-swapright { + background-position: -42px -28px; +} + +.m-icon-big-swapdown { + background-position: -115px -28px; +} + +.m-icon-big-swapleft { + background-position: -6px -28px; +} + +.m-icon-big-swapup { + background-position: -78px -28px; +} + +/*** +Customized Bootstrap Modal +***/ +.modal { + z-index: 10050; + outline: none; + overflow-y: auto !important; + /* Fix content shifting to the right on modal open due to scrollbar closed */ +} +.page-portlet-fullscreen .modal { + z-index: 10060; +} +.modal .modal-header { + border-bottom: 1px solid #EFEFEF; +} +.modal .modal-header h3 { + font-weight: 300; +} +.modal .modal-header .close { + margin-top: 0px !important; +} +.modal.draggable-modal .modal-header { + cursor: move; +} +.modal .modal-dialog { + z-index: 10051; +} +.modal > .loading { + position: absolute; + top: 50%; + left: 50%; + margin-top: -22px; + margin-left: -22px; +} +.modal.in .page-loading { + display: none; +} + +.modal-open { + overflow-y: auto !important; +} + +.modal-open-noscroll { + overflow-y: hidden !important; +} + +.modal-backdrop { + border: 0; + outline: none; + z-index: 10049; +} +.page-portlet-fullscreen .modal-backdrop { + z-index: 10059; +} +.modal-backdrop, .modal-backdrop.fade.in { + background-color: #333 !important; +} + +/* Full width modal */ +.modal-full.modal-dialog { + width: 99%; +} + +@media (max-width: 768px) { + .modal-full.modal-dialog { + width: auto; + } +} +/*** +Notes +***/ +.note { + margin: 0 0 20px 0; + padding: 15px 30px 15px 15px; + border-left: 5px solid #eee; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + -ms-border-radius: 0 4px 4px 0; + -o-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.note h1, +.note h2, +.note h3, +.note h4, +.note h5, +.note h6 { + margin-top: 0; +} +.note h1 .close, +.note h2 .close, +.note h3 .close, +.note h4 .close, +.note h5 .close, +.note h6 .close { + margin-right: -10px; +} +.note p { + font-size: 13px; +} +.note p:last-child { + margin-bottom: 0; +} +.note code, +.note .highlight { + background-color: #fff; +} +.note.note-default { + background-color: lightgray; + border-color: #adadad; + color: #333333; +} +.note.note-default.note-bordered { + background-color: #c3c3c3; + border-color: #a0a0a0; +} +.note.note-default.note-shadow { + background-color: #c6c6c6; + border-color: #a0a0a0; + box-shadow: 5px 5px rgba(162, 162, 162, 0.2); +} +.note.note-primary { + background-color: #5697d0; + border-color: #3085a9; + color: #D8E3F2; +} +.note.note-primary.note-bordered { + background-color: #3e89c9; + border-color: #2a7696; +} +.note.note-primary.note-shadow { + background-color: #428bca; + border-color: #2a7696; + box-shadow: 5px 5px rgba(43, 121, 154, 0.2); +} +.note.note-success { + background-color: #eef7ea; + border-color: #c9e2b3; + color: #3c763d; +} +.note.note-success.note-bordered { + background-color: #dcefd4; + border-color: #bbdba1; +} +.note.note-success.note-shadow { + background-color: #dff0d8; + border-color: #bbdba1; + box-shadow: 5px 5px rgba(190, 220, 164, 0.2); +} +.note.note-info { + background-color: #eef7fb; + border-color: #a6e1ec; + color: #31708f; +} +.note.note-info.note-bordered { + background-color: #d5ebf6; + border-color: #91d9e8; +} +.note.note-info.note-shadow { + background-color: #d9edf7; + border-color: #91d9e8; + box-shadow: 5px 5px rgba(150, 219, 233, 0.2); +} +.note.note-warning { + background-color: #fcf8e3; + border-color: #f5d89e; + color: #8a6d3b; +} +.note.note-warning.note-bordered { + background-color: #f9f1c7; + border-color: #f2cf87; +} +.note.note-warning.note-shadow { + background-color: #faf2cc; + border-color: #f2cf87; + box-shadow: 5px 5px rgba(243, 209, 139, 0.2); +} +.note.note-danger { + background-color: #f9f0f0; + border-color: #e4b9c0; + color: #a94442; +} +.note.note-danger.note-bordered { + background-color: #f1dada; + border-color: #dca7b0; +} +.note.note-danger.note-shadow { + background-color: #f2dede; + border-color: #dca7b0; + box-shadow: 5px 5px rgba(222, 171, 179, 0.2); +} + +/*** +Customized Bootstrap Pagination +***/ +.pagination { + margin: 10px 0; +} +.pagination.pagination-circle > li:first-child > a { + border-radius: 25px 0 0 25px !important; +} +.pagination.pagination-circle > li:last-child > a { + border-radius: 0 25px 25px 0 !important; +} +.pagination .active > a, +.pagination .active > a:hover { + background: #eee; + border-color: #dddddd; + color: #333; +} + +/*** +Customized Bootstrap Panels +***/ +.panel { + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} +.panel-group .panel { + overflow: visible; +} +.panel .panel-body { + font-size: 13px; +} +.panel .panel-title > a:hover { + text-decoration: none; +} +.accordion .panel .panel-heading { + padding: 0; +} +.accordion .panel .panel-title { + padding: 0; +} +.accordion .panel .panel-title .accordion-toggle { + display: block; + padding: 10px 15px; +} +.accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled { + background: url("../img/accordion-plusminus.png") no-repeat; + background-position: right -19px; + margin-right: 15px; +} +.accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled.collapsed { + background-position: right 12px; +} + +.panel-default { + border-color: #e0e0e0; +} +.panel-default > .panel-heading { + color: #333333; + background-color: #f9f9f9; + border-color: #e0e0e0; +} +.panel-default > .panel-heading + .panel-collapse .panel-body { + border-top-color: #e0e0e0; +} +.panel-default > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #e0e0e0; +} + +.panel-primary { + border-color: #3595bd; +} +.panel-primary > .panel-heading { + color: #D8E3F2; + background-color: #428bca; + border-color: #3595bd; +} +.panel-primary > .panel-heading + .panel-collapse .panel-body { + border-top-color: #3595bd; +} +.panel-primary > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #3595bd; +} + +.panel-success { + border-color: #d6e9c6; +} +.panel-success > .panel-heading { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.panel-success > .panel-heading + .panel-collapse .panel-body { + border-top-color: #d6e9c6; +} +.panel-success > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #d6e9c6; +} + +.panel-info { + border-color: #bce8f1; +} +.panel-info > .panel-heading { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} +.panel-info > .panel-heading + .panel-collapse .panel-body { + border-top-color: #bce8f1; +} +.panel-info > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #bce8f1; +} + +.panel-warning { + border-color: #faebcc; +} +.panel-warning > .panel-heading { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} +.panel-warning > .panel-heading + .panel-collapse .panel-body { + border-top-color: #faebcc; +} +.panel-warning > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #faebcc; +} + +.panel-danger { + border-color: #ebccd1; +} +.panel-danger > .panel-heading { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} +.panel-danger > .panel-heading + .panel-collapse .panel-body { + border-top-color: #ebccd1; +} +.panel-danger > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #ebccd1; +} + +/*** +Accordions +***/ +.accordion-heading { + background: #eee; +} +.accordion-heading a { + text-decoration: none; +} +.accordion-heading a:hover { + text-decoration: none; +} + +/*** +Customized Bootstrap Popover +***/ +.popover { + box-shadow: 5px 5px rgba(102, 102, 102, 0.1); + padding: 0; +} +.popover .popover-title { + margin: 0 !important; +} + +.popover.name .popover-title, +name .popover .popover-content, +.popover.name .popover-content { + color: #89C4F4; +} + +.popover.name .popover-title, +name .popover .popover-content, +.popover.name .popover-content { + color: #428bca; +} + +.popover.name .popover-title, +name .popover .popover-content, +.popover.name .popover-content { + color: #45B6AF; +} + +.popover.name .popover-title, +name .popover .popover-content, +.popover.name .popover-content { + color: #dfba49; +} + +.popover.name .popover-title, +name .popover .popover-content, +.popover.name .popover-content { + color: #F3565D; +} + +/*** +Portlets +***/ +/* Full Screen portlet mode */ +.page-portlet-fullscreen { + overflow: hidden; +} + +/* Basic portlet */ +.portlet { + margin-top: 0px; + margin-bottom: 25px; + padding: 0px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + -ms-border-radius: 4px; + -o-border-radius: 4px; + border-radius: 4px; +} +.portlet.portlet-fullscreen { + z-index: 10060; + margin: 0; + position: fixed; + top: 0; + left: 0; + bottom: 0; + right: 0; + width: 100%; + height: 100%; + background: #fff; +} +.portlet.portlet-fullscreen > .portlet-body { + overflow-y: auto; + overflow-x: hidden; + padding: 0 10px; +} +.portlet.portlet-fullscreen > .portlet-title { + padding: 0 10px; +} +.portlet > .portlet-title { + border-bottom: 1px solid #eee; + padding: 0; + margin-bottom: 10px; + min-height: 41px; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + -ms-border-radius: 4px 4px 0 0; + -o-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.portlet > .portlet-title:before, .portlet > .portlet-title:after { + content: " "; + display: table; +} +.portlet > .portlet-title:after { + clear: both; +} +.portlet > .portlet-title > .caption { + float: left; + display: inline-block; + font-size: 18px; + line-height: 18px; + padding: 10px 0; +} +.portlet > .portlet-title > .caption.bold { + font-weight: 400; +} +.portlet > .portlet-title > .caption > i { + float: left; + margin-top: 4px; + display: inline-block; + font-size: 13px; + margin-right: 5px; + color: #666; +} +.portlet > .portlet-title > .caption > i.glyphicon { + margin-top: 2px; +} +.portlet > .portlet-title > .caption > .caption-helper { + padding: 0; + margin: 0; + line-height: 13px; + color: #9eacb4; + font-size: 13px; + font-weight: 400; +} +.portlet > .portlet-title > .actions { + float: right; + display: inline-block; + padding: 6px 0; +} +.portlet > .portlet-title > .actions > .dropdown-menu i { + color: #555555; +} +.portlet > .portlet-title > .actions > .btn, +.portlet > .portlet-title > .actions > .btn.btn-sm, +.portlet > .portlet-title > .actions > .btn-group > .btn, +.portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm { + padding: 4px 10px; + font-size: 13px; + line-height: 1.5; +} +.portlet > .portlet-title > .actions > .btn.btn-default, +.portlet > .portlet-title > .actions > .btn.btn-sm.btn-default, +.portlet > .portlet-title > .actions > .btn-group > .btn.btn-default, +.portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm.btn-default { + padding: 3px 9px; +} +.portlet > .portlet-title > .actions > .btn > i, +.portlet > .portlet-title > .actions > .btn.btn-sm > i, +.portlet > .portlet-title > .actions > .btn-group > .btn > i, +.portlet > .portlet-title > .actions > .btn-group > .btn.btn-sm > i { + font-size: 13px; +} +.portlet > .portlet-title > .actions .btn-icon-only { + padding: 5px 7px 3px 7px; +} +.portlet > .portlet-title > .actions .btn-icon-only.btn-default { + padding: 4px 6px 2px 6px; +} +.portlet > .portlet-title > .actions .btn-icon-only.btn-default > i { + font-size: 14px; +} +.portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen { + font-family: FontAwesome; + color: #a0a0a0; + padding-top: 3px; +} +.portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.btn-sm { + padding: 3px 3px !important; + height: 27px; + width: 27px; +} +.portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen:before { + content: "\f065"; +} +.portlet > .portlet-title > .actions .btn-icon-only.btn-default.fullscreen.on:before { + content: "\f066"; +} +.portlet > .portlet-title > .tools { + float: right; + display: inline-block; + padding: 12px 0 8px 0; +} +.portlet > .portlet-title > .tools > a { + display: inline-block; + height: 16px; + margin-left: 5px; + opacity: 1 ; + filter: alpha(opacity=100) ; +} +.portlet > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon.png); + background-repeat: no-repeat; + width: 11px; +} +.portlet > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon.png); + background-repeat: no-repeat; + width: 12px; +} +.portlet > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon.png); + width: 13px; +} +.portlet > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon.png); + width: 14px; + visibility: visible; +} +.portlet > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon.png); + width: 14px; + visibility: visible; +} +.portlet > .portlet-title > .tools > a.fullscreen { + display: inline-block; + top: -3px; + position: relative; + font-size: 13px; + font-family: FontAwesome; + color: #ACACAC; +} +.portlet > .portlet-title > .tools > a.fullscreen:before { + content: "\f065"; +} +.portlet > .portlet-title > .tools > a.fullscreen.on:before { + content: "\f066"; +} +.portlet > .portlet-title > .tools > a:hover { + text-decoration: none; + -webkit-transition: all 0.1s ease-in-out; + -moz-transition: all 0.1s ease-in-out; + -o-transition: all 0.1s ease-in-out; + -ms-transition: all 0.1s ease-in-out; + transition: all 0.1s ease-in-out; + opacity: 0.8 ; + filter: alpha(opacity=80) ; +} +.portlet > .portlet-title > .pagination { + float: right; + display: inline-block; + margin: 2px 0 0 0; + border: 0; + padding: 4px 0; +} +.portlet > .portlet-title > .nav-tabs { + background: none; + margin: 0; + float: right; + display: inline-block; + border: 0; +} +.portlet > .portlet-title > .nav-tabs > li { + background: none; + margin: 0; + border: 0; +} +.portlet > .portlet-title > .nav-tabs > li > a { + background: none; + margin: 5px 0 0 1px; + border: 0; + padding: 8px 10px; + color: #fff; +} +.portlet > .portlet-title > .nav-tabs > li.active > a, .portlet > .portlet-title > .nav-tabs > li:hover > a { + color: #333; + background: #fff; + border: 0; +} +.portlet > .portlet-body { + clear: both; + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + -ms-border-radius: 0 0 4px 4px; + -o-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.portlet > .portlet-empty { + min-height: 125px; +} +.portlet.full-height-content { + margin-bottom: 0; +} + +/* Portlet background colors */ +/* Side bordered portlet */ +.portlet.bordered { + border-left: 2px solid #e6e9ec !important; +} +.portlet.bordered > .portlet-title { + border-bottom: 0; +} + +/* Solid colored portlet */ +.portlet.solid { + padding: 0 10px 10px 10px; + border: 0px; +} +.portlet.solid > .portlet-title { + border-bottom: 0; + margin-bottom: 10px; +} +.portlet.solid > .portlet-title > .caption { + padding: 16px 0 2px 0; +} +.portlet.solid > .portlet-title > .actions { + padding: 12px 0 6px 0; +} +.portlet.solid > .portlet-title > .tools { + padding: 14px 0 6px 0; +} + +/* Solid bordered portlet */ +.portlet.solid.bordered > .portlet-title { + margin-bottom: 10px; +} + +/* Box portlet */ +.portlet.box { + padding: 0px !important; +} +.portlet.box > .portlet-title { + border-bottom: 0; + padding: 0 10px; + margin-bottom: 0; + color: #fff; +} +.portlet.box > .portlet-title > .caption { + padding: 11px 0 9px 0; +} +.portlet.box > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.box > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.box > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.box > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.box > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.box > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} +.portlet.box > .portlet-title > .actions { + padding: 7px 0 5px 0; +} +.portlet.box > .portlet-body { + background-color: #fff; + padding: 10px; +} +.portlet.box.portlet-fullscreen > .portlet-body { + padding: 10px; +} + +/* Light Portlet */ +.portlet.light { + padding: 12px 20px 15px 20px; + background-color: #fff; +} +.portlet.light.bordered { + border: 1px solid #e1e1e1 !important; +} +.portlet.light.bordered > .portlet-title { + border-bottom: 1px solid #eee; +} +.portlet.light.bg-inverse { + background: #F7F7F7; +} +.portlet.light > .portlet-title { + padding: 0; + min-height: 48px; +} +.portlet.light > .portlet-title > .caption { + color: #666; + padding: 10px 0; +} +.portlet.light > .portlet-title > .caption > .caption-subject { + font-size: 16px; +} +.portlet.light > .portlet-title > .caption > i { + color: #777; + font-size: 15px; + font-weight: 300; + margin-top: 3px; +} +.portlet.light > .portlet-title > .caption.caption-md > .caption-subject { + font-size: 15px; +} +.portlet.light > .portlet-title > .caption.caption-md > i { + font-size: 14px; +} +.portlet.light > .portlet-title > .actions { + padding: 6px 0 14px 0; +} +.portlet.light > .portlet-title > .actions .btn-default { + color: #666; +} +.portlet.light > .portlet-title > .actions .btn-icon-only { + height: 27px; + width: 27px; +} +.portlet.light > .portlet-title > .actions .dropdown-menu li > a { + color: #555; +} +.portlet.light > .portlet-title > .inputs { + float: right; + display: inline-block; + padding: 4px 0; +} +.portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > i { + font-size: 14px; + margin-top: 9px; +} +.portlet.light > .portlet-title > .inputs > .portlet-input .input-icon > .form-control { + height: 30px; + padding: 2px 26px 3px 10px; + font-size: 13px; +} +.portlet.light > .portlet-title > .inputs > .portlet-input > .form-control { + height: 30px; + padding: 3px 10px; + font-size: 13px; +} +.portlet.light > .portlet-title > .pagination { + padding: 2px 0 13px 0; +} +.portlet.light > .portlet-title > .tools { + padding: 10px 0 13px 0; + margin-top: 2px; +} +.portlet.light > .portlet-title > .nav-tabs > li { + margin: 0; + padding: 0; +} +.portlet.light > .portlet-title > .nav-tabs > li > a { + margin: 0; + padding: 12px 13px 13px 13px; + font-size: 13px; + color: #666; +} +.portlet.light > .portlet-title > .nav-tabs > li.active > a, .portlet.light > .portlet-title > .nav-tabs > li:hover > a { + margin: 0; + background: none; + color: #333; +} +.portlet.light.form-fit { + padding: 0; +} +.portlet.light.form-fit > .portlet-title { + padding: 17px 20px 10px 20px; + margin-bottom: 0; +} +.portlet.light .portlet-body { + padding-top: 8px; +} +.portlet.light.portlet-fullscreen > .portlet-body { + padding: 8px 0; +} + +.tab-pane > p:last-child { + margin-bottom: 0px; +} + +/* Reverse aligned tabs */ +.tabs-reversed > li { + float: right; + margin-right: 0; +} +.tabs-reversed > li > a { + margin-right: 0; +} + +/* jQuery UI Draggable Portlets */ +.portlet-sortable:not(.portlet-fullscreen) > .portlet-title { + cursor: move; +} + +.portlet-sortable-placeholder { + border: 2px dashed #eee; + margin-bottom: 25px; +} + +.portlet-sortable-empty { + box-shadow: none !important; + height: 45px; +} + +/*** +Customized Progress Bars +***/ +.progress { + border: 0; + background-image: none; + filter: none; + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.progress.progress-sm { + height: 12px; +} + +.progress > .progress-bar-default { + background-color: #c6c6c6; +} +.progress-striped .progress > .progress-bar-default { + background-image: none; + background-image: none; +} + +.progress > .progress-bar-success { + background-color: #45B6AF; +} +.progress-striped .progress > .progress-bar-success { + background-image: none; + background-image: none; +} + +.progress > .progress-bar-info { + background-color: #89C4F4; +} +.progress-striped .progress > .progress-bar-info { + background-image: none; + background-image: none; +} + +.progress > .progress-bar-danger { + background-color: #F3565D; +} +.progress-striped .progress > .progress-bar-danger { + background-image: none; + background-image: none; +} + +.progress > .progress-bar-warning { + background-color: #dfba49; +} +.progress-striped .progress > .progress-bar-warning { + background-image: none; + background-image: none; +} + +/*** +Dashboard Stats +***/ +.dashboard-stat { + display: block; + margin-bottom: 25px; + overflow: hidden; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + -ms-border-radius: 4px; + -o-border-radius: 4px; + border-radius: 4px; +} +.dashboard-stat:before, .dashboard-stat:after { + content: " "; + display: table; +} +.dashboard-stat:after { + clear: both; +} +.portlet .dashboard-stat:last-child { + margin-bottom: 0; +} +.dashboard-stat .visual { + width: 80px; + height: 80px; + display: block; + float: left; + padding-top: 10px; + padding-left: 15px; + margin-bottom: 15px; + font-size: 35px; + line-height: 35px; +} +.dashboard-stat .visual > i { + margin-left: -35px; + font-size: 110px; + line-height: 110px; +} +.dashboard-stat .details { + position: absolute; + right: 15px; + padding-right: 15px; +} +.dashboard-stat .details .number { + padding-top: 25px; + text-align: right; + font-size: 34px; + line-height: 36px; + letter-spacing: -1px; + margin-bottom: 0px; + font-weight: 300; +} +.dashboard-stat .details .desc { + text-align: right; + font-size: 16px; + letter-spacing: 0px; + font-weight: 300; +} +.dashboard-stat .more { + clear: both; + display: block; + padding: 6px 10px 6px 10px; + position: relative; + text-transform: uppercase; + font-weight: 300; + font-size: 11px; + opacity: 0.7; + filter: alpha(opacity=70); +} +.dashboard-stat .more:hover { + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} +.dashboard-stat .more > i { + display: inline-block; + margin-top: 1px; + float: right; +} + +.dashboard-stat-light { + padding-bottom: 20px; + margin-bottom: 20px; +} +.dashboard-stat-light .details { + margin-bottom: 5px; +} +.dashboard-stat-light .details .number { + font-weight: 300; + margin-bottom: 0px; +} + +/*** +Dashboard Stats 2 +***/ +.dashboard-stat2 { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + -ms-border-radius: 4px; + -o-border-radius: 4px; + border-radius: 4px; + background: #fff; + padding: 15px 15px 30px 15px; + margin-bottom: 20px; +} +.dashboard-stat2 .display { + margin-bottom: 20px; +} +.dashboard-stat2 .display:before, .dashboard-stat2 .display:after { + content: " "; + display: table; +} +.dashboard-stat2 .display:after { + clear: both; +} +.dashboard-stat2 .display .number { + float: left; + display: inline-block; +} +.dashboard-stat2 .display .number h3 { + margin: 0 0 2px 0; + padding: 0; + font-size: 30px; + font-weight: 400; +} +.dashboard-stat2 .display .number h3 > small { + font-size: 23px; +} +.dashboard-stat2 .display .number small { + font-size: 14px; + color: #AAB5BC; + font-weight: 600; + text-transform: uppercase; +} +.dashboard-stat2 .display .icon { + display: inline-block; + float: right; + padding: 7px 0 0 0; +} +.dashboard-stat2 .display .icon > i { + color: #cbd4e0; + font-size: 26px; +} +.dashboard-stat2 .progress-info { + clear: both; +} +.dashboard-stat2 .progress-info .progress { + margin: 0; + height: 4px; + clear: both; + display: block; +} +.dashboard-stat2 .progress-info .status { + margin-top: 5px; + font-size: 11px; + color: #AAB5BC; + font-weight: 600; + text-transform: uppercase; +} +.dashboard-stat2 .progress-info .status .status-title { + float: left; + display: inline-block; +} +.dashboard-stat2 .progress-info .status .status-number { + float: right; + display: inline-block; +} + +/*** +Text Stats +***/ +.text-stat h3 { + margin-top: 5px; + margin-bottom: 0px; + font-size: 18px; +} +.text-stat span { + font-size: 13px !important; +} + +@media (max-width: 767px) { + /* 767px */ + .text-stat { + margin-top: 20px; + } +} +/*** +Social Icons +***/ +.social-icons { + padding: 0; + margin: 0; +} +.social-icons:before, .social-icons:after { + content: " "; + display: table; +} +.social-icons:after { + clear: both; +} +.social-icons li { + float: left; + display: inline; + list-style: none; + margin-right: 5px; + margin-bottom: 5px; + text-indent: -9999px; +} +.social-icons li > a { + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + -o-border-radius: 2px; + border-radius: 2px; + width: 28px; + height: 28px; + display: block; + background-position: 0 0; + background-repeat: no-repeat; + transition: all 0.3s ease-in-out; + -o-transition: all 0.3s ease-in-out; + -ms-transition: all 0.3s ease-in-out; + -moz-transition: all 0.3s ease-in-out; + -webkit-transition: all 0.3s ease-in-out; +} +.social-icons li:hover > a { + background-position: 0 -38px; +} +.social-icons li .amazon { + background: url(../img/social/amazon.png) no-repeat; +} +.social-icons li .behance { + background: url(../img/social/behance.png) no-repeat; +} +.social-icons li .blogger { + background: url(../img/social/blogger.png) no-repeat; +} +.social-icons li .deviantart { + background: url(../img/social/deviantart.png) no-repeat; +} +.social-icons li .dribbble { + background: url(../img/social/dribbble.png) no-repeat; +} +.social-icons li .dropbox { + background: url(../img/social/dropbox.png) no-repeat; +} +.social-icons li .evernote { + background: url(../img/social/evernote.png) no-repeat; +} +.social-icons li .facebook { + background: url(../img/social/facebook.png) no-repeat; +} +.social-icons li .forrst { + background: url(../img/social/forrst.png) no-repeat; +} +.social-icons li .github { + background: url(../img/social/github.png) no-repeat; +} +.social-icons li .googleplus { + background: url(../img/social/googleplus.png) no-repeat; +} +.social-icons li .jolicloud { + background: url(../img/social/jolicloud.png) no-repeat; +} +.social-icons li .last-fm { + background: url(../img/social/last-fm.png) no-repeat; +} +.social-icons li .linkedin { + background: url(../img/social/linkedin.png) no-repeat; +} +.social-icons li .picasa { + background: url(../img/social/picasa.png) no-repeat; +} +.social-icons li .pintrest { + background: url(../img/social/pintrest.png) no-repeat; +} +.social-icons li .rss { + background: url(../img/social/rss.png) no-repeat; +} +.social-icons li .skype { + background: url(../img/social/skype.png) no-repeat; +} +.social-icons li .spotify { + background: url(../img/social/spotify.png) no-repeat; +} +.social-icons li .stumbleupon { + background: url(../img/social/stumbleupon.png) no-repeat; +} +.social-icons li .tumblr { + background: url(../img/social/tumblr.png) no-repeat; +} +.social-icons li .twitter { + background: url(../img/social/twitter.png) no-repeat; +} +.social-icons li .vimeo { + background: url(../img/social/vimeo.png) no-repeat; +} +.social-icons li .wordpress { + background: url(../img/social/wordpress.png) no-repeat; +} +.social-icons li .xing { + background: url(../img/social/xing.png) no-repeat; +} +.social-icons li .yahoo { + background: url(../img/social/yahoo.png) no-repeat; +} +.social-icons li .youtube { + background: url(../img/social/youtube.png) no-repeat; +} +.social-icons li .vk { + background: url(../img/social/vk.png) no-repeat; +} +.social-icons li .instagram { + background: url(../img/social/instagram.png) no-repeat; +} +.social-icons li .reddit { + background: url(../img/social/reddit.png) no-repeat; +} +.social-icons li .aboutme { + background: url(../img/social/aboutme.png) no-repeat; +} +.social-icons li .flickr { + background: url(../img/social/flickr.png) no-repeat; +} +.social-icons li .foursquare { + background: url(../img/social/foursquare.png) no-repeat; +} +.social-icons li .gravatar { + background: url(../img/social/gravatar.png) no-repeat; +} +.social-icons li .klout { + background: url(../img/social/klout.png) no-repeat; +} +.social-icons li .myspace { + background: url(../img/social/myspace.png) no-repeat; +} +.social-icons li .quora { + background: url(../img/social/quora.png) no-repeat; +} +.social-icons.social-icons-color > li > a { + opacity: 0.7; + background-position: 0 -38px !important; +} +.social-icons.social-icons-color > li > a:hover { + opacity: 1; +} +.social-icons.social-icons-circle > li > a { + border-radius: 25px !important; +} + +/*** +Inline Social Icons +***/ +.social-icon { + display: inline-block !important; + width: 28px; + height: 28px; + background-position: 0 0; + background-repeat: no-repeat; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + -o-border-radius: 2px; + border-radius: 2px; + transition: all 0.3s ease-in-out; + -o-transition: all 0.3s ease-in-out; + -ms-transition: all 0.3s ease-in-out; + -moz-transition: all 0.3s ease-in-out; + -webkit-transition: all 0.3s ease-in-out; +} +.social-icon.social-icon-circle { + border-radius: 25px !important; +} + +.social-icon.amazon { + background: url(../img/social/amazon.png) no-repeat; +} +.social-icon.behance { + background: url(../img/social/behance.png) no-repeat; +} +.social-icon.blogger { + background: url(../img/social/blogger.png) no-repeat; +} +.social-icon.deviantart { + background: url(../img/social/deviantart.png) no-repeat; +} +.social-icon.dribbble { + background: url(../img/social/dribbble.png) no-repeat; +} +.social-icon.dropbox { + background: url(../img/social/dropbox.png) no-repeat; +} +.social-icon.evernote { + background: url(../img/social/evernote.png) no-repeat; +} +.social-icon.facebook { + background: url(../img/social/facebook.png) no-repeat; +} +.social-icon.forrst { + background: url(../img/social/forrst.png) no-repeat; +} +.social-icon.github { + background: url(../img/social/github.png) no-repeat; +} +.social-icon.googleplus { + background: url(../img/social/googleplus.png) no-repeat; +} +.social-icon.jolicloud { + background: url(../img/social/jolicloud.png) no-repeat; +} +.social-icon.last-fm { + background: url(../img/social/last-fm.png) no-repeat; +} +.social-icon.linkedin { + background: url(../img/social/linkedin.png) no-repeat; +} +.social-icon.picasa { + background: url(../img/social/picasa.png) no-repeat; +} +.social-icon.pintrest { + background: url(../img/social/pintrest.png) no-repeat; +} +.social-icon.rss { + background: url(../img/social/rss.png) no-repeat; +} +.social-icon.skype { + background: url(../img/social/skype.png) no-repeat; +} +.social-icon.spotify { + background: url(../img/social/spotify.png) no-repeat; +} +.social-icon.stumbleupon { + background: url(../img/social/stumbleupon.png) no-repeat; +} +.social-icon.tumblr { + background: url(../img/social/tumblr.png) no-repeat; +} +.social-icon.twitter { + background: url(../img/social/twitter.png) no-repeat; +} +.social-icon.vimeo { + background: url(../img/social/vimeo.png) no-repeat; +} +.social-icon.wordpress { + background: url(../img/social/wordpress.png) no-repeat; +} +.social-icon.xing { + background: url(../img/social/xing.png) no-repeat; +} +.social-icon.yahoo { + background: url(../img/social/yahoo.png) no-repeat; +} +.social-icon.youtube { + background: url(../img/social/youtube.png) no-repeat; +} +.social-icon.vk { + background: url(../img/social/vk.png) no-repeat; +} +.social-icon.instagram { + background: url(../img/social/instagram.png) no-repeat; +} +.social-icon.reddit { + background: url(../img/social/reddit.png) no-repeat; +} +.social-icon.aboutme { + background: url(../img/social/aboutme.png) no-repeat; +} +.social-icon.flickr { + background: url(../img/social/flickr.png) no-repeat; +} +.social-icon.foursquare { + background: url(../img/social/foursquare.png) no-repeat; +} +.social-icon.gravatar { + background: url(../img/social/gravatar.png) no-repeat; +} +.social-icon.klout { + background: url(../img/social/klout.png) no-repeat; +} +.social-icon.myspace { + background: url(../img/social/myspace.png) no-repeat; +} +.social-icon.quora { + background: url(../img/social/quora.png) no-repeat; +} +.social-icon:hover { + background-position: 0 -38px; +} + +.social-icon-color { + opacity: 0.7; + background-position: 0 -38px !important; +} +.social-icon-color:hover { + opacity: 1; +} + +/*** +Customized Bootstrap Tables +***/ +/*** +Default table +***/ +.table.table-bordered thead > tr > th { + border-bottom: 0; +} +.table tr.heading > th { + background-color: #eee !important; +} +.table td .img-responsive { + width: 100%; +} + +/* Contextual table row variants */ +.table > thead > tr > td.active, +.table > thead > tr > th.active, .table > thead > tr.active > td, .table > thead > tr.active > th, +.table > tbody > tr > td.active, +.table > tbody > tr > th.active, +.table > tbody > tr.active > td, +.table > tbody > tr.active > th, +.table > tfoot > tr > td.active, +.table > tfoot > tr > th.active, +.table > tfoot > tr.active > td, +.table > tfoot > tr.active > th { + background: #a6c8e6; + color: #132339; +} + +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, .table-hover > tbody > tr.active:hover > td, .table-hover > tbody > tr.active:hover > th { + background: #92bce0; +} + +.table > thead > tr > td.success, +.table > thead > tr > th.success, .table > thead > tr.success > td, .table > thead > tr.success > th, +.table > tbody > tr > td.success, +.table > tbody > tr > th.success, +.table > tbody > tr.success > td, +.table > tbody > tr.success > th, +.table > tfoot > tr > td.success, +.table > tfoot > tr > th.success, +.table > tfoot > tr.success > td, +.table > tfoot > tr.success > th { + background: #dff0d8; + color: #3c763d; +} + +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, .table-hover > tbody > tr.success:hover > td, .table-hover > tbody > tr.success:hover > th { + background: #d0e9c6; +} + +.table > thead > tr > td.info, +.table > thead > tr > th.info, .table > thead > tr.info > td, .table > thead > tr.info > th, +.table > tbody > tr > td.info, +.table > tbody > tr > th.info, +.table > tbody > tr.info > td, +.table > tbody > tr.info > th, +.table > tfoot > tr > td.info, +.table > tfoot > tr > th.info, +.table > tfoot > tr.info > td, +.table > tfoot > tr.info > th { + background: #d9edf7; + color: #31708f; +} + +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, .table-hover > tbody > tr.info:hover > td, .table-hover > tbody > tr.info:hover > th { + background: #c4e3f3; +} + +.table > thead > tr > td.warning, +.table > thead > tr > th.warning, .table > thead > tr.warning > td, .table > thead > tr.warning > th, +.table > tbody > tr > td.warning, +.table > tbody > tr > th.warning, +.table > tbody > tr.warning > td, +.table > tbody > tr.warning > th, +.table > tfoot > tr > td.warning, +.table > tfoot > tr > th.warning, +.table > tfoot > tr.warning > td, +.table > tfoot > tr.warning > th { + background: #fcf8e3; + color: #8a6d3b; +} + +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, .table-hover > tbody > tr.warning:hover > td, .table-hover > tbody > tr.warning:hover > th { + background: #faf2cc; +} + +.table > thead > tr > td.danger, +.table > thead > tr > th.danger, .table > thead > tr.danger > td, .table > thead > tr.danger > th, +.table > tbody > tr > td.danger, +.table > tbody > tr > th.danger, +.table > tbody > tr.danger > td, +.table > tbody > tr.danger > th, +.table > tfoot > tr > td.danger, +.table > tfoot > tr > th.danger, +.table > tfoot > tr.danger > td, +.table > tfoot > tr.danger > th { + background: #f2dede; + color: #a94442; +} + +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, .table-hover > tbody > tr.danger:hover > td, .table-hover > tbody > tr.danger:hover > th { + background: #ebcccc; +} + +/*** +Responsive & Scrollable Tables +***/ +.table-scrollable { + width: 100%; + overflow-x: auto; + overflow-y: hidden; + border: 1px solid #dddddd; + margin: 10px 0 !important; +} +.table-scrollable.table-scrollable-borderless { + border: 0; +} +.table-scrollable > .table { + width: 100% !important; + margin: 0 !important; + margin-bottom: 0; + background-color: #fff; +} +.table-scrollable > .table > thead > tr > th, +.table-scrollable > .table > tbody > tr > th, +.table-scrollable > .table > tfoot > tr > th, +.table-scrollable > .table > tfoot > tr > th, +.table-scrollable > .table > tfoot > tr > td { + white-space: nowrap; +} +.table-scrollable > .table-bordered { + border: 0; +} +.table-scrollable > .table-bordered > thead > tr > th:first-child, +.table-scrollable > .table-bordered > tbody > tr > th:first-child, +.table-scrollable > .table-bordered > tfoot > tr > th:first-child, +.table-scrollable > .table-bordered > thead > tr > td:first-child, +.table-scrollable > .table-bordered > tbody > tr > td:first-child, +.table-scrollable > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; +} +.table-scrollable > .table-bordered > thead > tr > th:last-child, +.table-scrollable > .table-bordered > tbody > tr > th:last-child, +.table-scrollable > .table-bordered > tfoot > tr > th:last-child, +.table-scrollable > .table-bordered > thead > tr > td:last-child, +.table-scrollable > .table-bordered > tbody > tr > td:last-child, +.table-scrollable > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; +} +.table-scrollable > .table-bordered > thead > tr:last-child > th, +.table-scrollable > .table-bordered > tbody > tr:last-child > th, +.table-scrollable > .table-bordered > tfoot > tr:last-child > th, +.table-scrollable > .table-bordered > thead > tr:last-child > td, +.table-scrollable > .table-bordered > tbody > tr:last-child > td, +.table-scrollable > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; +} + +/*** +Responsive Flip Scroll Tables +***/ +.flip-scroll table { + width: 100%; +} + +@media only screen and (max-width: 768px) { + /* 768px */ + .flip-scroll .flip-content:after { + visibility: hidden; + display: block; + font-size: 0; + content: " "; + clear: both; + height: 0; + } + + .flip-scroll * html .flip-content { + zoom: 1; + } + + .flip-scroll *:first-child + html .flip-content { + zoom: 1; + } + + .flip-scroll table { + width: 100%; + border-collapse: collapse; + border-spacing: 0; + } + + .flip-scroll th, + .flip-scroll td { + margin: 0; + vertical-align: top; + } + + .flip-scroll th { + text-align: left; + border: 0 !important; + border-bottom: 1px solid #ddd !important; + border-right: 1px solid #ddd !important; + font-size: 13px !important; + padding: 5px; + width: auto !important; + } + + .flip-scroll table { + display: block; + position: relative; + width: 100%; + } + + .flip-scroll thead { + display: block; + float: left; + } + + .flip-scroll tbody { + display: block; + width: auto; + position: relative; + overflow-x: auto; + white-space: nowrap; + } + + .flip-scroll thead tr { + display: block; + } + + .flip-scroll th { + display: block; + text-align: right; + } + + .flip-scroll tbody tr { + display: inline-block; + vertical-align: top; + margin-left: -5px; + } + + .flip-scroll td { + display: block; + min-height: 1.25em; + text-align: left; + border-top: 0 !important; + border-left: 0 !important; + border-right: 0 !important; + } + + /* sort out borders */ + .flip-scroll th { + border-bottom: 0; + border-left: 0; + } + + .flip-scroll td { + border-left: 0; + border-right: 0; + border-bottom: 0; + } + + .flip-scroll tbody tr { + border-left: 1px solid #ddd; + } + + .flip-scroll th:last-child, + .flip-scroll td:last-child { + border-bottom: 1px solid #ddd; + } +} +/*** +Custom tables +***/ +.table-toolbar { + margin-bottom: 15px; +} +.table-toolbar:before, .table-toolbar:after { + content: " "; + display: table; +} +.table-toolbar:after { + clear: both; +} + +.table.table-full-width { + width: 100% !important; +} + +.table .btn { + margin-top: 0px; + margin-left: 0px; + margin-right: 5px; +} + +.table thead tr th { + font-size: 14px; + font-weight: 600; +} + +.table-advance { + margin-bottom: 10px !important; +} + +.table-advance thead { + color: #999; +} + +.table-advance thead tr th { + background-color: #DDD; + font-size: 14px; + font-weight: 400; + color: #666; +} + +.table-advance div.success, +.table-advance div.info, +.table-advance div.important, +.table-advance div.warning, +.table-advance div.danger { + position: absolute; + margin-top: -5px; + float: left; + width: 2px; + height: 30px; + margin-right: 20px !important; +} + +.table-advance tr td { + border-left-width: 0px; +} + +.table-advance tr td:first-child { + border-left-width: 1px !important; +} + +.table-advance tr td.highlight:first-child a { + margin-left: 15px; +} + +.table-advance td.highlight div.primary { + border-left: 2px solid #428bca; +} + +.table-advance td.highlight div.success { + border-left: 2px solid #45B6AF; +} + +.table-advance td.highlight div.info { + border-left: 2px solid #89C4F4; +} + +.table-advance td.highlight div.warning { + border-left: 2px solid #dfba49; +} + +.table-advance td.highlight div.danger { + border-left: 2px solid #F3565D; +} + +@media (max-width: 767px) { + /* 767px */ + .table-advance tr > td.highlight:first-child a { + margin-left: 8px; + } +} +/*** +Light Table +***/ +.table.table-light { + border: 0 !important; +} +.table.table-light > thead > tr:hover > th { + background: none; +} +.table.table-light > thead > tr.uppercase { + text-transform: uppercase; +} +.table.table-light > thead > tr > th { + font-weight: 600; + font-size: 13px; + color: #93a2a9; + font-family: "Open Sans", sans-serif; + border: 0; + border-bottom: 1px solid #F2F5F8; +} +.table.table-light > tbody > tr:last-child > td { + border: 0; +} +.table.table-light > tbody > tr > td { + border: 0; + border-bottom: 1px solid #F2F5F8; + color: #8896a0; + vertical-align: middle; +} +.table.table-light > tbody > tr > td.fit { + width: 1px; + padding-right: 3px; +} +.table.table-light > tbody > tr > td .user-pic { + display: inline-block; + vertical-align: middle; + height: 30px; + -webkit-border-radius: 100%; + -moz-border-radius: 100%; + -ms-border-radius: 100%; + -o-border-radius: 100%; + border-radius: 100%; +} +.table.table-light.table-hover > tbody > tr > td:hover, +.table.table-light.table-hover > tbody > tr > th:hover, .table.table-light.table-hover > tbody > tr:hover > td, .table.table-light.table-hover > tbody > tr:hover > th { + background: #f9fafb; +} + +/*** +Customized Bootstrap Tabs +***/ +/* Tabs and pills */ +.nav-tabs, +.nav-pills { + margin-bottom: 10px; +} +.nav-tabs > li > a, +.nav-pills > li > a { + font-size: 14px; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + -ms-border-radius: 4px 4px 0 0; + -o-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a > .badge, +.nav-pills > li > a > .badge { + margin-top: -6px; +} +.nav-tabs > li .dropdown-menu:before, .nav-tabs > li .dropdown-menu:after, +.nav-pills > li .dropdown-menu:before, +.nav-pills > li .dropdown-menu:after { + display: none; +} +.nav-tabs.nav-tabs-sm > li > a, .nav-tabs.nav-pills-sm > li > a, +.nav-pills.nav-tabs-sm > li > a, +.nav-pills.nav-pills-sm > li > a { + font-size: 13px; +} +.nav-tabs .dropdown.open > .dropdown-toggle, +.nav-pills .dropdown.open > .dropdown-toggle { + background: #eee; + color: #0d638f; + border-color: transparent; +} + +/* Left and right tabs */ +.tabs-right.nav-tabs, +.tabs-left.nav-tabs { + border-bottom: 0; +} +.tabs-right.nav-tabs > li, +.tabs-left.nav-tabs > li { + float: none; +} +.tabs-right.nav-tabs > li > a, +.tabs-left.nav-tabs > li > a { + margin-right: 0; + margin-bottom: 3px; +} + +/* Left tabs */ +.tabs-left.nav-tabs { + border-right: 1px solid #ddd; +} +.tabs-left.nav-tabs > li > a { + display: block; + margin-right: -1px; +} +.tabs-left.nav-tabs > li > a:hover, .tabs-left.nav-tabs > li > a:focus { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + -ms-border-radius: 4px 0 0 4px; + -o-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} +.tabs-left.nav-tabs > li.active > a, +.tabs-left.nav-tabs > li.active > a:hover +> li.active > a:focus { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + -ms-border-radius: 4px 0 0 4px; + -o-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} + +/* Right tabs */ +.tabs-right.nav-tabs { + border-left: 1px solid #ddd; +} +.tabs-right.nav-tabs > li > a { + display: block; + margin-left: -1px; +} +.tabs-right.nav-tabs > li > a:hover, .tabs-right.nav-tabs > li > a:focus { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + -ms-border-radius: 0 4px 4px 0; + -o-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} +.tabs-right.nav-tabs > li.active > a, +.tabs-right.nav-tabs > li.active > a:hover +> li.active > a:focus { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + -ms-border-radius: 0 4px 4px 0; + -o-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} + +/* Below tabs */ +.tabs-below > .nav-tabs, +.tabs-below > .nav-pills { + border-bottom: 0; + margin-bottom: 0px; + margin-top: 10px; +} + +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; + margin-bottom: 0; + margin-top: 10px; +} +.tabs-below > .nav-tabs > li > a { + margin-top: -1px; + margin-bottom: 0; +} +.tabs-below > .nav-tabs > li > a:hover, .tabs-below > .nav-tabs > li > a:focus { + border-top-color: #ddd; + border-bottom-color: transparent; +} +.tabs-below > .nav-tabs > li > a .dropdown-menu { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + -ms-border-radius: 4px; + -o-border-radius: 4px; + border-radius: 4px; +} +.tabs-below > .nav-tabs .active a, +.tabs-below > .nav-tabs .active a:hover +.active a:focus { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + -ms-border-radius: 0 0 4px 4px; + -o-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; + border-color: transparent #ddd #ddd #ddd !important; +} + +/*** +Custom tabs +***/ +/* In BS3.0.0 tabbable class was removed. We had to added it back */ +.tabbable:before, .tabbable:after { + content: " "; + display: table; +} +.tabbable:after { + clear: both; +} + +.tabbable-custom { + margin-bottom: 15px; + padding: 0px; + overflow: hidden; + /* justified tabs */ + /* boxless tabs */ + /* below justified tabs */ + /* full width tabs */ + /* below tabs */ +} +.tabbable-custom > .nav-tabs { + border: none; + margin: 0px; +} +.tabbable-custom > .nav-tabs > li { + margin-right: 2px; + border-top: 2px solid transparent; +} +.tabbable-custom > .nav-tabs > li > a { + margin-right: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + -ms-border-radius: 0; + -o-border-radius: 0; + border-radius: 0; +} +.tabbable-custom > .nav-tabs > li > a:hover { + background: none; + border-color: transparent; +} +.tabbable-custom > .nav-tabs > li.active { + border-top: 3px solid #F3565D; + margin-top: 0; + position: relative; +} +.tabbable-custom > .nav-tabs > li.active > a { + border-top: none !important; + font-weight: 400; + -webkit-border-radius: 0; + -moz-border-radius: 0; + -ms-border-radius: 0; + -o-border-radius: 0; + border-radius: 0; +} +.tabbable-custom > .nav-tabs > li.active > a:hover { + -webkit-border-radius: 0; + -moz-border-radius: 0; + -ms-border-radius: 0; + -o-border-radius: 0; + border-radius: 0; + border-top: none; + background: #fff; + border-color: #d4d4d4 #d4d4d4 transparent; +} +.tabbable-custom > .tab-content { + background-color: #fff; + border: 1px solid #ddd; + padding: 10px; + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + -ms-border-radius: 0 0 4px 4px; + -o-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.tabbable-custom.nav-justified > .tab-content { + margin-top: -1px; +} +.tabbable-custom.boxless > .tab-content { + padding: 15px 0; + border-left: none; + border-right: none; + border-bottom: none; +} +.tabbable-custom.tabs-below.nav-justified .tab-content { + margin-top: 0px; + margin-bottom: -2px; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + -ms-border-radius: 4px 4px 0 0; + -o-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.tabbable-custom.tabbable-full-width > .nav-tabs > li > a { + color: #424242; + font-size: 15px; + padding: 9px 15px; +} +.tabbable-custom.tabbable-full-width > .tab-content { + padding: 15px 0; + border-left: none; + border-right: none; + border-bottom: none; +} +.tabbable-custom.tabs-below .nav-tabs > li > a { + border-top: none; + border-bottom: 2px solid transparent; + margin-top: -1px; +} +.tabbable-custom.tabs-below .nav-tabs > li.active { + border-top: none; + border-bottom: 3px solid #d12610; + margin-bottom: 0; + position: relative; +} +.tabbable-custom.tabs-below .nav-tabs > li.active > a { + border-bottom: none; +} +.tabbable-custom.tabs-below .nav-tabs > li.active > a:hover { + background: #fff; + border-color: #d4d4d4 #d4d4d4 transparent; +} + +.tabbable-custom.tabbable-noborder > .nav-tabs > li > a { + border: 0; +} +.tabbable-custom.tabbable-noborder .tab-content { + border: 0; +} + +.tabbable-line > .nav-tabs { + border: none; + margin: 0px; +} +.tabbable-line > .nav-tabs > li { + margin-right: 2px; +} +.tabbable-line > .nav-tabs > li > a { + border: 0; + margin-right: 0; + color: #737373; +} +.tabbable-line > .nav-tabs > li > a > i { + color: #a6a6a6; +} +.tabbable-line > .nav-tabs > li.open, .tabbable-line > .nav-tabs > li:hover { + border-bottom: 4px solid #fbcdcf; +} +.tabbable-line > .nav-tabs > li.open > a, .tabbable-line > .nav-tabs > li:hover > a { + border: 0; + background: none !important; + color: #333; +} +.tabbable-line > .nav-tabs > li.open > a > i, .tabbable-line > .nav-tabs > li:hover > a > i { + color: #a6a6a6; +} +.tabbable-line > .nav-tabs > li.open .dropdown-menu, .tabbable-line > .nav-tabs > li:hover .dropdown-menu { + margin-top: 0px; +} +.tabbable-line > .nav-tabs > li.active { + border-bottom: 4px solid #F3565D; + position: relative; +} +.tabbable-line > .nav-tabs > li.active > a { + border: 0; + color: #333; +} +.tabbable-line > .nav-tabs > li.active > a > i { + color: #404040; +} +.tabbable-line > .tab-content { + margin-top: -3px; + background-color: #fff; + border: 0; + border-top: 1px solid #eee; + padding: 15px 0; +} +.portlet .tabbable-line > .tab-content { + padding-bottom: 0; +} + +.tabbable-line.tabs-below > .nav-tabs > li { + border-top: 4px solid transparent; +} +.tabbable-line.tabs-below > .nav-tabs > li > a { + margin-top: 0; +} +.tabbable-line.tabs-below > .nav-tabs > li:hover { + border-bottom: 0; + border-top: 4px solid #fbcdcf; +} +.tabbable-line.tabs-below > .nav-tabs > li.active { + margin-bottom: -2px; + border-bottom: 0; + border-top: 4px solid #F3565D; +} +.tabbable-line.tabs-below > .tab-content { + margin-top: -10px; + border-top: 0; + border-bottom: 1px solid #eee; + padding-bottom: 15px; +} + +/*** +Tiles(new in v1.1.1) +***/ +.tiles { + margin-right: -10px; +} +.tiles:before, .tiles:after { + display: table; + content: " "; +} +.tiles:after { + clear: both; +} +.tiles .tile { + display: block; + letter-spacing: 0.02em; + float: left; + height: 135px; + width: 135px !important; + cursor: pointer; + text-decoration: none; + color: #ffffff; + position: relative; + font-weight: 300; + font-size: 12px; + letter-spacing: 0.02em; + line-height: 20px; + overflow: hidden; + border: 4px solid transparent; + margin: 0 10px 10px 0; +} +.tiles .tile:after, .tiles .tile:before { + content: ""; + float: left; +} +.tiles .tile.double { + width: 280px !important; +} +.tiles .tile.double-down { + height: 280px !important; +} +.tiles .tile.double-down i { + margin-top: 95px; +} +.tiles .tile:hover { + border-color: #aaa !important; +} +.tiles .tile:active, .tiles .tile.selected { + border-color: #ccc !important; +} +.tiles .tile.selected .corner:after { + content: ""; + display: inline-block; + border-left: 40px solid transparent; + border-bottom: 40px solid transparent; + border-right: 40px solid #ccc; + position: absolute; + top: -3px; + right: -3px; +} +.tiles .tile.selected .check:after { + content: ""; + font-family: FontAwesome; + font-size: 13px; + content: "\f00c"; + display: inline-block; + position: absolute; + top: 2px; + right: 2px; +} +.tiles .tile.icon { + padding: 0; +} +.tiles .tile.image .tile-body { + padding: 0 !important; +} +.tiles .tile.image .tile-body > img { + width: 100%; + height: auto; + min-height: 100%; + max-width: 100%; +} +.tiles .tile.image .tile-body h3 { + display: inline-block; +} +.tiles .tile .tile-body { + height: 100%; + vertical-align: top; + padding: 10px 10px; + overflow: hidden; + position: relative; + font-weight: 400; + font-size: 12px; + color: #000000; + color: #ffffff; + margin-bottom: 10px; +} +.tiles .tile .tile-body p { + font-weight: 400; + font-size: 13px; + color: #000000; + color: #ffffff; + line-height: 20px; + overflow: hidden; +} +.tiles .tile .tile-body p:hover { + color: rgba(0, 0, 0, 0.8); +} +.tiles .tile .tile-body p:active { + color: rgba(0, 0, 0, 0.4); +} +.tiles .tile .tile-body p:hover { + color: #ffffff; +} +.tiles .tile .tile-body img { + float: left; + margin-right: 10px; +} +.tiles .tile .tile-body img.pull-right { + float: right !important; + margin-left: 10px; + margin-right: 0px; +} +.tiles .tile .tile-body > .content { + display: inline-block; +} +.tiles .tile .tile-body > i { + margin-top: 17px; + display: block; + font-size: 56px; + line-height: 56px; + text-align: center; +} +.tiles .tile .tile-body h1, +.tiles .tile .tile-body h2, +.tiles .tile .tile-body h3, +.tiles .tile .tile-body h4, +.tiles .tile .tile-body h5, +.tiles .tile .tile-body h6, +.tiles .tile .tile-body p { + padding: 0; + margin: 0; + line-height: 14px; +} +.tiles .tile .tile-body h1:hover, +.tiles .tile .tile-body h2:hover, +.tiles .tile .tile-body h3:hover, +.tiles .tile .tile-body h4:hover, +.tiles .tile .tile-body h5:hover, +.tiles .tile .tile-body h6:hover, +.tiles .tile .tile-body p:hover { + color: #ffffff; +} +.tiles .tile .tile-body h3, +.tiles .tile .tile-body h4 { + margin-bottom: 5px; +} +.tiles .tile .tile-object { + position: absolute; + bottom: 0; + left: 0; + right: 0; + min-height: 30px; + background-color: transparent; + *zoom: 1; +} +.tiles .tile .tile-object:before, .tiles .tile .tile-object:after { + display: table; + content: ""; +} +.tiles .tile .tile-object:after { + clear: both; +} +.tiles .tile .tile-object > .name { + position: absolute; + bottom: 0; + left: 0; + margin-bottom: 5px; + margin-left: 10px; + margin-right: 15px; + font-weight: 400; + font-size: 13px; + color: #ffffff; +} +.tiles .tile .tile-object > .name > i { + vertical-align: middle; + display: block; + font-size: 24px; + height: 18px; + width: 24px; +} +.tiles .tile .tile-object > .number { + position: absolute; + bottom: 0; + right: 0; + margin-bottom: 0; + color: #ffffff; + text-align: center; + font-weight: 600; + font-size: 14px; + letter-spacing: 0.01em; + line-height: 14px; + margin-bottom: 8px; + margin-right: 10px; +} + +/*** +Custimized Bootstrap Wells +***/ +.well { + background-color: #eee; + border: 0; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} + +/*** +AngularJS Basic Animations +***/ +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(15px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@-moz-keyframes fadeInUp { + 0% { + opacity: 0; + -moz-transform: translateY(15px); + } + 100% { + opacity: 1; + -moz-transform: translateY(0); + } +} +@-o-keyframes fadeInUp { + 0% { + opacity: 0; + -o-transform: translateY(15px); + } + 100% { + opacity: 1; + -o-transform: translateY(0); + } +} +@keyframes fadeInUp { + 0% { + opacity: 0; + transform: translateY(15px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +.fade-in-up { + -webkit-animation: fadeInUp .5s; + animation: fadeInUp .5s; +} + +@-webkit-keyframes bounceDelay { + 0%, 80%, 100% { + -webkit-transform: scale(0); + } + 40% { + -webkit-transform: scale(1); + } +} +@keyframes bounceDelay { + 0%, 80%, 100% { + transform: scale(0); + -webkit-transform: scale(0); + } + 40% { + transform: scale(1); + -webkit-transform: scale(1); + } +} +@keyframes input-focus { + 0% { + left: 20%; + width: 20%; + } + 99% { + width: 0; + left: 0; + opacity: 1; + } + 100% { + opacity: 0; + } +} +/* Button */ +.btn.default { + color: #333333; + background-color: #E5E5E5; +} +.btn.default:hover, .btn.default:focus, .btn.default:active, .btn.default.active { + color: #333333; + background-color: lightgray; +} +.open .btn.default.dropdown-toggle { + color: #333333; + background-color: lightgray; +} +.btn.default:active, .btn.default.active { + background-image: none; + background-color: #c6c6c6; +} +.btn.default:active:hover, .btn.default.active:hover { + background-color: #cccccc; +} +.open .btn.default.dropdown-toggle { + background-image: none; +} +.btn.default.disabled, .btn.default.disabled:hover, .btn.default.disabled:focus, .btn.default.disabled:active, .btn.default.disabled.active, .btn.default[disabled], .btn.default[disabled]:hover, .btn.default[disabled]:focus, .btn.default[disabled]:active, .btn.default[disabled].active, fieldset[disabled] .btn.default, fieldset[disabled] .btn.default:hover, fieldset[disabled] .btn.default:focus, fieldset[disabled] .btn.default:active, fieldset[disabled] .btn.default.active { + background-color: #E5E5E5; +} +.btn.default .badge { + color: #E5E5E5; + background-color: #333333; +} + +/********** +Blue Colors +***********/ +/*** +Blue Default +***/ +/* Button */ +.blue.btn { + color: #FFFFFF; + background-color: #3598dc; +} +.blue.btn:hover, .blue.btn:focus, .blue.btn:active, .blue.btn.active { + color: #FFFFFF; + background-color: #2386ca; +} +.open .blue.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #2386ca; +} +.blue.btn:active, .blue.btn.active { + background-image: none; + background-color: #1f78b5; +} +.blue.btn:active:hover, .blue.btn.active:hover { + background-color: #217ebd; +} +.open .blue.btn.dropdown-toggle { + background-image: none; +} +.blue.btn.disabled, .blue.btn.disabled:hover, .blue.btn.disabled:focus, .blue.btn.disabled:active, .blue.btn.disabled.active, .blue.btn[disabled], .blue.btn[disabled]:hover, .blue.btn[disabled]:focus, .blue.btn[disabled]:active, .blue.btn[disabled].active, fieldset[disabled] .blue.btn, fieldset[disabled] .blue.btn:hover, fieldset[disabled] .blue.btn:focus, fieldset[disabled] .blue.btn:active, fieldset[disabled] .blue.btn.active { + background-color: #3598dc; +} +.blue.btn .badge { + color: #3598dc; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.blue-stripe { + border-left: 3px solid #3598dc; +} + +/* Portlet */ +.portlet > .portlet-body.blue, +.portlet.blue { + background-color: #3598dc; +} + +.portlet.solid.blue > .portlet-title, +.portlet.solid.blue > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.blue > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.blue > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.blue > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.blue > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.blue > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.blue > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.blue > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.blue > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.blue { + border: 1px solid #60aee4; + border-top: 0; +} +.portlet.box.blue > .portlet-title { + background-color: #3598dc; +} +.portlet.box.blue > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.blue > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.blue > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #95c9ed; + color: #aad4f0; +} +.portlet.box.blue > .portlet-title > .actions .btn-default > i { + color: #b7daf3; +} +.portlet.box.blue > .portlet-title > .actions .btn-default:hover, .portlet.box.blue > .portlet-title > .actions .btn-default:focus, .portlet.box.blue > .portlet-title > .actions .btn-default:active, .portlet.box.blue > .portlet-title > .actions .btn-default.active { + border: 1px solid #c0dff4; + color: #d6eaf8; +} + +/* Statistic Block */ +.dashboard-stat.blue { + background-color: #3598dc; +} +.dashboard-stat.blue.dashboard-stat-light:hover { + background-color: #258fd7; +} +.dashboard-stat.blue .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.blue .details .number { + color: #FFFFFF; +} +.dashboard-stat.blue .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.blue .more { + color: #FFFFFF; + background-color: #258fd7; +} + +/* General Element */ +.bg-blue { + border-color: #3598dc !important; + background-image: none !important; + background-color: #3598dc !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-blue { + color: #3598dc !important; +} + +.progress-bar.blue { + background: #3598dc !important; + color: #FFFFFF !important; +} + +/*** +Blue Madison +***/ +/* Button */ +.blue-madison.btn { + color: #FFFFFF; + background-color: #578ebe; +} +.blue-madison.btn:hover, .blue-madison.btn:focus, .blue-madison.btn:active, .blue-madison.btn.active { + color: #FFFFFF; + background-color: #437cae; +} +.open .blue-madison.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #437cae; +} +.blue-madison.btn:active, .blue-madison.btn.active { + background-image: none; + background-color: #3c6f9c; +} +.blue-madison.btn:active:hover, .blue-madison.btn.active:hover { + background-color: #3f74a3; +} +.open .blue-madison.btn.dropdown-toggle { + background-image: none; +} +.blue-madison.btn.disabled, .blue-madison.btn.disabled:hover, .blue-madison.btn.disabled:focus, .blue-madison.btn.disabled:active, .blue-madison.btn.disabled.active, .blue-madison.btn[disabled], .blue-madison.btn[disabled]:hover, .blue-madison.btn[disabled]:focus, .blue-madison.btn[disabled]:active, .blue-madison.btn[disabled].active, fieldset[disabled] .blue-madison.btn, fieldset[disabled] .blue-madison.btn:hover, fieldset[disabled] .blue-madison.btn:focus, fieldset[disabled] .blue-madison.btn:active, fieldset[disabled] .blue-madison.btn.active { + background-color: #578ebe; +} +.blue-madison.btn .badge { + color: #578ebe; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.blue-madison-stripe { + border-left: 3px solid #578ebe; +} + +/* Portlet */ +.portlet > .portlet-body.blue-madison, +.portlet.blue-madison { + background-color: #578ebe; +} + +.portlet.solid.blue-madison > .portlet-title, +.portlet.solid.blue-madison > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.blue-madison > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.blue-madison > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.blue-madison > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.blue-madison > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.blue-madison > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.blue-madison > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.blue-madison > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.blue-madison > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.blue-madison { + border: 1px solid #7ca7cc; + border-top: 0; +} +.portlet.box.blue-madison > .portlet-title { + background-color: #578ebe; +} +.portlet.box.blue-madison > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.blue-madison > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.blue-madison > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #a8c4dd; + color: #bad1e4; +} +.portlet.box.blue-madison > .portlet-title > .actions .btn-default > i { + color: #c5d8e9; +} +.portlet.box.blue-madison > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-madison > .portlet-title > .actions .btn-default:active, .portlet.box.blue-madison > .portlet-title > .actions .btn-default.active { + border: 1px solid #cdddec; + color: #dfeaf3; +} + +/* Statistic Block */ +.dashboard-stat.blue-madison { + background-color: #578ebe; +} +.dashboard-stat.blue-madison.dashboard-stat-light:hover { + background-color: #4884b8; +} +.dashboard-stat.blue-madison .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.blue-madison .details .number { + color: #FFFFFF; +} +.dashboard-stat.blue-madison .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.blue-madison .more { + color: #FFFFFF; + background-color: #4884b8; +} + +/* General Element */ +.bg-blue-madison { + border-color: #578ebe !important; + background-image: none !important; + background-color: #578ebe !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-blue-madison { + color: #578ebe !important; +} + +.progress-bar.blue-madison { + background: #578ebe !important; + color: #FFFFFF !important; +} + +/*** +Blue Chambray +***/ +/* Button */ +.blue-chambray.btn { + color: #FFFFFF; + background-color: #2C3E50; +} +.blue-chambray.btn:hover, .blue-chambray.btn:focus, .blue-chambray.btn:active, .blue-chambray.btn.active { + color: #FFFFFF; + background-color: #1f2c39; +} +.open .blue-chambray.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #1f2c39; +} +.blue-chambray.btn:active, .blue-chambray.btn.active { + background-image: none; + background-color: #161f29; +} +.blue-chambray.btn:active:hover, .blue-chambray.btn.active:hover { + background-color: #1a242f; +} +.open .blue-chambray.btn.dropdown-toggle { + background-image: none; +} +.blue-chambray.btn.disabled, .blue-chambray.btn.disabled:hover, .blue-chambray.btn.disabled:focus, .blue-chambray.btn.disabled:active, .blue-chambray.btn.disabled.active, .blue-chambray.btn[disabled], .blue-chambray.btn[disabled]:hover, .blue-chambray.btn[disabled]:focus, .blue-chambray.btn[disabled]:active, .blue-chambray.btn[disabled].active, fieldset[disabled] .blue-chambray.btn, fieldset[disabled] .blue-chambray.btn:hover, fieldset[disabled] .blue-chambray.btn:focus, fieldset[disabled] .blue-chambray.btn:active, fieldset[disabled] .blue-chambray.btn.active { + background-color: #2C3E50; +} +.blue-chambray.btn .badge { + color: #2C3E50; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.blue-chambray-stripe { + border-left: 3px solid #2C3E50; +} + +/* Portlet */ +.portlet > .portlet-body.blue-chambray, +.portlet.blue-chambray { + background-color: #2C3E50; +} + +.portlet.solid.blue-chambray > .portlet-title, +.portlet.solid.blue-chambray > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.blue-chambray > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.blue-chambray > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.blue-chambray > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.blue-chambray > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.blue-chambray > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.blue-chambray > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.blue-chambray > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.blue-chambray > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.blue-chambray { + border: 1px solid #3e5771; + border-top: 0; +} +.portlet.box.blue-chambray > .portlet-title { + background-color: #2C3E50; +} +.portlet.box.blue-chambray > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.blue-chambray > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.blue-chambray > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #547698; + color: #5f83a7; +} +.portlet.box.blue-chambray > .portlet-title > .actions .btn-default > i { + color: #698aac; +} +.portlet.box.blue-chambray > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default:active, .portlet.box.blue-chambray > .portlet-title > .actions .btn-default.active { + border: 1px solid #6f90b0; + color: #809cb9; +} + +/* Statistic Block */ +.dashboard-stat.blue-chambray { + background-color: #2C3E50; +} +.dashboard-stat.blue-chambray.dashboard-stat-light:hover { + background-color: #253443; +} +.dashboard-stat.blue-chambray .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.blue-chambray .details .number { + color: #FFFFFF; +} +.dashboard-stat.blue-chambray .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.blue-chambray .more { + color: #FFFFFF; + background-color: #253443; +} + +/* General Element */ +.bg-blue-chambray { + border-color: #2C3E50 !important; + background-image: none !important; + background-color: #2C3E50 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-blue-chambray { + color: #2C3E50 !important; +} + +.progress-bar.blue-chambray { + background: #2C3E50 !important; + color: #FFFFFF !important; +} + +/*** +Blue Ebonyclay +***/ +/* Button */ +.blue-ebonyclay.btn { + color: #FFFFFF; + background-color: #22313F; +} +.blue-ebonyclay.btn:hover, .blue-ebonyclay.btn:focus, .blue-ebonyclay.btn:active, .blue-ebonyclay.btn.active { + color: #FFFFFF; + background-color: #151f28; +} +.open .blue-ebonyclay.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #151f28; +} +.blue-ebonyclay.btn:active, .blue-ebonyclay.btn.active { + background-image: none; + background-color: #0d1217; +} +.blue-ebonyclay.btn:active:hover, .blue-ebonyclay.btn.active:hover { + background-color: #10171e; +} +.open .blue-ebonyclay.btn.dropdown-toggle { + background-image: none; +} +.blue-ebonyclay.btn.disabled, .blue-ebonyclay.btn.disabled:hover, .blue-ebonyclay.btn.disabled:focus, .blue-ebonyclay.btn.disabled:active, .blue-ebonyclay.btn.disabled.active, .blue-ebonyclay.btn[disabled], .blue-ebonyclay.btn[disabled]:hover, .blue-ebonyclay.btn[disabled]:focus, .blue-ebonyclay.btn[disabled]:active, .blue-ebonyclay.btn[disabled].active, fieldset[disabled] .blue-ebonyclay.btn, fieldset[disabled] .blue-ebonyclay.btn:hover, fieldset[disabled] .blue-ebonyclay.btn:focus, fieldset[disabled] .blue-ebonyclay.btn:active, fieldset[disabled] .blue-ebonyclay.btn.active { + background-color: #22313F; +} +.blue-ebonyclay.btn .badge { + color: #22313F; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.blue-ebonyclay-stripe { + border-left: 3px solid #22313F; +} + +/* Portlet */ +.portlet > .portlet-body.blue-ebonyclay, +.portlet.blue-ebonyclay { + background-color: #22313F; +} + +.portlet.solid.blue-ebonyclay > .portlet-title, +.portlet.solid.blue-ebonyclay > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.blue-ebonyclay > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.blue-ebonyclay > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.blue-ebonyclay > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.blue-ebonyclay { + border: 1px solid #344b60; + border-top: 0; +} +.portlet.box.blue-ebonyclay > .portlet-title { + background-color: #22313F; +} +.portlet.box.blue-ebonyclay > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.blue-ebonyclay > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #496a88; + color: #527798; +} +.portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default > i { + color: #587ea2; +} +.portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default:active, .portlet.box.blue-ebonyclay > .portlet-title > .actions .btn-default.active { + border: 1px solid #5d83a7; + color: #6d90b0; +} + +/* Statistic Block */ +.dashboard-stat.blue-ebonyclay { + background-color: #22313F; +} +.dashboard-stat.blue-ebonyclay.dashboard-stat-light:hover { + background-color: #1b2732; +} +.dashboard-stat.blue-ebonyclay .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.blue-ebonyclay .details .number { + color: #FFFFFF; +} +.dashboard-stat.blue-ebonyclay .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.blue-ebonyclay .more { + color: #FFFFFF; + background-color: #1b2732; +} + +/* General Element */ +.bg-blue-ebonyclay { + border-color: #22313F !important; + background-image: none !important; + background-color: #22313F !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-blue-ebonyclay { + color: #22313F !important; +} + +.progress-bar.blue-ebonyclay { + background: #22313F !important; + color: #FFFFFF !important; +} + +/*** +Blue Hoki +***/ +/* Button */ +.blue-hoki.btn { + color: #FFFFFF; + background-color: #67809F; +} +.blue-hoki.btn:hover, .blue-hoki.btn:focus, .blue-hoki.btn:active, .blue-hoki.btn.active { + color: #FFFFFF; + background-color: #586e8b; +} +.open .blue-hoki.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #586e8b; +} +.blue-hoki.btn:active, .blue-hoki.btn.active { + background-image: none; + background-color: #4e627b; +} +.blue-hoki.btn:active:hover, .blue-hoki.btn.active:hover { + background-color: #526781; +} +.open .blue-hoki.btn.dropdown-toggle { + background-image: none; +} +.blue-hoki.btn.disabled, .blue-hoki.btn.disabled:hover, .blue-hoki.btn.disabled:focus, .blue-hoki.btn.disabled:active, .blue-hoki.btn.disabled.active, .blue-hoki.btn[disabled], .blue-hoki.btn[disabled]:hover, .blue-hoki.btn[disabled]:focus, .blue-hoki.btn[disabled]:active, .blue-hoki.btn[disabled].active, fieldset[disabled] .blue-hoki.btn, fieldset[disabled] .blue-hoki.btn:hover, fieldset[disabled] .blue-hoki.btn:focus, fieldset[disabled] .blue-hoki.btn:active, fieldset[disabled] .blue-hoki.btn.active { + background-color: #67809F; +} +.blue-hoki.btn .badge { + color: #67809F; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.blue-hoki-stripe { + border-left: 3px solid #67809F; +} + +/* Portlet */ +.portlet > .portlet-body.blue-hoki, +.portlet.blue-hoki { + background-color: #67809F; +} + +.portlet.solid.blue-hoki > .portlet-title, +.portlet.solid.blue-hoki > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.blue-hoki > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.blue-hoki > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.blue-hoki > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.blue-hoki > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.blue-hoki > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.blue-hoki > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.blue-hoki > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.blue-hoki > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.blue-hoki { + border: 1px solid #869ab3; + border-top: 0; +} +.portlet.box.blue-hoki > .portlet-title { + background-color: #67809F; +} +.portlet.box.blue-hoki > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.blue-hoki > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.blue-hoki > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #acb9ca; + color: #bbc7d4; +} +.portlet.box.blue-hoki > .portlet-title > .actions .btn-default > i { + color: #c5ceda; +} +.portlet.box.blue-hoki > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default:active, .portlet.box.blue-hoki > .portlet-title > .actions .btn-default.active { + border: 1px solid #cbd4de; + color: #dbe1e8; +} + +/* Statistic Block */ +.dashboard-stat.blue-hoki { + background-color: #67809F; +} +.dashboard-stat.blue-hoki.dashboard-stat-light:hover { + background-color: #5e7694; +} +.dashboard-stat.blue-hoki .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.blue-hoki .details .number { + color: #FFFFFF; +} +.dashboard-stat.blue-hoki .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.blue-hoki .more { + color: #FFFFFF; + background-color: #5e7694; +} + +/* General Element */ +.bg-blue-hoki { + border-color: #67809F !important; + background-image: none !important; + background-color: #67809F !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-blue-hoki { + color: #67809F !important; +} + +.progress-bar.blue-hoki { + background: #67809F !important; + color: #FFFFFF !important; +} + +/*** +Blue Stell +***/ +/* Button */ +.blue-steel.btn { + color: #FFFFFF; + background-color: #4B77BE; +} +.blue-steel.btn:hover, .blue-steel.btn:focus, .blue-steel.btn:active, .blue-steel.btn.active { + color: #FFFFFF; + background-color: #3d66a8; +} +.open .blue-steel.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #3d66a8; +} +.blue-steel.btn:active, .blue-steel.btn.active { + background-image: none; + background-color: #365b96; +} +.blue-steel.btn:active:hover, .blue-steel.btn.active:hover { + background-color: #395f9d; +} +.open .blue-steel.btn.dropdown-toggle { + background-image: none; +} +.blue-steel.btn.disabled, .blue-steel.btn.disabled:hover, .blue-steel.btn.disabled:focus, .blue-steel.btn.disabled:active, .blue-steel.btn.disabled.active, .blue-steel.btn[disabled], .blue-steel.btn[disabled]:hover, .blue-steel.btn[disabled]:focus, .blue-steel.btn[disabled]:active, .blue-steel.btn[disabled].active, fieldset[disabled] .blue-steel.btn, fieldset[disabled] .blue-steel.btn:hover, fieldset[disabled] .blue-steel.btn:focus, fieldset[disabled] .blue-steel.btn:active, fieldset[disabled] .blue-steel.btn.active { + background-color: #4B77BE; +} +.blue-steel.btn .badge { + color: #4B77BE; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.blue-steel-stripe { + border-left: 3px solid #4B77BE; +} + +/* Portlet */ +.portlet > .portlet-body.blue-steel, +.portlet.blue-steel { + background-color: #4B77BE; +} + +.portlet.solid.blue-steel > .portlet-title, +.portlet.solid.blue-steel > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.blue-steel > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.blue-steel > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.blue-steel > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.blue-steel > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.blue-steel > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.blue-steel > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.blue-steel > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.blue-steel > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.blue-steel { + border: 1px solid #7093cc; + border-top: 0; +} +.portlet.box.blue-steel > .portlet-title { + background-color: #4B77BE; +} +.portlet.box.blue-steel > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.blue-steel > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.blue-steel > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #9db5dc; + color: #b0c3e3; +} +.portlet.box.blue-steel > .portlet-title > .actions .btn-default > i { + color: #bbcce7; +} +.portlet.box.blue-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-steel > .portlet-title > .actions .btn-default:active, .portlet.box.blue-steel > .portlet-title > .actions .btn-default.active { + border: 1px solid #c3d2e9; + color: #d6e0f0; +} + +/* Statistic Block */ +.dashboard-stat.blue-steel { + background-color: #4B77BE; +} +.dashboard-stat.blue-steel.dashboard-stat-light:hover { + background-color: #416db4; +} +.dashboard-stat.blue-steel .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.blue-steel .details .number { + color: #FFFFFF; +} +.dashboard-stat.blue-steel .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.blue-steel .more { + color: #FFFFFF; + background-color: #416db4; +} + +/* General Element */ +.bg-blue-steel { + border-color: #4B77BE !important; + background-image: none !important; + background-color: #4B77BE !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-blue-steel { + color: #4B77BE !important; +} + +.progress-bar.blue-steel { + background: #4B77BE !important; + color: #FFFFFF !important; +} + +/*** +Blue Soft +***/ +/* Button */ +.blue-soft.btn { + color: #FFFFFF; + background-color: #4c87b9; +} +.blue-soft.btn:hover, .blue-soft.btn:focus, .blue-soft.btn:active, .blue-soft.btn.active { + color: #FFFFFF; + background-color: #3f75a2; +} +.open .blue-soft.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #3f75a2; +} +.blue-soft.btn:active, .blue-soft.btn.active { + background-image: none; + background-color: #386890; +} +.blue-soft.btn:active:hover, .blue-soft.btn.active:hover { + background-color: #3b6d97; +} +.open .blue-soft.btn.dropdown-toggle { + background-image: none; +} +.blue-soft.btn.disabled, .blue-soft.btn.disabled:hover, .blue-soft.btn.disabled:focus, .blue-soft.btn.disabled:active, .blue-soft.btn.disabled.active, .blue-soft.btn[disabled], .blue-soft.btn[disabled]:hover, .blue-soft.btn[disabled]:focus, .blue-soft.btn[disabled]:active, .blue-soft.btn[disabled].active, fieldset[disabled] .blue-soft.btn, fieldset[disabled] .blue-soft.btn:hover, fieldset[disabled] .blue-soft.btn:focus, fieldset[disabled] .blue-soft.btn:active, fieldset[disabled] .blue-soft.btn.active { + background-color: #4c87b9; +} +.blue-soft.btn .badge { + color: #4c87b9; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.blue-soft-stripe { + border-left: 3px solid #4c87b9; +} + +/* Portlet */ +.portlet > .portlet-body.blue-soft, +.portlet.blue-soft { + background-color: #4c87b9; +} + +.portlet.solid.blue-soft > .portlet-title, +.portlet.solid.blue-soft > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.blue-soft > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.blue-soft > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.blue-soft > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.blue-soft > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.blue-soft > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.blue-soft > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.blue-soft > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.blue-soft > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.blue-soft { + border: 1px solid #71a0c7; + border-top: 0; +} +.portlet.box.blue-soft > .portlet-title { + background-color: #4c87b9; +} +.portlet.box.blue-soft > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.blue-soft > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.blue-soft > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #9dbdd9; + color: #afc9e0; +} +.portlet.box.blue-soft > .portlet-title > .actions .btn-default > i { + color: #bad1e4; +} +.portlet.box.blue-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-soft > .portlet-title > .actions .btn-default:active, .portlet.box.blue-soft > .portlet-title > .actions .btn-default.active { + border: 1px solid #c1d6e7; + color: #d4e2ee; +} + +/* Statistic Block */ +.dashboard-stat.blue-soft { + background-color: #4c87b9; +} +.dashboard-stat.blue-soft.dashboard-stat-light:hover { + background-color: #447dad; +} +.dashboard-stat.blue-soft .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.blue-soft .details .number { + color: #FFFFFF; +} +.dashboard-stat.blue-soft .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.blue-soft .more { + color: #FFFFFF; + background-color: #447dad; +} + +/* General Element */ +.bg-blue-soft { + border-color: #4c87b9 !important; + background-image: none !important; + background-color: #4c87b9 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-blue-soft { + color: #4c87b9 !important; +} + +.progress-bar.blue-soft { + background: #4c87b9 !important; + color: #FFFFFF !important; +} + +/*** +Blue Dark +***/ +/* Button */ +.blue-dark.btn { + color: #FFFFFF; + background-color: #5e738b; +} +.blue-dark.btn:hover, .blue-dark.btn:focus, .blue-dark.btn:active, .blue-dark.btn.active { + color: #FFFFFF; + background-color: #506176; +} +.open .blue-dark.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #506176; +} +.blue-dark.btn:active, .blue-dark.btn.active { + background-image: none; + background-color: #455566; +} +.blue-dark.btn:active:hover, .blue-dark.btn.active:hover { + background-color: #495a6d; +} +.open .blue-dark.btn.dropdown-toggle { + background-image: none; +} +.blue-dark.btn.disabled, .blue-dark.btn.disabled:hover, .blue-dark.btn.disabled:focus, .blue-dark.btn.disabled:active, .blue-dark.btn.disabled.active, .blue-dark.btn[disabled], .blue-dark.btn[disabled]:hover, .blue-dark.btn[disabled]:focus, .blue-dark.btn[disabled]:active, .blue-dark.btn[disabled].active, fieldset[disabled] .blue-dark.btn, fieldset[disabled] .blue-dark.btn:hover, fieldset[disabled] .blue-dark.btn:focus, fieldset[disabled] .blue-dark.btn:active, fieldset[disabled] .blue-dark.btn.active { + background-color: #5e738b; +} +.blue-dark.btn .badge { + color: #5e738b; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.blue-dark-stripe { + border-left: 3px solid #5e738b; +} + +/* Portlet */ +.portlet > .portlet-body.blue-dark, +.portlet.blue-dark { + background-color: #5e738b; +} + +.portlet.solid.blue-dark > .portlet-title, +.portlet.solid.blue-dark > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.blue-dark > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.blue-dark > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.blue-dark > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.blue-dark > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.blue-dark > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.blue-dark > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.blue-dark > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.blue-dark > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.blue-dark { + border: 1px solid #788da4; + border-top: 0; +} +.portlet.box.blue-dark > .portlet-title { + background-color: #5e738b; +} +.portlet.box.blue-dark > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.blue-dark > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.blue-dark > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #9dacbd; + color: #acb8c7; +} +.portlet.box.blue-dark > .portlet-title > .actions .btn-default > i { + color: #b5c0cd; +} +.portlet.box.blue-dark > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-dark > .portlet-title > .actions .btn-default:active, .portlet.box.blue-dark > .portlet-title > .actions .btn-default.active { + border: 1px solid #bbc5d1; + color: #cad2db; +} + +/* Statistic Block */ +.dashboard-stat.blue-dark { + background-color: #5e738b; +} +.dashboard-stat.blue-dark.dashboard-stat-light:hover { + background-color: #56697f; +} +.dashboard-stat.blue-dark .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.blue-dark .details .number { + color: #FFFFFF; +} +.dashboard-stat.blue-dark .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.blue-dark .more { + color: #FFFFFF; + background-color: #56697f; +} + +/* General Element */ +.bg-blue-dark { + border-color: #5e738b !important; + background-image: none !important; + background-color: #5e738b !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-blue-dark { + color: #5e738b !important; +} + +.progress-bar.blue-dark { + background: #5e738b !important; + color: #FFFFFF !important; +} + +/*** +Blue Sharp +***/ +/* Button */ +.blue-sharp.btn { + color: #FFFFFF; + background-color: #5C9BD1; +} +.blue-sharp.btn:hover, .blue-sharp.btn:focus, .blue-sharp.btn:active, .blue-sharp.btn.active { + color: #FFFFFF; + background-color: #408ac9; +} +.open .blue-sharp.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #408ac9; +} +.blue-sharp.btn:active, .blue-sharp.btn.active { + background-image: none; + background-color: #357dbb; +} +.blue-sharp.btn:active:hover, .blue-sharp.btn.active:hover { + background-color: #3782c3; +} +.open .blue-sharp.btn.dropdown-toggle { + background-image: none; +} +.blue-sharp.btn.disabled, .blue-sharp.btn.disabled:hover, .blue-sharp.btn.disabled:focus, .blue-sharp.btn.disabled:active, .blue-sharp.btn.disabled.active, .blue-sharp.btn[disabled], .blue-sharp.btn[disabled]:hover, .blue-sharp.btn[disabled]:focus, .blue-sharp.btn[disabled]:active, .blue-sharp.btn[disabled].active, fieldset[disabled] .blue-sharp.btn, fieldset[disabled] .blue-sharp.btn:hover, fieldset[disabled] .blue-sharp.btn:focus, fieldset[disabled] .blue-sharp.btn:active, fieldset[disabled] .blue-sharp.btn.active { + background-color: #5C9BD1; +} +.blue-sharp.btn .badge { + color: #5C9BD1; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.blue-sharp-stripe { + border-left: 3px solid #5C9BD1; +} + +/* Portlet */ +.portlet > .portlet-body.blue-sharp, +.portlet.blue-sharp { + background-color: #5C9BD1; +} + +.portlet.solid.blue-sharp > .portlet-title, +.portlet.solid.blue-sharp > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.blue-sharp > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.blue-sharp > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.blue-sharp > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.blue-sharp > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.blue-sharp > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.blue-sharp > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.blue-sharp > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.blue-sharp > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.blue-sharp { + border: 1px solid #84b3dc; + border-top: 0; +} +.portlet.box.blue-sharp > .portlet-title { + background-color: #5C9BD1; +} +.portlet.box.blue-sharp > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.blue-sharp > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.blue-sharp > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #b4d1ea; + color: #c7ddef; +} +.portlet.box.blue-sharp > .portlet-title > .actions .btn-default > i { + color: #d3e4f3; +} +.portlet.box.blue-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.blue-sharp > .portlet-title > .actions .btn-default.active { + border: 1px solid #dbe9f5; + color: #eff5fb; +} + +/* Statistic Block */ +.dashboard-stat.blue-sharp { + background-color: #5C9BD1; +} +.dashboard-stat.blue-sharp.dashboard-stat-light:hover { + background-color: #4c91cd; +} +.dashboard-stat.blue-sharp .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.blue-sharp .details .number { + color: #FFFFFF; +} +.dashboard-stat.blue-sharp .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.blue-sharp .more { + color: #FFFFFF; + background-color: #4c91cd; +} + +/* General Element */ +.bg-blue-sharp { + border-color: #5C9BD1 !important; + background-image: none !important; + background-color: #5C9BD1 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-blue-sharp { + color: #5C9BD1 !important; +} + +.progress-bar.blue-sharp { + background: #5C9BD1 !important; + color: #FFFFFF !important; +} + +/*********** +Green Colors +************/ +/*** +Green Default +***/ +/* Button */ +.green.btn { + color: #FFFFFF; + background-color: #26a69a; +} +.green.btn:hover, .green.btn:focus, .green.btn:active, .green.btn.active { + color: #FFFFFF; + background-color: #1f897f; +} +.open .green.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #1f897f; +} +.green.btn:active, .green.btn.active { + background-image: none; + background-color: #1b746c; +} +.green.btn:active:hover, .green.btn.active:hover { + background-color: #1c7d74; +} +.open .green.btn.dropdown-toggle { + background-image: none; +} +.green.btn.disabled, .green.btn.disabled:hover, .green.btn.disabled:focus, .green.btn.disabled:active, .green.btn.disabled.active, .green.btn[disabled], .green.btn[disabled]:hover, .green.btn[disabled]:focus, .green.btn[disabled]:active, .green.btn[disabled].active, fieldset[disabled] .green.btn, fieldset[disabled] .green.btn:hover, fieldset[disabled] .green.btn:focus, fieldset[disabled] .green.btn:active, fieldset[disabled] .green.btn.active { + background-color: #26a69a; +} +.green.btn .badge { + color: #26a69a; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.green-stripe { + border-left: 3px solid #26a69a; +} + +/* Portlet */ +.portlet > .portlet-body.green, +.portlet.green { + background-color: #26a69a; +} + +.portlet.solid.green > .portlet-title, +.portlet.solid.green > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.green > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.green > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.green > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.green > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.green > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.green > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.green > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.green > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.green { + border: 1px solid #30d0c1; + border-top: 0; +} +.portlet.box.green > .portlet-title { + background-color: #26a69a; +} +.portlet.box.green > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.green > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.green > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #61dbd0; + color: #76e0d6; +} +.portlet.box.green > .portlet-title > .actions .btn-default > i { + color: #83e3da; +} +.portlet.box.green > .portlet-title > .actions .btn-default:hover, .portlet.box.green > .portlet-title > .actions .btn-default:focus, .portlet.box.green > .portlet-title > .actions .btn-default:active, .portlet.box.green > .portlet-title > .actions .btn-default.active { + border: 1px solid #8be4dc; + color: #a0e9e2; +} + +/* Statistic Block */ +.dashboard-stat.green { + background-color: #26a69a; +} +.dashboard-stat.green.dashboard-stat-light:hover { + background-color: #22958b; +} +.dashboard-stat.green .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.green .details .number { + color: #FFFFFF; +} +.dashboard-stat.green .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.green .more { + color: #FFFFFF; + background-color: #22958b; +} + +/* General Element */ +.bg-green { + border-color: #26a69a !important; + background-image: none !important; + background-color: #26a69a !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-green { + color: #26a69a !important; +} + +.progress-bar.green { + background: #26a69a !important; + color: #FFFFFF !important; +} + +/*** +Green Meadow +***/ +/* Button */ +.green-meadow.btn { + color: #FFFFFF; + background-color: #1BBC9B; +} +.green-meadow.btn:hover, .green-meadow.btn:focus, .green-meadow.btn:active, .green-meadow.btn.active { + color: #FFFFFF; + background-color: #179d81; +} +.open .green-meadow.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #179d81; +} +.green-meadow.btn:active, .green-meadow.btn.active { + background-image: none; + background-color: #13866f; +} +.green-meadow.btn:active:hover, .green-meadow.btn.active:hover { + background-color: #158f76; +} +.open .green-meadow.btn.dropdown-toggle { + background-image: none; +} +.green-meadow.btn.disabled, .green-meadow.btn.disabled:hover, .green-meadow.btn.disabled:focus, .green-meadow.btn.disabled:active, .green-meadow.btn.disabled.active, .green-meadow.btn[disabled], .green-meadow.btn[disabled]:hover, .green-meadow.btn[disabled]:focus, .green-meadow.btn[disabled]:active, .green-meadow.btn[disabled].active, fieldset[disabled] .green-meadow.btn, fieldset[disabled] .green-meadow.btn:hover, fieldset[disabled] .green-meadow.btn:focus, fieldset[disabled] .green-meadow.btn:active, fieldset[disabled] .green-meadow.btn.active { + background-color: #1BBC9B; +} +.green-meadow.btn .badge { + color: #1BBC9B; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.green-meadow-stripe { + border-left: 3px solid #1BBC9B; +} + +/* Portlet */ +.portlet > .portlet-body.green-meadow, +.portlet.green-meadow { + background-color: #1BBC9B; +} + +.portlet.solid.green-meadow > .portlet-title, +.portlet.solid.green-meadow > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.green-meadow > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.green-meadow > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.green-meadow > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.green-meadow > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.green-meadow > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.green-meadow > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.green-meadow > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.green-meadow > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.green-meadow { + border: 1px solid #2ae0bb; + border-top: 0; +} +.portlet.box.green-meadow > .portlet-title { + background-color: #1BBC9B; +} +.portlet.box.green-meadow > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.green-meadow > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.green-meadow > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #5fe8cc; + color: #75ebd3; +} +.portlet.box.green-meadow > .portlet-title > .actions .btn-default > i { + color: #83edd7; +} +.portlet.box.green-meadow > .portlet-title > .actions .btn-default:hover, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:focus, .portlet.box.green-meadow > .portlet-title > .actions .btn-default:active, .portlet.box.green-meadow > .portlet-title > .actions .btn-default.active { + border: 1px solid #8ceeda; + color: #a2f2e1; +} + +/* Statistic Block */ +.dashboard-stat.green-meadow { + background-color: #1BBC9B; +} +.dashboard-stat.green-meadow.dashboard-stat-light:hover { + background-color: #18aa8c; +} +.dashboard-stat.green-meadow .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.green-meadow .details .number { + color: #FFFFFF; +} +.dashboard-stat.green-meadow .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.green-meadow .more { + color: #FFFFFF; + background-color: #18aa8c; +} + +/* General Element */ +.bg-green-meadow { + border-color: #1BBC9B !important; + background-image: none !important; + background-color: #1BBC9B !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-green-meadow { + color: #1BBC9B !important; +} + +.progress-bar.green-meadow { + background: #1BBC9B !important; + color: #FFFFFF !important; +} + +/*** +Green Seagreen +***/ +/* Button */ +.green-seagreen.btn { + color: #FFFFFF; + background-color: #1BA39C; +} +.green-seagreen.btn:hover, .green-seagreen.btn:focus, .green-seagreen.btn:active, .green-seagreen.btn.active { + color: #FFFFFF; + background-color: #16847f; +} +.open .green-seagreen.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #16847f; +} +.green-seagreen.btn:active, .green-seagreen.btn.active { + background-image: none; + background-color: #126e6a; +} +.green-seagreen.btn:active:hover, .green-seagreen.btn.active:hover { + background-color: #147772; +} +.open .green-seagreen.btn.dropdown-toggle { + background-image: none; +} +.green-seagreen.btn.disabled, .green-seagreen.btn.disabled:hover, .green-seagreen.btn.disabled:focus, .green-seagreen.btn.disabled:active, .green-seagreen.btn.disabled.active, .green-seagreen.btn[disabled], .green-seagreen.btn[disabled]:hover, .green-seagreen.btn[disabled]:focus, .green-seagreen.btn[disabled]:active, .green-seagreen.btn[disabled].active, fieldset[disabled] .green-seagreen.btn, fieldset[disabled] .green-seagreen.btn:hover, fieldset[disabled] .green-seagreen.btn:focus, fieldset[disabled] .green-seagreen.btn:active, fieldset[disabled] .green-seagreen.btn.active { + background-color: #1BA39C; +} +.green-seagreen.btn .badge { + color: #1BA39C; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.green-seagreen-stripe { + border-left: 3px solid #1BA39C; +} + +/* Portlet */ +.portlet > .portlet-body.green-seagreen, +.portlet.green-seagreen { + background-color: #1BA39C; +} + +.portlet.solid.green-seagreen > .portlet-title, +.portlet.solid.green-seagreen > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.green-seagreen > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.green-seagreen > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.green-seagreen > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.green-seagreen > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.green-seagreen > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.green-seagreen > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.green-seagreen > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.green-seagreen > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.green-seagreen { + border: 1px solid #22cfc6; + border-top: 0; +} +.portlet.box.green-seagreen > .portlet-title { + background-color: #1BA39C; +} +.portlet.box.green-seagreen > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.green-seagreen > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.green-seagreen > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #4de1da; + color: #63e5de; +} +.portlet.box.green-seagreen > .portlet-title > .actions .btn-default > i { + color: #70e7e1; +} +.portlet.box.green-seagreen > .portlet-title > .actions .btn-default:hover, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:focus, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default:active, .portlet.box.green-seagreen > .portlet-title > .actions .btn-default.active { + border: 1px solid #78e9e3; + color: #8eece8; +} + +/* Statistic Block */ +.dashboard-stat.green-seagreen { + background-color: #1BA39C; +} +.dashboard-stat.green-seagreen.dashboard-stat-light:hover { + background-color: #18918b; +} +.dashboard-stat.green-seagreen .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.green-seagreen .details .number { + color: #FFFFFF; +} +.dashboard-stat.green-seagreen .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.green-seagreen .more { + color: #FFFFFF; + background-color: #18918b; +} + +/* General Element */ +.bg-green-seagreen { + border-color: #1BA39C !important; + background-image: none !important; + background-color: #1BA39C !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-green-seagreen { + color: #1BA39C !important; +} + +.progress-bar.green-seagreen { + background: #1BA39C !important; + color: #FFFFFF !important; +} + +/*** +Green Turquoise +***/ +/* Button */ +.green-turquoise.btn { + color: #FFFFFF; + background-color: #36D7B7; +} +.green-turquoise.btn:hover, .green-turquoise.btn:focus, .green-turquoise.btn:active, .green-turquoise.btn.active { + color: #FFFFFF; + background-color: #27c3a4; +} +.open .green-turquoise.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #27c3a4; +} +.green-turquoise.btn:active, .green-turquoise.btn.active { + background-image: none; + background-color: #22ad92; +} +.green-turquoise.btn:active:hover, .green-turquoise.btn.active:hover { + background-color: #24b699; +} +.open .green-turquoise.btn.dropdown-toggle { + background-image: none; +} +.green-turquoise.btn.disabled, .green-turquoise.btn.disabled:hover, .green-turquoise.btn.disabled:focus, .green-turquoise.btn.disabled:active, .green-turquoise.btn.disabled.active, .green-turquoise.btn[disabled], .green-turquoise.btn[disabled]:hover, .green-turquoise.btn[disabled]:focus, .green-turquoise.btn[disabled]:active, .green-turquoise.btn[disabled].active, fieldset[disabled] .green-turquoise.btn, fieldset[disabled] .green-turquoise.btn:hover, fieldset[disabled] .green-turquoise.btn:focus, fieldset[disabled] .green-turquoise.btn:active, fieldset[disabled] .green-turquoise.btn.active { + background-color: #36D7B7; +} +.green-turquoise.btn .badge { + color: #36D7B7; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.green-turquoise-stripe { + border-left: 3px solid #36D7B7; +} + +/* Portlet */ +.portlet > .portlet-body.green-turquoise, +.portlet.green-turquoise { + background-color: #36D7B7; +} + +.portlet.solid.green-turquoise > .portlet-title, +.portlet.solid.green-turquoise > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.green-turquoise > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.green-turquoise > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.green-turquoise > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.green-turquoise > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.green-turquoise > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.green-turquoise > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.green-turquoise > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.green-turquoise > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.green-turquoise { + border: 1px solid #61dfc6; + border-top: 0; +} +.portlet.box.green-turquoise > .portlet-title { + background-color: #36D7B7; +} +.portlet.box.green-turquoise > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.green-turquoise > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.green-turquoise > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #94ead9; + color: #a9eee0; +} +.portlet.box.green-turquoise > .portlet-title > .actions .btn-default > i { + color: #b6f0e5; +} +.portlet.box.green-turquoise > .portlet-title > .actions .btn-default:hover, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:focus, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default:active, .portlet.box.green-turquoise > .portlet-title > .actions .btn-default.active { + border: 1px solid #bef2e8; + color: #d3f6ef; +} + +/* Statistic Block */ +.dashboard-stat.green-turquoise { + background-color: #36D7B7; +} +.dashboard-stat.green-turquoise.dashboard-stat-light:hover { + background-color: #29cfae; +} +.dashboard-stat.green-turquoise .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.green-turquoise .details .number { + color: #FFFFFF; +} +.dashboard-stat.green-turquoise .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.green-turquoise .more { + color: #FFFFFF; + background-color: #29cfae; +} + +/* General Element */ +.bg-green-turquoise { + border-color: #36D7B7 !important; + background-image: none !important; + background-color: #36D7B7 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-green-turquoise { + color: #36D7B7 !important; +} + +.progress-bar.green-turquoise { + background: #36D7B7 !important; + color: #FFFFFF !important; +} + +/*** +Green Haze +***/ +/* Button */ +.green-haze.btn { + color: #FFFFFF; + background-color: #44b6ae; +} +.green-haze.btn:hover, .green-haze.btn:focus, .green-haze.btn:active, .green-haze.btn.active { + color: #FFFFFF; + background-color: #3a9c95; +} +.open .green-haze.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #3a9c95; +} +.green-haze.btn:active, .green-haze.btn.active { + background-image: none; + background-color: #338983; +} +.green-haze.btn:active:hover, .green-haze.btn.active:hover { + background-color: #36918b; +} +.open .green-haze.btn.dropdown-toggle { + background-image: none; +} +.green-haze.btn.disabled, .green-haze.btn.disabled:hover, .green-haze.btn.disabled:focus, .green-haze.btn.disabled:active, .green-haze.btn.disabled.active, .green-haze.btn[disabled], .green-haze.btn[disabled]:hover, .green-haze.btn[disabled]:focus, .green-haze.btn[disabled]:active, .green-haze.btn[disabled].active, fieldset[disabled] .green-haze.btn, fieldset[disabled] .green-haze.btn:hover, fieldset[disabled] .green-haze.btn:focus, fieldset[disabled] .green-haze.btn:active, fieldset[disabled] .green-haze.btn.active { + background-color: #44b6ae; +} +.green-haze.btn .badge { + color: #44b6ae; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.green-haze-stripe { + border-left: 3px solid #44b6ae; +} + +/* Portlet */ +.portlet > .portlet-body.green-haze, +.portlet.green-haze { + background-color: #44b6ae; +} + +.portlet.solid.green-haze > .portlet-title, +.portlet.solid.green-haze > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.green-haze > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.green-haze > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.green-haze > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.green-haze > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.green-haze > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.green-haze > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.green-haze > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.green-haze > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.green-haze { + border: 1px solid #67c6bf; + border-top: 0; +} +.portlet.box.green-haze > .portlet-title { + background-color: #44b6ae; +} +.portlet.box.green-haze > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.green-haze > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.green-haze > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #93d7d2; + color: #a6deda; +} +.portlet.box.green-haze > .portlet-title > .actions .btn-default > i { + color: #b1e2de; +} +.portlet.box.green-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.green-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.green-haze > .portlet-title > .actions .btn-default:active, .portlet.box.green-haze > .portlet-title > .actions .btn-default.active { + border: 1px solid #b9e5e2; + color: #cbece9; +} + +/* Statistic Block */ +.dashboard-stat.green-haze { + background-color: #44b6ae; +} +.dashboard-stat.green-haze.dashboard-stat-light:hover { + background-color: #3ea7a0; +} +.dashboard-stat.green-haze .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.green-haze .details .number { + color: #FFFFFF; +} +.dashboard-stat.green-haze .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.green-haze .more { + color: #FFFFFF; + background-color: #3ea7a0; +} + +/* General Element */ +.bg-green-haze { + border-color: #44b6ae !important; + background-image: none !important; + background-color: #44b6ae !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-green-haze { + color: #44b6ae !important; +} + +.progress-bar.green-haze { + background: #44b6ae !important; + color: #FFFFFF !important; +} + +/*** +Green Jungle +***/ +/* Button */ +.green-jungle.btn { + color: #FFFFFF; + background-color: #26C281; +} +.green-jungle.btn:hover, .green-jungle.btn:focus, .green-jungle.btn:active, .green-jungle.btn.active { + color: #FFFFFF; + background-color: #20a46d; +} +.open .green-jungle.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #20a46d; +} +.green-jungle.btn:active, .green-jungle.btn.active { + background-image: none; + background-color: #1c8f5f; +} +.green-jungle.btn:active:hover, .green-jungle.btn.active:hover { + background-color: #1e9765; +} +.open .green-jungle.btn.dropdown-toggle { + background-image: none; +} +.green-jungle.btn.disabled, .green-jungle.btn.disabled:hover, .green-jungle.btn.disabled:focus, .green-jungle.btn.disabled:active, .green-jungle.btn.disabled.active, .green-jungle.btn[disabled], .green-jungle.btn[disabled]:hover, .green-jungle.btn[disabled]:focus, .green-jungle.btn[disabled]:active, .green-jungle.btn[disabled].active, fieldset[disabled] .green-jungle.btn, fieldset[disabled] .green-jungle.btn:hover, fieldset[disabled] .green-jungle.btn:focus, fieldset[disabled] .green-jungle.btn:active, fieldset[disabled] .green-jungle.btn.active { + background-color: #26C281; +} +.green-jungle.btn .badge { + color: #26C281; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.green-jungle-stripe { + border-left: 3px solid #26C281; +} + +/* Portlet */ +.portlet > .portlet-body.green-jungle, +.portlet.green-jungle { + background-color: #26C281; +} + +.portlet.solid.green-jungle > .portlet-title, +.portlet.solid.green-jungle > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.green-jungle > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.green-jungle > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.green-jungle > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.green-jungle > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.green-jungle > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.green-jungle > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.green-jungle > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.green-jungle > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.green-jungle { + border: 1px solid #41da9a; + border-top: 0; +} +.portlet.box.green-jungle > .portlet-title { + background-color: #26C281; +} +.portlet.box.green-jungle > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.green-jungle > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.green-jungle > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #74e4b5; + color: #8ae8c1; +} +.portlet.box.green-jungle > .portlet-title > .actions .btn-default > i { + color: #96ebc8; +} +.portlet.box.green-jungle > .portlet-title > .actions .btn-default:hover, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:focus, .portlet.box.green-jungle > .portlet-title > .actions .btn-default:active, .portlet.box.green-jungle > .portlet-title > .actions .btn-default.active { + border: 1px solid #9feccc; + color: #b4f0d7; +} + +/* Statistic Block */ +.dashboard-stat.green-jungle { + background-color: #26C281; +} +.dashboard-stat.green-jungle.dashboard-stat-light:hover { + background-color: #23b176; +} +.dashboard-stat.green-jungle .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.green-jungle .details .number { + color: #FFFFFF; +} +.dashboard-stat.green-jungle .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.green-jungle .more { + color: #FFFFFF; + background-color: #23b176; +} + +/* General Element */ +.bg-green-jungle { + border-color: #26C281 !important; + background-image: none !important; + background-color: #26C281 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-green-jungle { + color: #26C281 !important; +} + +.progress-bar.green-jungle { + background: #26C281 !important; + color: #FFFFFF !important; +} + +/*** +Green Sharp +***/ +/* Button */ +.green-sharp.btn { + color: #FFFFFF; + background-color: #4DB3A2; +} +.green-sharp.btn:hover, .green-sharp.btn:focus, .green-sharp.btn:active, .green-sharp.btn.active { + color: #FFFFFF; + background-color: #429a8c; +} +.open .green-sharp.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #429a8c; +} +.green-sharp.btn:active, .green-sharp.btn.active { + background-image: none; + background-color: #3a897b; +} +.green-sharp.btn:active:hover, .green-sharp.btn.active:hover { + background-color: #3d9082; +} +.open .green-sharp.btn.dropdown-toggle { + background-image: none; +} +.green-sharp.btn.disabled, .green-sharp.btn.disabled:hover, .green-sharp.btn.disabled:focus, .green-sharp.btn.disabled:active, .green-sharp.btn.disabled.active, .green-sharp.btn[disabled], .green-sharp.btn[disabled]:hover, .green-sharp.btn[disabled]:focus, .green-sharp.btn[disabled]:active, .green-sharp.btn[disabled].active, fieldset[disabled] .green-sharp.btn, fieldset[disabled] .green-sharp.btn:hover, fieldset[disabled] .green-sharp.btn:focus, fieldset[disabled] .green-sharp.btn:active, fieldset[disabled] .green-sharp.btn.active { + background-color: #4DB3A2; +} +.green-sharp.btn .badge { + color: #4DB3A2; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.green-sharp-stripe { + border-left: 3px solid #4DB3A2; +} + +/* Portlet */ +.portlet > .portlet-body.green-sharp, +.portlet.green-sharp { + background-color: #4DB3A2; +} + +.portlet.solid.green-sharp > .portlet-title, +.portlet.solid.green-sharp > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.green-sharp > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.green-sharp > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.green-sharp > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.green-sharp > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.green-sharp > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.green-sharp > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.green-sharp > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.green-sharp > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.green-sharp { + border: 1px solid #71c2b5; + border-top: 0; +} +.portlet.box.green-sharp > .portlet-title { + background-color: #4DB3A2; +} +.portlet.box.green-sharp > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.green-sharp > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.green-sharp > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #9cd5cb; + color: #addcd4; +} +.portlet.box.green-sharp > .portlet-title > .actions .btn-default > i { + color: #b8e1da; +} +.portlet.box.green-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.green-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.green-sharp > .portlet-title > .actions .btn-default.active { + border: 1px solid #bfe4de; + color: #d1ebe7; +} + +/* Statistic Block */ +.dashboard-stat.green-sharp { + background-color: #4DB3A2; +} +.dashboard-stat.green-sharp.dashboard-stat-light:hover { + background-color: #46a595; +} +.dashboard-stat.green-sharp .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.green-sharp .details .number { + color: #FFFFFF; +} +.dashboard-stat.green-sharp .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.green-sharp .more { + color: #FFFFFF; + background-color: #46a595; +} + +/* General Element */ +.bg-green-sharp { + border-color: #4DB3A2 !important; + background-image: none !important; + background-color: #4DB3A2 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-green-sharp { + color: #4DB3A2 !important; +} + +.progress-bar.green-sharp { + background: #4DB3A2 !important; + color: #FFFFFF !important; +} + +/*** +Green Sharp +***/ +/* Button */ +.green-soft.btn { + color: #FFFFFF; + background-color: #3faba4; +} +.green-soft.btn:hover, .green-soft.btn:focus, .green-soft.btn:active, .green-soft.btn.active { + color: #FFFFFF; + background-color: #35918b; +} +.open .green-soft.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #35918b; +} +.green-soft.btn:active, .green-soft.btn.active { + background-image: none; + background-color: #2f7e79; +} +.green-soft.btn:active:hover, .green-soft.btn.active:hover { + background-color: #318680; +} +.open .green-soft.btn.dropdown-toggle { + background-image: none; +} +.green-soft.btn.disabled, .green-soft.btn.disabled:hover, .green-soft.btn.disabled:focus, .green-soft.btn.disabled:active, .green-soft.btn.disabled.active, .green-soft.btn[disabled], .green-soft.btn[disabled]:hover, .green-soft.btn[disabled]:focus, .green-soft.btn[disabled]:active, .green-soft.btn[disabled].active, fieldset[disabled] .green-soft.btn, fieldset[disabled] .green-soft.btn:hover, fieldset[disabled] .green-soft.btn:focus, fieldset[disabled] .green-soft.btn:active, fieldset[disabled] .green-soft.btn.active { + background-color: #3faba4; +} +.green-soft.btn .badge { + color: #3faba4; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.green-soft-stripe { + border-left: 3px solid #3faba4; +} + +/* Portlet */ +.portlet > .portlet-body.green-soft, +.portlet.green-soft { + background-color: #3faba4; +} + +.portlet.solid.green-soft > .portlet-title, +.portlet.solid.green-soft > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.green-soft > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.green-soft > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.green-soft > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.green-soft > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.green-soft > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.green-soft > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.green-soft > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.green-soft > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.green-soft { + border: 1px solid #5bc2bc; + border-top: 0; +} +.portlet.box.green-soft > .portlet-title { + background-color: #3faba4; +} +.portlet.box.green-soft > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.green-soft > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.green-soft > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #87d3ce; + color: #9adad6; +} +.portlet.box.green-soft > .portlet-title > .actions .btn-default > i { + color: #a5deda; +} +.portlet.box.green-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.green-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.green-soft > .portlet-title > .actions .btn-default:active, .portlet.box.green-soft > .portlet-title > .actions .btn-default.active { + border: 1px solid #ade1dd; + color: #bfe7e5; +} + +/* Statistic Block */ +.dashboard-stat.green-soft { + background-color: #3faba4; +} +.dashboard-stat.green-soft.dashboard-stat-light:hover { + background-color: #3a9c96; +} +.dashboard-stat.green-soft .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.green-soft .details .number { + color: #FFFFFF; +} +.dashboard-stat.green-soft .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.green-soft .more { + color: #FFFFFF; + background-color: #3a9c96; +} + +/* General Element */ +.bg-green-soft { + border-color: #3faba4 !important; + background-image: none !important; + background-color: #3faba4 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-green-soft { + color: #3faba4 !important; +} + +.progress-bar.green-soft { + background: #3faba4 !important; + color: #FFFFFF !important; +} + +/*********** +Grey Colors +************/ +/*** +Grey Default +***/ +/* Button */ +.grey.btn { + color: #333333; + background-color: #E5E5E5; +} +.grey.btn:hover, .grey.btn:focus, .grey.btn:active, .grey.btn.active { + color: #333333; + background-color: lightgray; +} +.open .grey.btn.dropdown-toggle { + color: #333333; + background-color: lightgray; +} +.grey.btn:active, .grey.btn.active { + background-image: none; + background-color: #c6c6c6; +} +.grey.btn:active:hover, .grey.btn.active:hover { + background-color: #cccccc; +} +.open .grey.btn.dropdown-toggle { + background-image: none; +} +.grey.btn.disabled, .grey.btn.disabled:hover, .grey.btn.disabled:focus, .grey.btn.disabled:active, .grey.btn.disabled.active, .grey.btn[disabled], .grey.btn[disabled]:hover, .grey.btn[disabled]:focus, .grey.btn[disabled]:active, .grey.btn[disabled].active, fieldset[disabled] .grey.btn, fieldset[disabled] .grey.btn:hover, fieldset[disabled] .grey.btn:focus, fieldset[disabled] .grey.btn:active, fieldset[disabled] .grey.btn.active { + background-color: #E5E5E5; +} +.grey.btn .badge { + color: #E5E5E5; + background-color: #333333; +} + +/* Button Strip */ +.btn.grey-stripe { + border-left: 3px solid #E5E5E5; +} + +/* Portlet */ +.portlet > .portlet-body.grey, +.portlet.grey { + background-color: #E5E5E5; +} + +.portlet.solid.grey > .portlet-title, +.portlet.solid.grey > .portlet-body { + border: 0; + color: #333333; +} +.portlet.solid.grey > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.grey > .portlet-title > .caption > i { + color: #333333; +} +.portlet.solid.grey > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.grey > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.grey > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.grey > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.grey > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.grey > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.grey { + border: 1px solid white; + border-top: 0; +} +.portlet.box.grey > .portlet-title { + background-color: #E5E5E5; +} +.portlet.box.grey > .portlet-title > .caption { + color: #333333; +} +.portlet.box.grey > .portlet-title > .caption > i { + color: #333333; +} +.portlet.box.grey > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid white; + color: white; +} +.portlet.box.grey > .portlet-title > .actions .btn-default > i { + color: white; +} +.portlet.box.grey > .portlet-title > .actions .btn-default:hover, .portlet.box.grey > .portlet-title > .actions .btn-default:focus, .portlet.box.grey > .portlet-title > .actions .btn-default:active, .portlet.box.grey > .portlet-title > .actions .btn-default.active { + border: 1px solid white; + color: white; +} + +/* Statistic Block */ +.dashboard-stat.grey { + background-color: #E5E5E5; +} +.dashboard-stat.grey.dashboard-stat-light:hover { + background-color: #dbdbdb; +} +.dashboard-stat.grey .visual > i { + color: #333333; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.grey .details .number { + color: #333333; +} +.dashboard-stat.grey .details .desc { + color: #333333; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.grey .more { + color: #333333; + background-color: #dbdbdb; +} + +/* General Element */ +.bg-grey { + border-color: #E5E5E5 !important; + background-image: none !important; + background-color: #E5E5E5 !important; + color: #333333 !important; +} + +/* General Text & Icon Font Colors */ +.font-grey { + color: #E5E5E5 !important; +} + +.progress-bar.grey { + background: #E5E5E5 !important; + color: #333333 !important; +} + +/*** +Grey Steel +***/ +/* Button */ +.grey-steel.btn { + color: #80898e; + background-color: #e9edef; +} +.grey-steel.btn:hover, .grey-steel.btn:focus, .grey-steel.btn:active, .grey-steel.btn.active { + color: #80898e; + background-color: #d4dce0; +} +.open .grey-steel.btn.dropdown-toggle { + color: #80898e; + background-color: #d4dce0; +} +.grey-steel.btn:active, .grey-steel.btn.active { + background-image: none; + background-color: #c6d0d5; +} +.grey-steel.btn:active:hover, .grey-steel.btn.active:hover { + background-color: #cbd5da; +} +.open .grey-steel.btn.dropdown-toggle { + background-image: none; +} +.grey-steel.btn.disabled, .grey-steel.btn.disabled:hover, .grey-steel.btn.disabled:focus, .grey-steel.btn.disabled:active, .grey-steel.btn.disabled.active, .grey-steel.btn[disabled], .grey-steel.btn[disabled]:hover, .grey-steel.btn[disabled]:focus, .grey-steel.btn[disabled]:active, .grey-steel.btn[disabled].active, fieldset[disabled] .grey-steel.btn, fieldset[disabled] .grey-steel.btn:hover, fieldset[disabled] .grey-steel.btn:focus, fieldset[disabled] .grey-steel.btn:active, fieldset[disabled] .grey-steel.btn.active { + background-color: #e9edef; +} +.grey-steel.btn .badge { + color: #e9edef; + background-color: #80898e; +} + +/* Button Strip */ +.btn.grey-steel-stripe { + border-left: 3px solid #e9edef; +} + +/* Portlet */ +.portlet > .portlet-body.grey-steel, +.portlet.grey-steel { + background-color: #e9edef; +} + +.portlet.solid.grey-steel > .portlet-title, +.portlet.solid.grey-steel > .portlet-body { + border: 0; + color: #80898e; +} +.portlet.solid.grey-steel > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.grey-steel > .portlet-title > .caption > i { + color: #80898e; +} +.portlet.solid.grey-steel > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.grey-steel > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.grey-steel > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.grey-steel > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.grey-steel > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.grey-steel > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.grey-steel { + border: 1px solid white; + border-top: 0; +} +.portlet.box.grey-steel > .portlet-title { + background-color: #e9edef; +} +.portlet.box.grey-steel > .portlet-title > .caption { + color: #80898e; +} +.portlet.box.grey-steel > .portlet-title > .caption > i { + color: #80898e; +} +.portlet.box.grey-steel > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid white; + color: white; +} +.portlet.box.grey-steel > .portlet-title > .actions .btn-default > i { + color: white; +} +.portlet.box.grey-steel > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-steel > .portlet-title > .actions .btn-default:active, .portlet.box.grey-steel > .portlet-title > .actions .btn-default.active { + border: 1px solid white; + color: white; +} + +/* Statistic Block */ +.dashboard-stat.grey-steel { + background-color: #e9edef; +} +.dashboard-stat.grey-steel.dashboard-stat-light:hover { + background-color: #dde3e6; +} +.dashboard-stat.grey-steel .visual > i { + color: #80898e; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.grey-steel .details .number { + color: #80898e; +} +.dashboard-stat.grey-steel .details .desc { + color: #80898e; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.grey-steel .more { + color: #80898e; + background-color: #dde3e6; +} + +/* General Element */ +.bg-grey-steel { + border-color: #e9edef !important; + background-image: none !important; + background-color: #e9edef !important; + color: #80898e !important; +} + +/* General Text & Icon Font Colors */ +.font-grey-steel { + color: #e9edef !important; +} + +.progress-bar.grey-steel { + background: #e9edef !important; + color: #80898e !important; +} + +/*** +Grey Cararra +***/ +/* Button */ +.grey-cararra.btn { + color: #333333; + background-color: #fafafa; +} +.grey-cararra.btn:hover, .grey-cararra.btn:focus, .grey-cararra.btn:active, .grey-cararra.btn.active { + color: #333333; + background-color: #e8e8e8; +} +.open .grey-cararra.btn.dropdown-toggle { + color: #333333; + background-color: #e8e8e8; +} +.grey-cararra.btn:active, .grey-cararra.btn.active { + background-image: none; + background-color: #dbdbdb; +} +.grey-cararra.btn:active:hover, .grey-cararra.btn.active:hover { + background-color: #e1e1e1; +} +.open .grey-cararra.btn.dropdown-toggle { + background-image: none; +} +.grey-cararra.btn.disabled, .grey-cararra.btn.disabled:hover, .grey-cararra.btn.disabled:focus, .grey-cararra.btn.disabled:active, .grey-cararra.btn.disabled.active, .grey-cararra.btn[disabled], .grey-cararra.btn[disabled]:hover, .grey-cararra.btn[disabled]:focus, .grey-cararra.btn[disabled]:active, .grey-cararra.btn[disabled].active, fieldset[disabled] .grey-cararra.btn, fieldset[disabled] .grey-cararra.btn:hover, fieldset[disabled] .grey-cararra.btn:focus, fieldset[disabled] .grey-cararra.btn:active, fieldset[disabled] .grey-cararra.btn.active { + background-color: #fafafa; +} +.grey-cararra.btn .badge { + color: #fafafa; + background-color: #333333; +} + +/* Button Strip */ +.btn.grey-cararra-stripe { + border-left: 3px solid #fafafa; +} + +/* Portlet */ +.portlet > .portlet-body.grey-cararra, +.portlet.grey-cararra { + background-color: #fafafa; +} + +.portlet.solid.grey-cararra > .portlet-title, +.portlet.solid.grey-cararra > .portlet-body { + border: 0; + color: #333333; +} +.portlet.solid.grey-cararra > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.grey-cararra > .portlet-title > .caption > i { + color: #333333; +} +.portlet.solid.grey-cararra > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.grey-cararra > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.grey-cararra > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.grey-cararra > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.grey-cararra > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.grey-cararra > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.grey-cararra { + border: 1px solid white; + border-top: 0; +} +.portlet.box.grey-cararra > .portlet-title { + background-color: #fafafa; +} +.portlet.box.grey-cararra > .portlet-title > .caption { + color: #333333; +} +.portlet.box.grey-cararra > .portlet-title > .caption > i { + color: #333333; +} +.portlet.box.grey-cararra > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid white; + color: white; +} +.portlet.box.grey-cararra > .portlet-title > .actions .btn-default > i { + color: white; +} +.portlet.box.grey-cararra > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cararra > .portlet-title > .actions .btn-default.active { + border: 1px solid white; + color: white; +} + +/* Statistic Block */ +.dashboard-stat.grey-cararra { + background-color: #fafafa; +} +.dashboard-stat.grey-cararra.dashboard-stat-light:hover { + background-color: #f0f0f0; +} +.dashboard-stat.grey-cararra .visual > i { + color: #333333; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.grey-cararra .details .number { + color: #333333; +} +.dashboard-stat.grey-cararra .details .desc { + color: #333333; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.grey-cararra .more { + color: #333333; + background-color: #f0f0f0; +} + +/* General Element */ +.bg-grey-cararra { + border-color: #fafafa !important; + background-image: none !important; + background-color: #fafafa !important; + color: #333333 !important; +} + +/* General Text & Icon Font Colors */ +.font-grey-cararra { + color: #fafafa !important; +} + +.progress-bar.grey-cararra { + background: #fafafa !important; + color: #333333 !important; +} + +/*** +Grey Gallery +***/ +/* Button */ +.grey-gallery.btn { + color: #ffffff; + background-color: #555555; +} +.grey-gallery.btn:hover, .grey-gallery.btn:focus, .grey-gallery.btn:active, .grey-gallery.btn.active { + color: #ffffff; + background-color: #434343; +} +.open .grey-gallery.btn.dropdown-toggle { + color: #ffffff; + background-color: #434343; +} +.grey-gallery.btn:active, .grey-gallery.btn.active { + background-image: none; + background-color: #363636; +} +.grey-gallery.btn:active:hover, .grey-gallery.btn.active:hover { + background-color: #3b3b3b; +} +.open .grey-gallery.btn.dropdown-toggle { + background-image: none; +} +.grey-gallery.btn.disabled, .grey-gallery.btn.disabled:hover, .grey-gallery.btn.disabled:focus, .grey-gallery.btn.disabled:active, .grey-gallery.btn.disabled.active, .grey-gallery.btn[disabled], .grey-gallery.btn[disabled]:hover, .grey-gallery.btn[disabled]:focus, .grey-gallery.btn[disabled]:active, .grey-gallery.btn[disabled].active, fieldset[disabled] .grey-gallery.btn, fieldset[disabled] .grey-gallery.btn:hover, fieldset[disabled] .grey-gallery.btn:focus, fieldset[disabled] .grey-gallery.btn:active, fieldset[disabled] .grey-gallery.btn.active { + background-color: #555555; +} +.grey-gallery.btn .badge { + color: #555555; + background-color: #ffffff; +} + +/* Button Strip */ +.btn.grey-gallery-stripe { + border-left: 3px solid #555555; +} + +/* Portlet */ +.portlet > .portlet-body.grey-gallery, +.portlet.grey-gallery { + background-color: #555555; +} + +.portlet.solid.grey-gallery > .portlet-title, +.portlet.solid.grey-gallery > .portlet-body { + border: 0; + color: #ffffff; +} +.portlet.solid.grey-gallery > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.grey-gallery > .portlet-title > .caption > i { + color: #ffffff; +} +.portlet.solid.grey-gallery > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.grey-gallery > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.grey-gallery > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.grey-gallery > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.grey-gallery > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.grey-gallery > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.grey-gallery { + border: 1px solid #6e6e6e; + border-top: 0; +} +.portlet.box.grey-gallery > .portlet-title { + background-color: #555555; +} +.portlet.box.grey-gallery > .portlet-title > .caption { + color: #ffffff; +} +.portlet.box.grey-gallery > .portlet-title > .caption > i { + color: #ffffff; +} +.portlet.box.grey-gallery > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #8d8d8d; + color: #9a9a9a; +} +.portlet.box.grey-gallery > .portlet-title > .actions .btn-default > i { + color: #a2a2a2; +} +.portlet.box.grey-gallery > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default:active, .portlet.box.grey-gallery > .portlet-title > .actions .btn-default.active { + border: 1px solid #a7a7a7; + color: #b3b3b3; +} + +/* Statistic Block */ +.dashboard-stat.grey-gallery { + background-color: #555555; +} +.dashboard-stat.grey-gallery.dashboard-stat-light:hover { + background-color: #4b4b4b; +} +.dashboard-stat.grey-gallery .visual > i { + color: #ffffff; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.grey-gallery .details .number { + color: #ffffff; +} +.dashboard-stat.grey-gallery .details .desc { + color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.grey-gallery .more { + color: #ffffff; + background-color: #4b4b4b; +} + +/* General Element */ +.bg-grey-gallery { + border-color: #555555 !important; + background-image: none !important; + background-color: #555555 !important; + color: #ffffff !important; +} + +/* General Text & Icon Font Colors */ +.font-grey-gallery { + color: #555555 !important; +} + +.progress-bar.grey-gallery { + background: #555555 !important; + color: #ffffff !important; +} + +/*** +Grey Cascade +***/ +/* Button */ +.grey-cascade.btn { + color: #FFFFFF; + background-color: #95A5A6; +} +.grey-cascade.btn:hover, .grey-cascade.btn:focus, .grey-cascade.btn:active, .grey-cascade.btn.active { + color: #FFFFFF; + background-color: #829596; +} +.open .grey-cascade.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #829596; +} +.grey-cascade.btn:active, .grey-cascade.btn.active { + background-image: none; + background-color: #74898a; +} +.grey-cascade.btn:active:hover, .grey-cascade.btn.active:hover { + background-color: #798d8f; +} +.open .grey-cascade.btn.dropdown-toggle { + background-image: none; +} +.grey-cascade.btn.disabled, .grey-cascade.btn.disabled:hover, .grey-cascade.btn.disabled:focus, .grey-cascade.btn.disabled:active, .grey-cascade.btn.disabled.active, .grey-cascade.btn[disabled], .grey-cascade.btn[disabled]:hover, .grey-cascade.btn[disabled]:focus, .grey-cascade.btn[disabled]:active, .grey-cascade.btn[disabled].active, fieldset[disabled] .grey-cascade.btn, fieldset[disabled] .grey-cascade.btn:hover, fieldset[disabled] .grey-cascade.btn:focus, fieldset[disabled] .grey-cascade.btn:active, fieldset[disabled] .grey-cascade.btn.active { + background-color: #95A5A6; +} +.grey-cascade.btn .badge { + color: #95A5A6; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.grey-cascade-stripe { + border-left: 3px solid #95A5A6; +} + +/* Portlet */ +.portlet > .portlet-body.grey-cascade, +.portlet.grey-cascade { + background-color: #95A5A6; +} + +.portlet.solid.grey-cascade > .portlet-title, +.portlet.solid.grey-cascade > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.grey-cascade > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.grey-cascade > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.grey-cascade > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.grey-cascade > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.grey-cascade > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.grey-cascade > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.grey-cascade > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.grey-cascade > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.grey-cascade { + border: 1px solid #b1bdbd; + border-top: 0; +} +.portlet.box.grey-cascade > .portlet-title { + background-color: #95A5A6; +} +.portlet.box.grey-cascade > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.grey-cascade > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.grey-cascade > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #d2d9d9; + color: #e0e5e5; +} +.portlet.box.grey-cascade > .portlet-title > .actions .btn-default > i { + color: #e8ecec; +} +.portlet.box.grey-cascade > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default:active, .portlet.box.grey-cascade > .portlet-title > .actions .btn-default.active { + border: 1px solid #eef0f0; + color: #fcfcfc; +} + +/* Statistic Block */ +.dashboard-stat.grey-cascade { + background-color: #95A5A6; +} +.dashboard-stat.grey-cascade.dashboard-stat-light:hover { + background-color: #8a9c9d; +} +.dashboard-stat.grey-cascade .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.grey-cascade .details .number { + color: #FFFFFF; +} +.dashboard-stat.grey-cascade .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.grey-cascade .more { + color: #FFFFFF; + background-color: #8a9c9d; +} + +/* General Element */ +.bg-grey-cascade { + border-color: #95A5A6 !important; + background-image: none !important; + background-color: #95A5A6 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-grey-cascade { + color: #95A5A6 !important; +} + +.progress-bar.grey-cascade { + background: #95A5A6 !important; + color: #FFFFFF !important; +} + +/*** +Grey Silver +***/ +/* Button */ +.grey-silver.btn { + color: #FAFCFB; + background-color: #BFBFBF; +} +.grey-silver.btn:hover, .grey-silver.btn:focus, .grey-silver.btn:active, .grey-silver.btn.active { + color: #FAFCFB; + background-color: #adadad; +} +.open .grey-silver.btn.dropdown-toggle { + color: #FAFCFB; + background-color: #adadad; +} +.grey-silver.btn:active, .grey-silver.btn.active { + background-image: none; + background-color: #a0a0a0; +} +.grey-silver.btn:active:hover, .grey-silver.btn.active:hover { + background-color: #a6a6a6; +} +.open .grey-silver.btn.dropdown-toggle { + background-image: none; +} +.grey-silver.btn.disabled, .grey-silver.btn.disabled:hover, .grey-silver.btn.disabled:focus, .grey-silver.btn.disabled:active, .grey-silver.btn.disabled.active, .grey-silver.btn[disabled], .grey-silver.btn[disabled]:hover, .grey-silver.btn[disabled]:focus, .grey-silver.btn[disabled]:active, .grey-silver.btn[disabled].active, fieldset[disabled] .grey-silver.btn, fieldset[disabled] .grey-silver.btn:hover, fieldset[disabled] .grey-silver.btn:focus, fieldset[disabled] .grey-silver.btn:active, fieldset[disabled] .grey-silver.btn.active { + background-color: #BFBFBF; +} +.grey-silver.btn .badge { + color: #BFBFBF; + background-color: #FAFCFB; +} + +/* Button Strip */ +.btn.grey-silver-stripe { + border-left: 3px solid #BFBFBF; +} + +/* Portlet */ +.portlet > .portlet-body.grey-silver, +.portlet.grey-silver { + background-color: #BFBFBF; +} + +.portlet.solid.grey-silver > .portlet-title, +.portlet.solid.grey-silver > .portlet-body { + border: 0; + color: #FAFCFB; +} +.portlet.solid.grey-silver > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.grey-silver > .portlet-title > .caption > i { + color: #FAFCFB; +} +.portlet.solid.grey-silver > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.grey-silver > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.grey-silver > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.grey-silver > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.grey-silver > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.grey-silver > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.grey-silver { + border: 1px solid #d9d9d9; + border-top: 0; +} +.portlet.box.grey-silver > .portlet-title { + background-color: #BFBFBF; +} +.portlet.box.grey-silver > .portlet-title > .caption { + color: #FAFCFB; +} +.portlet.box.grey-silver > .portlet-title > .caption > i { + color: #FAFCFB; +} +.portlet.box.grey-silver > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #f7f7f7; + color: white; +} +.portlet.box.grey-silver > .portlet-title > .actions .btn-default > i { + color: white; +} +.portlet.box.grey-silver > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-silver > .portlet-title > .actions .btn-default:active, .portlet.box.grey-silver > .portlet-title > .actions .btn-default.active { + border: 1px solid white; + color: white; +} + +/* Statistic Block */ +.dashboard-stat.grey-silver { + background-color: #BFBFBF; +} +.dashboard-stat.grey-silver.dashboard-stat-light:hover { + background-color: #b5b5b5; +} +.dashboard-stat.grey-silver .visual > i { + color: #FAFCFB; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.grey-silver .details .number { + color: #FAFCFB; +} +.dashboard-stat.grey-silver .details .desc { + color: #FAFCFB; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.grey-silver .more { + color: #FAFCFB; + background-color: #b5b5b5; +} + +/* General Element */ +.bg-grey-silver { + border-color: #BFBFBF !important; + background-image: none !important; + background-color: #BFBFBF !important; + color: #FAFCFB !important; +} + +/* General Text & Icon Font Colors */ +.font-grey-silver { + color: #BFBFBF !important; +} + +.progress-bar.grey-silver { + background: #BFBFBF !important; + color: #FAFCFB !important; +} + +/*** +Grey Salsa +***/ +/* Button */ +.grey-salsa.btn { + color: #FAFCFB; + background-color: #ACB5C3; +} +.grey-salsa.btn:hover, .grey-salsa.btn:focus, .grey-salsa.btn:active, .grey-salsa.btn.active { + color: #FAFCFB; + background-color: #97a3b4; +} +.open .grey-salsa.btn.dropdown-toggle { + color: #FAFCFB; + background-color: #97a3b4; +} +.grey-salsa.btn:active, .grey-salsa.btn.active { + background-image: none; + background-color: #8895a9; +} +.grey-salsa.btn:active:hover, .grey-salsa.btn.active:hover { + background-color: #8e9bae; +} +.open .grey-salsa.btn.dropdown-toggle { + background-image: none; +} +.grey-salsa.btn.disabled, .grey-salsa.btn.disabled:hover, .grey-salsa.btn.disabled:focus, .grey-salsa.btn.disabled:active, .grey-salsa.btn.disabled.active, .grey-salsa.btn[disabled], .grey-salsa.btn[disabled]:hover, .grey-salsa.btn[disabled]:focus, .grey-salsa.btn[disabled]:active, .grey-salsa.btn[disabled].active, fieldset[disabled] .grey-salsa.btn, fieldset[disabled] .grey-salsa.btn:hover, fieldset[disabled] .grey-salsa.btn:focus, fieldset[disabled] .grey-salsa.btn:active, fieldset[disabled] .grey-salsa.btn.active { + background-color: #ACB5C3; +} +.grey-salsa.btn .badge { + color: #ACB5C3; + background-color: #FAFCFB; +} + +/* Button Strip */ +.btn.grey-salsa-stripe { + border-left: 3px solid #ACB5C3; +} + +/* Portlet */ +.portlet > .portlet-body.grey-salsa, +.portlet.grey-salsa { + background-color: #ACB5C3; +} + +.portlet.solid.grey-salsa > .portlet-title, +.portlet.solid.grey-salsa > .portlet-body { + border: 0; + color: #FAFCFB; +} +.portlet.solid.grey-salsa > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.grey-salsa > .portlet-title > .caption > i { + color: #FAFCFB; +} +.portlet.solid.grey-salsa > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.grey-salsa > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.grey-salsa > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.grey-salsa > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.grey-salsa > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.grey-salsa > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.grey-salsa { + border: 1px solid #cacfd8; + border-top: 0; +} +.portlet.box.grey-salsa > .portlet-title { + background-color: #ACB5C3; +} +.portlet.box.grey-salsa > .portlet-title > .caption { + color: #FAFCFB; +} +.portlet.box.grey-salsa > .portlet-title > .caption > i { + color: #FAFCFB; +} +.portlet.box.grey-salsa > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #edeff2; + color: #fcfcfd; +} +.portlet.box.grey-salsa > .portlet-title > .actions .btn-default > i { + color: white; +} +.portlet.box.grey-salsa > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salsa > .portlet-title > .actions .btn-default.active { + border: 1px solid white; + color: white; +} + +/* Statistic Block */ +.dashboard-stat.grey-salsa { + background-color: #ACB5C3; +} +.dashboard-stat.grey-salsa.dashboard-stat-light:hover { + background-color: #a0aaba; +} +.dashboard-stat.grey-salsa .visual > i { + color: #FAFCFB; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.grey-salsa .details .number { + color: #FAFCFB; +} +.dashboard-stat.grey-salsa .details .desc { + color: #FAFCFB; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.grey-salsa .more { + color: #FAFCFB; + background-color: #a0aaba; +} + +/* General Element */ +.bg-grey-salsa { + border-color: #ACB5C3 !important; + background-image: none !important; + background-color: #ACB5C3 !important; + color: #FAFCFB !important; +} + +/* General Text & Icon Font Colors */ +.font-grey-salsa { + color: #ACB5C3 !important; +} + +.progress-bar.grey-salsa { + background: #ACB5C3 !important; + color: #FAFCFB !important; +} + +/*** +Grey Salt +***/ +/* Button */ +.grey-salt.btn { + color: #FAFCFB; + background-color: #bfcad1; +} +.grey-salt.btn:hover, .grey-salt.btn:focus, .grey-salt.btn:active, .grey-salt.btn.active { + color: #FAFCFB; + background-color: #aab9c2; +} +.open .grey-salt.btn.dropdown-toggle { + color: #FAFCFB; + background-color: #aab9c2; +} +.grey-salt.btn:active, .grey-salt.btn.active { + background-image: none; + background-color: #9badb7; +} +.grey-salt.btn:active:hover, .grey-salt.btn.active:hover { + background-color: #a1b1bc; +} +.open .grey-salt.btn.dropdown-toggle { + background-image: none; +} +.grey-salt.btn.disabled, .grey-salt.btn.disabled:hover, .grey-salt.btn.disabled:focus, .grey-salt.btn.disabled:active, .grey-salt.btn.disabled.active, .grey-salt.btn[disabled], .grey-salt.btn[disabled]:hover, .grey-salt.btn[disabled]:focus, .grey-salt.btn[disabled]:active, .grey-salt.btn[disabled].active, fieldset[disabled] .grey-salt.btn, fieldset[disabled] .grey-salt.btn:hover, fieldset[disabled] .grey-salt.btn:focus, fieldset[disabled] .grey-salt.btn:active, fieldset[disabled] .grey-salt.btn.active { + background-color: #bfcad1; +} +.grey-salt.btn .badge { + color: #bfcad1; + background-color: #FAFCFB; +} + +/* Button Strip */ +.btn.grey-salt-stripe { + border-left: 3px solid #bfcad1; +} + +/* Portlet */ +.portlet > .portlet-body.grey-salt, +.portlet.grey-salt { + background-color: #bfcad1; +} + +.portlet.solid.grey-salt > .portlet-title, +.portlet.solid.grey-salt > .portlet-body { + border: 0; + color: #FAFCFB; +} +.portlet.solid.grey-salt > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.grey-salt > .portlet-title > .caption > i { + color: #FAFCFB; +} +.portlet.solid.grey-salt > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.grey-salt > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.grey-salt > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.grey-salt > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.grey-salt > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.grey-salt > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.grey-salt { + border: 1px solid #dde3e6; + border-top: 0; +} +.portlet.box.grey-salt > .portlet-title { + background-color: #bfcad1; +} +.portlet.box.grey-salt > .portlet-title > .caption { + color: #FAFCFB; +} +.portlet.box.grey-salt > .portlet-title > .caption > i { + color: #FAFCFB; +} +.portlet.box.grey-salt > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid white; + color: white; +} +.portlet.box.grey-salt > .portlet-title > .actions .btn-default > i { + color: white; +} +.portlet.box.grey-salt > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-salt > .portlet-title > .actions .btn-default:active, .portlet.box.grey-salt > .portlet-title > .actions .btn-default.active { + border: 1px solid white; + color: white; +} + +/* Statistic Block */ +.dashboard-stat.grey-salt { + background-color: #bfcad1; +} +.dashboard-stat.grey-salt.dashboard-stat-light:hover { + background-color: #b3c0c8; +} +.dashboard-stat.grey-salt .visual > i { + color: #FAFCFB; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.grey-salt .details .number { + color: #FAFCFB; +} +.dashboard-stat.grey-salt .details .desc { + color: #FAFCFB; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.grey-salt .more { + color: #FAFCFB; + background-color: #b3c0c8; +} + +/* General Element */ +.bg-grey-salt { + border-color: #bfcad1 !important; + background-image: none !important; + background-color: #bfcad1 !important; + color: #FAFCFB !important; +} + +/* General Text & Icon Font Colors */ +.font-grey-salt { + color: #bfcad1 !important; +} + +.progress-bar.grey-salt { + background: #bfcad1 !important; + color: #FAFCFB !important; +} + +/*** +Grey Mint +***/ +/* Button */ +.grey-mint.btn { + color: #FAFCFB; + background-color: #9eacb4; +} +.grey-mint.btn:hover, .grey-mint.btn:focus, .grey-mint.btn:active, .grey-mint.btn.active { + color: #FAFCFB; + background-color: #8a9ba4; +} +.open .grey-mint.btn.dropdown-toggle { + color: #FAFCFB; + background-color: #8a9ba4; +} +.grey-mint.btn:active, .grey-mint.btn.active { + background-image: none; + background-color: #7b8e99; +} +.grey-mint.btn:active:hover, .grey-mint.btn.active:hover { + background-color: #81939e; +} +.open .grey-mint.btn.dropdown-toggle { + background-image: none; +} +.grey-mint.btn.disabled, .grey-mint.btn.disabled:hover, .grey-mint.btn.disabled:focus, .grey-mint.btn.disabled:active, .grey-mint.btn.disabled.active, .grey-mint.btn[disabled], .grey-mint.btn[disabled]:hover, .grey-mint.btn[disabled]:focus, .grey-mint.btn[disabled]:active, .grey-mint.btn[disabled].active, fieldset[disabled] .grey-mint.btn, fieldset[disabled] .grey-mint.btn:hover, fieldset[disabled] .grey-mint.btn:focus, fieldset[disabled] .grey-mint.btn:active, fieldset[disabled] .grey-mint.btn.active { + background-color: #9eacb4; +} +.grey-mint.btn .badge { + color: #9eacb4; + background-color: #FAFCFB; +} + +/* Button Strip */ +.btn.grey-mint-stripe { + border-left: 3px solid #9eacb4; +} + +/* Portlet */ +.portlet > .portlet-body.grey-mint, +.portlet.grey-mint { + background-color: #9eacb4; +} + +.portlet.solid.grey-mint > .portlet-title, +.portlet.solid.grey-mint > .portlet-body { + border: 0; + color: #FAFCFB; +} +.portlet.solid.grey-mint > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.grey-mint > .portlet-title > .caption > i { + color: #FAFCFB; +} +.portlet.solid.grey-mint > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.grey-mint > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.grey-mint > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.grey-mint > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.grey-mint > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.grey-mint > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.grey-mint { + border: 1px solid #bbc5ca; + border-top: 0; +} +.portlet.box.grey-mint > .portlet-title { + background-color: #9eacb4; +} +.portlet.box.grey-mint > .portlet-title > .caption { + color: #FAFCFB; +} +.portlet.box.grey-mint > .portlet-title > .caption > i { + color: #FAFCFB; +} +.portlet.box.grey-mint > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #dde2e5; + color: #eceef0; +} +.portlet.box.grey-mint > .portlet-title > .actions .btn-default > i { + color: #f4f6f7; +} +.portlet.box.grey-mint > .portlet-title > .actions .btn-default:hover, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:focus, .portlet.box.grey-mint > .portlet-title > .actions .btn-default:active, .portlet.box.grey-mint > .portlet-title > .actions .btn-default.active { + border: 1px solid #fafbfb; + color: white; +} + +/* Statistic Block */ +.dashboard-stat.grey-mint { + background-color: #9eacb4; +} +.dashboard-stat.grey-mint.dashboard-stat-light:hover { + background-color: #92a2ab; +} +.dashboard-stat.grey-mint .visual > i { + color: #FAFCFB; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.grey-mint .details .number { + color: #FAFCFB; +} +.dashboard-stat.grey-mint .details .desc { + color: #FAFCFB; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.grey-mint .more { + color: #FAFCFB; + background-color: #92a2ab; +} + +/* General Element */ +.bg-grey-mint { + border-color: #9eacb4 !important; + background-image: none !important; + background-color: #9eacb4 !important; + color: #FAFCFB !important; +} + +/* General Text & Icon Font Colors */ +.font-grey-mint { + color: #9eacb4 !important; +} + +.progress-bar.grey-mint { + background: #9eacb4 !important; + color: #FAFCFB !important; +} + +/*********** +Red Colors +************/ +/*** +Red Default +***/ +/* Button */ +.red.btn { + color: #FFFFFF; + background-color: #cb5a5e; +} +.red.btn:hover, .red.btn:focus, .red.btn:active, .red.btn.active { + color: #FFFFFF; + background-color: #c23f44; +} +.open .red.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #c23f44; +} +.red.btn:active, .red.btn.active { + background-image: none; + background-color: #b0383c; +} +.red.btn:active:hover, .red.btn.active:hover { + background-color: #b83a3e; +} +.open .red.btn.dropdown-toggle { + background-image: none; +} +.red.btn.disabled, .red.btn.disabled:hover, .red.btn.disabled:focus, .red.btn.disabled:active, .red.btn.disabled.active, .red.btn[disabled], .red.btn[disabled]:hover, .red.btn[disabled]:focus, .red.btn[disabled]:active, .red.btn[disabled].active, fieldset[disabled] .red.btn, fieldset[disabled] .red.btn:hover, fieldset[disabled] .red.btn:focus, fieldset[disabled] .red.btn:active, fieldset[disabled] .red.btn.active { + background-color: #cb5a5e; +} +.red.btn .badge { + color: #cb5a5e; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.red-stripe { + border-left: 3px solid #cb5a5e; +} + +/* Portlet */ +.portlet > .portlet-body.red, +.portlet.red { + background-color: #cb5a5e; +} + +.portlet.solid.red > .portlet-title, +.portlet.solid.red > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.red > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.red > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.red > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.red > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.red > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.red > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.red > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.red > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.red { + border: 1px solid #d78184; + border-top: 0; +} +.portlet.box.red > .portlet-title { + background-color: #cb5a5e; +} +.portlet.box.red > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.red > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.red > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #e6afb1; + color: #ecc3c4; +} +.portlet.box.red > .portlet-title > .actions .btn-default > i { + color: #f0ced0; +} +.portlet.box.red > .portlet-title > .actions .btn-default:hover, .portlet.box.red > .portlet-title > .actions .btn-default:focus, .portlet.box.red > .portlet-title > .actions .btn-default:active, .portlet.box.red > .portlet-title > .actions .btn-default.active { + border: 1px solid #f2d6d7; + color: #f8e9ea; +} + +/* Statistic Block */ +.dashboard-stat.red { + background-color: #cb5a5e; +} +.dashboard-stat.red.dashboard-stat-light:hover { + background-color: #c64a4f; +} +.dashboard-stat.red .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.red .details .number { + color: #FFFFFF; +} +.dashboard-stat.red .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.red .more { + color: #FFFFFF; + background-color: #c64a4f; +} + +/* General Element */ +.bg-red { + border-color: #cb5a5e !important; + background-image: none !important; + background-color: #cb5a5e !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-red { + color: #cb5a5e !important; +} + +.progress-bar.red { + background: #cb5a5e !important; + color: #FFFFFF !important; +} + +/*** +Red Pink +***/ +/* Button */ +.red-pink.btn { + color: #FFFFFF; + background-color: #E08283; +} +.red-pink.btn:hover, .red-pink.btn:focus, .red-pink.btn:active, .red-pink.btn.active { + color: #FFFFFF; + background-color: #d96567; +} +.open .red-pink.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #d96567; +} +.red-pink.btn:active, .red-pink.btn.active { + background-image: none; + background-color: #d45152; +} +.red-pink.btn:active:hover, .red-pink.btn.active:hover { + background-color: #d6595a; +} +.open .red-pink.btn.dropdown-toggle { + background-image: none; +} +.red-pink.btn.disabled, .red-pink.btn.disabled:hover, .red-pink.btn.disabled:focus, .red-pink.btn.disabled:active, .red-pink.btn.disabled.active, .red-pink.btn[disabled], .red-pink.btn[disabled]:hover, .red-pink.btn[disabled]:focus, .red-pink.btn[disabled]:active, .red-pink.btn[disabled].active, fieldset[disabled] .red-pink.btn, fieldset[disabled] .red-pink.btn:hover, fieldset[disabled] .red-pink.btn:focus, fieldset[disabled] .red-pink.btn:active, fieldset[disabled] .red-pink.btn.active { + background-color: #E08283; +} +.red-pink.btn .badge { + color: #E08283; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.red-pink-stripe { + border-left: 3px solid #E08283; +} + +/* Portlet */ +.portlet > .portlet-body.red-pink, +.portlet.red-pink { + background-color: #E08283; +} + +.portlet.solid.red-pink > .portlet-title, +.portlet.solid.red-pink > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.red-pink > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.red-pink > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.red-pink > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.red-pink > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.red-pink > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.red-pink > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.red-pink > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.red-pink > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.red-pink { + border: 1px solid #eaabac; + border-top: 0; +} +.portlet.box.red-pink > .portlet-title { + background-color: #E08283; +} +.portlet.box.red-pink > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.red-pink > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.red-pink > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #f6dcdc; + color: #fbf0f0; +} +.portlet.box.red-pink > .portlet-title > .actions .btn-default > i { + color: #fefdfd; +} +.portlet.box.red-pink > .portlet-title > .actions .btn-default:hover, .portlet.box.red-pink > .portlet-title > .actions .btn-default:focus, .portlet.box.red-pink > .portlet-title > .actions .btn-default:active, .portlet.box.red-pink > .portlet-title > .actions .btn-default.active { + border: 1px solid white; + color: white; +} + +/* Statistic Block */ +.dashboard-stat.red-pink { + background-color: #E08283; +} +.dashboard-stat.red-pink.dashboard-stat-light:hover { + background-color: #dc7273; +} +.dashboard-stat.red-pink .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.red-pink .details .number { + color: #FFFFFF; +} +.dashboard-stat.red-pink .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.red-pink .more { + color: #FFFFFF; + background-color: #dc7273; +} + +/* General Element */ +.bg-red-pink { + border-color: #E08283 !important; + background-image: none !important; + background-color: #E08283 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-red-pink { + color: #E08283 !important; +} + +.progress-bar.red-pink { + background: #E08283 !important; + color: #FFFFFF !important; +} + +/*** +Red Sunglo +***/ +/* Button */ +.red-sunglo.btn { + color: #FFFFFF; + background-color: #E26A6A; +} +.red-sunglo.btn:hover, .red-sunglo.btn:focus, .red-sunglo.btn:active, .red-sunglo.btn.active { + color: #FFFFFF; + background-color: #dc4c4c; +} +.open .red-sunglo.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #dc4c4c; +} +.red-sunglo.btn:active, .red-sunglo.btn.active { + background-image: none; + background-color: #d83737; +} +.red-sunglo.btn:active:hover, .red-sunglo.btn.active:hover { + background-color: #da3f3f; +} +.open .red-sunglo.btn.dropdown-toggle { + background-image: none; +} +.red-sunglo.btn.disabled, .red-sunglo.btn.disabled:hover, .red-sunglo.btn.disabled:focus, .red-sunglo.btn.disabled:active, .red-sunglo.btn.disabled.active, .red-sunglo.btn[disabled], .red-sunglo.btn[disabled]:hover, .red-sunglo.btn[disabled]:focus, .red-sunglo.btn[disabled]:active, .red-sunglo.btn[disabled].active, fieldset[disabled] .red-sunglo.btn, fieldset[disabled] .red-sunglo.btn:hover, fieldset[disabled] .red-sunglo.btn:focus, fieldset[disabled] .red-sunglo.btn:active, fieldset[disabled] .red-sunglo.btn.active { + background-color: #E26A6A; +} +.red-sunglo.btn .badge { + color: #E26A6A; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.red-sunglo-stripe { + border-left: 3px solid #E26A6A; +} + +/* Portlet */ +.portlet > .portlet-body.red-sunglo, +.portlet.red-sunglo { + background-color: #E26A6A; +} + +.portlet.solid.red-sunglo > .portlet-title, +.portlet.solid.red-sunglo > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.red-sunglo > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.red-sunglo > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.red-sunglo > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.red-sunglo > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.red-sunglo > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.red-sunglo > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.red-sunglo > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.red-sunglo > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.red-sunglo { + border: 1px solid #ea9595; + border-top: 0; +} +.portlet.box.red-sunglo > .portlet-title { + background-color: #E26A6A; +} +.portlet.box.red-sunglo > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.red-sunglo > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.red-sunglo > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #f4c8c8; + color: #f8dddd; +} +.portlet.box.red-sunglo > .portlet-title > .actions .btn-default > i { + color: #fbeaea; +} +.portlet.box.red-sunglo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default:active, .portlet.box.red-sunglo > .portlet-title > .actions .btn-default.active { + border: 1px solid #fdf3f3; + color: white; +} + +/* Statistic Block */ +.dashboard-stat.red-sunglo { + background-color: #E26A6A; +} +.dashboard-stat.red-sunglo.dashboard-stat-light:hover { + background-color: #df5959; +} +.dashboard-stat.red-sunglo .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.red-sunglo .details .number { + color: #FFFFFF; +} +.dashboard-stat.red-sunglo .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.red-sunglo .more { + color: #FFFFFF; + background-color: #df5959; +} + +/* General Element */ +.bg-red-sunglo { + border-color: #E26A6A !important; + background-image: none !important; + background-color: #E26A6A !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-red-sunglo { + color: #E26A6A !important; +} + +.progress-bar.red-sunglo { + background: #E26A6A !important; + color: #FFFFFF !important; +} + +/*** +Red Intense +***/ +/* Button */ +.red-intense.btn { + color: #FFFFFF; + background-color: #e35b5a; +} +.red-intense.btn:hover, .red-intense.btn:focus, .red-intense.btn:active, .red-intense.btn.active { + color: #FFFFFF; + background-color: #de3d3b; +} +.open .red-intense.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #de3d3b; +} +.red-intense.btn:active, .red-intense.btn.active { + background-image: none; + background-color: #da2726; +} +.red-intense.btn:active:hover, .red-intense.btn.active:hover { + background-color: #dc302e; +} +.open .red-intense.btn.dropdown-toggle { + background-image: none; +} +.red-intense.btn.disabled, .red-intense.btn.disabled:hover, .red-intense.btn.disabled:focus, .red-intense.btn.disabled:active, .red-intense.btn.disabled.active, .red-intense.btn[disabled], .red-intense.btn[disabled]:hover, .red-intense.btn[disabled]:focus, .red-intense.btn[disabled]:active, .red-intense.btn[disabled].active, fieldset[disabled] .red-intense.btn, fieldset[disabled] .red-intense.btn:hover, fieldset[disabled] .red-intense.btn:focus, fieldset[disabled] .red-intense.btn:active, fieldset[disabled] .red-intense.btn.active { + background-color: #e35b5a; +} +.red-intense.btn .badge { + color: #e35b5a; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.red-intense-stripe { + border-left: 3px solid #e35b5a; +} + +/* Portlet */ +.portlet > .portlet-body.red-intense, +.portlet.red-intense { + background-color: #e35b5a; +} + +.portlet.solid.red-intense > .portlet-title, +.portlet.solid.red-intense > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.red-intense > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.red-intense > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.red-intense > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.red-intense > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.red-intense > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.red-intense > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.red-intense > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.red-intense > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.red-intense { + border: 1px solid #ea8686; + border-top: 0; +} +.portlet.box.red-intense > .portlet-title { + background-color: #e35b5a; +} +.portlet.box.red-intense > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.red-intense > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.red-intense > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #f3baba; + color: #f7d0d0; +} +.portlet.box.red-intense > .portlet-title > .actions .btn-default > i { + color: #f9dddd; +} +.portlet.box.red-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.red-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.red-intense > .portlet-title > .actions .btn-default:active, .portlet.box.red-intense > .portlet-title > .actions .btn-default.active { + border: 1px solid #fbe6e6; + color: #fefbfb; +} + +/* Statistic Block */ +.dashboard-stat.red-intense { + background-color: #e35b5a; +} +.dashboard-stat.red-intense.dashboard-stat-light:hover { + background-color: #e04a49; +} +.dashboard-stat.red-intense .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.red-intense .details .number { + color: #FFFFFF; +} +.dashboard-stat.red-intense .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.red-intense .more { + color: #FFFFFF; + background-color: #e04a49; +} + +/* General Element */ +.bg-red-intense { + border-color: #e35b5a !important; + background-image: none !important; + background-color: #e35b5a !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-red-intense { + color: #e35b5a !important; +} + +.progress-bar.red-intense { + background: #e35b5a !important; + color: #FFFFFF !important; +} + +/*** +Red Thunderbird +***/ +/* Button */ +.red-thunderbird.btn { + color: #FFFFFF; + background-color: #D91E18; +} +.red-thunderbird.btn:hover, .red-thunderbird.btn:focus, .red-thunderbird.btn:active, .red-thunderbird.btn.active { + color: #FFFFFF; + background-color: #b91a14; +} +.open .red-thunderbird.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #b91a14; +} +.red-thunderbird.btn:active, .red-thunderbird.btn.active { + background-image: none; + background-color: #a21612; +} +.red-thunderbird.btn:active:hover, .red-thunderbird.btn.active:hover { + background-color: #ab1813; +} +.open .red-thunderbird.btn.dropdown-toggle { + background-image: none; +} +.red-thunderbird.btn.disabled, .red-thunderbird.btn.disabled:hover, .red-thunderbird.btn.disabled:focus, .red-thunderbird.btn.disabled:active, .red-thunderbird.btn.disabled.active, .red-thunderbird.btn[disabled], .red-thunderbird.btn[disabled]:hover, .red-thunderbird.btn[disabled]:focus, .red-thunderbird.btn[disabled]:active, .red-thunderbird.btn[disabled].active, fieldset[disabled] .red-thunderbird.btn, fieldset[disabled] .red-thunderbird.btn:hover, fieldset[disabled] .red-thunderbird.btn:focus, fieldset[disabled] .red-thunderbird.btn:active, fieldset[disabled] .red-thunderbird.btn.active { + background-color: #D91E18; +} +.red-thunderbird.btn .badge { + color: #D91E18; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.red-thunderbird-stripe { + border-left: 3px solid #D91E18; +} + +/* Portlet */ +.portlet > .portlet-body.red-thunderbird, +.portlet.red-thunderbird { + background-color: #D91E18; +} + +.portlet.solid.red-thunderbird > .portlet-title, +.portlet.solid.red-thunderbird > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.red-thunderbird > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.red-thunderbird > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.red-thunderbird > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.red-thunderbird > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.red-thunderbird > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.red-thunderbird > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.red-thunderbird > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.red-thunderbird > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.red-thunderbird { + border: 1px solid #e9403b; + border-top: 0; +} +.portlet.box.red-thunderbird > .portlet-title { + background-color: #D91E18; +} +.portlet.box.red-thunderbird > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.red-thunderbird > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.red-thunderbird > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #ef7672; + color: #f28c89; +} +.portlet.box.red-thunderbird > .portlet-title > .actions .btn-default > i { + color: #f39997; +} +.portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:hover, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:focus, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default:active, .portlet.box.red-thunderbird > .portlet-title > .actions .btn-default.active { + border: 1px solid #f4a2a0; + color: #f7b9b7; +} + +/* Statistic Block */ +.dashboard-stat.red-thunderbird { + background-color: #D91E18; +} +.dashboard-stat.red-thunderbird.dashboard-stat-light:hover { + background-color: #c71b16; +} +.dashboard-stat.red-thunderbird .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.red-thunderbird .details .number { + color: #FFFFFF; +} +.dashboard-stat.red-thunderbird .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.red-thunderbird .more { + color: #FFFFFF; + background-color: #c71b16; +} + +/* General Element */ +.bg-red-thunderbird { + border-color: #D91E18 !important; + background-image: none !important; + background-color: #D91E18 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-red-thunderbird { + color: #D91E18 !important; +} + +.progress-bar.red-thunderbird { + background: #D91E18 !important; + color: #FFFFFF !important; +} + +/*** +Red Flamingo +***/ +/* Button */ +.red-flamingo.btn { + color: #FFFFFF; + background-color: #EF4836; +} +.red-flamingo.btn:hover, .red-flamingo.btn:focus, .red-flamingo.btn:active, .red-flamingo.btn.active { + color: #FFFFFF; + background-color: #ec2a15; +} +.open .red-flamingo.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #ec2a15; +} +.red-flamingo.btn:active, .red-flamingo.btn.active { + background-image: none; + background-color: #d72411; +} +.red-flamingo.btn:active:hover, .red-flamingo.btn.active:hover { + background-color: #e02612; +} +.open .red-flamingo.btn.dropdown-toggle { + background-image: none; +} +.red-flamingo.btn.disabled, .red-flamingo.btn.disabled:hover, .red-flamingo.btn.disabled:focus, .red-flamingo.btn.disabled:active, .red-flamingo.btn.disabled.active, .red-flamingo.btn[disabled], .red-flamingo.btn[disabled]:hover, .red-flamingo.btn[disabled]:focus, .red-flamingo.btn[disabled]:active, .red-flamingo.btn[disabled].active, fieldset[disabled] .red-flamingo.btn, fieldset[disabled] .red-flamingo.btn:hover, fieldset[disabled] .red-flamingo.btn:focus, fieldset[disabled] .red-flamingo.btn:active, fieldset[disabled] .red-flamingo.btn.active { + background-color: #EF4836; +} +.red-flamingo.btn .badge { + color: #EF4836; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.red-flamingo-stripe { + border-left: 3px solid #EF4836; +} + +/* Portlet */ +.portlet > .portlet-body.red-flamingo, +.portlet.red-flamingo { + background-color: #EF4836; +} + +.portlet.solid.red-flamingo > .portlet-title, +.portlet.solid.red-flamingo > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.red-flamingo > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.red-flamingo > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.red-flamingo > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.red-flamingo > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.red-flamingo > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.red-flamingo > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.red-flamingo > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.red-flamingo > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.red-flamingo { + border: 1px solid #f37365; + border-top: 0; +} +.portlet.box.red-flamingo > .portlet-title { + background-color: #EF4836; +} +.portlet.box.red-flamingo > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.red-flamingo > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.red-flamingo > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #f7a79e; + color: #f9bcb6; +} +.portlet.box.red-flamingo > .portlet-title > .actions .btn-default > i { + color: #fac9c4; +} +.portlet.box.red-flamingo > .portlet-title > .actions .btn-default:hover, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:focus, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default:active, .portlet.box.red-flamingo > .portlet-title > .actions .btn-default.active { + border: 1px solid #fbd2cd; + color: #fde7e5; +} + +/* Statistic Block */ +.dashboard-stat.red-flamingo { + background-color: #EF4836; +} +.dashboard-stat.red-flamingo.dashboard-stat-light:hover { + background-color: #ed3723; +} +.dashboard-stat.red-flamingo .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.red-flamingo .details .number { + color: #FFFFFF; +} +.dashboard-stat.red-flamingo .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.red-flamingo .more { + color: #FFFFFF; + background-color: #ed3723; +} + +/* General Element */ +.bg-red-flamingo { + border-color: #EF4836 !important; + background-image: none !important; + background-color: #EF4836 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-red-flamingo { + color: #EF4836 !important; +} + +.progress-bar.red-flamingo { + background: #EF4836 !important; + color: #FFFFFF !important; +} + +/*** +Red Flamingo +***/ +/* Button */ +.red-soft.btn { + color: #FFFFFF; + background-color: #d05454; +} +.red-soft.btn:hover, .red-soft.btn:focus, .red-soft.btn:active, .red-soft.btn.active { + color: #FFFFFF; + background-color: #c83838; +} +.open .red-soft.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #c83838; +} +.red-soft.btn:active, .red-soft.btn.active { + background-image: none; + background-color: #b53232; +} +.red-soft.btn:active:hover, .red-soft.btn.active:hover { + background-color: #bd3434; +} +.open .red-soft.btn.dropdown-toggle { + background-image: none; +} +.red-soft.btn.disabled, .red-soft.btn.disabled:hover, .red-soft.btn.disabled:focus, .red-soft.btn.disabled:active, .red-soft.btn.disabled.active, .red-soft.btn[disabled], .red-soft.btn[disabled]:hover, .red-soft.btn[disabled]:focus, .red-soft.btn[disabled]:active, .red-soft.btn[disabled].active, fieldset[disabled] .red-soft.btn, fieldset[disabled] .red-soft.btn:hover, fieldset[disabled] .red-soft.btn:focus, fieldset[disabled] .red-soft.btn:active, fieldset[disabled] .red-soft.btn.active { + background-color: #d05454; +} +.red-soft.btn .badge { + color: #d05454; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.red-soft-stripe { + border-left: 3px solid #d05454; +} + +/* Portlet */ +.portlet > .portlet-body.red-soft, +.portlet.red-soft { + background-color: #d05454; +} + +.portlet.solid.red-soft > .portlet-title, +.portlet.solid.red-soft > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.red-soft > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.red-soft > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.red-soft > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.red-soft > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.red-soft > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.red-soft > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.red-soft > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.red-soft > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.red-soft { + border: 1px solid #db7c7c; + border-top: 0; +} +.portlet.box.red-soft > .portlet-title { + background-color: #d05454; +} +.portlet.box.red-soft > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.red-soft > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.red-soft > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #e8acac; + color: #eec0c0; +} +.portlet.box.red-soft > .portlet-title > .actions .btn-default > i { + color: #f1cccc; +} +.portlet.box.red-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.red-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.red-soft > .portlet-title > .actions .btn-default:active, .portlet.box.red-soft > .portlet-title > .actions .btn-default.active { + border: 1px solid #f3d4d4; + color: #f9e8e8; +} + +/* Statistic Block */ +.dashboard-stat.red-soft { + background-color: #d05454; +} +.dashboard-stat.red-soft.dashboard-stat-light:hover { + background-color: #cc4444; +} +.dashboard-stat.red-soft .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.red-soft .details .number { + color: #FFFFFF; +} +.dashboard-stat.red-soft .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.red-soft .more { + color: #FFFFFF; + background-color: #cc4444; +} + +/* General Element */ +.bg-red-soft { + border-color: #d05454 !important; + background-image: none !important; + background-color: #d05454 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-red-soft { + color: #d05454 !important; +} + +.progress-bar.red-soft { + background: #d05454 !important; + color: #FFFFFF !important; +} + +/*** +Red Haze +***/ +/* Button */ +.red-haze.btn { + color: #FFFFFF; + background-color: #f36a5a; +} +.red-haze.btn:hover, .red-haze.btn:focus, .red-haze.btn:active, .red-haze.btn.active { + color: #FFFFFF; + background-color: #f14c39; +} +.open .red-haze.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #f14c39; +} +.red-haze.btn:active, .red-haze.btn.active { + background-image: none; + background-color: #ef3621; +} +.red-haze.btn:active:hover, .red-haze.btn.active:hover { + background-color: #f03f2a; +} +.open .red-haze.btn.dropdown-toggle { + background-image: none; +} +.red-haze.btn.disabled, .red-haze.btn.disabled:hover, .red-haze.btn.disabled:focus, .red-haze.btn.disabled:active, .red-haze.btn.disabled.active, .red-haze.btn[disabled], .red-haze.btn[disabled]:hover, .red-haze.btn[disabled]:focus, .red-haze.btn[disabled]:active, .red-haze.btn[disabled].active, fieldset[disabled] .red-haze.btn, fieldset[disabled] .red-haze.btn:hover, fieldset[disabled] .red-haze.btn:focus, fieldset[disabled] .red-haze.btn:active, fieldset[disabled] .red-haze.btn.active { + background-color: #f36a5a; +} +.red-haze.btn .badge { + color: #f36a5a; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.red-haze-stripe { + border-left: 3px solid #f36a5a; +} + +/* Portlet */ +.portlet > .portlet-body.red-haze, +.portlet.red-haze { + background-color: #f36a5a; +} + +.portlet.solid.red-haze > .portlet-title, +.portlet.solid.red-haze > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.red-haze > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.red-haze > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.red-haze > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.red-haze > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.red-haze > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.red-haze > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.red-haze > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.red-haze > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.red-haze { + border: 1px solid #f6958a; + border-top: 0; +} +.portlet.box.red-haze > .portlet-title { + background-color: #f36a5a; +} +.portlet.box.red-haze > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.red-haze > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.red-haze > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #fbc8c3; + color: #fcdeda; +} +.portlet.box.red-haze > .portlet-title > .actions .btn-default > i { + color: #fdebe9; +} +.portlet.box.red-haze > .portlet-title > .actions .btn-default:hover, .portlet.box.red-haze > .portlet-title > .actions .btn-default:focus, .portlet.box.red-haze > .portlet-title > .actions .btn-default:active, .portlet.box.red-haze > .portlet-title > .actions .btn-default.active { + border: 1px solid #fef3f2; + color: white; +} + +/* Statistic Block */ +.dashboard-stat.red-haze { + background-color: #f36a5a; +} +.dashboard-stat.red-haze.dashboard-stat-light:hover { + background-color: #f25947; +} +.dashboard-stat.red-haze .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.red-haze .details .number { + color: #FFFFFF; +} +.dashboard-stat.red-haze .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.red-haze .more { + color: #FFFFFF; + background-color: #f25947; +} + +/* General Element */ +.bg-red-haze { + border-color: #f36a5a !important; + background-image: none !important; + background-color: #f36a5a !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-red-haze { + color: #f36a5a !important; +} + +.progress-bar.red-haze { + background: #f36a5a !important; + color: #FFFFFF !important; +} + +/*********** +Yellow Colors +************/ +/*** +Yellow Default +***/ +/* Button */ +.yellow.btn { + color: #FFFFFF; + background-color: #c49f47; +} +.yellow.btn:hover, .yellow.btn:focus, .yellow.btn:active, .yellow.btn.active { + color: #FFFFFF; + background-color: #af8c38; +} +.open .yellow.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #af8c38; +} +.yellow.btn:active, .yellow.btn.active { + background-image: none; + background-color: #9c7c32; +} +.yellow.btn:active:hover, .yellow.btn.active:hover { + background-color: #a48334; +} +.open .yellow.btn.dropdown-toggle { + background-image: none; +} +.yellow.btn.disabled, .yellow.btn.disabled:hover, .yellow.btn.disabled:focus, .yellow.btn.disabled:active, .yellow.btn.disabled.active, .yellow.btn[disabled], .yellow.btn[disabled]:hover, .yellow.btn[disabled]:focus, .yellow.btn[disabled]:active, .yellow.btn[disabled].active, fieldset[disabled] .yellow.btn, fieldset[disabled] .yellow.btn:hover, fieldset[disabled] .yellow.btn:focus, fieldset[disabled] .yellow.btn:active, fieldset[disabled] .yellow.btn.active { + background-color: #c49f47; +} +.yellow.btn .badge { + color: #c49f47; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.yellow-stripe { + border-left: 3px solid #c49f47; +} + +/* Portlet */ +.portlet > .portlet-body.yellow, +.portlet.yellow { + background-color: #c49f47; +} + +.portlet.solid.yellow > .portlet-title, +.portlet.solid.yellow > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.yellow > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.yellow > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.yellow > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.yellow > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.yellow > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.yellow > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.yellow > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.yellow > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.yellow { + border: 1px solid #d0b36e; + border-top: 0; +} +.portlet.box.yellow > .portlet-title { + background-color: #c49f47; +} +.portlet.box.yellow > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.yellow > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.yellow > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #dfcb9c; + color: #e5d5af; +} +.portlet.box.yellow > .portlet-title > .actions .btn-default > i { + color: #e9dbbb; +} +.portlet.box.yellow > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow > .portlet-title > .actions .btn-default:active, .portlet.box.yellow > .portlet-title > .actions .btn-default.active { + border: 1px solid #ecdfc3; + color: #f2ead6; +} + +/* Statistic Block */ +.dashboard-stat.yellow { + background-color: #c49f47; +} +.dashboard-stat.yellow.dashboard-stat-light:hover { + background-color: #bb953c; +} +.dashboard-stat.yellow .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.yellow .details .number { + color: #FFFFFF; +} +.dashboard-stat.yellow .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.yellow .more { + color: #FFFFFF; + background-color: #bb953c; +} + +/* General Element */ +.bg-yellow { + border-color: #c49f47 !important; + background-image: none !important; + background-color: #c49f47 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-yellow { + color: #c49f47 !important; +} + +.progress-bar.yellow { + background: #c49f47 !important; + color: #FFFFFF !important; +} + +/*** +Yellow Gold +***/ +/* Button */ +.yellow-gold.btn { + color: #FFFFFF; + background-color: #E87E04; +} +.yellow-gold.btn:hover, .yellow-gold.btn:focus, .yellow-gold.btn:active, .yellow-gold.btn.active { + color: #FFFFFF; + background-color: #c56b03; +} +.open .yellow-gold.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #c56b03; +} +.yellow-gold.btn:active, .yellow-gold.btn.active { + background-image: none; + background-color: #ac5d03; +} +.yellow-gold.btn:active:hover, .yellow-gold.btn.active:hover { + background-color: #b66303; +} +.open .yellow-gold.btn.dropdown-toggle { + background-image: none; +} +.yellow-gold.btn.disabled, .yellow-gold.btn.disabled:hover, .yellow-gold.btn.disabled:focus, .yellow-gold.btn.disabled:active, .yellow-gold.btn.disabled.active, .yellow-gold.btn[disabled], .yellow-gold.btn[disabled]:hover, .yellow-gold.btn[disabled]:focus, .yellow-gold.btn[disabled]:active, .yellow-gold.btn[disabled].active, fieldset[disabled] .yellow-gold.btn, fieldset[disabled] .yellow-gold.btn:hover, fieldset[disabled] .yellow-gold.btn:focus, fieldset[disabled] .yellow-gold.btn:active, fieldset[disabled] .yellow-gold.btn.active { + background-color: #E87E04; +} +.yellow-gold.btn .badge { + color: #E87E04; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.yellow-gold-stripe { + border-left: 3px solid #E87E04; +} + +/* Portlet */ +.portlet > .portlet-body.yellow-gold, +.portlet.yellow-gold { + background-color: #E87E04; +} + +.portlet.solid.yellow-gold > .portlet-title, +.portlet.solid.yellow-gold > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.yellow-gold > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.yellow-gold > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.yellow-gold > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.yellow-gold > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.yellow-gold > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.yellow-gold > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.yellow-gold > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.yellow-gold > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.yellow-gold { + border: 1px solid #fb9724; + border-top: 0; +} +.portlet.box.yellow-gold > .portlet-title { + background-color: #E87E04; +} +.portlet.box.yellow-gold > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.yellow-gold > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.yellow-gold > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #fcb460; + color: #fdbf79; +} +.portlet.box.yellow-gold > .portlet-title > .actions .btn-default > i { + color: #fdc788; +} +.portlet.box.yellow-gold > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-gold > .portlet-title > .actions .btn-default.active { + border: 1px solid #fdcb92; + color: #fed7ab; +} + +/* Statistic Block */ +.dashboard-stat.yellow-gold { + background-color: #E87E04; +} +.dashboard-stat.yellow-gold.dashboard-stat-light:hover { + background-color: #d47304; +} +.dashboard-stat.yellow-gold .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.yellow-gold .details .number { + color: #FFFFFF; +} +.dashboard-stat.yellow-gold .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.yellow-gold .more { + color: #FFFFFF; + background-color: #d47304; +} + +/* General Element */ +.bg-yellow-gold { + border-color: #E87E04 !important; + background-image: none !important; + background-color: #E87E04 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-yellow-gold { + color: #E87E04 !important; +} + +.progress-bar.yellow-gold { + background: #E87E04 !important; + color: #FFFFFF !important; +} + +/*** +Yellow Casablanca +***/ +/* Button */ +.yellow-casablanca.btn { + color: #FFFFFF; + background-color: #f2784b; +} +.yellow-casablanca.btn:hover, .yellow-casablanca.btn:focus, .yellow-casablanca.btn:active, .yellow-casablanca.btn.active { + color: #FFFFFF; + background-color: #f05f2a; +} +.open .yellow-casablanca.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #f05f2a; +} +.yellow-casablanca.btn:active, .yellow-casablanca.btn.active { + background-image: none; + background-color: #ee4d12; +} +.yellow-casablanca.btn:active:hover, .yellow-casablanca.btn.active:hover { + background-color: #ef541b; +} +.open .yellow-casablanca.btn.dropdown-toggle { + background-image: none; +} +.yellow-casablanca.btn.disabled, .yellow-casablanca.btn.disabled:hover, .yellow-casablanca.btn.disabled:focus, .yellow-casablanca.btn.disabled:active, .yellow-casablanca.btn.disabled.active, .yellow-casablanca.btn[disabled], .yellow-casablanca.btn[disabled]:hover, .yellow-casablanca.btn[disabled]:focus, .yellow-casablanca.btn[disabled]:active, .yellow-casablanca.btn[disabled].active, fieldset[disabled] .yellow-casablanca.btn, fieldset[disabled] .yellow-casablanca.btn:hover, fieldset[disabled] .yellow-casablanca.btn:focus, fieldset[disabled] .yellow-casablanca.btn:active, fieldset[disabled] .yellow-casablanca.btn.active { + background-color: #f2784b; +} +.yellow-casablanca.btn .badge { + color: #f2784b; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.yellow-casablanca-stripe { + border-left: 3px solid #f2784b; +} + +/* Portlet */ +.portlet > .portlet-body.yellow-casablanca, +.portlet.yellow-casablanca { + background-color: #f2784b; +} + +.portlet.solid.yellow-casablanca > .portlet-title, +.portlet.solid.yellow-casablanca > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.yellow-casablanca > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.yellow-casablanca > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.yellow-casablanca > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.yellow-casablanca { + border: 1px solid #f59c7b; + border-top: 0; +} +.portlet.box.yellow-casablanca > .portlet-title { + background-color: #f2784b; +} +.portlet.box.yellow-casablanca > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.yellow-casablanca > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #fac6b4; + color: #fbd8cb; +} +.portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default > i { + color: #fce3da; +} +.portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-casablanca > .portlet-title > .actions .btn-default.active { + border: 1px solid #fdeae3; + color: #fffcfb; +} + +/* Statistic Block */ +.dashboard-stat.yellow-casablanca { + background-color: #f2784b; +} +.dashboard-stat.yellow-casablanca.dashboard-stat-light:hover { + background-color: #f16a38; +} +.dashboard-stat.yellow-casablanca .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.yellow-casablanca .details .number { + color: #FFFFFF; +} +.dashboard-stat.yellow-casablanca .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.yellow-casablanca .more { + color: #FFFFFF; + background-color: #f16a38; +} + +/* General Element */ +.bg-yellow-casablanca { + border-color: #f2784b !important; + background-image: none !important; + background-color: #f2784b !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-yellow-casablanca { + color: #f2784b !important; +} + +.progress-bar.yellow-casablanca { + background: #f2784b !important; + color: #FFFFFF !important; +} + +/*** +Yellow Crusta +***/ +/* Button */ +.yellow-crusta.btn { + color: #FFFFFF; + background-color: #f3c200; +} +.yellow-crusta.btn:hover, .yellow-crusta.btn:focus, .yellow-crusta.btn:active, .yellow-crusta.btn.active { + color: #FFFFFF; + background-color: #cfa500; +} +.open .yellow-crusta.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #cfa500; +} +.yellow-crusta.btn:active, .yellow-crusta.btn.active { + background-image: none; + background-color: #b69100; +} +.yellow-crusta.btn:active:hover, .yellow-crusta.btn.active:hover { + background-color: #c09900; +} +.open .yellow-crusta.btn.dropdown-toggle { + background-image: none; +} +.yellow-crusta.btn.disabled, .yellow-crusta.btn.disabled:hover, .yellow-crusta.btn.disabled:focus, .yellow-crusta.btn.disabled:active, .yellow-crusta.btn.disabled.active, .yellow-crusta.btn[disabled], .yellow-crusta.btn[disabled]:hover, .yellow-crusta.btn[disabled]:focus, .yellow-crusta.btn[disabled]:active, .yellow-crusta.btn[disabled].active, fieldset[disabled] .yellow-crusta.btn, fieldset[disabled] .yellow-crusta.btn:hover, fieldset[disabled] .yellow-crusta.btn:focus, fieldset[disabled] .yellow-crusta.btn:active, fieldset[disabled] .yellow-crusta.btn.active { + background-color: #f3c200; +} +.yellow-crusta.btn .badge { + color: #f3c200; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.yellow-crusta-stripe { + border-left: 3px solid #f3c200; +} + +/* Portlet */ +.portlet > .portlet-body.yellow-crusta, +.portlet.yellow-crusta { + background-color: #f3c200; +} + +.portlet.solid.yellow-crusta > .portlet-title, +.portlet.solid.yellow-crusta > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.yellow-crusta > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.yellow-crusta > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.yellow-crusta > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.yellow-crusta > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.yellow-crusta > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.yellow-crusta > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.yellow-crusta > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.yellow-crusta > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.yellow-crusta { + border: 1px solid #ffd327; + border-top: 0; +} +.portlet.box.yellow-crusta > .portlet-title { + background-color: #f3c200; +} +.portlet.box.yellow-crusta > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.yellow-crusta > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.yellow-crusta > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #ffe064; + color: #ffe57e; +} +.portlet.box.yellow-crusta > .portlet-title > .actions .btn-default > i { + color: #ffe88d; +} +.portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-crusta > .portlet-title > .actions .btn-default.active { + border: 1px solid #ffea97; + color: #ffefb1; +} + +/* Statistic Block */ +.dashboard-stat.yellow-crusta { + background-color: #f3c200; +} +.dashboard-stat.yellow-crusta.dashboard-stat-light:hover { + background-color: #dfb200; +} +.dashboard-stat.yellow-crusta .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.yellow-crusta .details .number { + color: #FFFFFF; +} +.dashboard-stat.yellow-crusta .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.yellow-crusta .more { + color: #FFFFFF; + background-color: #dfb200; +} + +/* General Element */ +.bg-yellow-crusta { + border-color: #f3c200 !important; + background-image: none !important; + background-color: #f3c200 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-yellow-crusta { + color: #f3c200 !important; +} + +.progress-bar.yellow-crusta { + background: #f3c200 !important; + color: #FFFFFF !important; +} + +/*** +Yellow Lemon +***/ +/* Button */ +.yellow-lemon.btn { + color: #FFFFFF; + background-color: #F7CA18; +} +.yellow-lemon.btn:hover, .yellow-lemon.btn:focus, .yellow-lemon.btn:active, .yellow-lemon.btn.active { + color: #FFFFFF; + background-color: #e3b708; +} +.open .yellow-lemon.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #e3b708; +} +.yellow-lemon.btn:active, .yellow-lemon.btn.active { + background-image: none; + background-color: #cba307; +} +.yellow-lemon.btn:active:hover, .yellow-lemon.btn.active:hover { + background-color: #d5ab07; +} +.open .yellow-lemon.btn.dropdown-toggle { + background-image: none; +} +.yellow-lemon.btn.disabled, .yellow-lemon.btn.disabled:hover, .yellow-lemon.btn.disabled:focus, .yellow-lemon.btn.disabled:active, .yellow-lemon.btn.disabled.active, .yellow-lemon.btn[disabled], .yellow-lemon.btn[disabled]:hover, .yellow-lemon.btn[disabled]:focus, .yellow-lemon.btn[disabled]:active, .yellow-lemon.btn[disabled].active, fieldset[disabled] .yellow-lemon.btn, fieldset[disabled] .yellow-lemon.btn:hover, fieldset[disabled] .yellow-lemon.btn:focus, fieldset[disabled] .yellow-lemon.btn:active, fieldset[disabled] .yellow-lemon.btn.active { + background-color: #F7CA18; +} +.yellow-lemon.btn .badge { + color: #F7CA18; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.yellow-lemon-stripe { + border-left: 3px solid #F7CA18; +} + +/* Portlet */ +.portlet > .portlet-body.yellow-lemon, +.portlet.yellow-lemon { + background-color: #F7CA18; +} + +.portlet.solid.yellow-lemon > .portlet-title, +.portlet.solid.yellow-lemon > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.yellow-lemon > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.yellow-lemon > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.yellow-lemon > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.yellow-lemon > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.yellow-lemon > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.yellow-lemon > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.yellow-lemon > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.yellow-lemon > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.yellow-lemon { + border: 1px solid #f9d549; + border-top: 0; +} +.portlet.box.yellow-lemon > .portlet-title { + background-color: #F7CA18; +} +.portlet.box.yellow-lemon > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.yellow-lemon > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.yellow-lemon > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #fbe384; + color: #fce99d; +} +.portlet.box.yellow-lemon > .portlet-title > .actions .btn-default > i { + color: #fcecac; +} +.portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-lemon > .portlet-title > .actions .btn-default.active { + border: 1px solid #fceeb6; + color: #fdf4ce; +} + +/* Statistic Block */ +.dashboard-stat.yellow-lemon { + background-color: #F7CA18; +} +.dashboard-stat.yellow-lemon.dashboard-stat-light:hover { + background-color: #f2c308; +} +.dashboard-stat.yellow-lemon .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.yellow-lemon .details .number { + color: #FFFFFF; +} +.dashboard-stat.yellow-lemon .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.yellow-lemon .more { + color: #FFFFFF; + background-color: #f2c308; +} + +/* General Element */ +.bg-yellow-lemon { + border-color: #F7CA18 !important; + background-image: none !important; + background-color: #F7CA18 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-yellow-lemon { + color: #F7CA18 !important; +} + +.progress-bar.yellow-lemon { + background: #F7CA18 !important; + color: #FFFFFF !important; +} + +/*** +Yellow Saffron +***/ +/* Button */ +.yellow-saffron.btn { + color: #FFFFFF; + background-color: #F4D03F; +} +.yellow-saffron.btn:hover, .yellow-saffron.btn:focus, .yellow-saffron.btn:active, .yellow-saffron.btn.active { + color: #FFFFFF; + background-color: #f2c81d; +} +.open .yellow-saffron.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #f2c81d; +} +.yellow-saffron.btn:active, .yellow-saffron.btn.active { + background-image: none; + background-color: #e8bd0d; +} +.yellow-saffron.btn:active:hover, .yellow-saffron.btn.active:hover { + background-color: #f1c40f; +} +.open .yellow-saffron.btn.dropdown-toggle { + background-image: none; +} +.yellow-saffron.btn.disabled, .yellow-saffron.btn.disabled:hover, .yellow-saffron.btn.disabled:focus, .yellow-saffron.btn.disabled:active, .yellow-saffron.btn.disabled.active, .yellow-saffron.btn[disabled], .yellow-saffron.btn[disabled]:hover, .yellow-saffron.btn[disabled]:focus, .yellow-saffron.btn[disabled]:active, .yellow-saffron.btn[disabled].active, fieldset[disabled] .yellow-saffron.btn, fieldset[disabled] .yellow-saffron.btn:hover, fieldset[disabled] .yellow-saffron.btn:focus, fieldset[disabled] .yellow-saffron.btn:active, fieldset[disabled] .yellow-saffron.btn.active { + background-color: #F4D03F; +} +.yellow-saffron.btn .badge { + color: #F4D03F; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.yellow-saffron-stripe { + border-left: 3px solid #F4D03F; +} + +/* Portlet */ +.portlet > .portlet-body.yellow-saffron, +.portlet.yellow-saffron { + background-color: #F4D03F; +} + +.portlet.solid.yellow-saffron > .portlet-title, +.portlet.solid.yellow-saffron > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.yellow-saffron > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.yellow-saffron > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.yellow-saffron > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.yellow-saffron > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.yellow-saffron > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.yellow-saffron > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.yellow-saffron > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.yellow-saffron > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.yellow-saffron { + border: 1px solid #f7dc6f; + border-top: 0; +} +.portlet.box.yellow-saffron > .portlet-title { + background-color: #F4D03F; +} +.portlet.box.yellow-saffron > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.yellow-saffron > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.yellow-saffron > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #faeaa9; + color: #fbf0c1; +} +.portlet.box.yellow-saffron > .portlet-title > .actions .btn-default > i { + color: #fcf3d0; +} +.portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:hover, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:focus, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default:active, .portlet.box.yellow-saffron > .portlet-title > .actions .btn-default.active { + border: 1px solid #fdf6d9; + color: #fefcf1; +} + +/* Statistic Block */ +.dashboard-stat.yellow-saffron { + background-color: #F4D03F; +} +.dashboard-stat.yellow-saffron.dashboard-stat-light:hover { + background-color: #f3cb2c; +} +.dashboard-stat.yellow-saffron .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.yellow-saffron .details .number { + color: #FFFFFF; +} +.dashboard-stat.yellow-saffron .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.yellow-saffron .more { + color: #FFFFFF; + background-color: #f3cb2c; +} + +/* General Element */ +.bg-yellow-saffron { + border-color: #F4D03F !important; + background-image: none !important; + background-color: #F4D03F !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-yellow-saffron { + color: #F4D03F !important; +} + +.progress-bar.yellow-saffron { + background: #F4D03F !important; + color: #FFFFFF !important; +} + +/*********** +Purple Colors +************/ +/*** +Purple Default +***/ +/* Button */ +.purple.btn { + color: #FFFFFF; + background-color: #8e5fa2; +} +.purple.btn:hover, .purple.btn:focus, .purple.btn:active, .purple.btn.active { + color: #FFFFFF; + background-color: #7a518c; +} +.open .purple.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #7a518c; +} +.purple.btn:active, .purple.btn.active { + background-image: none; + background-color: #6c487c; +} +.purple.btn:active:hover, .purple.btn.active:hover { + background-color: #724c82; +} +.open .purple.btn.dropdown-toggle { + background-image: none; +} +.purple.btn.disabled, .purple.btn.disabled:hover, .purple.btn.disabled:focus, .purple.btn.disabled:active, .purple.btn.disabled.active, .purple.btn[disabled], .purple.btn[disabled]:hover, .purple.btn[disabled]:focus, .purple.btn[disabled]:active, .purple.btn[disabled].active, fieldset[disabled] .purple.btn, fieldset[disabled] .purple.btn:hover, fieldset[disabled] .purple.btn:focus, fieldset[disabled] .purple.btn:active, fieldset[disabled] .purple.btn.active { + background-color: #8e5fa2; +} +.purple.btn .badge { + color: #8e5fa2; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.purple-stripe { + border-left: 3px solid #8e5fa2; +} + +/* Portlet */ +.portlet > .portlet-body.purple, +.portlet.purple { + background-color: #8e5fa2; +} + +.portlet.solid.purple > .portlet-title, +.portlet.solid.purple > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.purple > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.purple > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.purple > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.purple > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.purple > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.purple > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.purple > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.purple > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.purple { + border: 1px solid #a57fb5; + border-top: 0; +} +.portlet.box.purple > .portlet-title { + background-color: #8e5fa2; +} +.portlet.box.purple > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.purple > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.purple > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #c0a6cb; + color: #ccb6d5; +} +.portlet.box.purple > .portlet-title > .actions .btn-default > i { + color: #d2c0da; +} +.portlet.box.purple > .portlet-title > .actions .btn-default:hover, .portlet.box.purple > .portlet-title > .actions .btn-default:focus, .portlet.box.purple > .portlet-title > .actions .btn-default:active, .portlet.box.purple > .portlet-title > .actions .btn-default.active { + border: 1px solid #d7c6de; + color: #e2d6e7; +} + +/* Statistic Block */ +.dashboard-stat.purple { + background-color: #8e5fa2; +} +.dashboard-stat.purple.dashboard-stat-light:hover { + background-color: #835796; +} +.dashboard-stat.purple .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.purple .details .number { + color: #FFFFFF; +} +.dashboard-stat.purple .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.purple .more { + color: #FFFFFF; + background-color: #835796; +} + +/* General Element */ +.bg-purple { + border-color: #8e5fa2 !important; + background-image: none !important; + background-color: #8e5fa2 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-purple { + color: #8e5fa2 !important; +} + +.progress-bar.purple { + background: #8e5fa2 !important; + color: #FFFFFF !important; +} + +/*** +Purple Plum +***/ +/* Button */ +.purple-plum.btn { + color: #FFFFFF; + background-color: #8775a7; +} +.purple-plum.btn:hover, .purple-plum.btn:focus, .purple-plum.btn:active, .purple-plum.btn.active { + color: #FFFFFF; + background-color: #746198; +} +.open .purple-plum.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #746198; +} +.purple-plum.btn:active, .purple-plum.btn.active { + background-image: none; + background-color: #685788; +} +.purple-plum.btn:active:hover, .purple-plum.btn.active:hover { + background-color: #6d5b8e; +} +.open .purple-plum.btn.dropdown-toggle { + background-image: none; +} +.purple-plum.btn.disabled, .purple-plum.btn.disabled:hover, .purple-plum.btn.disabled:focus, .purple-plum.btn.disabled:active, .purple-plum.btn.disabled.active, .purple-plum.btn[disabled], .purple-plum.btn[disabled]:hover, .purple-plum.btn[disabled]:focus, .purple-plum.btn[disabled]:active, .purple-plum.btn[disabled].active, fieldset[disabled] .purple-plum.btn, fieldset[disabled] .purple-plum.btn:hover, fieldset[disabled] .purple-plum.btn:focus, fieldset[disabled] .purple-plum.btn:active, fieldset[disabled] .purple-plum.btn.active { + background-color: #8775a7; +} +.purple-plum.btn .badge { + color: #8775a7; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.purple-plum-stripe { + border-left: 3px solid #8775a7; +} + +/* Portlet */ +.portlet > .portlet-body.purple-plum, +.portlet.purple-plum { + background-color: #8775a7; +} + +.portlet.solid.purple-plum > .portlet-title, +.portlet.solid.purple-plum > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.purple-plum > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.purple-plum > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.purple-plum > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.purple-plum > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.purple-plum > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.purple-plum > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.purple-plum > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.purple-plum > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.purple-plum { + border: 1px solid #a294bb; + border-top: 0; +} +.portlet.box.purple-plum > .portlet-title { + background-color: #8775a7; +} +.portlet.box.purple-plum > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.purple-plum > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.purple-plum > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #c3bad3; + color: #d0c9dd; +} +.portlet.box.purple-plum > .portlet-title > .actions .btn-default > i { + color: #d8d2e3; +} +.portlet.box.purple-plum > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-plum > .portlet-title > .actions .btn-default:active, .portlet.box.purple-plum > .portlet-title > .actions .btn-default.active { + border: 1px solid #ded9e7; + color: #ebe8f0; +} + +/* Statistic Block */ +.dashboard-stat.purple-plum { + background-color: #8775a7; +} +.dashboard-stat.purple-plum.dashboard-stat-light:hover { + background-color: #7c699f; +} +.dashboard-stat.purple-plum .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.purple-plum .details .number { + color: #FFFFFF; +} +.dashboard-stat.purple-plum .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.purple-plum .more { + color: #FFFFFF; + background-color: #7c699f; +} + +/* General Element */ +.bg-purple-plum { + border-color: #8775a7 !important; + background-image: none !important; + background-color: #8775a7 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-purple-plum { + color: #8775a7 !important; +} + +.progress-bar.purple-plum { + background: #8775a7 !important; + color: #FFFFFF !important; +} + +/*** +Purple Medium +***/ +/* Button */ +.purple-medium.btn { + color: #FFFFFF; + background-color: #BF55EC; +} +.purple-medium.btn:hover, .purple-medium.btn:focus, .purple-medium.btn:active, .purple-medium.btn.active { + color: #FFFFFF; + background-color: #b335e8; +} +.open .purple-medium.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #b335e8; +} +.purple-medium.btn:active, .purple-medium.btn.active { + background-image: none; + background-color: #aa1ee6; +} +.purple-medium.btn:active:hover, .purple-medium.btn.active:hover { + background-color: #ae27e7; +} +.open .purple-medium.btn.dropdown-toggle { + background-image: none; +} +.purple-medium.btn.disabled, .purple-medium.btn.disabled:hover, .purple-medium.btn.disabled:focus, .purple-medium.btn.disabled:active, .purple-medium.btn.disabled.active, .purple-medium.btn[disabled], .purple-medium.btn[disabled]:hover, .purple-medium.btn[disabled]:focus, .purple-medium.btn[disabled]:active, .purple-medium.btn[disabled].active, fieldset[disabled] .purple-medium.btn, fieldset[disabled] .purple-medium.btn:hover, fieldset[disabled] .purple-medium.btn:focus, fieldset[disabled] .purple-medium.btn:active, fieldset[disabled] .purple-medium.btn.active { + background-color: #BF55EC; +} +.purple-medium.btn .badge { + color: #BF55EC; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.purple-medium-stripe { + border-left: 3px solid #BF55EC; +} + +/* Portlet */ +.portlet > .portlet-body.purple-medium, +.portlet.purple-medium { + background-color: #BF55EC; +} + +.portlet.solid.purple-medium > .portlet-title, +.portlet.solid.purple-medium > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.purple-medium > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.purple-medium > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.purple-medium > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.purple-medium > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.purple-medium > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.purple-medium > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.purple-medium > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.purple-medium > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.purple-medium { + border: 1px solid #d083f1; + border-top: 0; +} +.portlet.box.purple-medium > .portlet-title { + background-color: #BF55EC; +} +.portlet.box.purple-medium > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.purple-medium > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.purple-medium > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #e5baf7; + color: #eed1fa; +} +.portlet.box.purple-medium > .portlet-title > .actions .btn-default > i { + color: #f3dffb; +} +.portlet.box.purple-medium > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-medium > .portlet-title > .actions .btn-default:active, .portlet.box.purple-medium > .portlet-title > .actions .btn-default.active { + border: 1px solid #f6e8fc; + color: white; +} + +/* Statistic Block */ +.dashboard-stat.purple-medium { + background-color: #BF55EC; +} +.dashboard-stat.purple-medium.dashboard-stat-light:hover { + background-color: #b843ea; +} +.dashboard-stat.purple-medium .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.purple-medium .details .number { + color: #FFFFFF; +} +.dashboard-stat.purple-medium .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.purple-medium .more { + color: #FFFFFF; + background-color: #b843ea; +} + +/* General Element */ +.bg-purple-medium { + border-color: #BF55EC !important; + background-image: none !important; + background-color: #BF55EC !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-purple-medium { + color: #BF55EC !important; +} + +.progress-bar.purple-medium { + background: #BF55EC !important; + color: #FFFFFF !important; +} + +/*** +Purple Studio +***/ +/* Button */ +.purple-studio.btn { + color: #FFFFFF; + background-color: #8E44AD; +} +.purple-studio.btn:hover, .purple-studio.btn:focus, .purple-studio.btn:active, .purple-studio.btn.active { + color: #FFFFFF; + background-color: #793a93; +} +.open .purple-studio.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #793a93; +} +.purple-studio.btn:active, .purple-studio.btn.active { + background-image: none; + background-color: #6a3381; +} +.purple-studio.btn:active:hover, .purple-studio.btn.active:hover { + background-color: #703688; +} +.open .purple-studio.btn.dropdown-toggle { + background-image: none; +} +.purple-studio.btn.disabled, .purple-studio.btn.disabled:hover, .purple-studio.btn.disabled:focus, .purple-studio.btn.disabled:active, .purple-studio.btn.disabled.active, .purple-studio.btn[disabled], .purple-studio.btn[disabled]:hover, .purple-studio.btn[disabled]:focus, .purple-studio.btn[disabled]:active, .purple-studio.btn[disabled].active, fieldset[disabled] .purple-studio.btn, fieldset[disabled] .purple-studio.btn:hover, fieldset[disabled] .purple-studio.btn:focus, fieldset[disabled] .purple-studio.btn:active, fieldset[disabled] .purple-studio.btn.active { + background-color: #8E44AD; +} +.purple-studio.btn .badge { + color: #8E44AD; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.purple-studio-stripe { + border-left: 3px solid #8E44AD; +} + +/* Portlet */ +.portlet > .portlet-body.purple-studio, +.portlet.purple-studio { + background-color: #8E44AD; +} + +.portlet.solid.purple-studio > .portlet-title, +.portlet.solid.purple-studio > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.purple-studio > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.purple-studio > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.purple-studio > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.purple-studio > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.purple-studio > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.purple-studio > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.purple-studio > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.purple-studio > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.purple-studio { + border: 1px solid #a563c1; + border-top: 0; +} +.portlet.box.purple-studio > .portlet-title { + background-color: #8E44AD; +} +.portlet.box.purple-studio > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.purple-studio > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.purple-studio > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #bf8ed3; + color: #c9a1da; +} +.portlet.box.purple-studio > .portlet-title > .actions .btn-default > i { + color: #cfacde; +} +.portlet.box.purple-studio > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-studio > .portlet-title > .actions .btn-default:active, .portlet.box.purple-studio > .portlet-title > .actions .btn-default.active { + border: 1px solid #d4b3e1; + color: #dec5e8; +} + +/* Statistic Block */ +.dashboard-stat.purple-studio { + background-color: #8E44AD; +} +.dashboard-stat.purple-studio.dashboard-stat-light:hover { + background-color: #823e9e; +} +.dashboard-stat.purple-studio .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.purple-studio .details .number { + color: #FFFFFF; +} +.dashboard-stat.purple-studio .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.purple-studio .more { + color: #FFFFFF; + background-color: #823e9e; +} + +/* General Element */ +.bg-purple-studio { + border-color: #8E44AD !important; + background-image: none !important; + background-color: #8E44AD !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-purple-studio { + color: #8E44AD !important; +} + +.progress-bar.purple-studio { + background: #8E44AD !important; + color: #FFFFFF !important; +} + +/*** +Purple Wisteria +***/ +/* Button */ +.purple-wisteria.btn { + color: #FFFFFF; + background-color: #9B59B6; +} +.purple-wisteria.btn:hover, .purple-wisteria.btn:focus, .purple-wisteria.btn:active, .purple-wisteria.btn.active { + color: #FFFFFF; + background-color: #8948a3; +} +.open .purple-wisteria.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #8948a3; +} +.purple-wisteria.btn:active, .purple-wisteria.btn.active { + background-image: none; + background-color: #7a4092; +} +.purple-wisteria.btn:active:hover, .purple-wisteria.btn.active:hover { + background-color: #804399; +} +.open .purple-wisteria.btn.dropdown-toggle { + background-image: none; +} +.purple-wisteria.btn.disabled, .purple-wisteria.btn.disabled:hover, .purple-wisteria.btn.disabled:focus, .purple-wisteria.btn.disabled:active, .purple-wisteria.btn.disabled.active, .purple-wisteria.btn[disabled], .purple-wisteria.btn[disabled]:hover, .purple-wisteria.btn[disabled]:focus, .purple-wisteria.btn[disabled]:active, .purple-wisteria.btn[disabled].active, fieldset[disabled] .purple-wisteria.btn, fieldset[disabled] .purple-wisteria.btn:hover, fieldset[disabled] .purple-wisteria.btn:focus, fieldset[disabled] .purple-wisteria.btn:active, fieldset[disabled] .purple-wisteria.btn.active { + background-color: #9B59B6; +} +.purple-wisteria.btn .badge { + color: #9B59B6; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.purple-wisteria-stripe { + border-left: 3px solid #9B59B6; +} + +/* Portlet */ +.portlet > .portlet-body.purple-wisteria, +.portlet.purple-wisteria { + background-color: #9B59B6; +} + +.portlet.solid.purple-wisteria > .portlet-title, +.portlet.solid.purple-wisteria > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.purple-wisteria > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.purple-wisteria > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.purple-wisteria > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.purple-wisteria > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.purple-wisteria > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.purple-wisteria > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.purple-wisteria > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.purple-wisteria > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.purple-wisteria { + border: 1px solid #b07cc6; + border-top: 0; +} +.portlet.box.purple-wisteria > .portlet-title { + background-color: #9B59B6; +} +.portlet.box.purple-wisteria > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.purple-wisteria > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.purple-wisteria > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #caa7d8; + color: #d5b9e0; +} +.portlet.box.purple-wisteria > .portlet-title > .actions .btn-default > i { + color: #dbc3e5; +} +.portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default:active, .portlet.box.purple-wisteria > .portlet-title > .actions .btn-default.active { + border: 1px solid #dfcae8; + color: #eadcf0; +} + +/* Statistic Block */ +.dashboard-stat.purple-wisteria { + background-color: #9B59B6; +} +.dashboard-stat.purple-wisteria.dashboard-stat-light:hover { + background-color: #924dae; +} +.dashboard-stat.purple-wisteria .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.purple-wisteria .details .number { + color: #FFFFFF; +} +.dashboard-stat.purple-wisteria .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.purple-wisteria .more { + color: #FFFFFF; + background-color: #924dae; +} + +/* General Element */ +.bg-purple-wisteria { + border-color: #9B59B6 !important; + background-image: none !important; + background-color: #9B59B6 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-purple-wisteria { + color: #9B59B6 !important; +} + +.progress-bar.purple-wisteria { + background: #9B59B6 !important; + color: #FFFFFF !important; +} + +/*** +Purple Seance +***/ +/* Button */ +.purple-seance.btn { + color: #FFFFFF; + background-color: #9A12B3; +} +.purple-seance.btn:hover, .purple-seance.btn:focus, .purple-seance.btn:active, .purple-seance.btn.active { + color: #FFFFFF; + background-color: #7e0f93; +} +.open .purple-seance.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #7e0f93; +} +.purple-seance.btn:active, .purple-seance.btn.active { + background-image: none; + background-color: #6a0c7b; +} +.purple-seance.btn:active:hover, .purple-seance.btn.active:hover { + background-color: #720d85; +} +.open .purple-seance.btn.dropdown-toggle { + background-image: none; +} +.purple-seance.btn.disabled, .purple-seance.btn.disabled:hover, .purple-seance.btn.disabled:focus, .purple-seance.btn.disabled:active, .purple-seance.btn.disabled.active, .purple-seance.btn[disabled], .purple-seance.btn[disabled]:hover, .purple-seance.btn[disabled]:focus, .purple-seance.btn[disabled]:active, .purple-seance.btn[disabled].active, fieldset[disabled] .purple-seance.btn, fieldset[disabled] .purple-seance.btn:hover, fieldset[disabled] .purple-seance.btn:focus, fieldset[disabled] .purple-seance.btn:active, fieldset[disabled] .purple-seance.btn.active { + background-color: #9A12B3; +} +.purple-seance.btn .badge { + color: #9A12B3; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.purple-seance-stripe { + border-left: 3px solid #9A12B3; +} + +/* Portlet */ +.portlet > .portlet-body.purple-seance, +.portlet.purple-seance { + background-color: #9A12B3; +} + +.portlet.solid.purple-seance > .portlet-title, +.portlet.solid.purple-seance > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.purple-seance > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.purple-seance > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.purple-seance > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.purple-seance > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.purple-seance > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.purple-seance > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.purple-seance > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.purple-seance > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.purple-seance { + border: 1px solid #c217e1; + border-top: 0; +} +.portlet.box.purple-seance > .portlet-title { + background-color: #9A12B3; +} +.portlet.box.purple-seance > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.purple-seance > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.purple-seance > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #d349ed; + color: #d960ef; +} +.portlet.box.purple-seance > .portlet-title > .actions .btn-default > i { + color: #dc6ef0; +} +.portlet.box.purple-seance > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-seance > .portlet-title > .actions .btn-default:active, .portlet.box.purple-seance > .portlet-title > .actions .btn-default.active { + border: 1px solid #de77f1; + color: #e48ef4; +} + +/* Statistic Block */ +.dashboard-stat.purple-seance { + background-color: #9A12B3; +} +.dashboard-stat.purple-seance.dashboard-stat-light:hover { + background-color: #8a10a0; +} +.dashboard-stat.purple-seance .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.purple-seance .details .number { + color: #FFFFFF; +} +.dashboard-stat.purple-seance .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.purple-seance .more { + color: #FFFFFF; + background-color: #8a10a0; +} + +/* General Element */ +.bg-purple-seance { + border-color: #9A12B3 !important; + background-image: none !important; + background-color: #9A12B3 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-purple-seance { + color: #9A12B3 !important; +} + +.progress-bar.purple-seance { + background: #9A12B3 !important; + color: #FFFFFF !important; +} + +/*** +Purple Intense +***/ +/* Button */ +.purple-intense.btn { + color: #FFFFFF; + background-color: #8775a7; +} +.purple-intense.btn:hover, .purple-intense.btn:focus, .purple-intense.btn:active, .purple-intense.btn.active { + color: #FFFFFF; + background-color: #746198; +} +.open .purple-intense.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #746198; +} +.purple-intense.btn:active, .purple-intense.btn.active { + background-image: none; + background-color: #685788; +} +.purple-intense.btn:active:hover, .purple-intense.btn.active:hover { + background-color: #6d5b8e; +} +.open .purple-intense.btn.dropdown-toggle { + background-image: none; +} +.purple-intense.btn.disabled, .purple-intense.btn.disabled:hover, .purple-intense.btn.disabled:focus, .purple-intense.btn.disabled:active, .purple-intense.btn.disabled.active, .purple-intense.btn[disabled], .purple-intense.btn[disabled]:hover, .purple-intense.btn[disabled]:focus, .purple-intense.btn[disabled]:active, .purple-intense.btn[disabled].active, fieldset[disabled] .purple-intense.btn, fieldset[disabled] .purple-intense.btn:hover, fieldset[disabled] .purple-intense.btn:focus, fieldset[disabled] .purple-intense.btn:active, fieldset[disabled] .purple-intense.btn.active { + background-color: #8775a7; +} +.purple-intense.btn .badge { + color: #8775a7; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.purple-intense-stripe { + border-left: 3px solid #8775a7; +} + +/* Portlet */ +.portlet > .portlet-body.purple-intense, +.portlet.purple-intense { + background-color: #8775a7; +} + +.portlet.solid.purple-intense > .portlet-title, +.portlet.solid.purple-intense > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.purple-intense > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.purple-intense > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.purple-intense > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.purple-intense > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.purple-intense > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.purple-intense > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.purple-intense > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.purple-intense > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.purple-intense { + border: 1px solid #a294bb; + border-top: 0; +} +.portlet.box.purple-intense > .portlet-title { + background-color: #8775a7; +} +.portlet.box.purple-intense > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.purple-intense > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.purple-intense > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #c3bad3; + color: #d0c9dd; +} +.portlet.box.purple-intense > .portlet-title > .actions .btn-default > i { + color: #d8d2e3; +} +.portlet.box.purple-intense > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-intense > .portlet-title > .actions .btn-default:active, .portlet.box.purple-intense > .portlet-title > .actions .btn-default.active { + border: 1px solid #ded9e7; + color: #ebe8f0; +} + +/* Statistic Block */ +.dashboard-stat.purple-intense { + background-color: #8775a7; +} +.dashboard-stat.purple-intense.dashboard-stat-light:hover { + background-color: #7c699f; +} +.dashboard-stat.purple-intense .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.purple-intense .details .number { + color: #FFFFFF; +} +.dashboard-stat.purple-intense .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.purple-intense .more { + color: #FFFFFF; + background-color: #7c699f; +} + +/* General Element */ +.bg-purple-intense { + border-color: #8775a7 !important; + background-image: none !important; + background-color: #8775a7 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-purple-intense { + color: #8775a7 !important; +} + +.progress-bar.purple-intense { + background: #8775a7 !important; + color: #FFFFFF !important; +} + +/*** +Purple Sharp +***/ +/* Button */ +.purple-sharp.btn { + color: #FFFFFF; + background-color: #796799; +} +.purple-sharp.btn:hover, .purple-sharp.btn:focus, .purple-sharp.btn:active, .purple-sharp.btn.active { + color: #FFFFFF; + background-color: #685884; +} +.open .purple-sharp.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #685884; +} +.purple-sharp.btn:active, .purple-sharp.btn.active { + background-image: none; + background-color: #5c4e75; +} +.purple-sharp.btn:active:hover, .purple-sharp.btn.active:hover { + background-color: #61527b; +} +.open .purple-sharp.btn.dropdown-toggle { + background-image: none; +} +.purple-sharp.btn.disabled, .purple-sharp.btn.disabled:hover, .purple-sharp.btn.disabled:focus, .purple-sharp.btn.disabled:active, .purple-sharp.btn.disabled.active, .purple-sharp.btn[disabled], .purple-sharp.btn[disabled]:hover, .purple-sharp.btn[disabled]:focus, .purple-sharp.btn[disabled]:active, .purple-sharp.btn[disabled].active, fieldset[disabled] .purple-sharp.btn, fieldset[disabled] .purple-sharp.btn:hover, fieldset[disabled] .purple-sharp.btn:focus, fieldset[disabled] .purple-sharp.btn:active, fieldset[disabled] .purple-sharp.btn.active { + background-color: #796799; +} +.purple-sharp.btn .badge { + color: #796799; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.purple-sharp-stripe { + border-left: 3px solid #796799; +} + +/* Portlet */ +.portlet > .portlet-body.purple-sharp, +.portlet.purple-sharp { + background-color: #796799; +} + +.portlet.solid.purple-sharp > .portlet-title, +.portlet.solid.purple-sharp > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.purple-sharp > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.purple-sharp > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.purple-sharp > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.purple-sharp > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.purple-sharp > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.purple-sharp > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.purple-sharp > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.purple-sharp > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.purple-sharp { + border: 1px solid #9486ad; + border-top: 0; +} +.portlet.box.purple-sharp > .portlet-title { + background-color: #796799; +} +.portlet.box.purple-sharp > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.purple-sharp > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.purple-sharp > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #b4aac6; + color: #c2b9d0; +} +.portlet.box.purple-sharp > .portlet-title > .actions .btn-default > i { + color: #cac3d6; +} +.portlet.box.purple-sharp > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default:active, .portlet.box.purple-sharp > .portlet-title > .actions .btn-default.active { + border: 1px solid #cfc9db; + color: #ddd8e5; +} + +/* Statistic Block */ +.dashboard-stat.purple-sharp { + background-color: #796799; +} +.dashboard-stat.purple-sharp.dashboard-stat-light:hover { + background-color: #6f5f8d; +} +.dashboard-stat.purple-sharp .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.purple-sharp .details .number { + color: #FFFFFF; +} +.dashboard-stat.purple-sharp .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.purple-sharp .more { + color: #FFFFFF; + background-color: #6f5f8d; +} + +/* General Element */ +.bg-purple-sharp { + border-color: #796799 !important; + background-image: none !important; + background-color: #796799 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-purple-sharp { + color: #796799 !important; +} + +.progress-bar.purple-sharp { + background: #796799 !important; + color: #FFFFFF !important; +} + +/*** +Purple Soft +***/ +/* Button */ +.purple-soft.btn { + color: #FFFFFF; + background-color: #8877a9; +} +.purple-soft.btn:hover, .purple-soft.btn:focus, .purple-soft.btn:active, .purple-soft.btn.active { + color: #FFFFFF; + background-color: #75629b; +} +.open .purple-soft.btn.dropdown-toggle { + color: #FFFFFF; + background-color: #75629b; +} +.purple-soft.btn:active, .purple-soft.btn.active { + background-image: none; + background-color: #69588b; +} +.purple-soft.btn:active:hover, .purple-soft.btn.active:hover { + background-color: #6e5c91; +} +.open .purple-soft.btn.dropdown-toggle { + background-image: none; +} +.purple-soft.btn.disabled, .purple-soft.btn.disabled:hover, .purple-soft.btn.disabled:focus, .purple-soft.btn.disabled:active, .purple-soft.btn.disabled.active, .purple-soft.btn[disabled], .purple-soft.btn[disabled]:hover, .purple-soft.btn[disabled]:focus, .purple-soft.btn[disabled]:active, .purple-soft.btn[disabled].active, fieldset[disabled] .purple-soft.btn, fieldset[disabled] .purple-soft.btn:hover, fieldset[disabled] .purple-soft.btn:focus, fieldset[disabled] .purple-soft.btn:active, fieldset[disabled] .purple-soft.btn.active { + background-color: #8877a9; +} +.purple-soft.btn .badge { + color: #8877a9; + background-color: #FFFFFF; +} + +/* Button Strip */ +.btn.purple-soft-stripe { + border-left: 3px solid #8877a9; +} + +/* Portlet */ +.portlet > .portlet-body.purple-soft, +.portlet.purple-soft { + background-color: #8877a9; +} + +.portlet.solid.purple-soft > .portlet-title, +.portlet.solid.purple-soft > .portlet-body { + border: 0; + color: #FFFFFF; +} +.portlet.solid.purple-soft > .portlet-title > .caption { + font-weight: 400; +} +.portlet.solid.purple-soft > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.solid.purple-soft > .portlet-title > .tools > a.remove { + background-image: url(../img/portlet-remove-icon-white.png); +} +.portlet.solid.purple-soft > .portlet-title > .tools > a.config { + background-image: url(../img/portlet-config-icon-white.png); +} +.portlet.solid.purple-soft > .portlet-title > .tools > a.reload { + background-image: url(../img/portlet-reload-icon-white.png); +} +.portlet.solid.purple-soft > .portlet-title > .tools > a.expand { + background-image: url(../img/portlet-expand-icon-white.png); +} +.portlet.solid.purple-soft > .portlet-title > .tools > a.collapse { + background-image: url(../img/portlet-collapse-icon-white.png); +} +.portlet.solid.purple-soft > .portlet-title > .tools > a.fullscreen { + color: #fdfdfd; +} + +.portlet.box.purple-soft { + border: 1px solid #a396bd; + border-top: 0; +} +.portlet.box.purple-soft > .portlet-title { + background-color: #8877a9; +} +.portlet.box.purple-soft > .portlet-title > .caption { + color: #FFFFFF; +} +.portlet.box.purple-soft > .portlet-title > .caption > i { + color: #FFFFFF; +} +.portlet.box.purple-soft > .portlet-title > .actions .btn-default { + background: transparent !important; + background-color: transparent !important; + border: 1px solid #c4bcd4; + color: #d2cbde; +} +.portlet.box.purple-soft > .portlet-title > .actions .btn-default > i { + color: #dad5e4; +} +.portlet.box.purple-soft > .portlet-title > .actions .btn-default:hover, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:focus, .portlet.box.purple-soft > .portlet-title > .actions .btn-default:active, .portlet.box.purple-soft > .portlet-title > .actions .btn-default.active { + border: 1px solid #dfdbe8; + color: #edebf2; +} + +/* Statistic Block */ +.dashboard-stat.purple-soft { + background-color: #8877a9; +} +.dashboard-stat.purple-soft.dashboard-stat-light:hover { + background-color: #7d6ba1; +} +.dashboard-stat.purple-soft .visual > i { + color: #FFFFFF; + opacity: 0.1; + filter: alpha(opacity=10); +} +.dashboard-stat.purple-soft .details .number { + color: #FFFFFF; +} +.dashboard-stat.purple-soft .details .desc { + color: #FFFFFF; + opacity: 1; + filter: alpha(opacity=100); +} +.dashboard-stat.purple-soft .more { + color: #FFFFFF; + background-color: #7d6ba1; +} + +/* General Element */ +.bg-purple-soft { + border-color: #8877a9 !important; + background-image: none !important; + background-color: #8877a9 !important; + color: #FFFFFF !important; +} + +/* General Text & Icon Font Colors */ +.font-purple-soft { + color: #8877a9 !important; +} + +.progress-bar.purple-soft { + background: #8877a9 !important; + color: #FFFFFF !important; +} + +/*** +Transparent Button +***/ +.btn-transparent.btn { + background: transparent; + color: #888; +} + +/*Mohit css start here*/ + +#nav-tables.margin-top-10 { + background: #fbfbfb none repeat scroll 0 0; + border: 1px solid #ddd; + float: left; + width: 100%; +} +#inner-tab-content table.dataTable.no-footer { + background: #f7f7f7 none repeat scroll 0 0; +} +.left-pills > ul { + list-style-type: none; + margin: 0; + padding-left: 0; +} +.left-pills li { + border-bottom: 1px solid #ddd; + margin-bottom: 0; + padding: 10px 15px; +} +.left-pills li:last-child{ + border-bottom: none; +} +.left-pills li a { + color: #353535; + font-size: 13px; +} +.left-pills li:hover{ + background: #26a69a; + cursor: pointer; +} +.left-pills li.active{ + background: #26a69a; + cursor: pointer; +} +.left-pills li.active a{ + color: #fff; +} +.left-pills li:hover a{ + color: #fff; + text-decoration: none; +} +#Myfr8lines > h3 { + margin-top: 0; +} +.left-pills { + padding: 0; +} +#inner-tab-content .portlet.light { + background-color: #fbfbfb; + padding: 12px 20px 15px 0; +} +#inner-tab-content.tab-content { + border-left: 1px solid #ddd; + padding: 20px 0 20px 20px; + min-height: 680px; +} +.col-md-10.col-sm-10.remove-left-padding { + padding-left: 0; +} +.col-md-2.col-sm-2.remove-padding { + padding-right: 0; +} +#Setting > h3 { + margin-top: 0; +} +.etc-space { + float: left; + height: 70px; + width: 100%; +} +#single-button.btn.btn-primary.dropdown-toggle { + background-image: url("../../../../../img/select-info.png") !important; + background-position: 100% center; + background-repeat: no-repeat; + font-size: 13px; + min-height: 39px; + padding: 10px 54px 10px 10px; + text-align: left; + min-width: 300px; + background-color: #3379b5 !important; +} +.btn-group.dropdown { + margin-top: 10px; +} +#single-button.btn.btn-primary.dropdown-toggle:hover, #single-button.btn.btn-primary.dropdown-toggle:focus{ + background-color: #3379b5 !important; +} +.btn-group.dropdown .dropdown-menu{ + width: 300px; +} \ No newline at end of file diff --git a/Content/metronic/jquery.blockui.min.js b/Content/metronic/jquery.blockui.min.js new file mode 100644 index 0000000000..76d5cfc9f5 --- /dev/null +++ b/Content/metronic/jquery.blockui.min.js @@ -0,0 +1,15 @@ +/*! + * jQuery blockUI plugin + * Version 2.66.0-2013.10.09 + * Requires jQuery v1.7 or later + * + * Examples at: http://malsup.com/jquery/block/ + * Copyright (c) 2007-2013 M. Alsup + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * Thanks to Amir-Hossein Sobhi for some excellent contributions! + */ + +!function(){"use strict";function e(e){function t(t,n){var s,h,k=t==window,y=n&&void 0!==n.message?n.message:void 0;if(n=e.extend({},e.blockUI.defaults,n||{}),!n.ignoreIfBlocked||!e(t).data("blockUI.isBlocked")){if(n.overlayCSS=e.extend({},e.blockUI.defaults.overlayCSS,n.overlayCSS||{}),s=e.extend({},e.blockUI.defaults.css,n.css||{}),n.onOverlayClick&&(n.overlayCSS.cursor="pointer"),h=e.extend({},e.blockUI.defaults.themedCSS,n.themedCSS||{}),y=void 0===y?n.message:y,k&&p&&o(window,{fadeOut:0}),y&&"string"!=typeof y&&(y.parentNode||y.jquery)){var m=y.jquery?y[0]:y,v={};e(t).data("blockUI.history",v),v.el=m,v.parent=m.parentNode,v.display=m.style.display,v.position=m.style.position,v.parent&&v.parent.removeChild(m)}e(t).data("blockUI.onUnblock",n.onUnblock);var g,I,w,U,x=n.baseZ;g=r||n.forceIframe?e(''):e('

'; + } else if (options.iconOnly) { + html = '
'; + } else if (options.textOnly) { + html = '
  ' + (options.message ? options.message : 'LOADING...') + '
'; + } else { + html = '
  ' + (options.message ? options.message : 'LOADING...') + '
'; + } + + if (options.target) { // element blocking + var el = $(options.target); + if (el.height() <= ($(window).height())) { + options.cenrerY = true; + } + el.block({ + message: html, + baseZ: options.zIndex ? options.zIndex : 1000, + centerY: options.cenrerY !== undefined ? options.cenrerY : false, + css: { + top: '10%', + border: '0', + padding: '0', + backgroundColor: 'none' + }, + overlayCSS: { + backgroundColor: options.overlayColor ? options.overlayColor : '#555', + opacity: options.boxed ? 0.05 : 0.1, + cursor: 'wait' + } + }); + } else { // page blocking + $.blockUI({ + message: html, + baseZ: options.zIndex ? options.zIndex : 1000, + css: { + border: '0', + padding: '0', + backgroundColor: 'none' + }, + overlayCSS: { + backgroundColor: options.overlayColor ? options.overlayColor : '#555', + opacity: options.boxed ? 0.05 : 0.1, + cursor: 'wait' + } + }); + } + }, + + // wrMetronicer function to un-block element(finish loading) + unblockUI: function (target) { + if (target) { + spinnerVisible = false; + $(target).unblock({ + onUnblock: function () { + $(target).css('position', ''); + $(target).css('zoom', ''); + } + }); + } else { + $.unblockUI(); + } + } +}; diff --git a/Controllers/Api/AuthenticationController.cs b/Controllers/Api/AuthenticationController.cs index 9e930f7db1..1c89b8c89d 100644 --- a/Controllers/Api/AuthenticationController.cs +++ b/Controllers/Api/AuthenticationController.cs @@ -370,7 +370,22 @@ public async Task VerifyPhoneNumberCode(PhoneNumberCredential AuthTokenId = response.AuthorizationToken?.Id.ToString(), Error = response.Error }); - } + } + + [HttpGet] + [ActionName("is_privileged")] + public IHttpActionResult IsPrivileged() + { + var identity = User.Identity as ClaimsIdentity; + if (identity == null) + { + return Ok(new { privileged = false }); + } + + var privileged = identity.HasClaim(ClaimsIdentity.DefaultRoleClaimType, "Admin"); + + return Ok(new { privileged }); + } } //This class is purely for Swagger documentation purposes public class TokenWrapper diff --git a/Controllers/PlanDirectoryController.cs b/Controllers/PlanDirectoryController.cs new file mode 100644 index 0000000000..55b8e9d1b1 --- /dev/null +++ b/Controllers/PlanDirectoryController.cs @@ -0,0 +1,65 @@ +using System.Web.Mvc; + +namespace HubWeb.Controllers +{ + public class PlanDirectoryController : Controller + { + //private readonly IAuthTokenManager _authTokenManager; + + + public PlanDirectoryController() + { + //_authTokenManager = ObjectFactory.GetInstance(); + } + + [HttpGet] + public ActionResult Index() + { + return View(); + } + + //[HttpGet] + //public ActionResult AuthenticateByToken(string token) + //{ + // try + // { + // var fr8AccountId = _authTokenManager.GetFr8AccountId(token); + // if (!fr8AccountId.HasValue) + // { + // return Redirect(VirtualPathUtility.ToAbsolute("~/Reauthenticate")); + // } + + // using (var uow = ObjectFactory.GetInstance()) + // { + // var fr8AccountDO = uow.UserRepository.GetByKey(fr8AccountId.Value.ToString()); + + // var securityServices = ObjectFactory.GetInstance(); + // securityServices.Logout(); + // securityServices.Login(uow, fr8AccountDO); + + // return Redirect(VirtualPathUtility.ToAbsolute("~/")); + // } + // } + // catch (System.Exception ex) + // { + // var sb = new System.Text.StringBuilder(); + + // while (ex != null) + // { + // sb.AppendLine(ex.Message); + // sb.AppendLine(ex.StackTrace); + + // ex = ex.InnerException; + // } + + // return Content(sb.ToString()); + // } + //} + + //[HttpGet] + //public ActionResult Reauthenticate() + //{ + // return View(); + //} + } +} diff --git a/HubWeb.csproj b/HubWeb.csproj index f6364c0feb..4a5b550f53 100644 --- a/HubWeb.csproj +++ b/HubWeb.csproj @@ -395,6 +395,7 @@ + @@ -525,11 +526,15 @@ + + + + @@ -696,6 +701,10 @@ + + + + @@ -722,6 +731,7 @@ + @@ -729,6 +739,7 @@ + @@ -867,6 +878,7 @@ + diff --git a/Scripts/PlanDirectoryApp.js b/Scripts/PlanDirectoryApp.js new file mode 100644 index 0000000000..f5951b362f --- /dev/null +++ b/Scripts/PlanDirectoryApp.js @@ -0,0 +1,143 @@ +angular.module('PlanDirectoryApp', ['ui.bootstrap']) + .controller('SearchController', [ + '$scope', + '$http', + '$q', + '$uibModal', + 'urlPrefix', + '$location', + function ($scope, $http, $q, $uibModal, urlPrefix, $location) { + $scope.searchForm = { + searchText: $location.search().planSearch ? $location.search().planSearch : '' + }; + + $scope.pageSize = 5; + $scope.totalCount = 0; + $scope.planTemplates = []; + $scope.currentPage = 1; + $scope.pages = []; + + var doSearch = function (pageStart) { + var url = urlPrefix + '/api/v1/plan_templates/search' + + '?text=' + $scope.searchForm.searchText + + '&pageStart=' + pageStart + + '&pageSize=' + $scope.pageSize; + + Metronic.blockUI({ animate: true }); + + var promise = $q(function (resolve, reject) { + $http.get(url) + .then(function (res) { + $scope.totalCount = res.data.TotalCount; + $scope.planTemplates = res.data.PlanTemplates; + + $scope.currentPage = pageStart; + $scope.pages = []; + for (var i = 0; i < Math.ceil(res.data.TotalCount / $scope.pageSize) ; ++i) { + $scope.pages.push(i + 1); + } + + resolve(); + }) + .catch(function (err) { + reject(err); + }) + .finally(function () { + Metronic.unblockUI(); + }); + }); + + return promise; + }; + + var checkAuthentication = function () { + var url = urlPrefix + '/api/v1/authentication/is_authenticated'; + + var promise = $q(function (resolve, reject) { + $http.get(url) + .then(function (res) { + resolve(res.data.authenticated); + }) + .catch(function (err) { + reject(err); + }); + }); + + return promise; + }; + + var checkPrivileged = function () { + var url = urlPrefix + '/api/v1/authentication/is_privileged'; + + var promise = $q(function (resolve, reject) { + $http.get(url) + .then(function (res) { + resolve(res.data.privileged); + }) + .catch(function (err) { + reject(err); + }); + }); + + return promise; + }; + + $scope.submitSearch = function (pageStart) { + doSearch(pageStart); + }; + + $scope.createPlan = function (planTemplate) { + Metronic.blockUI({ animate: true }); + + checkAuthentication() + .then(function (authenticated) { + if (!authenticated) { + $uibModal.open({ + templateUrl: '/AuthenticateDialog.html', + controller: 'AuthenticateDialogController' + }); + + Metronic.unblockUI(); + } + else { + var url = urlPrefix + '/api/v1/plan_templates/createplan/?id=' + planTemplate.ParentPlanId; + $http.post(url, null) + .then(function (data) { + Metronic.unblockUI(); + window.location.href = data.data.RedirectUrl; + }); + } + }) + .finally(function () { + Metronic.unblockUI(); + }); + }; + + $scope.removePlan = function (planTemplate) { + Metronic.blockUI({ animate: true }); + + var url = urlPrefix + '/api/v1/plan_templates/?id=' + planTemplate.ParentPlanId; + $http.delete(url) + .then(function (data) { + Metronic.unblockUI(); + doSearch($scope.currentPage); + }); + }; + + $scope.generatePages = function() { + var url = urlPrefix + '/api/v1/plan_templates/generatepages'; + $http.post(url, null); + } + + checkPrivileged() + .then(function (privileged) { + $scope.privileged = privileged; + }); + doSearch(1); + } + ]) + .controller('AuthenticateDialogController', [ + '$scope', + function ($scope) { + } + ]); diff --git a/Scripts/PlanDirectoryMain.js b/Scripts/PlanDirectoryMain.js new file mode 100644 index 0000000000..99b607789d --- /dev/null +++ b/Scripts/PlanDirectoryMain.js @@ -0,0 +1,117 @@ +jQuery(function ($) { + + // Navbar and logo switch related with screen width + function toggleNavbar() { + if (($(window).width() > 1024) && ($(document).scrollTop() <= 100)) { + setNavbarTransparent(); + } else { + setNavbarLight(); + } + } + + function setNavbarLight() { + $('.navbar').addClass('navbar-light'); + $('.navbar-brand img').attr('src', '/Content/img/dockyard_logo.png'); + } + + function setNavbarTransparent() { + $('.navbar').removeClass('navbar-light'); + $('.navbar-brand img').attr('src', '/Content/img/dockyard_logo_white.png'); + } + + function resizePageComponents() { + var windowHeight = $(window).height(), + headerHeight = $('header#site-header .navbar').innerHeight(), + footerHeight = $('#site-footer').outerHeight(), + contentInnerHeight = $(".inner-wrap.centered").height(); + + // Helps the background setting for footer + $("section.full-height-block").css({ + "min-height": windowHeight - footerHeight + }); + + $(".inner-wrap.centered").each(function () { + contentInnerHeight = $(this).height(); + if (($("section.full-height-block").length == 1)) { + $(this).css({ + "top": (headerHeight + 20) + "px", + 'margin-top': "0" + }); + $(this).parents("section").css("padding-bottom", (parseInt($(this).css('top')))); + } else { + if (contentInnerHeight < (windowHeight - headerHeight)) { + $(this).css("top", (windowHeight - contentInnerHeight) / 2); + } else { + $(this).css("top", headerHeight + 20); + $(this).parents("section").find(".inner-bg.full-size-bg").css("min-height", ($(this).height() + parseInt($(this).css('top')))); + $(this).parents("section").css("margin-bottom", "60px"); + } + } + }); + + $(".clear.clear-footer-spacer").height($("#site-footer").height()); + $("#wrap").css("margin-bottom", (0 - $("#site-footer").height())); + } + + // Navbar and logo switch related with scroll position + $(window).on('scroll', function () { + if ($(window).width() > 1024) { + if ($(document).scrollTop() > 50) { + setNavbarLight(); + } else { + setNavbarTransparent(); + } + } + }); + + $(window).resize(function () { + resizePageComponents(); + toggleNavbar(); + }); + + $(document).ready(function () { + $('body').bind('beforeunload', function () { + localStorage.setItem("navbarLnk", null); + }); + + resizePageComponents(); + + $('a[rel="popover"]').popover(); + $('a[rel="tooltip"]').tooltip(); + $('.carousel').carousel({ + interval: false + }) + + /* Menu*/ + $("li.dropdown").hover(function () { + $(this).find("a.dropdown-toggle").attr('aria-expanded', "true"); + $(this).addClass("open"); + }, function () { + $(this).find("a.dropdown-toggle").attr('aria-expanded', "false"); + $(this).removeClass("open"); + }); + }); + + toggleNavbar(); + + // Hide collapsible menu + $('.navbar-nav li a').click(function () { + if ($(this).parents('.navbar-collapse.collapse').hasClass('in')) { + $('#main-nav').collapse('hide'); + } + }); + + // init scrollspy except on Opera, it doesn't work because body has 100% height + if (!navigator.userAgent.match("Opera/")) { + $('body').scrollspy({ + target: '#main-nav' + }); + } else { + $('#main-nav .nav li').removeClass('active'); + } + + + + + +}); diff --git a/Views/PlanDirectory/Index.cshtml b/Views/PlanDirectory/Index.cshtml new file mode 100644 index 0000000000..970293cf8b --- /dev/null +++ b/Views/PlanDirectory/Index.cshtml @@ -0,0 +1,132 @@ +@using Data.Infrastructure.StructureMap +@using StructureMap +@*@model PlanDirectory.ViewModels.HomeVM*@ + + + + + + + + + + + + + Fr8 Plan Directory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+
+

Plan Directory

+
+
+ + + + + +
+
+
+
+
+ + +
+
+ + +
+
Name:
{{plan.Name}} +
+
+
Created by:
{{plan.Owner}} +
+
+
Description:
+
{{plan.Description}}
+
+ +
+
+
+ +
+
+
+
+
+
+ + +
+ + + + + +
+
+ +
+
+ + + diff --git a/bower.json b/bower.json index 87d7591578..0cfe5892cc 100644 --- a/bower.json +++ b/bower.json @@ -16,6 +16,7 @@ "angular-typescript": "latest", "angular-ui-router": "^0.3.1", "angular-ui-select": "~0.14.1", + "angular-ui-bootstrap-bower": "~1.3.2", "awesome-bootstrap-checkbox": "0.3.4", "bootstrap": "~3.3.1", "bootstrap-hover-dropdown": "2.1.3", From e0b8b72013cfc5edcd6b14b6f8983c45cd245188 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alp=20G=C3=BCrtan?= Date: Wed, 3 Aug 2016 09:41:10 +0300 Subject: [PATCH 044/266] NotificationType is removed with respect to TerminalEvent --- Docs/ForDevelopers/Services/Notifications.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/Docs/ForDevelopers/Services/Notifications.md b/Docs/ForDevelopers/Services/Notifications.md index 40a2e9be86..94646bc9d5 100644 --- a/Docs/ForDevelopers/Services/Notifications.md +++ b/Docs/ForDevelopers/Services/Notifications.md @@ -30,7 +30,7 @@ These notification types can report an error of validation, successful execution Generating a Notification Message --------------------------------- - Terminals generate notification messages with this call: +Notification messages coming from Terminal requests are classified under "Terminal Event" type and displayed with bolt icon on the screen. They can be generated with this call: *Url* @@ -46,7 +46,6 @@ Generating a Notification Message { "ActivityName" : "App_Builder", "ActivityVersion": "1", - "NotificationType": 1, // Generic Success = 1, Generic Failure = 2, Generic Info = 3 "Collapsed": false, "Message": "This is a plan message/description", "Subject": "This is a custom (optional) header for message", @@ -55,16 +54,10 @@ Generating a Notification Message } ``` -> *NotificationType* - This parameter is only implemented for toast notifications and determines color/priority of messages. Although there are 5 type of notifications, only "Generic Success", "Generic Failure" and "Generic Info" is used in terminal requests. More information can be found down below, in "Toast Notifications". - ## Toast Notifications -They uses same mechanism as in Activity Stream and render incoming pusher messages as Toast messages, based on whether there is a Activity Stream panel on screen. With this automatic rendering, developers are not supposed to have to worry about front end layout issues. Only thing to consider is "NotificationType" parameter in request body, which determines type of message in front-end. Toast messages (implemented with [Noty library](http://ned.im/noty/)) corresponding to "NotificationType" parameter can be seen in this table: - -![ActivityStream](/Docs/img/ToastMessageTable.png) - -Example usage of these messages can be found in [App Builder Activity](Docs/ForDevelopers/OperatingConcepts/Apps.md) which is optimized visually for mobile screen sizes. Absence of Activity Stream causes usage of toast messages in Kiosk mode. +They uses same mechanism as in Activity Stream and render incoming pusher messages as Toast messages, based on whether there is a Activity Stream panel on screen. With this automatic rendering, developers are not supposed to have to worry about front end layout issues. Example usage of these messages can be found in [App Builder Activity](Docs/ForDevelopers/OperatingConcepts/Apps.md) which is optimized visually for mobile screen sizes. Absence of Activity Stream causes display of alert message at the top-center of page (implemented with [Noty library](http://ned.im/noty/)) in Kiosk Mode. [Go to Contents]( /Docs/Home.md) From de5184349066b9899165a804a4431eb4feb3055e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bahad=C4=B1r=20Bozda=C4=9F?= Date: Wed, 3 Aug 2016 10:23:59 +0300 Subject: [PATCH 045/266] Fixed concurrent activity request bug --- HubWeb.csproj | 1 + Scripts/app/app.ts | 138 ------------------ .../PaneConfigureAction.ts | 9 +- Scripts/app/services/ActivityService.ts | 86 +++++++++++ gulpfile.js | 1 + 5 files changed, 92 insertions(+), 143 deletions(-) create mode 100644 Scripts/app/services/ActivityService.ts diff --git a/HubWeb.csproj b/HubWeb.csproj index f6364c0feb..db979e57ea 100644 --- a/HubWeb.csproj +++ b/HubWeb.csproj @@ -930,6 +930,7 @@ + diff --git a/Scripts/app/app.ts b/Scripts/app/app.ts index 655c880ed6..a6ea602425 100644 --- a/Scripts/app/app.ts +++ b/Scripts/app/app.ts @@ -193,7 +193,6 @@ app.config(['$stateProvider', '$urlRouterProvider', '$httpProvider', '$locationP $locationProvider.html5Mode(true); $httpProvider.interceptors.push('fr8VersionInterceptor'); - $httpProvider.interceptors.push('fr8ActivityRequestQueue'); // Install a HTTP request interceptor that causes 'Processing...' message to display $httpProvider.interceptors.push(['$q', '$window', ($q: ng.IQService, $window: ng.IWindowService) => { @@ -226,122 +225,6 @@ app.config(['$stateProvider', '$urlRouterProvider', '$httpProvider', '$locationP } }]); - class ApiRequestCoordinatorService { - private configurePattern: string = 'activities/configure'; - private savePattern: string = 'activities/save'; - private currentConfigurationRequests: string[] = []; - - // If the function returns false, request must be rejected. If true, the request can proceed. - public startRequest(url: string, activityId: string): boolean { - if (url.indexOf(this.configurePattern) > -1) { - // check if such activity is currently being configured. if so, reject the request. - if (this.currentConfigurationRequests.indexOf(activityId) > -1) { - return false; - } - else { - // if not, add it in the list of configured activities - this.currentConfigurationRequests.push(activityId); - } - } - - else if (url.indexOf(this.savePattern) > -1) { - if (this.currentConfigurationRequests.indexOf(activityId) > -1) { - return false; - } - } - - return true; - } - - public endRequest(url: string, activityId: string) { - if (url.indexOf(this.configurePattern) == -1) return; - - // check if such activity is currently being configured. if so, remove it from the array - let idx: number = this.currentConfigurationRequests.indexOf(activityId); - if (idx > -1) { - this.currentConfigurationRequests.splice(idx, 1); - } - } - } - - app.service('ApiRequestCoordinatorService', [ApiRequestCoordinatorService]); - - - // Install a HTTP request interceptor that syncronizes Save and Config requests for a single activity. - // If a Configure request is currently executing, Save and other Configure requests will be dropped. - // See FR-3475 for rationale. - $httpProvider.interceptors.push(['$q', ($q: ng.IQService) => { - - // Since we cannot reference services from initialization code, we define a nested class and instantiate it. - class ApiRequestCoordinatorService { - private configurePattern: string = 'activities/configure'; - private savePattern: string = 'activities/save'; - private currentConfigurationRequests: string[] = []; - - // If the function returns false, request must be rejected. If true, the request can proceed. - public startRequest(url: string, activityId: string): boolean { - if (url.indexOf(this.configurePattern) > -1) { - // check if such activity is currently being configured. if so, reject the request. - if (this.currentConfigurationRequests.indexOf(activityId) > -1) { - return false; - } - else { - // if not, add it in the list of configured activities - this.currentConfigurationRequests.push(activityId); - } - } - - else if (url.indexOf(this.savePattern) > -1) { - if (this.currentConfigurationRequests.indexOf(activityId) > -1) { - return false; - } - } - return true; - } - - public endRequest(url: string, activityId: string) { - if (url.indexOf(this.configurePattern) == -1) return; - - // check if such activity is currently being configured. if so, remove it from the array - var idx: number = this.currentConfigurationRequests.indexOf(activityId); - if (idx > -1) { - this.currentConfigurationRequests.splice(idx, 1); - } - } - } - - var apiRequestCoordinatorService = new ApiRequestCoordinatorService(); - - return { - request: (config) => { - // bypass any requests which are not of interest for us - if (config.method != 'POST') return config; - if (!config.params || !config.params.id) return config; - if (!apiRequestCoordinatorService.startRequest(config.url, config.params.id)) { - var canceler = $q.defer(); - config.timeout = canceler.promise; - canceler.resolve(); - } - return config; - }, - - response: (response) => { - var config = response.config; - if (!config.url) return response; - if (!response.data || !response.data.id) return response; - apiRequestCoordinatorService.endRequest(config.url, response.data.id) - return response; - }, - - responseError: (response) => { - if (!response.url) return $q.reject(response); - if (!response.data || !response.data.id) return $q.reject(response); - apiRequestCoordinatorService.endRequest(response.url, response.data.id) - return $q.reject(response); - } - } - }]); - // Redirect any unmatched url $urlRouterProvider.otherwise("/myaccount"); @@ -538,27 +421,6 @@ app.factory('fr8VersionInterceptor', ['fr8ApiVersion', (fr8ApiVersion: string) = }; }]); -//this service delays an activityRequest until previous request completion -app.factory('fr8ActivityRequestQueue', ['$q',($q: ng.IQService) => { - var activityRequestMap: { [id: string]: ng.IPromise; } = {}; - return { - 'request': (config: ng.IRequestConfig) => { - var deferred = $q.defer(); - if (config.url.indexOf('/activities/') > -1 && config.params.id) { - if (activityRequestMap[config.params.id]) { - activityRequestMap[config.params.id].then(() => { - deferred.resolve(config); - }); - } else { - deferred.resolve(config); - } - activityRequestMap[config.params.id] = deferred.promise; - } - return deferred.promise; - } - }; -}]); - app.config(['ivhTreeviewOptionsProvider', ivhTreeviewOptionsProvider => { ivhTreeviewOptionsProvider.set({ diff --git a/Scripts/app/directives/PaneConfigureAction/PaneConfigureAction.ts b/Scripts/app/directives/PaneConfigureAction/PaneConfigureAction.ts index 20941377a7..8f43b81004 100644 --- a/Scripts/app/directives/PaneConfigureAction/PaneConfigureAction.ts +++ b/Scripts/app/directives/PaneConfigureAction/PaneConfigureAction.ts @@ -184,13 +184,13 @@ module dockyard.directives.paneConfigureAction { export class PaneConfigureActionController implements IPaneConfigureActionController { - static $inject = ['$scope', 'ActionService', 'AuthService', 'ConfigureTrackerService', 'CrateHelper', '$filter', + static $inject = ['$scope', 'ActivityService', 'AuthService', 'ConfigureTrackerService', 'CrateHelper', '$filter', '$timeout', '$modal', '$window', '$http', '$q', 'LayoutService', 'ActivityTemplateHelperService']; private configLoadingError: boolean = false; private ignoreConfigurationChange: boolean = false; - constructor(private $scope: IPaneConfigureActionScope, private ActionService: services.IActionService, + constructor(private $scope: IPaneConfigureActionScope, private ActivityService: services.IActivityService, private AuthService: services.AuthService, private ConfigureTrackerService: services.ConfigureTrackerService, private crateHelper: services.CrateHelper, private $filter: ng.IFilterService, private $timeout: ng.ITimeoutService, private $modal, @@ -368,8 +368,7 @@ module dockyard.directives.paneConfigureAction { this.$scope.currentAction.crateStorage.crateDTO = this.$scope.currentAction.crateStorage.crates; //backend expects crates on CrateDTO field - this.ActionService.save({ id: this.$scope.currentAction.id }, this.$scope.currentAction, null, null) - .$promise + this.ActivityService.save(this.$scope.currentAction) .then(() => { if (this.$scope.currentAction.childrenActivities @@ -502,7 +501,7 @@ module dockyard.directives.paneConfigureAction { this.$scope.$broadcast(MessageType[MessageType.PaneConfigureAction_ConfigureStarting]); - this.ActionService.configure(this.$scope.currentAction).$promise + this.ActivityService.configure(this.$scope.currentAction) .then((res: interfaces.IActionVM) => { //lets reset config control handles //they will re register themselves after initializing diff --git a/Scripts/app/services/ActivityService.ts b/Scripts/app/services/ActivityService.ts new file mode 100644 index 0000000000..dd4d34eb5a --- /dev/null +++ b/Scripts/app/services/ActivityService.ts @@ -0,0 +1,86 @@ +/// + +module dockyard.services { + + export interface IActivityService { + save: (activity: interfaces.IActivityDTO) => ng.IPromise; + configure: (activity: interfaces.IActivityDTO) => ng.IPromise; + } + + interface IActivityFunction { + (activityDTO: interfaces.IActivityDTO): ng.IPromise; + } + + class ActivityRequestQueue { + constructor(deferred: ng.IDeferred, opFunction: IActivityFunction, activityDTO: interfaces.IActivityDTO) { + this.deferred = deferred; + this.opFunction = opFunction; + this.activityDTO = activityDTO; + } + public deferred: ng.IDeferred; + public opFunction: IActivityFunction; + public activityDTO: interfaces.IActivityDTO; + } + + ///This service queues request for same activity + //therefore no concurrent request of the same activity can be made + class ActivityService implements IActivityService { + + private activityRequestMap: { [id: string]: Array; } = {}; + + constructor(private $http: ng.IHttpService, private $q: ng.IQService) { + + } + + private processNext(id: string) { + //end of queue + if (this.activityRequestMap[id].length === 0) { + return; + } + var queueElement = this.activityRequestMap[id][0]; + var operationPromise = >queueElement.opFunction.call(this, queueElement.activityDTO); + operationPromise.then((activityDTO: interfaces.IActivityDTO) => { + queueElement.deferred.resolve(activityDTO); + }, (err) => { + queueElement.deferred.reject(err); + }).finally(() => { + //remove processed element from queue + this.activityRequestMap[id].shift(); + this.processNext(id); + }); + } + + private queueRequest(opFunction: IActivityFunction, activityDTO: interfaces.IActivityDTO): ng.IPromise { + var deferred = this.$q.defer(); + + if (!this.activityRequestMap[activityDTO.id]) { + this.activityRequestMap[activityDTO.id] = []; + } + //push this operation to queue + this.activityRequestMap[activityDTO.id].push(new ActivityRequestQueue(deferred, opFunction, activityDTO)); + //process this immediately + if (this.activityRequestMap[activityDTO.id].length === 1) { + this.processNext(activityDTO.id); + } + return deferred.promise; + } + + private saveInternal(activityDTO: interfaces.IActivityDTO): ng.IPromise { + return this.$http.post('/api/activities/save', activityDTO).then((resp) => resp.data); + } + + private configureInternal(activityDTO: interfaces.IActivityDTO): ng.IPromise { + return this.$http.post('/api/activities/configure', activityDTO).then((resp) => resp.data); + } + + public save(activityDTO: model.ActivityDTO): ng.IPromise { + return this.queueRequest(this.saveInternal, activityDTO); + } + + public configure(activityDTO: model.ActivityDTO): ng.IPromise { + return this.queueRequest(this.configureInternal, activityDTO); + } + } + + app.factory('ActivityService', ['$http', '$q', ($http: ng.IHttpService, $q: ng.IQService): IActivityService => new ActivityService($http, $q)]); +} \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 1028d0fd30..0a270ac3d1 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -90,6 +90,7 @@ gulp.task('compile_js', function () { 'Scripts/app/services/UpstreamExtractor.js', 'Scripts/app/services/PageDefinitionService.js', 'Scripts/app/services/ActivityTemplateService.js', + 'Scripts/app/services/ActivityService.js', 'Scripts/app/filters/PlanState.js', 'Scripts/app/filters/ContainerState.js', 'Scripts/app/filters/FilterByTag.js', From 0db05083424e3fb8278a1ca46df884de51b7448d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bahad=C4=B1r=20Bozda=C4=9F?= Date: Wed, 3 Aug 2016 10:54:28 +0300 Subject: [PATCH 046/266] caching and performance improvements on FE --- .../Api/ActivityTemplatesController.cs | 3 + Scripts/app/controllers/SandboxController.ts | 7 +- .../app/controllers/SolutionListController.ts | 8 +-- Scripts/app/directives/ActionPicker.ts | 10 +-- .../PaneSelectAction/PaneSelectAction.ts | 8 +-- .../app/services/ActivityTemplateService.ts | 69 +++++++++---------- Scripts/app/services/PlanBuilderService.ts | 15 ---- 7 files changed, 49 insertions(+), 71 deletions(-) diff --git a/Controllers/Api/ActivityTemplatesController.cs b/Controllers/Api/ActivityTemplatesController.cs index d915cd2e71..8305a3ccbd 100644 --- a/Controllers/Api/ActivityTemplatesController.cs +++ b/Controllers/Api/ActivityTemplatesController.cs @@ -47,6 +47,9 @@ public IHttpActionResult Get() var categoriesWithActivities = _activity.GetAvailableActivityGroups(); return Ok(categoriesWithActivities); } + + + //TODO inspect this - why do we have 2 different methods returning different responses by similar names? /// /// Retreives all available activity templates grouped by category /// diff --git a/Scripts/app/controllers/SandboxController.ts b/Scripts/app/controllers/SandboxController.ts index 13d153b2f7..60092e1bb6 100644 --- a/Scripts/app/controllers/SandboxController.ts +++ b/Scripts/app/controllers/SandboxController.ts @@ -52,8 +52,7 @@ module dockyard.controllers { 'CriteriaServiceWrapper', 'PlanBuilderService', 'ActionListService', - 'CrateHelper', - 'ActivityTemplateService' + 'CrateHelper' ]; private _scope: ISandboxScope; @@ -71,9 +70,7 @@ module dockyard.controllers { private $timeout: ng.ITimeoutService, private CriteriaServiceWrapper: services.ICriteriaServiceWrapper, private PlanBuilderService: services.IPlanBuilderService, - - private CrateHelper: services.CrateHelper, - private ActivityTemplateService: services.IActivityTemplateService + private CrateHelper: services.CrateHelper ) { this._scope = $scope; this._scope.planId = $state.params.id; diff --git a/Scripts/app/controllers/SolutionListController.ts b/Scripts/app/controllers/SolutionListController.ts index 5dae2d30c8..3f8aef27d1 100644 --- a/Scripts/app/controllers/SolutionListController.ts +++ b/Scripts/app/controllers/SolutionListController.ts @@ -2,27 +2,27 @@ module dockyard.controllers { export interface ISelectActionScope extends ng.IScope { - activityCategories: ng.resource.IResource; + activityCategories: interfaces.IActivityCategoryDTO[]; onSolutionSelected: (solution: interfaces.IActivityCategoryDTO) => void; } export class SolutionListController { public static $inject = [ '$scope', - 'ActivityTemplateService', + 'ActivityTemplateHelperService', '$modal', '$state' ]; constructor( private $scope: ISelectActionScope, - private ActivityTemplateService: services.IActivityTemplateService, + private ActivityTemplateHelperService: services.IActivityTemplateHelperService, private ActionService: services.IActionService, private $state: ng.ui.IStateService) { $scope.onSolutionSelected = <(solution: interfaces.IActivityCategoryDTO) => void> angular.bind(this, this.onSolutionSelected); - $scope.activityCategories = ActivityTemplateService.getAvailableActivities(); + $scope.activityCategories = ActivityTemplateHelperService.getAvailableActivityTemplatesInCategories(); } private onSolutionSelected(solution: interfaces.IActivityTemplateVM) { diff --git a/Scripts/app/directives/ActionPicker.ts b/Scripts/app/directives/ActionPicker.ts index 5ce9a4b842..1acd843108 100644 --- a/Scripts/app/directives/ActionPicker.ts +++ b/Scripts/app/directives/ActionPicker.ts @@ -97,8 +97,8 @@ module dockyard.directives { return { restrict: 'E', templateUrl: '/AngularTemplate/ActionPickerPanel', - controller: ['$scope', '$http', '$timeout', - ($scope: IActionPickerPanelScope, $http: ng.IHttpService, $timeout: ng.ITimeoutService) => { + controller: ['$scope', 'ActivityTemplateHelperService', '$timeout', + ($scope: IActionPickerPanelScope, ActivityTemplateHelperService: services.IActivityTemplateHelperService, $timeout: ng.ITimeoutService) => { $scope.form = { searchText: '' }; $scope.selectCategory = (category: model.ActivityCategoryDTO) => { @@ -125,9 +125,9 @@ module dockyard.directives { }; var _reload = () => { - $http.get('/api/activity_templates/by_categories') - .then((res: ng.IHttpPromiseCallbackArg>) => { - $scope.categories = res.data.filter((x) => { return x.name !== 'Solution'; }); + ActivityTemplateHelperService.getAvailableActivityTemplatesByCategory() + .then((res: Array) => { + $scope.categories = res.filter((x) => { return x.name !== 'Solution'; }); }); }; diff --git a/Scripts/app/directives/PaneSelectAction/PaneSelectAction.ts b/Scripts/app/directives/PaneSelectAction/PaneSelectAction.ts index fd342b8688..40a4dce4f7 100644 --- a/Scripts/app/directives/PaneSelectAction/PaneSelectAction.ts +++ b/Scripts/app/directives/PaneSelectAction/PaneSelectAction.ts @@ -110,7 +110,7 @@ module dockyard.directives.paneSelectAction { private _$element: ng.IAugmentedJQuery; private _$scope: IPaneSelectActionScope; - constructor(private $modal: any, private ActivityTemplateService: services.IActivityTemplateService) { + constructor(private $modal: any) { PaneSelectAction.prototype.link = ( scope: IPaneSelectActionScope, element: ng.IAugmentedJQuery, @@ -176,11 +176,11 @@ module dockyard.directives.paneSelectAction { //The factory function returns Directive object as per Angular requirements public static Factory() { - var directive = ($modal: any, ActivityTemplateService : services.IActivityTemplateService) => { - return new PaneSelectAction($modal, ActivityTemplateService); + var directive = ($modal: any) => { + return new PaneSelectAction($modal); }; - directive['$inject'] = ['$modal', 'ActivityTemplateService']; + directive['$inject'] = ['$modal']; return directive; } } diff --git a/Scripts/app/services/ActivityTemplateService.ts b/Scripts/app/services/ActivityTemplateService.ts index 478296a1de..d72c8ca5a0 100644 --- a/Scripts/app/services/ActivityTemplateService.ts +++ b/Scripts/app/services/ActivityTemplateService.ts @@ -5,6 +5,8 @@ module dockyard.services { export interface IActivityTemplateService extends ng.resource.IResourceClass { getAvailableActivities: () => ng.resource.IResource>; + //TODO inspect this - why do we have 2 different methods returning different responses by similar names? + getAvailableActivitiesByCategory: () => ng.resource.IResource>; } app.factory('ActivityTemplateService', ['$resource', ($resource: ng.resource.IResourceService): IActivityTemplateService => @@ -14,11 +16,18 @@ module dockyard.services { method: 'GET', url: '/api/activity_templates', isArray: true + }, + 'getAvailableActivitiesByCategory': { + method: 'GET', + url: '/api/activity_templates/by_categories', + isArray: true } }) ]); export interface IActivityTemplateHelperService { + getAvailableActivityTemplatesByCategory: () => ng.IPromise>; + getAvailableActivityTemplatesInCategories: () => Array; getActivityTemplate: (activity: interfaces.IActivityDTO) => interfaces.IActivityTemplateVM; toSummary: (activityTemplate: interfaces.IActivityTemplateVM) => model.ActivityTemplateSummary; equals: (activityTemplateSummary: model.ActivityTemplateSummary, activityTemplate: interfaces.IActivityTemplateVM) => boolean; @@ -27,8 +36,9 @@ module dockyard.services { class ActivityTemplateHelperService implements IActivityTemplateHelperService { private activityTemplateCache: Array = []; + private activityTemplateByCategoryCache: Array = null; - constructor(private ActivityTemplates: Array) { + constructor(private ActivityTemplates: Array, private $q: ng.IQService, private activityTemplateService: IActivityTemplateService) { //lineralize data for (var i = 0; i < this.ActivityTemplates.length; i++) { for (var j = 0; j < this.ActivityTemplates[i].activities.length; j++){ @@ -66,44 +76,27 @@ module dockyard.services { } return false; } - - - //private loadActivities() { - - // this.ActivityTemplateService.getAvailableActivities().$promise.then((data: Array) => { - // var list = []; - // for (var i = 0; i < data.length; i++) { - // list.push(data[i].activities); - // } - // this.activityTemplateCache = list; - // for (var i = 0; i < this.waiters.length; i++) { - // this.waiters[i].resolve(this.activityTemplateCache); - // } - // }, () => { - // for (var i = 0; i < this.waiters.length; i++) { - // this.waiters[i].reject(); - // } - // }); - //} - - - - //public getActivities(): ng.IPromise> { - // var deferred = this.$q.defer>(); - - // if (this.activityTemplateCache === null) { - // this.waiters.push(deferred); - // //this is initial call - we should load templates - // if(this.waiters.length === 1){ - // this.loadActivities(); - // } - // } else { - // deferred.resolve(this.activityTemplateCache); - // } - // return deferred.promise; - //} + + public getAvailableActivityTemplatesInCategories() { + return this.ActivityTemplates; + } + + public getAvailableActivityTemplatesByCategory() { + var deferred = this.$q.defer>(); + if (this.activityTemplateByCategoryCache != null) { + deferred.resolve(this.activityTemplateByCategoryCache); + } else { + this.activityTemplateService.getAvailableActivitiesByCategory().$promise.then((data) => { + this.activityTemplateByCategoryCache = data; + deferred.resolve(data); + }, (err) => { + deferred.reject(err); + }); + } + return deferred.promise; + } } - app.factory('ActivityTemplateHelperService', ['ActivityTemplates', (ActivityTemplates: Array): IActivityTemplateHelperService => new ActivityTemplateHelperService(ActivityTemplates)]); + app.factory('ActivityTemplateHelperService', ['ActivityTemplates', '$q', 'ActivityTemplateService', (ActivityTemplates: Array, $q: ng.IQService, ActivityTemplateService: IActivityTemplateService): IActivityTemplateHelperService => new ActivityTemplateHelperService(ActivityTemplates, $q, ActivityTemplateService)]); } \ No newline at end of file diff --git a/Scripts/app/services/PlanBuilderService.ts b/Scripts/app/services/PlanBuilderService.ts index a8e1c525b3..a742e81834 100644 --- a/Scripts/app/services/PlanBuilderService.ts +++ b/Scripts/app/services/PlanBuilderService.ts @@ -313,21 +313,6 @@ module dockyard.services { } }) ]); - - app.factory('ActionTemplateService', ['$resource', ($resource: ng.resource.IResourceService): IActionService => - $resource('/api/activity_templates/', null, - { - 'available': { - method: 'GET', - isArray: true, - url: '/api/activity_templates?tag=:tag', - params: { - tag: '@tag' - } - } - }) - ]); - /* ActivityDTO CRUD service. From bbb91da70f721538bcb0763b129e8dc18047c46c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bahad=C4=B1r=20Bozda=C4=9F?= Date: Wed, 3 Aug 2016 11:07:37 +0300 Subject: [PATCH 047/266] Removed currentView from ActivityDTO --- App_Start/AutoMapperBootstrapper.cs | 2 -- Controllers/Api/ActivitiesController.cs | 1 - Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs | 2 -- Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityDTO.cs | 3 --- Scripts/app/model/ActionDTO.ts | 1 - Scripts/tests/utils/fixture_ActionDTO.ts | 4 ---- 6 files changed, 13 deletions(-) diff --git a/App_Start/AutoMapperBootstrapper.cs b/App_Start/AutoMapperBootstrapper.cs index aa22c28fed..26c8c1f99c 100644 --- a/App_Start/AutoMapperBootstrapper.cs +++ b/App_Start/AutoMapperBootstrapper.cs @@ -46,7 +46,6 @@ public void ConfigureAutoMapper() Mapper.CreateMap().ForMember(a => a.Id, opts => opts.ResolveUsing(ad => ad.Id)) .ForMember(a => a.RootPlanNodeId, opts => opts.ResolveUsing(ad => ad.RootPlanNodeId)) .ForMember(a => a.ParentPlanNodeId, opts => opts.ResolveUsing(ad => ad.ParentPlanNodeId)) - .ForMember(a => a.CurrentView, opts => opts.ResolveUsing(ad => ad.currentView)) .ForMember(a => a.ChildrenActivities, opts => opts.ResolveUsing(ad => ad.ChildNodes.OfType().OrderBy(da => da.Ordering))) .ForMember(a => a.ActivityTemplate, opts => opts.ResolveUsing(GetActivityTemplate)) .ForMember(a => a.AuthToken, opts => opts.ResolveUsing(ad => ad.AuthorizationToken)); @@ -57,7 +56,6 @@ public void ConfigureAutoMapper() //.ForMember(a => a.ActivityTemplate, opts => opts.Ignore()) .ForMember(a => a.ActivityTemplateId, opts => opts.ResolveUsing(GetActivityTemplateId)) //.ForMember(a => a.CrateStorage, opts => opts.ResolveUsing(ad => Newtonsoft.Json.JsonConvert.SerializeObject(ad.CrateStorage))) - .ForMember(a => a.currentView, opts => opts.ResolveUsing(ad => ad.CurrentView)) .ForMember(a => a.ChildNodes, opts => opts.ResolveUsing(ad => MapActivities(ad.ChildrenActivities))) .ForMember(a => a.AuthorizationTokenId, opts => opts.ResolveUsing(ad => ad.AuthToken != null && ad.AuthToken.Id != null ? new Guid(ad.AuthToken.Id) : (Guid?)null)); diff --git a/Controllers/Api/ActivitiesController.cs b/Controllers/Api/ActivitiesController.cs index d5532d4731..194b815f2e 100644 --- a/Controllers/Api/ActivitiesController.cs +++ b/Controllers/Api/ActivitiesController.cs @@ -77,7 +77,6 @@ public async Task Create(Guid activityTemplateId, string labe [SwaggerResponse((HttpStatusCode)423, "Specified plan is in running state and 'force' flag is not set so activity can't be configured")] public async Task Configure(ActivityDTO curActionDesignDTO, [FromUri]bool force = false) { - curActionDesignDTO.CurrentView = null; ActivityDO curActivityDO = Mapper.Map(curActionDesignDTO); var userId = User.Identity.GetUserId(); using (var uow = _uowFactory.Create()) diff --git a/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs b/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs index cb7c1d4909..a54d7febf4 100644 --- a/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs +++ b/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs @@ -43,7 +43,6 @@ public static void ConfigureAutoMapper() .ForMember(a => a.RootPlanNodeId, opts => opts.ResolveUsing(ad => ad.RootPlanNodeId)) .ForMember(a => a.ParentPlanNodeId, opts => opts.ResolveUsing(ad => ad.ParentPlanNodeId)) //.ForMember(a => a.CrateStorage, opts => opts.ResolveUsing(ad => ad.CrateStorage == null ? null : JsonConvert.DeserializeObject(ad.CrateStorage))) - .ForMember(a => a.CurrentView, opts => opts.ResolveUsing(ad => ad.currentView)) .ForMember(a => a.ChildrenActivities, opts => opts.ResolveUsing(ad => ad.ChildNodes.OfType().OrderBy(da => da.Ordering))) .ForMember(a => a.ActivityTemplate, opts => opts.ResolveUsing(ad => ad.ActivityTemplate)) .ForMember(a => a.AuthToken, opts => opts.ResolveUsing(ad => ad.AuthorizationToken)) @@ -64,7 +63,6 @@ public static void ConfigureAutoMapper() } })) //.ForMember(a => a.CrateStorage, opts => opts.ResolveUsing(ad => Newtonsoft.Json.JsonConvert.SerializeObject(ad.CrateStorage))) - .ForMember(a => a.currentView, opts => opts.ResolveUsing(ad => ad.CurrentView)) .ForMember(a => a.ChildNodes, opts => opts.ResolveUsing(ad => MapActivities(ad.ChildrenActivities))) .ForMember(a => a.AuthorizationTokenId, opts => opts.ResolveUsing(ad => ad.AuthToken != null && ad.AuthToken.Id != null ? new Guid(ad.AuthToken.Id) : (Guid?) null)); diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityDTO.cs b/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityDTO.cs index 7c61110ba4..ac34976a41 100644 --- a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityDTO.cs +++ b/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityDTO.cs @@ -21,9 +21,6 @@ public class ActivityDTO [JsonProperty("parentPlanNodeId")] public Guid? ParentPlanNodeId { get; set; } - [JsonProperty("currentView")] - public string CurrentView { get; set; } - [JsonProperty("ordering")] public int Ordering { get; set; } diff --git a/Scripts/app/model/ActionDTO.ts b/Scripts/app/model/ActionDTO.ts index 5c59ad3dfb..62707f74b5 100644 --- a/Scripts/app/model/ActionDTO.ts +++ b/Scripts/app/model/ActionDTO.ts @@ -9,7 +9,6 @@ crateStorage: model.CrateStorage; configurationControls: model.ControlsList; activityTemplate: ActivityTemplateSummary; - currentView: string; childrenActivities: Array; height: number = 300; ordering: number; diff --git a/Scripts/tests/utils/fixture_ActionDTO.ts b/Scripts/tests/utils/fixture_ActionDTO.ts index 7757dd63d3..4ce59ed8e4 100644 --- a/Scripts/tests/utils/fixture_ActionDTO.ts +++ b/Scripts/tests/utils/fixture_ActionDTO.ts @@ -113,7 +113,6 @@ module dockyard.tests.utils.fixtures { activityTemplate: { name: 'test' }, - currentView: null, id: 'E55315F9-A30B-4196-A43D-6F511B91CCF8' }; @@ -145,7 +144,6 @@ module dockyard.tests.utils.fixtures { activityTemplate: { name: 'test' }, - currentView: null, id: 'E55315F9-A30B-4196-A43D-6F511B91CCF8' }; @@ -177,7 +175,6 @@ module dockyard.tests.utils.fixtures { activityTemplate: { name: 'test' }, - currentView: null, id: 'E55315F9-A30B-4196-A43D-6F511B91CCF8' }; @@ -201,7 +198,6 @@ module dockyard.tests.utils.fixtures { activityTemplate: { name: 'test' }, - currentView: null, id: 'E55315F9-A30B-4196-A43D-6F511B91CCF8' }; From c6ddaa58b01f61e5d1945663cbc8f9c1aba218d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Hanc=C4=B1?= Date: Wed, 3 Aug 2016 11:22:46 +0300 Subject: [PATCH 048/266] Licenses are added to the project --- Data/Data.csproj | 1 + Data/LICENSE | 180 +++++++++ .../Fr8Infrastructure.NET.csproj | 1 + Fr8Infrastructure.NET/LICENSE | 180 +++++++++ .../Fr8TerminalBase.NET.csproj | 1 + Fr8TerminalBase.NET/LICENSE | 180 +++++++++ Hub/Hub.csproj | 1 + Hub/LICENSE | 180 +++++++++ HubWeb.csproj | 1 + LICENSE | 381 +++++++++--------- LICENSE-apache | 201 +++++++++ Services/PlanDirectory/LICENSE | 180 +++++++++ Services/PlanDirectory/PlanDirectory.csproj | 1 + TerminalSqlUtilities/LICENSE | 180 +++++++++ .../TerminalSqlUtilities.csproj | 1 + .../Fr8.Testing.Integration.Tools.csproj | 1 + Tests/Fr8.Testing.Integration.Tools/LICENSE | 180 +++++++++ Tests/Fr8.Testing/Fr8.Testing.csproj | 1 + Tests/Fr8.Testing/LICENSE | 180 +++++++++ .../HealthMonitor.HubLauncher.csproj | 1 + Tests/HealthMonitor.HubLauncher/LICENSE | 180 +++++++++ Tests/HealthMonitor/HealthMonitor.csproj | 1 + Tests/HealthMonitor/LICENSE | 180 +++++++++ Tests/HubTests/HubTests.csproj | 1 + Tests/HubTests/LICENSE | 180 +++++++++ Tests/PlanDirectoryTests/LICENSE | 180 +++++++++ .../PlanDirectoryTests.csproj | 1 + Tests/terminalAsanaTests/LICENSE | 180 +++++++++ .../terminalAsanaTests.csproj | 1 + Tests/terminalAtlassianTests/LICENSE | 180 +++++++++ .../terminalAtlassianTests.csproj | 1 + Tests/terminalAzureTests/LICENSE | 180 +++++++++ .../terminalAzureTests.csproj | 1 + Tests/terminalBaseTests/LICENSE | 180 +++++++++ .../terminalBaseTests.csproj | 1 + Tests/terminalBasecamp2Tests/LICENSE | 180 +++++++++ .../terminalBasecamp2Tests.csproj | 1 + Tests/terminalBoxTests/LICENSE | 180 +++++++++ .../terminalBoxTests/terminalBoxTests.csproj | 1 + Tests/terminalDocuSignTests/LICENSE | 180 +++++++++ .../terminalDocuSignTests.csproj | 1 + Tests/terminalDropboxTests/LICENSE | 180 +++++++++ .../terminalDropboxTests.csproj | 1 + Tests/terminalExcelTests/LICENSE | 180 +++++++++ .../terminalExcelTests.csproj | 1 + Tests/terminalFacebookTests/LICENSE | 180 +++++++++ .../terminalFacebookTests.csproj | 1 + Tests/terminalFr8CoreTests/LICENSE | 180 +++++++++ .../terminalFr8CoreTests.csproj | 1 + Tests/terminalGoogleTests/LICENSE | 180 +++++++++ .../terminalGoogleTests.csproj | 1 + Tests/terminalInstagramTests/LICENSE | 180 +++++++++ .../terminalInstagramTests.csproj | 1 + Tests/terminalIntegrationTests/LICENSE | 180 +++++++++ .../terminalIntegrationTests.csproj | 1 + Tests/terminalPapertrailTests/LICENSE | 180 +++++++++ .../terminalPapertrailTests.csproj | 1 + Tests/terminalQuickBooksTests/LICENSE | 180 +++++++++ .../terminalQuickBooksTests.csproj | 1 + Tests/terminalSalesforceTests/LICENSE | 180 +++++++++ .../terminalSalesforceTests.csproj | 1 + Tests/terminalSendGridTests/LICENSE | 180 +++++++++ .../terminalSendGridTests.csproj | 1 + Tests/terminalSlackTests/LICENSE | 180 +++++++++ .../terminalSlackTests.csproj | 1 + Tests/terminalStatXTests/LICENSE | 180 +++++++++ .../terminalStatXTests.csproj | 1 + Tests/terminalTest/LICENSE | 180 +++++++++ Tests/terminalTest/terminalTest.csproj | 1 + Tests/terminalTwilioTests/LICENSE | 180 +++++++++ .../terminalTwilioTests.csproj | 1 + Tests/terminalYammerTests/LICENSE | 180 +++++++++ .../terminalYammerTests.csproj | 1 + terminalAsana/LICENSE | 180 +++++++++ terminalAsana/terminalAsana.csproj | 3 + terminalAtlassian/LICENSE | 180 +++++++++ terminalAtlassian/terminalAtlassian.csproj | 3 +- terminalAzure/LICENSE | 180 +++++++++ terminalAzure/terminalAzure.csproj | 3 +- terminalBasecamp2/LICENSE | 180 +++++++++ terminalBasecamp2/terminalBasecamp2.csproj | 3 + terminalBox/LICENSE | 180 +++++++++ terminalBox/terminalBox.csproj | 3 + terminalDocuSign/LICENSE | 180 +++++++++ terminalDocuSign/terminalDocuSign.csproj | 1 + terminalDropbox/LICENSE | 180 +++++++++ terminalDropbox/terminalDropbox.csproj | 1 + terminalExcel/LICENSE | 180 +++++++++ terminalExcel/terminalExcel.csproj | 3 +- terminalFacebook/LICENSE | 180 +++++++++ terminalFacebook/terminalFacebook.csproj | 1 + terminalFr8Core/LICENSE | 180 +++++++++ terminalFr8Core/terminalFr8Core.csproj | 1 + terminalGoogle/LICENSE | 180 +++++++++ terminalGoogle/terminalGoogle.csproj | 1 + terminalInstagram/LICENSE | 180 +++++++++ terminalInstagram/terminalInstagram.csproj | 1 + terminalPapertrail/LICENSE | 180 +++++++++ terminalPapertrail/terminalPapertrail.csproj | 1 + terminalQuickBooks/LICENSE | 180 +++++++++ terminalQuickBooks/terminalQuickBooks.csproj | 1 + terminalSalesforce/LICENSE | 180 +++++++++ terminalSalesforce/terminalSalesforce.csproj | 1 + terminalSendGrid/LICENSE | 180 +++++++++ terminalSendGrid/terminalSendGrid.csproj | 1 + terminalSlack/LICENSE | 180 +++++++++ terminalSlack/terminalSlack.csproj | 1 + terminalStatX/LICENSE | 180 +++++++++ terminalStatX/terminalStatX.csproj | 1 + terminalTelegram/LICENSE | 180 +++++++++ terminalTelegram/terminalTelegram.csproj | 1 + terminalTwilio/LICENSE | 180 +++++++++ terminalTwilio/terminalTwilio.csproj | 1 + terminalUtilities/LICENSE | 180 +++++++++ terminalUtilities/terminalUtilities.csproj | 1 + terminalYammer/LICENSE | 180 +++++++++ terminalYammer/terminalYammer.csproj | 1 + 117 files changed, 10708 insertions(+), 204 deletions(-) create mode 100644 Data/LICENSE create mode 100644 Fr8Infrastructure.NET/LICENSE create mode 100644 Fr8TerminalBase.NET/LICENSE create mode 100644 Hub/LICENSE create mode 100644 LICENSE-apache create mode 100644 Services/PlanDirectory/LICENSE create mode 100644 TerminalSqlUtilities/LICENSE create mode 100644 Tests/Fr8.Testing.Integration.Tools/LICENSE create mode 100644 Tests/Fr8.Testing/LICENSE create mode 100644 Tests/HealthMonitor.HubLauncher/LICENSE create mode 100644 Tests/HealthMonitor/LICENSE create mode 100644 Tests/HubTests/LICENSE create mode 100644 Tests/PlanDirectoryTests/LICENSE create mode 100644 Tests/terminalAsanaTests/LICENSE create mode 100644 Tests/terminalAtlassianTests/LICENSE create mode 100644 Tests/terminalAzureTests/LICENSE create mode 100644 Tests/terminalBaseTests/LICENSE create mode 100644 Tests/terminalBasecamp2Tests/LICENSE create mode 100644 Tests/terminalBoxTests/LICENSE create mode 100644 Tests/terminalDocuSignTests/LICENSE create mode 100644 Tests/terminalDropboxTests/LICENSE create mode 100644 Tests/terminalExcelTests/LICENSE create mode 100644 Tests/terminalFacebookTests/LICENSE create mode 100644 Tests/terminalFr8CoreTests/LICENSE create mode 100644 Tests/terminalGoogleTests/LICENSE create mode 100644 Tests/terminalInstagramTests/LICENSE create mode 100644 Tests/terminalIntegrationTests/LICENSE create mode 100644 Tests/terminalPapertrailTests/LICENSE create mode 100644 Tests/terminalQuickBooksTests/LICENSE create mode 100644 Tests/terminalSalesforceTests/LICENSE create mode 100644 Tests/terminalSendGridTests/LICENSE create mode 100644 Tests/terminalSlackTests/LICENSE create mode 100644 Tests/terminalStatXTests/LICENSE create mode 100644 Tests/terminalTest/LICENSE create mode 100644 Tests/terminalTwilioTests/LICENSE create mode 100644 Tests/terminalYammerTests/LICENSE create mode 100644 terminalAsana/LICENSE create mode 100644 terminalAtlassian/LICENSE create mode 100644 terminalAzure/LICENSE create mode 100644 terminalBasecamp2/LICENSE create mode 100644 terminalBox/LICENSE create mode 100644 terminalDocuSign/LICENSE create mode 100644 terminalDropbox/LICENSE create mode 100644 terminalExcel/LICENSE create mode 100644 terminalFacebook/LICENSE create mode 100644 terminalFr8Core/LICENSE create mode 100644 terminalGoogle/LICENSE create mode 100644 terminalInstagram/LICENSE create mode 100644 terminalPapertrail/LICENSE create mode 100644 terminalQuickBooks/LICENSE create mode 100644 terminalSalesforce/LICENSE create mode 100644 terminalSendGrid/LICENSE create mode 100644 terminalSlack/LICENSE create mode 100644 terminalStatX/LICENSE create mode 100644 terminalTelegram/LICENSE create mode 100644 terminalTwilio/LICENSE create mode 100644 terminalUtilities/LICENSE create mode 100644 terminalYammer/LICENSE diff --git a/Data/Data.csproj b/Data/Data.csproj index 329729c1b8..21e26043d1 100644 --- a/Data/Data.csproj +++ b/Data/Data.csproj @@ -1038,6 +1038,7 @@ Designer + Designer diff --git a/Data/LICENSE b/Data/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Data/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Fr8Infrastructure.NET/Fr8Infrastructure.NET.csproj b/Fr8Infrastructure.NET/Fr8Infrastructure.NET.csproj index 3df09b2d66..f005a2a5f4 100644 --- a/Fr8Infrastructure.NET/Fr8Infrastructure.NET.csproj +++ b/Fr8Infrastructure.NET/Fr8Infrastructure.NET.csproj @@ -407,6 +407,7 @@ + diff --git a/Fr8Infrastructure.NET/LICENSE b/Fr8Infrastructure.NET/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Fr8Infrastructure.NET/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Fr8TerminalBase.NET/Fr8TerminalBase.NET.csproj b/Fr8TerminalBase.NET/Fr8TerminalBase.NET.csproj index 9af33dec66..a5466f7d61 100644 --- a/Fr8TerminalBase.NET/Fr8TerminalBase.NET.csproj +++ b/Fr8TerminalBase.NET/Fr8TerminalBase.NET.csproj @@ -165,6 +165,7 @@ + diff --git a/Fr8TerminalBase.NET/LICENSE b/Fr8TerminalBase.NET/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Fr8TerminalBase.NET/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Hub/Hub.csproj b/Hub/Hub.csproj index ec361a90c9..eded839fae 100644 --- a/Hub/Hub.csproj +++ b/Hub/Hub.csproj @@ -448,6 +448,7 @@ Designer + Designer diff --git a/Hub/LICENSE b/Hub/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Hub/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/HubWeb.csproj b/HubWeb.csproj index f6364c0feb..915c8b87dd 100644 --- a/HubWeb.csproj +++ b/HubWeb.csproj @@ -816,6 +816,7 @@ + diff --git a/LICENSE b/LICENSE index 8dada3edaf..0444cdaaa8 100644 --- a/LICENSE +++ b/LICENSE @@ -1,201 +1,180 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/LICENSE-apache b/LICENSE-apache new file mode 100644 index 0000000000..8dada3edaf --- /dev/null +++ b/LICENSE-apache @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Services/PlanDirectory/LICENSE b/Services/PlanDirectory/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Services/PlanDirectory/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Services/PlanDirectory/PlanDirectory.csproj b/Services/PlanDirectory/PlanDirectory.csproj index 935eaad575..d620fdf847 100644 --- a/Services/PlanDirectory/PlanDirectory.csproj +++ b/Services/PlanDirectory/PlanDirectory.csproj @@ -312,6 +312,7 @@ log4net.Release.config Always + Web.config diff --git a/TerminalSqlUtilities/LICENSE b/TerminalSqlUtilities/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/TerminalSqlUtilities/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/TerminalSqlUtilities/TerminalSqlUtilities.csproj b/TerminalSqlUtilities/TerminalSqlUtilities.csproj index 7fdb855e25..a87ba5cb9c 100644 --- a/TerminalSqlUtilities/TerminalSqlUtilities.csproj +++ b/TerminalSqlUtilities/TerminalSqlUtilities.csproj @@ -126,6 +126,7 @@ + diff --git a/Tests/Fr8.Testing.Integration.Tools/Fr8.Testing.Integration.Tools.csproj b/Tests/Fr8.Testing.Integration.Tools/Fr8.Testing.Integration.Tools.csproj index 3793ff41d8..465541f431 100644 --- a/Tests/Fr8.Testing.Integration.Tools/Fr8.Testing.Integration.Tools.csproj +++ b/Tests/Fr8.Testing.Integration.Tools/Fr8.Testing.Integration.Tools.csproj @@ -165,6 +165,7 @@ + diff --git a/Tests/Fr8.Testing.Integration.Tools/LICENSE b/Tests/Fr8.Testing.Integration.Tools/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/Fr8.Testing.Integration.Tools/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/Fr8.Testing/Fr8.Testing.csproj b/Tests/Fr8.Testing/Fr8.Testing.csproj index e5138ed72c..8444912892 100644 --- a/Tests/Fr8.Testing/Fr8.Testing.csproj +++ b/Tests/Fr8.Testing/Fr8.Testing.csproj @@ -174,6 +174,7 @@ + Designer diff --git a/Tests/Fr8.Testing/LICENSE b/Tests/Fr8.Testing/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/Fr8.Testing/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/HealthMonitor.HubLauncher/HealthMonitor.HubLauncher.csproj b/Tests/HealthMonitor.HubLauncher/HealthMonitor.HubLauncher.csproj index f4aa56a9d6..4e39557d77 100644 --- a/Tests/HealthMonitor.HubLauncher/HealthMonitor.HubLauncher.csproj +++ b/Tests/HealthMonitor.HubLauncher/HealthMonitor.HubLauncher.csproj @@ -203,6 +203,7 @@ ApplicationInsights.config PreserveNewest + diff --git a/Tests/HealthMonitor.HubLauncher/LICENSE b/Tests/HealthMonitor.HubLauncher/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/HealthMonitor.HubLauncher/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/HealthMonitor/HealthMonitor.csproj b/Tests/HealthMonitor/HealthMonitor.csproj index 3e587be7e2..81524e2c5d 100644 --- a/Tests/HealthMonitor/HealthMonitor.csproj +++ b/Tests/HealthMonitor/HealthMonitor.csproj @@ -345,6 +345,7 @@ PreserveNewest + Designer diff --git a/Tests/HealthMonitor/LICENSE b/Tests/HealthMonitor/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/HealthMonitor/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/HubTests/HubTests.csproj b/Tests/HubTests/HubTests.csproj index da71ff8a1a..db1c9f4b3d 100644 --- a/Tests/HubTests/HubTests.csproj +++ b/Tests/HubTests/HubTests.csproj @@ -408,6 +408,7 @@ Designer + PreserveNewest diff --git a/Tests/HubTests/LICENSE b/Tests/HubTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/HubTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/PlanDirectoryTests/LICENSE b/Tests/PlanDirectoryTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/PlanDirectoryTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/PlanDirectoryTests/PlanDirectoryTests.csproj b/Tests/PlanDirectoryTests/PlanDirectoryTests.csproj index 19a06fdfdf..9dac65f73f 100644 --- a/Tests/PlanDirectoryTests/PlanDirectoryTests.csproj +++ b/Tests/PlanDirectoryTests/PlanDirectoryTests.csproj @@ -76,6 +76,7 @@ + diff --git a/Tests/terminalAsanaTests/LICENSE b/Tests/terminalAsanaTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalAsanaTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalAsanaTests/terminalAsanaTests.csproj b/Tests/terminalAsanaTests/terminalAsanaTests.csproj index 2032c13157..7e176c5eb9 100644 --- a/Tests/terminalAsanaTests/terminalAsanaTests.csproj +++ b/Tests/terminalAsanaTests/terminalAsanaTests.csproj @@ -84,6 +84,7 @@ + diff --git a/Tests/terminalAtlassianTests/LICENSE b/Tests/terminalAtlassianTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalAtlassianTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalAtlassianTests/terminalAtlassianTests.csproj b/Tests/terminalAtlassianTests/terminalAtlassianTests.csproj index 39f78bb028..441a990f01 100644 --- a/Tests/terminalAtlassianTests/terminalAtlassianTests.csproj +++ b/Tests/terminalAtlassianTests/terminalAtlassianTests.csproj @@ -218,6 +218,7 @@ + diff --git a/Tests/terminalAzureTests/LICENSE b/Tests/terminalAzureTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalAzureTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalAzureTests/terminalAzureTests.csproj b/Tests/terminalAzureTests/terminalAzureTests.csproj index d4e4dacff2..8dd54d1d12 100644 --- a/Tests/terminalAzureTests/terminalAzureTests.csproj +++ b/Tests/terminalAzureTests/terminalAzureTests.csproj @@ -163,6 +163,7 @@ + diff --git a/Tests/terminalBaseTests/LICENSE b/Tests/terminalBaseTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalBaseTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalBaseTests/terminalBaseTests.csproj b/Tests/terminalBaseTests/terminalBaseTests.csproj index 9f56d24b00..47c203c005 100644 --- a/Tests/terminalBaseTests/terminalBaseTests.csproj +++ b/Tests/terminalBaseTests/terminalBaseTests.csproj @@ -250,6 +250,7 @@ Designer + Designer diff --git a/Tests/terminalBasecamp2Tests/LICENSE b/Tests/terminalBasecamp2Tests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalBasecamp2Tests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalBasecamp2Tests/terminalBasecamp2Tests.csproj b/Tests/terminalBasecamp2Tests/terminalBasecamp2Tests.csproj index 5ea80713d4..479b82c724 100644 --- a/Tests/terminalBasecamp2Tests/terminalBasecamp2Tests.csproj +++ b/Tests/terminalBasecamp2Tests/terminalBasecamp2Tests.csproj @@ -89,6 +89,7 @@ + diff --git a/Tests/terminalBoxTests/LICENSE b/Tests/terminalBoxTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalBoxTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalBoxTests/terminalBoxTests.csproj b/Tests/terminalBoxTests/terminalBoxTests.csproj index e7549abc67..64d7ccaa75 100644 --- a/Tests/terminalBoxTests/terminalBoxTests.csproj +++ b/Tests/terminalBoxTests/terminalBoxTests.csproj @@ -160,6 +160,7 @@ Designer + diff --git a/Tests/terminalDocuSignTests/LICENSE b/Tests/terminalDocuSignTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalDocuSignTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalDocuSignTests/terminalDocuSignTests.csproj b/Tests/terminalDocuSignTests/terminalDocuSignTests.csproj index 41bd202d05..7207f43ed2 100644 --- a/Tests/terminalDocuSignTests/terminalDocuSignTests.csproj +++ b/Tests/terminalDocuSignTests/terminalDocuSignTests.csproj @@ -195,6 +195,7 @@ + diff --git a/Tests/terminalDropboxTests/LICENSE b/Tests/terminalDropboxTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalDropboxTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalDropboxTests/terminalDropboxTests.csproj b/Tests/terminalDropboxTests/terminalDropboxTests.csproj index f8137100ac..ac5a9300e4 100644 --- a/Tests/terminalDropboxTests/terminalDropboxTests.csproj +++ b/Tests/terminalDropboxTests/terminalDropboxTests.csproj @@ -243,6 +243,7 @@ Designer + Designer diff --git a/Tests/terminalExcelTests/LICENSE b/Tests/terminalExcelTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalExcelTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalExcelTests/terminalExcelTests.csproj b/Tests/terminalExcelTests/terminalExcelTests.csproj index 0ab740ab0e..0e78b43655 100644 --- a/Tests/terminalExcelTests/terminalExcelTests.csproj +++ b/Tests/terminalExcelTests/terminalExcelTests.csproj @@ -173,6 +173,7 @@ + diff --git a/Tests/terminalFacebookTests/LICENSE b/Tests/terminalFacebookTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalFacebookTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalFacebookTests/terminalFacebookTests.csproj b/Tests/terminalFacebookTests/terminalFacebookTests.csproj index 06c90d49bd..a647bb7b4b 100644 --- a/Tests/terminalFacebookTests/terminalFacebookTests.csproj +++ b/Tests/terminalFacebookTests/terminalFacebookTests.csproj @@ -83,6 +83,7 @@ + diff --git a/Tests/terminalFr8CoreTests/LICENSE b/Tests/terminalFr8CoreTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalFr8CoreTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalFr8CoreTests/terminalFr8CoreTests.csproj b/Tests/terminalFr8CoreTests/terminalFr8CoreTests.csproj index 150f62710e..c6d046106d 100644 --- a/Tests/terminalFr8CoreTests/terminalFr8CoreTests.csproj +++ b/Tests/terminalFr8CoreTests/terminalFr8CoreTests.csproj @@ -263,6 +263,7 @@ Designer + Designer diff --git a/Tests/terminalGoogleTests/LICENSE b/Tests/terminalGoogleTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalGoogleTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalGoogleTests/terminalGoogleTests.csproj b/Tests/terminalGoogleTests/terminalGoogleTests.csproj index 4995e0e099..af552fdddb 100644 --- a/Tests/terminalGoogleTests/terminalGoogleTests.csproj +++ b/Tests/terminalGoogleTests/terminalGoogleTests.csproj @@ -172,6 +172,7 @@ Designer + diff --git a/Tests/terminalInstagramTests/LICENSE b/Tests/terminalInstagramTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalInstagramTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalInstagramTests/terminalInstagramTests.csproj b/Tests/terminalInstagramTests/terminalInstagramTests.csproj index 4fc677436d..834a0f49bf 100644 --- a/Tests/terminalInstagramTests/terminalInstagramTests.csproj +++ b/Tests/terminalInstagramTests/terminalInstagramTests.csproj @@ -205,6 +205,7 @@ Designer + diff --git a/Tests/terminalIntegrationTests/LICENSE b/Tests/terminalIntegrationTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalIntegrationTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalIntegrationTests/terminalIntegrationTests.csproj b/Tests/terminalIntegrationTests/terminalIntegrationTests.csproj index 4215b4c4f2..be172a23d3 100644 --- a/Tests/terminalIntegrationTests/terminalIntegrationTests.csproj +++ b/Tests/terminalIntegrationTests/terminalIntegrationTests.csproj @@ -297,6 +297,7 @@ + diff --git a/Tests/terminalPapertrailTests/LICENSE b/Tests/terminalPapertrailTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalPapertrailTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalPapertrailTests/terminalPapertrailTests.csproj b/Tests/terminalPapertrailTests/terminalPapertrailTests.csproj index 3e608109de..2f5c676823 100644 --- a/Tests/terminalPapertrailTests/terminalPapertrailTests.csproj +++ b/Tests/terminalPapertrailTests/terminalPapertrailTests.csproj @@ -168,6 +168,7 @@ Designer + diff --git a/Tests/terminalQuickBooksTests/LICENSE b/Tests/terminalQuickBooksTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalQuickBooksTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalQuickBooksTests/terminalQuickBooksTests.csproj b/Tests/terminalQuickBooksTests/terminalQuickBooksTests.csproj index 67a7f8015b..b75cb1f03b 100644 --- a/Tests/terminalQuickBooksTests/terminalQuickBooksTests.csproj +++ b/Tests/terminalQuickBooksTests/terminalQuickBooksTests.csproj @@ -169,6 +169,7 @@ + diff --git a/Tests/terminalSalesforceTests/LICENSE b/Tests/terminalSalesforceTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalSalesforceTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalSalesforceTests/terminalSalesforceTests.csproj b/Tests/terminalSalesforceTests/terminalSalesforceTests.csproj index 34756ac432..78e2ab921a 100644 --- a/Tests/terminalSalesforceTests/terminalSalesforceTests.csproj +++ b/Tests/terminalSalesforceTests/terminalSalesforceTests.csproj @@ -206,6 +206,7 @@ + Designer diff --git a/Tests/terminalSendGridTests/LICENSE b/Tests/terminalSendGridTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalSendGridTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalSendGridTests/terminalSendGridTests.csproj b/Tests/terminalSendGridTests/terminalSendGridTests.csproj index 62ff2b0bd0..b5aa6a76db 100644 --- a/Tests/terminalSendGridTests/terminalSendGridTests.csproj +++ b/Tests/terminalSendGridTests/terminalSendGridTests.csproj @@ -204,6 +204,7 @@ + diff --git a/Tests/terminalSlackTests/LICENSE b/Tests/terminalSlackTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalSlackTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalSlackTests/terminalSlackTests.csproj b/Tests/terminalSlackTests/terminalSlackTests.csproj index 8326a34b27..92f8e71449 100644 --- a/Tests/terminalSlackTests/terminalSlackTests.csproj +++ b/Tests/terminalSlackTests/terminalSlackTests.csproj @@ -203,6 +203,7 @@ Designer + diff --git a/Tests/terminalStatXTests/LICENSE b/Tests/terminalStatXTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalStatXTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalStatXTests/terminalStatXTests.csproj b/Tests/terminalStatXTests/terminalStatXTests.csproj index 67f5853df6..896e6ba330 100644 --- a/Tests/terminalStatXTests/terminalStatXTests.csproj +++ b/Tests/terminalStatXTests/terminalStatXTests.csproj @@ -83,6 +83,7 @@ + diff --git a/Tests/terminalTest/LICENSE b/Tests/terminalTest/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalTest/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalTest/terminalTest.csproj b/Tests/terminalTest/terminalTest.csproj index 449f3d22ee..bfe843cb35 100644 --- a/Tests/terminalTest/terminalTest.csproj +++ b/Tests/terminalTest/terminalTest.csproj @@ -276,6 +276,7 @@ Designer + Web.config diff --git a/Tests/terminalTwilioTests/LICENSE b/Tests/terminalTwilioTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalTwilioTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalTwilioTests/terminalTwilioTests.csproj b/Tests/terminalTwilioTests/terminalTwilioTests.csproj index 5cb4c943df..aeb535251b 100644 --- a/Tests/terminalTwilioTests/terminalTwilioTests.csproj +++ b/Tests/terminalTwilioTests/terminalTwilioTests.csproj @@ -190,6 +190,7 @@ Designer + diff --git a/Tests/terminalYammerTests/LICENSE b/Tests/terminalYammerTests/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/Tests/terminalYammerTests/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/Tests/terminalYammerTests/terminalYammerTests.csproj b/Tests/terminalYammerTests/terminalYammerTests.csproj index 4e9e0ad83b..a8c39d6c99 100644 --- a/Tests/terminalYammerTests/terminalYammerTests.csproj +++ b/Tests/terminalYammerTests/terminalYammerTests.csproj @@ -182,6 +182,7 @@ Designer + diff --git a/terminalAsana/LICENSE b/terminalAsana/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalAsana/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalAsana/terminalAsana.csproj b/terminalAsana/terminalAsana.csproj index 26fba9c36e..8a36a6122a 100644 --- a/terminalAsana/terminalAsana.csproj +++ b/terminalAsana/terminalAsana.csproj @@ -350,6 +350,9 @@ PreserveNewest + + + diff --git a/terminalAtlassian/LICENSE b/terminalAtlassian/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalAtlassian/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalAtlassian/terminalAtlassian.csproj b/terminalAtlassian/terminalAtlassian.csproj index a263f4b1ab..9b1803509e 100644 --- a/terminalAtlassian/terminalAtlassian.csproj +++ b/terminalAtlassian/terminalAtlassian.csproj @@ -1,4 +1,4 @@ - + @@ -241,6 +241,7 @@ + diff --git a/terminalAzure/LICENSE b/terminalAzure/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalAzure/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalAzure/terminalAzure.csproj b/terminalAzure/terminalAzure.csproj index 946422d027..40d860eb24 100644 --- a/terminalAzure/terminalAzure.csproj +++ b/terminalAzure/terminalAzure.csproj @@ -1,4 +1,4 @@ - + @@ -287,6 +287,7 @@ PreserveNewest + Web.config diff --git a/terminalBasecamp2/LICENSE b/terminalBasecamp2/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalBasecamp2/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalBasecamp2/terminalBasecamp2.csproj b/terminalBasecamp2/terminalBasecamp2.csproj index 5e51e48680..bbc809d165 100644 --- a/terminalBasecamp2/terminalBasecamp2.csproj +++ b/terminalBasecamp2/terminalBasecamp2.csproj @@ -285,6 +285,9 @@ PreserveNewest + + + diff --git a/terminalBox/LICENSE b/terminalBox/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalBox/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalBox/terminalBox.csproj b/terminalBox/terminalBox.csproj index 83e54fed0a..7f35585223 100644 --- a/terminalBox/terminalBox.csproj +++ b/terminalBox/terminalBox.csproj @@ -330,6 +330,9 @@ + + + diff --git a/terminalDocuSign/LICENSE b/terminalDocuSign/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalDocuSign/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalDocuSign/terminalDocuSign.csproj b/terminalDocuSign/terminalDocuSign.csproj index 863fb29e0e..c6b8e6539f 100644 --- a/terminalDocuSign/terminalDocuSign.csproj +++ b/terminalDocuSign/terminalDocuSign.csproj @@ -367,6 +367,7 @@ + Web.config diff --git a/terminalDropbox/LICENSE b/terminalDropbox/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalDropbox/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalDropbox/terminalDropbox.csproj b/terminalDropbox/terminalDropbox.csproj index b54500ebc2..a9ffa0dc89 100644 --- a/terminalDropbox/terminalDropbox.csproj +++ b/terminalDropbox/terminalDropbox.csproj @@ -286,6 +286,7 @@ + Web.config diff --git a/terminalExcel/LICENSE b/terminalExcel/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalExcel/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalExcel/terminalExcel.csproj b/terminalExcel/terminalExcel.csproj index 50e826910a..141ebf54a6 100644 --- a/terminalExcel/terminalExcel.csproj +++ b/terminalExcel/terminalExcel.csproj @@ -1,4 +1,4 @@ - + @@ -284,6 +284,7 @@ PreserveNewest + Web.config diff --git a/terminalFacebook/LICENSE b/terminalFacebook/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalFacebook/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalFacebook/terminalFacebook.csproj b/terminalFacebook/terminalFacebook.csproj index 56c675a05d..1c4b360f1c 100644 --- a/terminalFacebook/terminalFacebook.csproj +++ b/terminalFacebook/terminalFacebook.csproj @@ -180,6 +180,7 @@ Always + Web.config diff --git a/terminalFr8Core/LICENSE b/terminalFr8Core/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalFr8Core/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalFr8Core/terminalFr8Core.csproj b/terminalFr8Core/terminalFr8Core.csproj index 0a8bea7e40..5cd5a207b9 100644 --- a/terminalFr8Core/terminalFr8Core.csproj +++ b/terminalFr8Core/terminalFr8Core.csproj @@ -348,6 +348,7 @@ + Web.config diff --git a/terminalGoogle/LICENSE b/terminalGoogle/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalGoogle/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalGoogle/terminalGoogle.csproj b/terminalGoogle/terminalGoogle.csproj index 9e5a39f177..70c179844c 100644 --- a/terminalGoogle/terminalGoogle.csproj +++ b/terminalGoogle/terminalGoogle.csproj @@ -415,6 +415,7 @@ + Web.config diff --git a/terminalInstagram/LICENSE b/terminalInstagram/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalInstagram/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalInstagram/terminalInstagram.csproj b/terminalInstagram/terminalInstagram.csproj index 1f4ea5ab7d..910d85266e 100644 --- a/terminalInstagram/terminalInstagram.csproj +++ b/terminalInstagram/terminalInstagram.csproj @@ -246,6 +246,7 @@ PreserveNewest True + diff --git a/terminalPapertrail/LICENSE b/terminalPapertrail/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalPapertrail/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalPapertrail/terminalPapertrail.csproj b/terminalPapertrail/terminalPapertrail.csproj index 861556a109..7ed5cb7aa3 100644 --- a/terminalPapertrail/terminalPapertrail.csproj +++ b/terminalPapertrail/terminalPapertrail.csproj @@ -299,6 +299,7 @@ + Web.config diff --git a/terminalQuickBooks/LICENSE b/terminalQuickBooks/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalQuickBooks/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalQuickBooks/terminalQuickBooks.csproj b/terminalQuickBooks/terminalQuickBooks.csproj index 6904741538..4ceb1f973c 100644 --- a/terminalQuickBooks/terminalQuickBooks.csproj +++ b/terminalQuickBooks/terminalQuickBooks.csproj @@ -293,6 +293,7 @@ + Web.config diff --git a/terminalSalesforce/LICENSE b/terminalSalesforce/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalSalesforce/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalSalesforce/terminalSalesforce.csproj b/terminalSalesforce/terminalSalesforce.csproj index 1b89fcd7f0..903718aae6 100644 --- a/terminalSalesforce/terminalSalesforce.csproj +++ b/terminalSalesforce/terminalSalesforce.csproj @@ -333,6 +333,7 @@ PreserveNewest + SettingsSingleFileGenerator Settings.Designer.cs diff --git a/terminalSendGrid/LICENSE b/terminalSendGrid/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalSendGrid/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalSendGrid/terminalSendGrid.csproj b/terminalSendGrid/terminalSendGrid.csproj index f54174a193..75bd1cb8f4 100644 --- a/terminalSendGrid/terminalSendGrid.csproj +++ b/terminalSendGrid/terminalSendGrid.csproj @@ -316,6 +316,7 @@ + Web.config diff --git a/terminalSlack/LICENSE b/terminalSlack/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalSlack/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalSlack/terminalSlack.csproj b/terminalSlack/terminalSlack.csproj index 025d6caaa6..c154abd8b2 100644 --- a/terminalSlack/terminalSlack.csproj +++ b/terminalSlack/terminalSlack.csproj @@ -298,6 +298,7 @@
+ Web.config diff --git a/terminalStatX/LICENSE b/terminalStatX/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalStatX/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalStatX/terminalStatX.csproj b/terminalStatX/terminalStatX.csproj index dc08d2f78c..256d7cab73 100644 --- a/terminalStatX/terminalStatX.csproj +++ b/terminalStatX/terminalStatX.csproj @@ -216,6 +216,7 @@ + Web.config diff --git a/terminalTelegram/LICENSE b/terminalTelegram/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalTelegram/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalTelegram/terminalTelegram.csproj b/terminalTelegram/terminalTelegram.csproj index fe8cc83afd..a7d37d7ed0 100644 --- a/terminalTelegram/terminalTelegram.csproj +++ b/terminalTelegram/terminalTelegram.csproj @@ -186,6 +186,7 @@ PreserveNewest + Web.config diff --git a/terminalTwilio/LICENSE b/terminalTwilio/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalTwilio/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalTwilio/terminalTwilio.csproj b/terminalTwilio/terminalTwilio.csproj index 4d062d8fb5..cfaf845717 100644 --- a/terminalTwilio/terminalTwilio.csproj +++ b/terminalTwilio/terminalTwilio.csproj @@ -368,6 +368,7 @@ + Web.config diff --git a/terminalUtilities/LICENSE b/terminalUtilities/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalUtilities/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalUtilities/terminalUtilities.csproj b/terminalUtilities/terminalUtilities.csproj index f71db9e238..8459b2a2cb 100644 --- a/terminalUtilities/terminalUtilities.csproj +++ b/terminalUtilities/terminalUtilities.csproj @@ -165,6 +165,7 @@ + diff --git a/terminalYammer/LICENSE b/terminalYammer/LICENSE new file mode 100644 index 0000000000..0444cdaaa8 --- /dev/null +++ b/terminalYammer/LICENSE @@ -0,0 +1,180 @@ + Common Public Attribution License Version 1.0 (CPAL-1.0) + Fr8 is copyright 2016 by The Fr8 Company. All Rights Reserved. + + The code in this Terminal project uses the following Common Public Attribution License Version 1.0 (CPAL-1.0) + + 1. “Definitions” + + 1.0.1 “Commercial Use” means distribution or otherwise making the Covered Code available to a third party. + + 1.1 “Contributor” means each entity that creates or contributes to the creation of Modifications. + + 1.2 “Contributor Version” means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. + + 1.3 “Covered Code” means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. + + 1.4 “Electronic Distribution Mechanism” means a mechanism generally accepted in the software development community for the electronic transfer of data. + + 1.5 “Executable” means Covered Code in any form other than Source Code. + + 1.6 “Initial Developer” means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. + + 1.7 “Larger Work” means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. + + 1.8 “License” means this document. + + 1.8.1 “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9 “Modifications” means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: + + A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. + B. Any new file that contains any part of the Original Code or previous Modifications. + + 1.10 “Original Code” means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. + + 1.10.1 “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.11 “Source Code” means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. + + 1.12 “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + + 2. Source Code License. + + 2.1 The Initial Developer Grant. + + The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. + + 2.2 Contributor Grant. + + Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. + + 3. Distribution Obligations. + + 3.1 Application of License. + + The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients’ rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. + + 3.2 Availability of Source Code. + + Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. + + 3.3 Description of Modifications. + + You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. + + 3.4 Intellectual Property Matters + + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party’s intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled “LEGAL” which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. + (b) Contributor APIs. + If Contributor’s Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. + (c) Representations. + Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor’s Modifications are Contributor’s original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. + + 3.5 Required Notices. + + You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients’ rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.6 Distribution of Executable Versions. + + You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients’ rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient’s rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer, Original Developer or any Contributor. You hereby agree to indemnify the Initial Developer, Original Developer and every Contributor for any liability incurred by the Initial Developer, Original Developer or such Contributor as a result of any such terms You offer. + + 3.7 Larger Works. + + You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. + + 4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + + 5. Application of this License. + + This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. + + 6. Versions of the License. + + 6.1 New Versions. + + Socialtext, Inc. (“Socialtext”) may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. + + 6.2 Effect of New Versions. + + Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Socialtext. No one other than Socialtext has the right to modify the terms applicable to Covered Code created under this License. + + 6.3 Derivative Works. + + If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases “Socialtext”, “CPAL” or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) + + 7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + + 8. TERMINATION. + + 8.1 This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer, Original Developer or a Contributor (the Initial Developer, Original Developer or Contributor against whom You file such action is referred to as “Participant”) alleging that: + + (a) such Participant’s Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. + (b) any software, hardware, or device, other than such Participant’s Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. + + 8.3 If You assert a patent infringement claim against Participant alleging that such Participant’s Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. + + 9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + + 10. U.S. GOVERNMENT END USERS. + + The Covered Code is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. + + 11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. + + 12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer, Original Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer, Original Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + + 13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + + 14. ADDITIONAL TERM: ATTRIBUTION + + (a) As a modest attribution to the organizer of the development of the Original Code (“Original Developer”), in the hope that its promotional value may help justify the time, money and effort invested in writing the Original Code, the Original Developer may include in Exhibit B (“Attribution Information”) a requirement that each time an Executable and Source Code or a Larger Work is launched or initially run (which includes initiating a session), a prominent display of the Original Developer’s Attribution Information (as defined below) must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. The size of the graphic image should be consistent with the size of the other elements of the Attribution Information. If the access by the end user to the Executable and Source Code does not create a graphic user interface for access to the Covered Code, this obligation shall not apply. If the Original Code displays such Attribution Information in a particular form (such as in the form of a splash screen, notice at login, an “about” display, or dedicated attribution area on user interface screens), continued use of such form for that Attribution Information is one way of meeting this requirement for notice. + (b) Attribution information may only include a copyright notice, a brief phrase, graphic image and a URL (“Attribution Information”) and is subject to the Attribution Limits as defined below. For these purposes, prominent shall mean display for sufficient duration to give reasonable notice to the user of the identity of the Original Developer and that if You include Attribution Information or similar information for other parties, You must ensure that the Attribution Information for the Original Developer shall be no less prominent than such Attribution Information or similar information for the other party. For greater certainty, the Original Developer may choose to specify in Exhibit B below that the above attribution requirement only applies to an Executable and Source Code resulting from the Original Code or any Modification, but not a Larger Work. The intent is to provide for reasonably modest attribution, therefore the Original Developer cannot require that You display, at any time, more than the following information as Attribution Information: (a) a copyright notice including the name of the Original Developer; (b) a word or one phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and (d) a URL (collectively, the “Attribution Limits”). + (c) If Exhibit B does not include any Attribution Information, then there are no requirements for You to display any Attribution Information of the Original Developer. + (d) You acknowledge that all trademarks, service marks and/or trade names contained within the Attribution Information distributed with the Covered Code are the exclusive property of their owners and may only be used with the permission of their owners, or under circumstances otherwise permitted by law or as expressly set out in this License. + + 15. ADDITIONAL TERM: NETWORK USE. + + The term “External Deployment” means the use, distribution, or communication of the Original Code or Modifications in any way such that the Original Code or Modifications may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Code or Modifications as a distribution under section 3.1 and make Source Code available under Section 3.2. + EXHIBIT A. Common Public Attribution License Version 1.0. + “The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at __fr8.co/terminal_license___________. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B. + Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. + The Original Code is____Fr8 Terminal Code__________________. + The Original Developer is not the Initial Developer and is __________. If left blank, the Original Developer is the Initial Developer. + The Initial Developer of the Original Code is ___The Fr8 Company_________. All portions of the code written by __The Fr8 Company_________ are Copyright (c) __2016___. All Rights Reserved. + Contributor ______________________. + Alternatively, the contents of this file may be used under the terms of the _____ license (the [___] License), in which case the provisions of [______] License are applicable instead of those above. + If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the [___] License.” + [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] + EXHIBIT B. Attribution Information + Attribution Copyright Notice: _____This uses code from a Fr8 Terminal__________________ + Attribution Phrase (not exceeding 10 words): _______________________ + Attribution URL: _______________________ + Graphic Image as provided in the Covered Code, if any. + Display of Attribution Information is [required/not required] in Larger Works which are defined in the CPAL as a work which combines Covered Code or portions thereof with code not governed by the terms of the CPAL. \ No newline at end of file diff --git a/terminalYammer/terminalYammer.csproj b/terminalYammer/terminalYammer.csproj index c00fbcf27e..8ea8224ff7 100644 --- a/terminalYammer/terminalYammer.csproj +++ b/terminalYammer/terminalYammer.csproj @@ -278,6 +278,7 @@ PreserveNewest + Web.config From 696c335f52f655e6c5add1c33ffcadb056f87d63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bahad=C4=B1r=20Bozda=C4=9F?= Date: Wed, 3 Aug 2016 11:58:03 +0300 Subject: [PATCH 049/266] Removed name and currentView from ActivityDO --- Data/Data.csproj | 7 + Data/Entities/ActivityDO.cs | 5 - ...meAndCurrentViewFromActivityDO.Designer.cs | 29 ++++ ...RemovedNameAndCurrentViewFromActivityDO.cs | 20 +++ ...movedNameAndCurrentViewFromActivityDO.resx | 126 ++++++++++++++++++ Hub/Managers/EventReporter.cs | 2 +- Hub/Services/Activity.cs | 1 - .../ContainerService.ExecutionSession.cs | 2 +- Hub/Services/ContainerService.cs | 2 +- Hub/Services/Plan.cs | 2 +- Hub/Services/PlanDirectoryService.cs | 2 +- 11 files changed, 187 insertions(+), 11 deletions(-) create mode 100644 Data/Migrations/201608030857168_RemovedNameAndCurrentViewFromActivityDO.Designer.cs create mode 100644 Data/Migrations/201608030857168_RemovedNameAndCurrentViewFromActivityDO.cs create mode 100644 Data/Migrations/201608030857168_RemovedNameAndCurrentViewFromActivityDO.resx diff --git a/Data/Data.csproj b/Data/Data.csproj index 6867cafe78..425db951fd 100644 --- a/Data/Data.csproj +++ b/Data/Data.csproj @@ -771,6 +771,10 @@ 201608021530462_RemoveRunnable.cs + + + 201608030857168_RemovedNameAndCurrentViewFromActivityDO.cs + @@ -1419,6 +1423,9 @@ 201608021530462_RemoveRunnable.cs + + 201608030857168_RemovedNameAndCurrentViewFromActivityDO.cs + diff --git a/Data/Entities/ActivityDO.cs b/Data/Entities/ActivityDO.cs index 348a014f52..f50ed69e0c 100644 --- a/Data/Entities/ActivityDO.cs +++ b/Data/Entities/ActivityDO.cs @@ -14,15 +14,12 @@ public class ActivityDO : PlanNodeDO public string CrateStorage { get; set; } public string Label { get; set; } - public string Name { get; set; } [ForeignKey("ActivityTemplate")] public Guid ActivityTemplateId { get; set; } public virtual ActivityTemplateDO ActivityTemplate { get; set; } - public string currentView { get; set; } - [ForeignKey("AuthorizationToken")] public Guid? AuthorizationTokenId { get; set; } @@ -64,11 +61,9 @@ protected override void CopyProperties(PlanNodeDO source) base.CopyProperties(source); Label = activity.Label; - Name = activity.Name; CrateStorage = activity.CrateStorage; AuthorizationTokenId = activity.AuthorizationTokenId; ActivityTemplateId = activity.ActivityTemplateId; - currentView = activity.currentView; ActivationState = activity.ActivationState; } } diff --git a/Data/Migrations/201608030857168_RemovedNameAndCurrentViewFromActivityDO.Designer.cs b/Data/Migrations/201608030857168_RemovedNameAndCurrentViewFromActivityDO.Designer.cs new file mode 100644 index 0000000000..d8658b12d3 --- /dev/null +++ b/Data/Migrations/201608030857168_RemovedNameAndCurrentViewFromActivityDO.Designer.cs @@ -0,0 +1,29 @@ +// +namespace Data.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.1.0-30225")] + public sealed partial class RemovedNameAndCurrentViewFromActivityDO : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(RemovedNameAndCurrentViewFromActivityDO)); + + string IMigrationMetadata.Id + { + get { return "201608030857168_RemovedNameAndCurrentViewFromActivityDO"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Data/Migrations/201608030857168_RemovedNameAndCurrentViewFromActivityDO.cs b/Data/Migrations/201608030857168_RemovedNameAndCurrentViewFromActivityDO.cs new file mode 100644 index 0000000000..c6e1800487 --- /dev/null +++ b/Data/Migrations/201608030857168_RemovedNameAndCurrentViewFromActivityDO.cs @@ -0,0 +1,20 @@ +namespace Data.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class RemovedNameAndCurrentViewFromActivityDO : DbMigration + { + public override void Up() + { + DropColumn("dbo.Actions", "Name"); + DropColumn("dbo.Actions", "currentView"); + } + + public override void Down() + { + AddColumn("dbo.Actions", "currentView", c => c.String()); + AddColumn("dbo.Actions", "Name", c => c.String()); + } + } +} diff --git a/Data/Migrations/201608030857168_RemovedNameAndCurrentViewFromActivityDO.resx b/Data/Migrations/201608030857168_RemovedNameAndCurrentViewFromActivityDO.resx new file mode 100644 index 0000000000..c36d702843 --- /dev/null +++ b/Data/Migrations/201608030857168_RemovedNameAndCurrentViewFromActivityDO.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + + dbo + + \ No newline at end of file diff --git a/Hub/Managers/EventReporter.cs b/Hub/Managers/EventReporter.cs index 45cb522213..dd08e75845 100644 --- a/Hub/Managers/EventReporter.cs +++ b/Hub/Managers/EventReporter.cs @@ -175,7 +175,7 @@ private void ActivityRunRequested(ActivityDO activityDo, ContainerDO containerDO { NotificationType = NotificationType.GenericInfo, Message = "For Plan: " + containerDO.Name + "\nContainer: " + containerDO.Id.ToString(), - ActivityName = activityDo.Name, + ActivityName = activityDo.ActivityTemplate.Name, PlanId = planId, PlanLastUpdated = planLastUpdated, Collapsed = true, diff --git a/Hub/Services/Activity.cs b/Hub/Services/Activity.cs index abab983101..b0dcb48c48 100644 --- a/Hub/Services/Activity.cs +++ b/Hub/Services/Activity.cs @@ -124,7 +124,6 @@ public async Task CreateAndConfigure(IUnitOfWork uow, string userId, { Id = Guid.NewGuid(), ActivityTemplateId = activityTemplateId, - Name = name, CrateStorage = _crateManager.EmptyStorageAsStr(), AuthorizationTokenId = authorizationTokenId }; diff --git a/Hub/Services/ContainerService.ExecutionSession.cs b/Hub/Services/ContainerService.ExecutionSession.cs index e37e7d12f9..5e5370a61f 100644 --- a/Hub/Services/ContainerService.ExecutionSession.cs +++ b/Hub/Services/ContainerService.ExecutionSession.cs @@ -87,7 +87,7 @@ private void AddNodeForExecution(Guid nodeId) if (node is ActivityDO) { - nodeName = "Activity: " + ((ActivityDO) node).Name; + nodeName = "Activity: " + ((ActivityDO) node).ActivityTemplate.Name; } if (node is SubplanDO) diff --git a/Hub/Services/ContainerService.cs b/Hub/Services/ContainerService.cs index 2a1c7e6c78..a81b123708 100644 --- a/Hub/Services/ContainerService.cs +++ b/Hub/Services/ContainerService.cs @@ -199,7 +199,7 @@ private OperationalStateCM.ActivityCallStack RecoverCallStack(IUnitOfWork uow, C if (node is ActivityDO) { - nodeName = "Activity: " + ((ActivityDO)node).Name; + nodeName = "Activity: " + ((ActivityDO)node).ActivityTemplate.Name; } if (node is SubplanDO) diff --git a/Hub/Services/Plan.cs b/Hub/Services/Plan.cs index b5b7e7c9b7..6b940c23c4 100644 --- a/Hub/Services/Plan.cs +++ b/Hub/Services/Plan.cs @@ -584,7 +584,7 @@ public async Task Run(Guid planId, Crate[] payload, Guid? containe if (activity != null) { - var label = string.IsNullOrWhiteSpace(activity.Label) ? activity.Name : activity.Label; + var label = string.IsNullOrWhiteSpace(activity.Label) ? activity.ActivityTemplate.Name : activity.Label; if (string.IsNullOrWhiteSpace(label)) { diff --git a/Hub/Services/PlanDirectoryService.cs b/Hub/Services/PlanDirectoryService.cs index 58329d12c1..25b9fea697 100644 --- a/Hub/Services/PlanDirectoryService.cs +++ b/Hub/Services/PlanDirectoryService.cs @@ -257,7 +257,7 @@ public PlanNoChildrenDTO CreateFromTemplate(PlanDTO plan, string userId) if (!_activityTemplate.TryGetByKey(activity.ActivityTemplateId, out activityTemplate)) { - throw new KeyNotFoundException($"Activity '{activity.Name}' use activity template '{activity.ActivityTemplate?.Name}' with id = '{activity.ActivityTemplateId}' that is unknown to this Hub"); + throw new KeyNotFoundException($"Activity '{activity.Id}' use activity template '{activity.ActivityTemplate?.Name}' with id = '{activity.ActivityTemplateId}' that is unknown to this Hub"); } activity.CrateStorage = UpdateCrateStorage(activity.CrateStorage, idsMap); From d34e4360a732eff0d419050a3fb49da98495ecf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alp=20G=C3=BCrtan?= Date: Wed, 3 Aug 2016 12:27:04 +0300 Subject: [PATCH 050/266] Shortened version fo Notifications.md --- Docs/ForDevelopers/Services/Notifications.md | 35 ++++---------------- 1 file changed, 7 insertions(+), 28 deletions(-) diff --git a/Docs/ForDevelopers/Services/Notifications.md b/Docs/ForDevelopers/Services/Notifications.md index 94646bc9d5..2525cf12ef 100644 --- a/Docs/ForDevelopers/Services/Notifications.md +++ b/Docs/ForDevelopers/Services/Notifications.md @@ -1,36 +1,21 @@ Notification Services ===================== -[Go to Contents]( /Docs/Home.md) +[Go to Contents](/Docs/Home.md) -Notifications are messages intended to be seen by end users, (as distinct from [Events](/Docs/ForDevelopers/OperatingConcepts/Events.md)). They can be divided into two categories: Activity Stream messages and Toast notifications. +Notifications are messages that inform users about ongoing operations. -## Activity Stream +## Details -The primary mechanism for delivering Notifications to users is the Activity Stream, which is based on [Pusher](https://pusher.com/). Messages are displayed in the right-side of the screen. They can be generated by the Hub on behalf of the Terminal, often as a result of an [Activity Response](/Docs/ForDevelopers/Objects/Activities/ActivityResponses.md), or through direct Terminal requests to the Hub. +The primary mechanism for delivering Notifications is the Activity Stream which is generally inform user about Plan execution phases or messages published by terminals. Notification messages are either displayed in the Activity Stream or with a toast notification. Fr8 User Interface decides which one to use based on user browser. ![ActivityStream](/Docs/img/ActivityStream.png) -There are currently 5 type of Notification messages: -• Generic Success +## Generating a Notification Message -• Generic Failure - -• Generic Info - -• Terminal Event (Used for displaying specific messages generated by terminals during the execution) - -• Execution Stopped - -These notification types can report an error of validation, successful execution, or information on terminals/activity states. - - -Generating a Notification Message ---------------------------------- - -Notification messages coming from Terminal requests are classified under "Terminal Event" type and displayed with bolt icon on the screen. They can be generated with this call: +Notification messages coming from Terminal requests are classified under "Terminal Event" type and displayed with bolt icon on the screen. They can be generated with this call: *Url* @@ -54,10 +39,4 @@ Notification messages coming from Terminal requests are classified under "Termin } ``` - -## Toast Notifications - -They uses same mechanism as in Activity Stream and render incoming pusher messages as Toast messages, based on whether there is a Activity Stream panel on screen. With this automatic rendering, developers are not supposed to have to worry about front end layout issues. Example usage of these messages can be found in [App Builder Activity](Docs/ForDevelopers/OperatingConcepts/Apps.md) which is optimized visually for mobile screen sizes. Absence of Activity Stream causes display of alert message at the top-center of page (implemented with [Noty library](http://ned.im/noty/)) in Kiosk Mode. - - -[Go to Contents]( /Docs/Home.md) +[Go to Contents]( /Docs/Home.md) \ No newline at end of file From d58da41610c7906e6335cb34917edfe94f1ba51f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alp=20G=C3=BCrtan?= Date: Wed, 3 Aug 2016 12:30:52 +0300 Subject: [PATCH 051/266] Removed unnecessary table picture --- Docs/img/ToastMessageTable.png | Bin 16146 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Docs/img/ToastMessageTable.png diff --git a/Docs/img/ToastMessageTable.png b/Docs/img/ToastMessageTable.png deleted file mode 100644 index 0a716dd1a7322261f84ebe930d71474c1b14e9eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16146 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 ZCK Date: Wed, 3 Aug 2016 12:49:57 +0300 Subject: [PATCH 052/266] Removed name from ActivityDTO --- .../Swagger/SampleData/ActivitySampleFactory.cs | 1 - .../Data/DataTransferObjects/ActivityDTO.cs | 3 --- Hub/Exceptions/ActivityExecutionException.cs | 4 ++-- Hub/Services/Activity.cs | 1 - .../app/controllers/PlanBuilderController.ts | 5 +---- .../directives/Controls/ContainerTransition.ts | 8 +++++--- .../PaneConfigureAction/PaneConfigureAction.ts | 2 +- Scripts/app/model/ActionDTO.ts | 2 -- ...act_Data_From_Envelopes_v1_EndToEnd_Tests.cs | 9 ++++----- ...ail_Merge_Into_DocuSign_v1_EndToEnd_Tests.cs | 6 +++--- ...ack_DocuSign_Recipients_v1_EndToEnd_Tests.cs | 17 +++++++++++------ .../Integration/SetDelay_v1_Tests.cs | 1 - 12 files changed, 27 insertions(+), 32 deletions(-) diff --git a/Documentation/Swagger/SampleData/ActivitySampleFactory.cs b/Documentation/Swagger/SampleData/ActivitySampleFactory.cs index 4f124fbca5..414f6d77bd 100644 --- a/Documentation/Swagger/SampleData/ActivitySampleFactory.cs +++ b/Documentation/Swagger/SampleData/ActivitySampleFactory.cs @@ -16,7 +16,6 @@ public ActivityDTO GetSampleData() { return new ActivityDTO { - Name = "Send_Message_v1", Label = "Send Message", Id = Guid.Parse("06D08982-6337-4E6F-AA59-0210D17F6861"), ParentPlanNodeId = Guid.Parse("4C21492F-80B6-4495-9602-E38697B916B2"), diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityDTO.cs b/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityDTO.cs index ac34976a41..861c201127 100644 --- a/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityDTO.cs +++ b/Fr8Infrastructure.NET/Data/DataTransferObjects/ActivityDTO.cs @@ -9,9 +9,6 @@ public class ActivityDTO [JsonProperty("label")] public string Label { get; set; } - [JsonProperty("name")] - public string Name { get; set; } - [JsonProperty("activityTemplate")] public ActivityTemplateSummaryDTO ActivityTemplate { get; set; } diff --git a/Hub/Exceptions/ActivityExecutionException.cs b/Hub/Exceptions/ActivityExecutionException.cs index 295ee02d89..a6ad2a23f4 100644 --- a/Hub/Exceptions/ActivityExecutionException.cs +++ b/Hub/Exceptions/ActivityExecutionException.cs @@ -50,11 +50,11 @@ protected virtual string GetErrorMessage() { if (!string.IsNullOrEmpty(Message)) { - return String.Format("Failed to run activity \"{0}\". {1}", FailedActivityDTO?.Name, Message); + return String.Format("Failed to run activity \"{0}\". {1}", FailedActivityDTO?.ActivityTemplate.Name, Message); } else { - return String.Format("Failed to run activity \"{0}\". Please, make sure it is set up correctly.", FailedActivityDTO?.Name); + return String.Format("Failed to run activity \"{0}\". Please, make sure it is set up correctly.", FailedActivityDTO?.ActivityTemplate.Name); } } } diff --git a/Hub/Services/Activity.cs b/Hub/Services/Activity.cs index b0dcb48c48..3492f2c7f3 100644 --- a/Hub/Services/Activity.cs +++ b/Hub/Services/Activity.cs @@ -699,7 +699,6 @@ public async Task GetActivityDocumentation(ActivityDTO activityDTO, bool i { Id = Guid.NewGuid(), Label = curActivityTerminalDTO.Label, - Name = curActivityTerminalDTO.Name, ActivityTemplate = new ActivityTemplateSummaryDTO { Name = curActivityTerminalDTO.Name, diff --git a/Scripts/app/controllers/PlanBuilderController.ts b/Scripts/app/controllers/PlanBuilderController.ts index d4667e2197..549ea5f750 100644 --- a/Scripts/app/controllers/PlanBuilderController.ts +++ b/Scripts/app/controllers/PlanBuilderController.ts @@ -632,8 +632,6 @@ module dockyard.controllers { var id = this.LocalIdentityGenerator.getNextId(); var parentId = eventArgs.group.parentId; var action = new model.ActivityDTO(this.$scope.planId, parentId, id); - - action.name = activityTemplate.label; // Add action to Workflow Designer. this.$scope.current.activities = action.toActionVM(); this.$scope.current.activities.activityTemplate = this.ActivityTemplateHelperService.toSummary(activityTemplate); @@ -680,7 +678,7 @@ module dockyard.controllers { private selectAction(action: model.ActivityDTO, group: model.ActionGroup, $window) { //this performs a call to Segment service for analytics if ($window['analytics'] != null) { - $window['analytics'].track("Added Activity To Plan", { "Activity Name": action.name }); + $window['analytics'].track("Added Activity To Plan", { "Activity Name": action.activityTemplate.name }); } console.log("Activity selected: " + action.id); var originalId, @@ -756,7 +754,6 @@ module dockyard.controllers { */ private PaneConfigureAction_ActionUpdated(updatedAction: model.ActivityDTO) { var action = this.findActionById(updatedAction.id); - action.name = updatedAction.name; action.label = updatedAction.label; } diff --git a/Scripts/app/directives/Controls/ContainerTransition.ts b/Scripts/app/directives/Controls/ContainerTransition.ts index f5b5b18b74..a57c62b0f7 100644 --- a/Scripts/app/directives/Controls/ContainerTransition.ts +++ b/Scripts/app/directives/Controls/ContainerTransition.ts @@ -34,7 +34,7 @@ module dockyard.directives.containerTransition { \
diff --git a/Views/AngularTemplate/TerminalPublishForm.cshtml b/Views/AngularTemplate/TerminalPublishForm.cshtml new file mode 100644 index 0000000000..2e02867905 --- /dev/null +++ b/Views/AngularTemplate/TerminalPublishForm.cshtml @@ -0,0 +1,19 @@ +
+ + + +
From ba9f339c1e75b6f8256f3afca63fb7cce7e4c455 Mon Sep 17 00:00:00 2001 From: Anton Yakovets Date: Wed, 3 Aug 2016 18:52:31 +0600 Subject: [PATCH 055/266] FR-4073 Insert controllers and services, but it operates like it PD not hub. many hardcoded urls and redundant web.config parameters. --- App_Start/RouteConfig.cs | 6 + CategoryPages/PlanCategoryTemplate.cs | 536 ++++++++++++++++++ CategoryPages/PlanCategoryTemplate.tt | 68 +++ CategoryPages/asana.html | 52 ++ CategoryPages/basecamp2.html | 52 ++ CategoryPages/built-in services-slack.html | 55 ++ CategoryPages/built-in services.html | 52 ++ CategoryPages/slack.html | 58 ++ Controllers/Api/AuthenticationController.cs | 8 + Controllers/Api/PageGenerationController.cs | 23 + Controllers/Api/PlanTemplatesController.cs | 167 ++++++ Controllers/PlanDirectoryController.cs | 54 +- Hub/Services/PlanDirectoryService.cs | 20 +- HubWeb.csproj | 73 ++- .../Exceptions/ManifestGenerationException.cs | 9 + .../Exceptions/ManifestNotFoundException.cs | 9 + .../ManifestPageNotFoundException.cs | 9 + .../Infrastructure/ActivityTemplateTag.cs | 23 + .../Infrastructure/AuthTokenManager.cs | 36 ++ .../HubAuthenticationPDHeaderSignature.cs | 19 + .../Infrastructure/ManifestPageGenerator.cs | 92 +++ .../PlanDirectoryAuthorizeAttribute.cs | 18 + .../PlanDirectoryBootstrapper.cs | 79 +++ .../PlanDirectoryHMACAuthenticateAttribute.cs | 51 ++ .../PlanDirectoryHubCommunicatorFactory.cs | 25 + .../Infrastructure/PlanTemplate.Impl.cs | 136 +++++ .../Infrastructure/SearchProvider.Impl.cs | 193 +++++++ .../Infrastructure/TagGenerator.cs | 158 ++++++ .../Infrastructure/TemplateGenerator.cs | 56 ++ .../Infrastructure/TemplateTag.cs | 10 + .../Infrastructure/TemplateTagStorage.cs | 16 + .../Infrastructure/WebServiceTemplateTag.cs | 32 ++ .../WebservicesPageGenerator.cs | 92 +++ Infrastructure_PD/Interfaces/CreatePlanDTO.cs | 7 + Infrastructure_PD/Interfaces/GenerateMode.cs | 9 + .../Interfaces/IAuthTokenManager.cs | 10 + .../Interfaces/IHubCommunicatorFactory.cs | 9 + .../Interfaces/IManifestPageGenerator.cs | 10 + Infrastructure_PD/Interfaces/IPlanTemplate.cs | 15 + .../Interfaces/ISearchProvider.cs | 14 + Infrastructure_PD/Interfaces/ITagGenerator.cs | 11 + .../Interfaces/ITemplateGenerator.cs | 15 + .../Interfaces/IWebservicesPageGenerator.cs | 10 + Infrastructure_PD/Interfaces/SearchItemDTO.cs | 12 + .../Interfaces/SearchRequestDTO.cs | 9 + .../Interfaces/SearchResultDTO.cs | 10 + ManifestPages/ManifestDescriptionTemplate.cs | 456 +++++++++++++++ ManifestPages/ManifestDescriptionTemplate.tt | 75 +++ Scripts/PlanDirectoryApp.js | 12 +- Scripts/PlanDirectoryMain.js | 2 +- Startup.cs | 6 + .../Unit/PageGeneratorTests.cs | 1 + Views/PlanDirectory/Index.cshtml | 10 +- Web.Dev.config | 5 +- Web.Release.config | 4 +- Web.config | 5 +- packages.config | 6 +- .../Asana/Services/AsanaParametersService.cs | 2 +- 58 files changed, 2936 insertions(+), 76 deletions(-) create mode 100644 CategoryPages/PlanCategoryTemplate.cs create mode 100644 CategoryPages/PlanCategoryTemplate.tt create mode 100644 CategoryPages/asana.html create mode 100644 CategoryPages/basecamp2.html create mode 100644 CategoryPages/built-in services-slack.html create mode 100644 CategoryPages/built-in services.html create mode 100644 CategoryPages/slack.html create mode 100644 Controllers/Api/PageGenerationController.cs create mode 100644 Controllers/Api/PlanTemplatesController.cs create mode 100644 Infrastructure_PD/Exceptions/ManifestGenerationException.cs create mode 100644 Infrastructure_PD/Exceptions/ManifestNotFoundException.cs create mode 100644 Infrastructure_PD/Exceptions/ManifestPageNotFoundException.cs create mode 100644 Infrastructure_PD/Infrastructure/ActivityTemplateTag.cs create mode 100644 Infrastructure_PD/Infrastructure/AuthTokenManager.cs create mode 100644 Infrastructure_PD/Infrastructure/HubAuthenticationPDHeaderSignature.cs create mode 100644 Infrastructure_PD/Infrastructure/ManifestPageGenerator.cs create mode 100644 Infrastructure_PD/Infrastructure/PlanDirectoryAuthorizeAttribute.cs create mode 100644 Infrastructure_PD/Infrastructure/PlanDirectoryBootstrapper.cs create mode 100644 Infrastructure_PD/Infrastructure/PlanDirectoryHMACAuthenticateAttribute.cs create mode 100644 Infrastructure_PD/Infrastructure/PlanDirectoryHubCommunicatorFactory.cs create mode 100644 Infrastructure_PD/Infrastructure/PlanTemplate.Impl.cs create mode 100644 Infrastructure_PD/Infrastructure/SearchProvider.Impl.cs create mode 100644 Infrastructure_PD/Infrastructure/TagGenerator.cs create mode 100644 Infrastructure_PD/Infrastructure/TemplateGenerator.cs create mode 100644 Infrastructure_PD/Infrastructure/TemplateTag.cs create mode 100644 Infrastructure_PD/Infrastructure/TemplateTagStorage.cs create mode 100644 Infrastructure_PD/Infrastructure/WebServiceTemplateTag.cs create mode 100644 Infrastructure_PD/Infrastructure/WebservicesPageGenerator.cs create mode 100644 Infrastructure_PD/Interfaces/CreatePlanDTO.cs create mode 100644 Infrastructure_PD/Interfaces/GenerateMode.cs create mode 100644 Infrastructure_PD/Interfaces/IAuthTokenManager.cs create mode 100644 Infrastructure_PD/Interfaces/IHubCommunicatorFactory.cs create mode 100644 Infrastructure_PD/Interfaces/IManifestPageGenerator.cs create mode 100644 Infrastructure_PD/Interfaces/IPlanTemplate.cs create mode 100644 Infrastructure_PD/Interfaces/ISearchProvider.cs create mode 100644 Infrastructure_PD/Interfaces/ITagGenerator.cs create mode 100644 Infrastructure_PD/Interfaces/ITemplateGenerator.cs create mode 100644 Infrastructure_PD/Interfaces/IWebservicesPageGenerator.cs create mode 100644 Infrastructure_PD/Interfaces/SearchItemDTO.cs create mode 100644 Infrastructure_PD/Interfaces/SearchRequestDTO.cs create mode 100644 Infrastructure_PD/Interfaces/SearchResultDTO.cs create mode 100644 ManifestPages/ManifestDescriptionTemplate.cs create mode 100644 ManifestPages/ManifestDescriptionTemplate.tt diff --git a/App_Start/RouteConfig.cs b/App_Start/RouteConfig.cs index a1c022e615..d564b13af1 100644 --- a/App_Start/RouteConfig.cs +++ b/App_Start/RouteConfig.cs @@ -29,6 +29,12 @@ public static void RegisterRoutes(RouteCollection routes) defaults: new { controller = "Redirect", action = "TwilioSMS" } ); + routes.MapRoute( + name: "Plan_Directory", + url: "plan_directory", + defaults: new { controller = "PlanDirectory", action = "Index" } + ); + routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", diff --git a/CategoryPages/PlanCategoryTemplate.cs b/CategoryPages/PlanCategoryTemplate.cs new file mode 100644 index 0000000000..f69c0b5254 --- /dev/null +++ b/CategoryPages/PlanCategoryTemplate.cs @@ -0,0 +1,536 @@ +// ------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version: 14.0.0.0 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +// ------------------------------------------------------------------------------ +namespace HubWeb.CategoryPages +{ + using System; + + /// + /// Class to produce the template output + /// + + #line 1 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "14.0.0.0")] + public partial class PlanCategoryTemplate : PlanCategoryTemplateBase + { +#line hidden + /// + /// Create the template output + /// + public virtual string TransformText() + { + this.Write(@" + + + + + + + + + + + + + + + +
+
+
+
+
+

Plan Directory - "); + + #line 27 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(Name)); + + #line default + #line hidden + this.Write("

\r\n
\r\n\t\t\t"); + + #line 29 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" + int i = 0; + foreach (var tag in Tags) + { + + #line default + #line hidden + this.Write("\t\t\t\t\t\r\n\t\t\t\t"); + + #line 33 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" + if (i < Tags.Count - 1) + { + + #line default + #line hidden + this.Write("\t\t\t\t\r\n\t\t\t\t"); + + #line 36 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" + i++; + } + + #line default + #line hidden + this.Write(" \r\n\t\t"); + + #line 38 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" + } + + #line default + #line hidden + this.Write(@"
+
+

Plan Definition Description

+

Related Plans

+ + + + + + + + + + + "); + + #line 53 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" + int number = 1; + foreach (var plan in RelatedPlans) + { + + #line default + #line hidden + this.Write(" \r\n \r\n \r\n \r\n \r\n \r\n " + + " "); + + #line 62 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" + } + + #line default + #line hidden + this.Write(" \r\n \r\n
#Plan NamePlan DescriptionAction
"); + + #line 57 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(number++)); + + #line default + #line hidden + this.Write(""); + + #line 58 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(plan.Item1)); + + #line default + #line hidden + this.Write(""); + + #line 59 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(plan.Item2)); + + #line default + #line hidden + this.Write("
\r\n
\r\n\r\n\r\n"); + return this.GenerationEnvironment.ToString(); + } + + #line 1 "C:\dev\Work\fr8company\CategoryPages\PlanCategoryTemplate.tt" + +private string _NameField; + +/// +/// Access the Name parameter of the template. +/// +private string Name +{ + get + { + return this._NameField; + } +} + +private global::System.Collections.Generic.IDictionary _TagsField; + +/// +/// Access the Tags parameter of the template. +/// +private global::System.Collections.Generic.IDictionary Tags +{ + get + { + return this._TagsField; + } +} + +private global::System.Collections.Generic.IList> _RelatedPlansField; + +/// +/// Access the RelatedPlans parameter of the template. +/// +private global::System.Collections.Generic.IList> RelatedPlans +{ + get + { + return this._RelatedPlansField; + } +} + + +/// +/// Initialize the template +/// +public virtual void Initialize() +{ + if ((this.Errors.HasErrors == false)) + { +bool NameValueAcquired = false; +if (this.Session.ContainsKey("Name")) +{ + this._NameField = ((string)(this.Session["Name"])); + NameValueAcquired = true; +} +if ((NameValueAcquired == false)) +{ + object data = global::System.Runtime.Remoting.Messaging.CallContext.LogicalGetData("Name"); + if ((data != null)) + { + this._NameField = ((string)(data)); + } +} +bool TagsValueAcquired = false; +if (this.Session.ContainsKey("Tags")) +{ + this._TagsField = ((global::System.Collections.Generic.IDictionary)(this.Session["Tags"])); + TagsValueAcquired = true; +} +if ((TagsValueAcquired == false)) +{ + object data = global::System.Runtime.Remoting.Messaging.CallContext.LogicalGetData("Tags"); + if ((data != null)) + { + this._TagsField = ((global::System.Collections.Generic.IDictionary)(data)); + } +} +bool RelatedPlansValueAcquired = false; +if (this.Session.ContainsKey("RelatedPlans")) +{ + this._RelatedPlansField = ((global::System.Collections.Generic.IList>)(this.Session["RelatedPlans"])); + RelatedPlansValueAcquired = true; +} +if ((RelatedPlansValueAcquired == false)) +{ + object data = global::System.Runtime.Remoting.Messaging.CallContext.LogicalGetData("RelatedPlans"); + if ((data != null)) + { + this._RelatedPlansField = ((global::System.Collections.Generic.IList>)(data)); + } +} + + + } +} + + + + #line default + #line hidden + } + + #line default + #line hidden + #region Base class + /// + /// Base class for this transformation + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "14.0.0.0")] + public class PlanCategoryTemplateBase + { + #region Fields + private global::System.Text.StringBuilder generationEnvironmentField; + private global::System.CodeDom.Compiler.CompilerErrorCollection errorsField; + private global::System.Collections.Generic.List indentLengthsField; + private string currentIndentField = ""; + private bool endsWithNewline; + private global::System.Collections.Generic.IDictionary sessionField; + #endregion + #region Properties + /// + /// The string builder that generation-time code is using to assemble generated output + /// + protected System.Text.StringBuilder GenerationEnvironment + { + get + { + if ((this.generationEnvironmentField == null)) + { + this.generationEnvironmentField = new global::System.Text.StringBuilder(); + } + return this.generationEnvironmentField; + } + set + { + this.generationEnvironmentField = value; + } + } + /// + /// The error collection for the generation process + /// + public System.CodeDom.Compiler.CompilerErrorCollection Errors + { + get + { + if ((this.errorsField == null)) + { + this.errorsField = new global::System.CodeDom.Compiler.CompilerErrorCollection(); + } + return this.errorsField; + } + } + /// + /// A list of the lengths of each indent that was added with PushIndent + /// + private System.Collections.Generic.List indentLengths + { + get + { + if ((this.indentLengthsField == null)) + { + this.indentLengthsField = new global::System.Collections.Generic.List(); + } + return this.indentLengthsField; + } + } + /// + /// Gets the current indent we use when adding lines to the output + /// + public string CurrentIndent + { + get + { + return this.currentIndentField; + } + } + /// + /// Current transformation session + /// + public virtual global::System.Collections.Generic.IDictionary Session + { + get + { + return this.sessionField; + } + set + { + this.sessionField = value; + } + } + #endregion + #region Transform-time helpers + /// + /// Write text directly into the generated output + /// + public void Write(string textToAppend) + { + if (string.IsNullOrEmpty(textToAppend)) + { + return; + } + // If we're starting off, or if the previous text ended with a newline, + // we have to append the current indent first. + if (((this.GenerationEnvironment.Length == 0) + || this.endsWithNewline)) + { + this.GenerationEnvironment.Append(this.currentIndentField); + this.endsWithNewline = false; + } + // Check if the current text ends with a newline + if (textToAppend.EndsWith(global::System.Environment.NewLine, global::System.StringComparison.CurrentCulture)) + { + this.endsWithNewline = true; + } + // This is an optimization. If the current indent is "", then we don't have to do any + // of the more complex stuff further down. + if ((this.currentIndentField.Length == 0)) + { + this.GenerationEnvironment.Append(textToAppend); + return; + } + // Everywhere there is a newline in the text, add an indent after it + textToAppend = textToAppend.Replace(global::System.Environment.NewLine, (global::System.Environment.NewLine + this.currentIndentField)); + // If the text ends with a newline, then we should strip off the indent added at the very end + // because the appropriate indent will be added when the next time Write() is called + if (this.endsWithNewline) + { + this.GenerationEnvironment.Append(textToAppend, 0, (textToAppend.Length - this.currentIndentField.Length)); + } + else + { + this.GenerationEnvironment.Append(textToAppend); + } + } + /// + /// Write text directly into the generated output + /// + public void WriteLine(string textToAppend) + { + this.Write(textToAppend); + this.GenerationEnvironment.AppendLine(); + this.endsWithNewline = true; + } + /// + /// Write formatted text directly into the generated output + /// + public void Write(string format, params object[] args) + { + this.Write(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args)); + } + /// + /// Write formatted text directly into the generated output + /// + public void WriteLine(string format, params object[] args) + { + this.WriteLine(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args)); + } + /// + /// Raise an error + /// + public void Error(string message) + { + System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError(); + error.ErrorText = message; + this.Errors.Add(error); + } + /// + /// Raise a warning + /// + public void Warning(string message) + { + System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError(); + error.ErrorText = message; + error.IsWarning = true; + this.Errors.Add(error); + } + /// + /// Increase the indent + /// + public void PushIndent(string indent) + { + if ((indent == null)) + { + throw new global::System.ArgumentNullException("indent"); + } + this.currentIndentField = (this.currentIndentField + indent); + this.indentLengths.Add(indent.Length); + } + /// + /// Remove the last indent that was added with PushIndent + /// + public string PopIndent() + { + string returnValue = ""; + if ((this.indentLengths.Count > 0)) + { + int indentLength = this.indentLengths[(this.indentLengths.Count - 1)]; + this.indentLengths.RemoveAt((this.indentLengths.Count - 1)); + if ((indentLength > 0)) + { + returnValue = this.currentIndentField.Substring((this.currentIndentField.Length - indentLength)); + this.currentIndentField = this.currentIndentField.Remove((this.currentIndentField.Length - indentLength)); + } + } + return returnValue; + } + /// + /// Remove any indentation + /// + public void ClearIndent() + { + this.indentLengths.Clear(); + this.currentIndentField = ""; + } + #endregion + #region ToString Helpers + /// + /// Utility class to produce culture-oriented representation of an object as a string. + /// + public class ToStringInstanceHelper + { + private System.IFormatProvider formatProviderField = global::System.Globalization.CultureInfo.InvariantCulture; + /// + /// Gets or sets format provider to be used by ToStringWithCulture method. + /// + public System.IFormatProvider FormatProvider + { + get + { + return this.formatProviderField ; + } + set + { + if ((value != null)) + { + this.formatProviderField = value; + } + } + } + /// + /// This is called from the compile/run appdomain to convert objects within an expression block to a string + /// + public string ToStringWithCulture(object objectToConvert) + { + if ((objectToConvert == null)) + { + throw new global::System.ArgumentNullException("objectToConvert"); + } + System.Type t = objectToConvert.GetType(); + System.Reflection.MethodInfo method = t.GetMethod("ToString", new System.Type[] { + typeof(System.IFormatProvider)}); + if ((method == null)) + { + return objectToConvert.ToString(); + } + else + { + return ((string)(method.Invoke(objectToConvert, new object[] { + this.formatProviderField }))); + } + } + } + private ToStringInstanceHelper toStringHelperField = new ToStringInstanceHelper(); + /// + /// Helper to produce culture-oriented representation of an object as a string + /// + public ToStringInstanceHelper ToStringHelper + { + get + { + return this.toStringHelperField; + } + } + #endregion + } + #endregion +} diff --git a/CategoryPages/PlanCategoryTemplate.tt b/CategoryPages/PlanCategoryTemplate.tt new file mode 100644 index 0000000000..45ef789a69 --- /dev/null +++ b/CategoryPages/PlanCategoryTemplate.tt @@ -0,0 +1,68 @@ +<#@ template language="C#" #> +<#@ parameter name="Name" type="System.String" #> +<#@ parameter name="Tags" type="System.Collections.Generic.IDictionary" #> +<#@ parameter name="RelatedPlans" type="System.Collections.Generic.IList>" #> + + + + + + + + + + + + + + + + +
+ +
+ +
+

Plan Directory - <#=Name#>

+
+ <# int i = 0; + foreach (var tag in Tags) + { #> + + <# if (i < Tags.Count - 1) + { #> + + <# i++; + } #> + <# } #> +
+
+

Plan Definition Description

+

Related Plans

+ + + + + + + + + + + <# int number = 1; + foreach (var plan in RelatedPlans) + {#> + + + + + + + <# } #> + + +
#Plan NamePlan DescriptionAction
<#=number++#><#=plan.Item1#><#=plan.Item2#>Create
+
+ + diff --git a/CategoryPages/asana.html b/CategoryPages/asana.html new file mode 100644 index 0000000000..5ba5df77ba --- /dev/null +++ b/CategoryPages/asana.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + +
+ +
+ +
+

Plan Directory - asana.html

+
+ + +
+
+

Plan Definition Description

+

Related Plans

+ + + + + + + + + + + + + + + + + + +
#Plan NamePlan DescriptionAction
1Test plan for localTest plan for localCreate
+
+ + diff --git a/CategoryPages/basecamp2.html b/CategoryPages/basecamp2.html new file mode 100644 index 0000000000..a1e1bbe0bd --- /dev/null +++ b/CategoryPages/basecamp2.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + +
+ +
+ +
+

Plan Directory - basecamp2.html

+
+ + +
+
+

Plan Definition Description

+

Related Plans

+ + + + + + + + + + + + + + + + + + +
#Plan NamePlan DescriptionAction
1BasecampBasecampCreate
+
+ + diff --git a/CategoryPages/built-in services-slack.html b/CategoryPages/built-in services-slack.html new file mode 100644 index 0000000000..f5f7faf28a --- /dev/null +++ b/CategoryPages/built-in services-slack.html @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + +
+ +
+ +
+

Plan Directory - built-in services-slack.html

+
+ + + + + +
+
+

Plan Definition Description

+

Related Plans

+ + + + + + + + + + + + + + + + + + +
#Plan NamePlan DescriptionAction
1Core+SlackCore+SlackCreate
+
+ + diff --git a/CategoryPages/built-in services.html b/CategoryPages/built-in services.html new file mode 100644 index 0000000000..8525984b03 --- /dev/null +++ b/CategoryPages/built-in services.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + +
+ +
+ +
+

Plan Directory - built-in services.html

+
+ + +
+
+

Plan Definition Description

+

Related Plans

+ + + + + + + + + + + + + + + + + + +
#Plan NamePlan DescriptionAction
1Core+SlackCore+SlackCreate
+
+ + diff --git a/CategoryPages/slack.html b/CategoryPages/slack.html new file mode 100644 index 0000000000..43ee029562 --- /dev/null +++ b/CategoryPages/slack.html @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + +
+ +
+ +
+

Plan Directory - slack.html

+
+ + +
+
+

Plan Definition Description

+

Related Plans

+ + + + + + + + + + + + + + + + + + + + + + + + +
#Plan NamePlan DescriptionAction
1Slack+SlackSlack+SlackCreate
2Core+SlackCore+SlackCreate
+
+ + diff --git a/Controllers/Api/AuthenticationController.cs b/Controllers/Api/AuthenticationController.cs index 1c89b8c89d..471f371c31 100644 --- a/Controllers/Api/AuthenticationController.cs +++ b/Controllers/Api/AuthenticationController.cs @@ -372,6 +372,14 @@ public async Task VerifyPhoneNumberCode(PhoneNumberCredential }); } + [HttpGet] + [ActionName("is_authenticated")] + public IHttpActionResult IsAuthenicated() + { + var authenticated = User.Identity.IsAuthenticated; + return Ok(new { authenticated }); + } + [HttpGet] [ActionName("is_privileged")] public IHttpActionResult IsPrivileged() diff --git a/Controllers/Api/PageGenerationController.cs b/Controllers/Api/PageGenerationController.cs new file mode 100644 index 0000000000..34dc1e93ee --- /dev/null +++ b/Controllers/Api/PageGenerationController.cs @@ -0,0 +1,23 @@ +using System.Threading.Tasks; +using System.Web.Http; +using HubWeb.Infrastructure_PD.Interfaces; +using StructureMap; + +namespace HubWeb.Controllers.Api +{ + public class PageGenerationController : ApiController + { + private readonly IManifestPageGenerator _manifestPageGenerator; + public PageGenerationController() + { + _manifestPageGenerator = ObjectFactory.GetInstance(); + } + + [HttpPost] + [ActionName("generate_manifest_page")] + public async Task GenerateManifestPage([FromBody] string manifestName) + { + return Ok(await _manifestPageGenerator.Generate(manifestName, GenerateMode.GenerateIfNotExists)); + } + } +} diff --git a/Controllers/Api/PlanTemplatesController.cs b/Controllers/Api/PlanTemplatesController.cs new file mode 100644 index 0000000000..688f18a6ab --- /dev/null +++ b/Controllers/Api/PlanTemplatesController.cs @@ -0,0 +1,167 @@ +using System; +using System.Net; +using System.Security.Claims; +using System.Threading.Tasks; +using System.Web.Http; +using Fr8.Infrastructure.Data.DataTransferObjects; +using Fr8.Infrastructure.Utilities.Configuration; +using Hub.Infrastructure; +using Hub.Interfaces; +using HubWeb.Infrastructure_PD.Interfaces; +using log4net; +using Microsoft.AspNet.Identity; +using PlanDirectory.Infrastructure; +using StructureMap; + +namespace HubWeb.Controllers.Api +{ + [RoutePrefix("plan_templates")] + public class PlanTemplatesController : ApiController + { + //private readonly IHubCommunicator _hubCommunicator; + private readonly IPlanTemplate _planTemplate; + private readonly ISearchProvider _searchProvider; + private readonly IWebservicesPageGenerator _webservicesPageGenerator; + private readonly IPlanDirectoryService _planDirectoryService; + private static readonly ILog Logger = LogManager.GetLogger("PlanDirectory"); + + public PlanTemplatesController() + { + //var factory = ObjectFactory.GetInstance(); + //_hubCommunicator = factory.Create(User.Identity.GetUserId()); + _planTemplate = ObjectFactory.GetInstance(); + _searchProvider = ObjectFactory.GetInstance(); + _webservicesPageGenerator = ObjectFactory.GetInstance(); + _planDirectoryService = ObjectFactory.GetInstance(); + } + + [HttpPost] + [Fr8ApiAuthorize] + [PlanDirectoryHMACAuthenticate] + public async Task Post(PublishPlanTemplateDTO dto) + { + var fr8AccountId = User.Identity.GetUserId(); + var planTemplateCM = await _planTemplate.CreateOrUpdate(fr8AccountId, dto); + await _searchProvider.CreateOrUpdate(planTemplateCM); + await _webservicesPageGenerator.Generate(planTemplateCM, fr8AccountId); + return Ok(); + } + + [HttpDelete] + [Fr8ApiAuthorize] + [PlanDirectoryHMACAuthenticate] + public async Task Delete(Guid id) + { + var identity = User.Identity as ClaimsIdentity; + var privileged = identity.HasClaim(ClaimsIdentity.DefaultRoleClaimType, "Admin"); + + var fr8AccountId = identity.GetUserId(); + var planTemplateCM = await _planTemplate.Get(fr8AccountId, id); + + if (planTemplateCM != null) + { + if (planTemplateCM.OwnerId != fr8AccountId && !privileged) + { + return Unauthorized(); + } + await _planTemplate.Remove(fr8AccountId, id); + await _searchProvider.Remove(id); + } + + return Ok(); + } + + [HttpGet] + [Fr8ApiAuthorize] + [PlanDirectoryHMACAuthenticate] + public async Task Get(Guid id) + { + var fr8AccountId = User.Identity.GetUserId(); + var planTemplateDTO = await _planTemplate.GetPlanTemplateDTO(fr8AccountId, id); + + return Ok(planTemplateDTO); + } + + [HttpGet] + public async Task Search( + string text, int? pageStart = null, int? pageSize = null) + { + var searchRequest = new SearchRequestDTO() + { + Text = text, + PageStart = pageStart.GetValueOrDefault(), + PageSize = pageSize.GetValueOrDefault() + }; + + var searchResult = await _searchProvider.Search(searchRequest); + + return Ok(searchResult); + } + + [HttpPost] + [Fr8ApiAuthorize] + [PlanDirectoryHMACAuthenticate] + public async Task CreatePlan(Guid id) + { + try + { + var fr8AccountId = User.Identity.GetUserId(); + var planTemplateDTO = await _planTemplate.GetPlanTemplateDTO(fr8AccountId, id); + + if (planTemplateDTO == null) + { + throw new ApplicationException("Unable to find PlanTemplate in MT-database."); + } + + var plan = _planDirectoryService.CreateFromTemplate(planTemplateDTO.PlanContents, User.Identity.GetUserId()); + + //var plan = await _hubCommunicator.LoadPlan(planTemplateDTO.PlanContents); + + return Ok( + new + { + RedirectUrl = CloudConfigurationManager.GetSetting("HubApiBaseUrl").Replace("/api/v1/", "") + + "/dashboard/plans/" + plan.Id.ToString() + "/builder?viewMode=plan" + } + ); + } + catch (ApplicationException exception) + { + Logger.Error(exception.Message); + return Content(HttpStatusCode.InternalServerError, exception.Message); + } + } + + [HttpPost] + public async Task GeneratePages() + { + var searchRequest = new SearchRequestDTO() + { + Text = string.Empty, + PageStart = 0, + PageSize = 0 + }; + + var searchResult = await _searchProvider.Search(searchRequest); + + var fr8AccountId = User.Identity.GetUserId(); + var watch = System.Diagnostics.Stopwatch.StartNew(); + foreach (var searchItemDto in searchResult.PlanTemplates) + { + var planTemplateDto = await _planTemplate.GetPlanTemplateDTO(fr8AccountId, searchItemDto.ParentPlanId); + if (planTemplateDto == null) + { + continue; + } + var planTemplateCm = await _planTemplate.CreateOrUpdate(fr8AccountId, planTemplateDto); + await _searchProvider.CreateOrUpdate(planTemplateCm); + await _webservicesPageGenerator.Generate(planTemplateCm, fr8AccountId); + } + watch.Stop(); + var elapsed = watch.Elapsed; + Logger.Info($"Page Generator elapsed time: {elapsed.Minutes} minutes, {elapsed.Seconds} seconds"); + + return Ok(); + } + } +} \ No newline at end of file diff --git a/Controllers/PlanDirectoryController.cs b/Controllers/PlanDirectoryController.cs index 55b8e9d1b1..d1dd2a439f 100644 --- a/Controllers/PlanDirectoryController.cs +++ b/Controllers/PlanDirectoryController.cs @@ -2,64 +2,14 @@ namespace HubWeb.Controllers { + public class PlanDirectoryController : Controller { - //private readonly IAuthTokenManager _authTokenManager; - - - public PlanDirectoryController() - { - //_authTokenManager = ObjectFactory.GetInstance(); - } [HttpGet] public ActionResult Index() { return View(); - } - - //[HttpGet] - //public ActionResult AuthenticateByToken(string token) - //{ - // try - // { - // var fr8AccountId = _authTokenManager.GetFr8AccountId(token); - // if (!fr8AccountId.HasValue) - // { - // return Redirect(VirtualPathUtility.ToAbsolute("~/Reauthenticate")); - // } - - // using (var uow = ObjectFactory.GetInstance()) - // { - // var fr8AccountDO = uow.UserRepository.GetByKey(fr8AccountId.Value.ToString()); - - // var securityServices = ObjectFactory.GetInstance(); - // securityServices.Logout(); - // securityServices.Login(uow, fr8AccountDO); - - // return Redirect(VirtualPathUtility.ToAbsolute("~/")); - // } - // } - // catch (System.Exception ex) - // { - // var sb = new System.Text.StringBuilder(); - - // while (ex != null) - // { - // sb.AppendLine(ex.Message); - // sb.AppendLine(ex.StackTrace); - - // ex = ex.InnerException; - // } - - // return Content(sb.ToString()); - // } - //} - - //[HttpGet] - //public ActionResult Reauthenticate() - //{ - // return View(); - //} + } } } diff --git a/Hub/Services/PlanDirectoryService.cs b/Hub/Services/PlanDirectoryService.cs index 58329d12c1..e4e8337e6f 100644 --- a/Hub/Services/PlanDirectoryService.cs +++ b/Hub/Services/PlanDirectoryService.cs @@ -28,6 +28,8 @@ public class PlanDirectoryService : IPlanDirectoryService private readonly IPlan _planService; private readonly IActivityTemplate _activityTemplate; + + public PlanDirectoryService(IHMACService hmac, IRestfulServiceClient client, IPusherNotifier pusherNotifier, @@ -45,7 +47,7 @@ public PlanDirectoryService(IHMACService hmac, public async Task GetToken(string UserId) { - var uri = new Uri(CloudConfigurationManager.GetSetting("PlanDirectoryUrl") + "/api/authentication/token"); + var uri = new Uri(CloudConfigurationManager.GetSetting("PlanDirectoryUrl") + "/api/v1/authentication/token"); var headers = await _hmacService.GenerateHMACHeader(uri, "PlanDirectory", @@ -64,7 +66,7 @@ public string LogOutUrl() public async Task GetTemplate(Guid id, string userId) { - var uri = new Uri(CloudConfigurationManager.GetSetting("PlanDirectoryUrl") + "/api/plan_templates?id=" + id); + var uri = new Uri(CloudConfigurationManager.GetSetting("PlanDirectoryUrl") + "/api/v1/plan_templates?id=" + id); var headers = await _hmacService.GenerateHMACHeader( uri, "PlanDirectory", @@ -94,7 +96,15 @@ public async Task Share(Guid planId, string userId) PlanContents = planDto }; - var uri = new Uri(CloudConfigurationManager.GetSetting("PlanDirectoryUrl") + "/api/plan_templates/"); + + //var planTemplateCM = await _planTemplate.CreateOrUpdate(userId, dto); + //await _searchProvider.CreateOrUpdate(planTemplateCM); + //await _webservicesPageGenerator.Generate(planTemplateCM, userId); + + + // @tony.yakovets: for now i left this request to itself because classes above to tight coupled to PlanDirectory project + // even if it is a hub + var uri = new Uri(CloudConfigurationManager.GetSetting("PlanDirectoryUrl") + "/api/v1/plan_templates/"); var headers = await _hmacService.GenerateHMACHeader( uri, "PlanDirectory", @@ -106,7 +116,7 @@ public async Task Share(Guid planId, string userId) await _client.PostAsync(uri, dto, headers: headers); // Notify user with directing him to PlanDirectory with related search query - var url = CloudConfigurationManager.GetSetting("PlanDirectoryUrl") + "/#?planSearch=" + HttpUtility.UrlEncode(dto.Name); + var url = CloudConfigurationManager.GetSetting("PlanDirectoryUrl") + "/PlanDirectory#?planSearch=" + HttpUtility.UrlEncode(dto.Name); _pusherNotifier.NotifyUser(new NotificationMessageDTO { NotificationType = NotificationType.GenericSuccess, @@ -117,7 +127,7 @@ public async Task Share(Guid planId, string userId) public async Task Unpublish(Guid planId, string userId) { - var uri = new Uri(CloudConfigurationManager.GetSetting("PlanDirectoryUrl") + "/api/plan_templates/?id=" + planId); + var uri = new Uri(CloudConfigurationManager.GetSetting("PlanDirectoryUrl") + "/api/v1/plan_templates/?id=" + planId); var headers = await _hmacService.GenerateHMACHeader( uri, "PlanDirectory", diff --git a/HubWeb.csproj b/HubWeb.csproj index 4a5b550f53..a1efd9ae67 100644 --- a/HubWeb.csproj +++ b/HubWeb.csproj @@ -168,6 +168,10 @@ packages\Microsoft.AspNet.Identity.Owin.2.0.0\lib\net45\Microsoft.AspNet.Identity.Owin.dll True + + packages\Microsoft.Azure.Search.1.1.2\lib\net45\Microsoft.Azure.Search.dll + True + @@ -216,6 +220,18 @@ packages\CommonServiceLocator.1.2\lib\portable-windows8+net40+sl5+windowsphone8\Microsoft.Practices.ServiceLocation.dll True + + packages\Microsoft.Rest.ClientRuntime.1.8.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + packages\Microsoft.Rest.ClientRuntime.Azure.2.5.2\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll + True + + + packages\Microsoft.Spatial.6.13.0\lib\portable-net40+sl5+wp8+win8+wpa\Microsoft.Spatial.dll + True + packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll True @@ -390,6 +406,8 @@ + + @@ -489,6 +507,48 @@ + + PlanCategoryTemplate.tt + True + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ManifestDescriptionTemplate.tt + True + True + @@ -710,6 +770,14 @@ + + TextTemplatingFilePreprocessor + PlanCategoryTemplate.cs + + + TextTemplatingFilePreprocessor + ManifestDescriptionTemplate.cs + @@ -4398,6 +4466,7 @@ + @@ -4483,7 +4552,7 @@ This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - +
@@ -4569,5 +4638,5 @@ - + \ No newline at end of file diff --git a/Infrastructure_PD/Exceptions/ManifestGenerationException.cs b/Infrastructure_PD/Exceptions/ManifestGenerationException.cs new file mode 100644 index 0000000000..b80f60f735 --- /dev/null +++ b/Infrastructure_PD/Exceptions/ManifestGenerationException.cs @@ -0,0 +1,9 @@ +using System; + +namespace HubWeb.Infrastructure_PD.Exceptions +{ + public class ManifestGenerationException : Exception + { + public ManifestGenerationException(string message) : base(message) { } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Exceptions/ManifestNotFoundException.cs b/Infrastructure_PD/Exceptions/ManifestNotFoundException.cs new file mode 100644 index 0000000000..be549f5197 --- /dev/null +++ b/Infrastructure_PD/Exceptions/ManifestNotFoundException.cs @@ -0,0 +1,9 @@ +namespace HubWeb.Infrastructure_PD.Exceptions +{ + public class ManifestNotFoundException : ManifestGenerationException + { + public ManifestNotFoundException(string manifestName) : base($"Manifest '{manifestName}' was not found") + { + } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Exceptions/ManifestPageNotFoundException.cs b/Infrastructure_PD/Exceptions/ManifestPageNotFoundException.cs new file mode 100644 index 0000000000..03a5fd1a93 --- /dev/null +++ b/Infrastructure_PD/Exceptions/ManifestPageNotFoundException.cs @@ -0,0 +1,9 @@ +namespace HubWeb.Infrastructure_PD.Exceptions +{ + public class ManifestPageNotFoundException : ManifestGenerationException + { + public ManifestPageNotFoundException(string manifestName) : base($"Page definition for manifest '{manifestName}' doesn't exist") + { + } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Infrastructure/ActivityTemplateTag.cs b/Infrastructure_PD/Infrastructure/ActivityTemplateTag.cs new file mode 100644 index 0000000000..ced4ec2c36 --- /dev/null +++ b/Infrastructure_PD/Infrastructure/ActivityTemplateTag.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Fr8.Infrastructure.Data.DataTransferObjects; +using Newtonsoft.Json; + +namespace HubWeb.Infrastructure_PD.Infrastructure +{ + public class ActivityTemplateTag : TemplateTag + { + //id, WebServiceId, name + private List> _values = new List>(); + + [JsonIgnore] + public override string Title { get { return string.Join(", ", _values.Select(a => a.Item3).ToArray()); } } + + public ActivityTemplateTag(List values) + { + values.ForEach(a => + { _values.Add(new Tuple(a.Id, a.WebService.Id, a.Name)); }); + } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Infrastructure/AuthTokenManager.cs b/Infrastructure_PD/Infrastructure/AuthTokenManager.cs new file mode 100644 index 0000000000..ffca763c2a --- /dev/null +++ b/Infrastructure_PD/Infrastructure/AuthTokenManager.cs @@ -0,0 +1,36 @@ +//using System; +//using System.Runtime.Caching; + +//namespace HubWeb.Infrastructure_PD.Infrastructure +//{ +// public class AuthTokenManager : IAuthTokenManager +// { +// private const string TokenToFr8AccountPrefix = "TokenToFr8Account_"; + + +// public string CreateToken(Guid fr8AccountId) +// { +// var token = Guid.NewGuid().ToString(); +// MemoryCache.Default.Add( +// TokenToFr8AccountPrefix + token, +// fr8AccountId.ToString(), +// DateTimeOffset.Now.AddMinutes(10) +// ); + +// return token; +// } + +// public Guid? GetFr8AccountId(string token) +// { +// var fr8AccountId = (string)MemoryCache.Default +// .Get(TokenToFr8AccountPrefix + token); + +// if (string.IsNullOrEmpty(fr8AccountId)) +// { +// return null; +// } + +// return Guid.Parse(fr8AccountId); +// } +// } +//} \ No newline at end of file diff --git a/Infrastructure_PD/Infrastructure/HubAuthenticationPDHeaderSignature.cs b/Infrastructure_PD/Infrastructure/HubAuthenticationPDHeaderSignature.cs new file mode 100644 index 0000000000..a4eacaaf5b --- /dev/null +++ b/Infrastructure_PD/Infrastructure/HubAuthenticationPDHeaderSignature.cs @@ -0,0 +1,19 @@ +using System.Net.Http; +using Fr8.Infrastructure.Interfaces; + +namespace PlanDirectory.Infrastructure +{ + public class HubAuthenticationPDHeaderSignature : IRequestSignature + { + private readonly string _fr8Token; + public HubAuthenticationPDHeaderSignature(string token, string userId) + { + _fr8Token = $"key={token}" + (string.IsNullOrEmpty(userId) ? "" : $", user={userId}"); + } + + public void SignRequest(HttpRequestMessage request) + { + request.Headers.Add(System.Net.HttpRequestHeader.Authorization.ToString(), $"FR8-PD {_fr8Token}"); + } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Infrastructure/ManifestPageGenerator.cs b/Infrastructure_PD/Infrastructure/ManifestPageGenerator.cs new file mode 100644 index 0000000000..94b474412b --- /dev/null +++ b/Infrastructure_PD/Infrastructure/ManifestPageGenerator.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Data.Entities; +using Data.Interfaces; +using Fr8.Infrastructure.Data.Manifests; +using Hub.Interfaces; +using HubWeb.Infrastructure_PD.Exceptions; +using HubWeb.Infrastructure_PD.Interfaces; +using HubWeb.ManifestPages; + + +namespace PlanDirectory.Infrastructure +{ + public class ManifestPageGenerator : IManifestPageGenerator + { + private const string PageType = "Manifest Description"; + private const string PageExtension = ".html"; + + private readonly ITemplateGenerator _templateGenerator; + private readonly IPageDefinition _pageDefinitionService; + private readonly IFr8Account _fr8AccountService; + private readonly IUnitOfWorkFactory _uowFactory; + + public ManifestPageGenerator(ITemplateGenerator templateGenerator, IPageDefinition pageDefinitionService, IFr8Account fr8AccountService, IUnitOfWorkFactory uowFactory) + { + _templateGenerator = templateGenerator; + _pageDefinitionService = pageDefinitionService; + _fr8AccountService = fr8AccountService; + _uowFactory = uowFactory; + } + + public async Task Generate(string manifestName, GenerateMode generateMode) + { + if (string.IsNullOrWhiteSpace(manifestName)) + { + throw new ArgumentException("Value can't be empty", nameof(manifestName)); + } + var normalizedManifestName = manifestName.ToLower(); + var pageName = manifestName; + var fileName = $"{normalizedManifestName}{PageExtension}"; + var pageDefinition = _pageDefinitionService.Get(x => x.Type == PageType && x.PageName == pageName).FirstOrDefault(); + switch (generateMode) + { + case GenerateMode.RetrieveExisting: + if (pageDefinition == null) + { + throw new ManifestPageNotFoundException(manifestName); + } + return pageDefinition.Url; + case GenerateMode.GenerateIfNotExists: + if (pageDefinition != null) + { + return pageDefinition.Url; + } + break; + } + var systemUser = _fr8AccountService.GetSystemUser()?.EmailAddress?.Address; + if (string.IsNullOrEmpty(systemUser)) + { + throw new ManifestGenerationException("Failed to generate manifest description page. System user doesn't exist or not configured properly"); + } + using (var uow = _uowFactory.Create()) + { + var manifests = uow.MultiTenantObjectRepository.Query(systemUser, x => x.Name.ToLower() == normalizedManifestName); + if (manifests.Count == 0) + { + throw new ManifestNotFoundException(manifestName); + } + manifests.Sort((x, y) => int.Parse(y.Version).CompareTo(int.Parse(x.Version))); + if (pageDefinition == null) + { + pageDefinition = new PageDefinitionDO + { + Type = PageType, + PageName = pageName, + }; + } + pageDefinition.Title = $"Manifest description - {manifestName}"; + pageDefinition.Description = $"Basic information and sample JSON of all registered version of '{manifestName}' manifest"; + pageDefinition.Url = new Uri($"{_templateGenerator.BaseUrl}/{fileName}"); + await _templateGenerator.Generate(new ManifestDescriptionTemplate(), fileName, new Dictionary + { + ["Manifests"] = manifests + }); + _pageDefinitionService.CreateOrUpdate(pageDefinition); + return pageDefinition.Url; + } + } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Infrastructure/PlanDirectoryAuthorizeAttribute.cs b/Infrastructure_PD/Infrastructure/PlanDirectoryAuthorizeAttribute.cs new file mode 100644 index 0000000000..f8c4768b53 --- /dev/null +++ b/Infrastructure_PD/Infrastructure/PlanDirectoryAuthorizeAttribute.cs @@ -0,0 +1,18 @@ +using System.Web; +using System.Web.Mvc; +using Hub.Managers; + +namespace PlanDirectory.Infrastructure +{ + public class PlanDirectoryAuthorizeAttribute : DockyardAuthorizeAttribute + { + public PlanDirectoryAuthorizeAttribute(params string[] roles) : base(roles) + { + } + + protected override string BuildRedirectUrl(AuthorizationContext context) + { + return VirtualPathUtility.ToAbsolute("~/Reauthenticate"); + } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Infrastructure/PlanDirectoryBootstrapper.cs b/Infrastructure_PD/Infrastructure/PlanDirectoryBootstrapper.cs new file mode 100644 index 0000000000..26c7504797 --- /dev/null +++ b/Infrastructure_PD/Infrastructure/PlanDirectoryBootstrapper.cs @@ -0,0 +1,79 @@ +using System; +using System.IO; +using System.Reflection; +using System.Web.Hosting; +using Data.Repositories; +using Fr8.Infrastructure.Interfaces; +using Fr8.Infrastructure.Utilities.Configuration; +using Hub.Interfaces; +using Hub.Services; +using HubWeb.Infrastructure_PD.Infrastructure; +using HubWeb.Infrastructure_PD.Interfaces; +using StructureMap; +using StructureMap.Configuration.DSL; + +namespace PlanDirectory.Infrastructure +{ + public class PlanDirectoryBootStrapper + { + public class LiveMode : Registry + { + public LiveMode() + { + For().Use().Singleton(); + //For().Use().Singleton(); + For().Use().Singleton(); + For().Use(); + For().Use().Singleton(); + For().Use().Singleton(); + For().Use().Singleton(); + //For().Use( + // x => new PlanDirectoryHubCommunicatorFactory( + // ObjectFactory.GetInstance(), + // CloudConfigurationManager.GetSetting("HubApiBaseUrl"), + // CloudConfigurationManager.GetSetting("PlanDirectorySecret") + // ) + //); + var serverPath = GetServerPath(); + + //now it is hub + var protocol = CloudConfigurationManager.GetSetting("ServerProtocol"); + var server = CloudConfigurationManager.GetSetting("ServerDomainName"); + var port = CloudConfigurationManager.GetSetting("ServerPort"); + var planDirectoryUrl = new Uri(protocol + server + port); + //var planDirectoryUrl = new Uri(CloudConfigurationManager.GetSetting("PlanDirectoryUrl")); + + ConfigureManifestPageGenerator(planDirectoryUrl, serverPath); + ConfigurePlanPageGenerator(planDirectoryUrl, serverPath); + } + + private void ConfigurePlanPageGenerator(Uri planDirectoryUrl, string serverPath) + { + var templateGenerator = new TemplateGenerator(new Uri($"{planDirectoryUrl}categorypages"), $"{serverPath}/categorypages"); + For().Use().Singleton().Ctor().Is(templateGenerator); + } + + private void ConfigureManifestPageGenerator(Uri planDirectoryUrl, string serverPath) + { + var templateGenerator = new TemplateGenerator(new Uri($"{planDirectoryUrl}manifestpages"), $"{serverPath}/manifestpages"); + For().Use().Singleton().Ctor().Is(templateGenerator); + } + + private static string GetServerPath() + { + var serverPath = HostingEnvironment.MapPath("~"); + if (serverPath == null) + { + var uriPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase); + serverPath = new Uri(uriPath).LocalPath; + } + return serverPath; + } + } + + public static void LiveConfiguration(ConfigurationExpression configuration) + { + configuration.AddRegistry(); + } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Infrastructure/PlanDirectoryHMACAuthenticateAttribute.cs b/Infrastructure_PD/Infrastructure/PlanDirectoryHMACAuthenticateAttribute.cs new file mode 100644 index 0000000000..22c0905366 --- /dev/null +++ b/Infrastructure_PD/Infrastructure/PlanDirectoryHMACAuthenticateAttribute.cs @@ -0,0 +1,51 @@ +using System.Configuration; +using System.Security.Principal; +using System.Threading; +using System.Threading.Tasks; +using System.Web; +using System.Web.Http.Filters; +using Fr8.Infrastructure.Security; +using Fr8.Infrastructure.Utilities.Configuration; +using Hub.Infrastructure; + +namespace PlanDirectory.Infrastructure +{ + public class PlanDirectoryHMACAuthenticateAttribute : fr8HMACAuthenticateAttribute + { + private const string TerminalId = "PlanDirectory"; + + + public PlanDirectoryHMACAuthenticateAttribute() + { + } + + protected override void Success(HttpAuthenticationContext context, string terminalId, string userId) + { + var identity = new Fr8Identity("terminal-" + terminalId, userId); + var principle = new GenericPrincipal(identity, new string[] { }); + + Thread.CurrentPrincipal = principle; + context.Principal = principle; + + if (HttpContext.Current != null) + { + HttpContext.Current.User = principle; + } + } + + protected override Task GetTerminalSecret(string terminalId) + { + if (terminalId == TerminalId) + { + return Task.FromResult(CloudConfigurationManager.GetSetting("PlanDirectorySecret")); + } + + return Task.FromResult(null); + } + + protected override Task CheckPermission(string terminalId, string userId) + { + return Task.FromResult(true); + } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Infrastructure/PlanDirectoryHubCommunicatorFactory.cs b/Infrastructure_PD/Infrastructure/PlanDirectoryHubCommunicatorFactory.cs new file mode 100644 index 0000000000..6e0f6c1aea --- /dev/null +++ b/Infrastructure_PD/Infrastructure/PlanDirectoryHubCommunicatorFactory.cs @@ -0,0 +1,25 @@ +//using Fr8.Infrastructure.Interfaces; +//using Fr8.TerminalBase.Interfaces; +//using Fr8.TerminalBase.Services; + +//namespace PlanDirectory.Infrastructure +//{ +// public class PlanDirectoryHubCommunicatorFactory : IHubCommunicatorFactory +// { +// private readonly string _apiUrl; +// private readonly string _terminalToken; +// private readonly IRestfulServiceClientFactory _factory; +// public PlanDirectoryHubCommunicatorFactory(IRestfulServiceClientFactory factory, string apiUrl, string terminalToken) +// { +// _apiUrl = apiUrl; +// _terminalToken = terminalToken; +// _factory = factory; +// } + +// public IHubCommunicator Create(string userId) +// { +// var restfulServiceClient = _factory.Create(new HubAuthenticationPDHeaderSignature(_terminalToken, userId)); +// return new DefaultHubCommunicator(restfulServiceClient, _apiUrl, _terminalToken, userId); +// } +// } +//} diff --git a/Infrastructure_PD/Infrastructure/PlanTemplate.Impl.cs b/Infrastructure_PD/Infrastructure/PlanTemplate.Impl.cs new file mode 100644 index 0000000000..3b63f612a6 --- /dev/null +++ b/Infrastructure_PD/Infrastructure/PlanTemplate.Impl.cs @@ -0,0 +1,136 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using Data.Entities; +using Data.Infrastructure.StructureMap; +using Data.Interfaces; +using Data.States; +using Fr8.Infrastructure.Data.DataTransferObjects; +using Fr8.Infrastructure.Data.Manifests; +using HubWeb.Infrastructure_PD.Interfaces; +using StructureMap; + +namespace HubWeb.Infrastructure_PD.Infrastructure +{ + public class PlanTemplate : IPlanTemplate + { + public Task CreateOrUpdate(string fr8AccountId, PublishPlanTemplateDTO planTemplate) + { + using (var uow = ObjectFactory.GetInstance()) + { + var fr8Account = uow.UserRepository.GetByKey(fr8AccountId); + if (fr8Account == null) + { + throw new ApplicationException("Invalid Fr8AccountId."); + } + + var planIdString = planTemplate.ParentPlanId.ToString(); + + var existingPlanTemplateCM = uow.MultiTenantObjectRepository + .Query( + fr8AccountId, + x => x.ParentPlanId == planIdString + ) + .FirstOrDefault(); + + var planTemplateCM = CreatePlanTemplateCM( + planTemplate, + existingPlanTemplateCM, + fr8Account + ); + + uow.MultiTenantObjectRepository.AddOrUpdate( + fr8AccountId, + planTemplateCM, + x => x.ParentPlanId == planIdString + ); + + uow.SaveChanges(); + + var objectId = uow.MultiTenantObjectRepository + .GetObjectId(fr8AccountId, x => x.ParentPlanId == planIdString); + + if (existingPlanTemplateCM == null && objectId.HasValue) + { + ObjectFactory.GetInstance().SetDefaultRecordBasedSecurityForObject(Roles.OwnerOfCurrentObject, objectId.ToString(), "Plan Template"); + } + + return Task.FromResult(planTemplateCM); + } + } + + public Task GetPlanTemplateDTO(string fr8AccountId, Guid planId) + { + using (var uow = ObjectFactory.GetInstance()) + { + var planIdString = planId.ToString(); + + var planTemplateCM = uow.MultiTenantObjectRepository + .Query(fr8AccountId, x => x.ParentPlanId == planIdString) + .FirstOrDefault(); + + if (planTemplateCM == null) + { + return Task.FromResult(null); + } + + return Task.FromResult(CreatePlanTemplateDTO(planTemplateCM)); + } + } + + public Task Get(string fr8AccountId, Guid planId) + { + using (var uow = ObjectFactory.GetInstance()) + { + var planIdString = planId.ToString(); + + var planTemplateCM = uow.MultiTenantObjectRepository + .Query(fr8AccountId, x => x.ParentPlanId == planIdString) + .FirstOrDefault(); + + return Task.FromResult(planTemplateCM); + } + } + + public async Task Remove(string fr8AccountId, Guid planId) + { + using (var uow = ObjectFactory.GetInstance()) + { + var planIdStr = planId.ToString(); + uow.MultiTenantObjectRepository + .Delete( + fr8AccountId, + x => x.ParentPlanId == planIdStr + ); + uow.SaveChanges(); + await Task.Yield(); + } + } + + private PlanTemplateCM CreatePlanTemplateCM(PublishPlanTemplateDTO dto, + PlanTemplateCM existing, Fr8AccountDO account) + { + return new PlanTemplateCM() + { + Name = dto.Name, + Description = dto.Description, + ParentPlanId = dto.ParentPlanId.ToString(), + PlanContents = dto.PlanContents, + Version = existing?.Version ?? 1, + OwnerId = account.Id, + OwnerName = account.UserName + }; + } + + private PublishPlanTemplateDTO CreatePlanTemplateDTO(PlanTemplateCM planTemplate) + { + return new PublishPlanTemplateDTO + { + Name = planTemplate.Name, + Description = planTemplate.Description, + ParentPlanId = Guid.Parse(planTemplate.ParentPlanId), + PlanContents = planTemplate.PlanContents + }; + } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Infrastructure/SearchProvider.Impl.cs b/Infrastructure_PD/Infrastructure/SearchProvider.Impl.cs new file mode 100644 index 0000000000..099021b9ce --- /dev/null +++ b/Infrastructure_PD/Infrastructure/SearchProvider.Impl.cs @@ -0,0 +1,193 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Fr8.Infrastructure.Data.Manifests; +using Fr8.Infrastructure.Utilities.Configuration; +using HubWeb.Infrastructure_PD.Interfaces; +using Microsoft.Azure.Search; +using Microsoft.Azure.Search.Models; + +namespace PlanDirectory.Infrastructure +{ + public class SearchProvider : ISearchProvider + { + public async Task Initialize(bool recreate) + { + using (var searchClient = CreateAzureSearchClient()) + { + if (recreate) + { + await DeletePlanTemplateIndexIfExists(searchClient); + } + + await EnsurePlanTemplateIndexExists(searchClient); + } + } + + private string GetAzureSearchServiceName() + { + var serviceName = CloudConfigurationManager.GetSetting("AzureSearchServiceName"); + return serviceName; + } + + private string GetAzureSearchApiKey() + { + var apiKey = CloudConfigurationManager.GetSetting("AzureSearchApiKey"); + return apiKey; + } + + private string GetPlanTemplateIndexName() + { + var indexName = CloudConfigurationManager.GetSetting("AzureSearchIndexName"); + return indexName; + } + + private SearchServiceClient CreateAzureSearchClient() + { + var searchClient = new SearchServiceClient( + GetAzureSearchServiceName(), + new SearchCredentials(GetAzureSearchApiKey()) + ); + + return searchClient; + } + + private Index CreateIndexDefinition() + { + var definition = new Index() + { + Name = GetPlanTemplateIndexName(), + Fields = new[] + { + new Field("parentPlanId", DataType.String) { IsKey = true }, + new Field("name", DataType.String) { IsSearchable = true, IsFilterable = true, IsSortable = true }, + new Field("description", DataType.String) { IsSearchable = true, IsFilterable = true }, + new Field("owner", DataType.String) { IsSearchable = true, IsFilterable = true } + } + }; + + return definition; + } + + private async Task EnsurePlanTemplateIndexExists(SearchServiceClient searchClient) + { + var exists = await searchClient.Indexes.ExistsAsync(GetPlanTemplateIndexName()); + if (!exists) + { + await searchClient.Indexes.CreateAsync(CreateIndexDefinition()); + } + } + + private async Task DeletePlanTemplateIndexIfExists(SearchServiceClient searchClient) + { + var exists = await searchClient.Indexes.ExistsAsync(GetPlanTemplateIndexName()); + if (exists) + { + await searchClient.Indexes.DeleteAsync(GetPlanTemplateIndexName()); + } + } + + public async Task Search(SearchRequestDTO request) + { + using (var searchClient = CreateAzureSearchClient()) + { + using (var indexClient = searchClient.Indexes.GetClient(GetPlanTemplateIndexName())) + { + var sp = new SearchParameters(); + sp.OrderBy = new List() { "name" }; + sp.IncludeTotalResultCount = true; + + if (request.PageStart > 0 && request.PageSize > 0) + { + sp.Skip = (request.PageStart - 1) * request.PageSize; + sp.Top = request.PageSize; + } + + var text = string.IsNullOrEmpty(request.Text) ? "*" : request.Text; + + var searchResult = await indexClient.Documents.SearchAsync(text, sp); + var resultingDocuments = searchResult.Results.Select(x => ConvertSearchDocumentToDTO(x.Document)).ToList(); + + var dto = new SearchResultDTO() + { + PlanTemplates = resultingDocuments, + TotalCount = searchResult.Count.GetValueOrDefault() + }; + + return dto; + } + } + } + + public async Task CreateOrUpdate(PlanTemplateCM planTemplate) + { + using (var searchClient = CreateAzureSearchClient()) + { + using (var indexClient = searchClient.Indexes.GetClient(GetPlanTemplateIndexName())) + { + var document = ConvertToSearchDocument(planTemplate); + + var batch = IndexBatch.New( + new IndexAction[] + { + IndexAction.MergeOrUpload(document) + } + ); + + await indexClient.Documents.IndexAsync(batch); + } + } + } + + public async Task Remove(Guid planId) + { + using (var searchClient = CreateAzureSearchClient()) + { + using (var indexClient = searchClient.Indexes.GetClient(GetPlanTemplateIndexName())) + { + var doc = ConvertToSearchDocument(planId); + + var batch = IndexBatch.New(new[] { IndexAction.Delete(doc) } ); + await indexClient.Documents.IndexAsync(batch); + } + } + } + + private Document ConvertToSearchDocument(Guid planId) + { + var document = new Document() + { + { "parentPlanId", planId.ToString() } + }; + + return document; + } + + private Document ConvertToSearchDocument(PlanTemplateCM cm) + { + var document = new Document() + { + { "parentPlanId", cm.ParentPlanId.ToString() }, + { "name", cm.Name }, + { "description", cm.Description }, + { "owner", cm.OwnerName } + }; + + return document; + } + + private SearchItemDTO ConvertSearchDocumentToDTO(Document document) + { + var dto = new SearchItemDTO() + { + ParentPlanId = Guid.Parse((string)document["parentPlanId"]), + Name = (string)document["name"], + Description = (string)document["description"], + Owner = (string)document["owner"] + }; + + return dto; + } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Infrastructure/TagGenerator.cs b/Infrastructure_PD/Infrastructure/TagGenerator.cs new file mode 100644 index 0000000000..1f1dc56f2d --- /dev/null +++ b/Infrastructure_PD/Infrastructure/TagGenerator.cs @@ -0,0 +1,158 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Fr8.Infrastructure.Data.DataTransferObjects; +using Fr8.Infrastructure.Data.Manifests; +using Fr8.Infrastructure.Interfaces; +using Fr8.Infrastructure.Utilities.Configuration; +using HubWeb.Infrastructure_PD.Interfaces; +using StructureMap; + +namespace HubWeb.Infrastructure_PD.Infrastructure +{ + public class TagGenerator : ITagGenerator + { + /// + /// The result of this method is a a list of ActivityTemplateTag and WebServiceTemplateTag classes + /// For a plan, that consists of activity named "A" of a webservice "Y" + /// and of activity named "B" of a webservice "Z" + /// the result would be: + /// ActivityTemplateTag: A + /// ActivityTemplateTag: B + /// ActivityTemplateTag: A, B + /// WebServiceTemplateTag: Y + /// WebServiceTemplateTag: Z + /// WebServiceTemplateTag: Y, Z + /// + public async Task GetTags(PlanTemplateCM planTemplateCM, string fr8AccountId) + { + var result = new TemplateTagStorage(); + + //requesting all activity templates + var hmacService = ObjectFactory.GetInstance(); + var client = ObjectFactory.GetInstance(); + + var uri = new Uri(CloudConfigurationManager.GetSetting("HubApiBaseUrl") + "activitytemplates"); + var headers = await hmacService.GenerateHMACHeader( + uri, + "PlanDirectory", + CloudConfigurationManager.GetSetting("PlanDirectorySecret"), + fr8AccountId, + null + ); + + var activityCategories = await client.GetAsync>( + uri, headers: headers); + + var activityDict = activityCategories + .SelectMany(a => a.Activities) + .ToDictionary(k => $"{k.Name};{k.Version};{k.Terminal.Name}:{k.Terminal.Version}"); + + //1. getting ids of used templates + var plan = planTemplateCM.PlanContents; + var usedActivityTemplatesIds = new HashSet(); + + if (plan.SubPlans != null) + { + foreach (var subplan in plan.SubPlans) + { + CollectActivityTemplateIds(subplan, usedActivityTemplatesIds); + } + } + + if (usedActivityTemplatesIds.Count == 0) + { + return new TemplateTagStorage(); + } + + //2. getting used templates + var usedActivityTemplates = usedActivityTemplatesIds.Intersect(activityDict.Keys) + .Select(k => activityDict[k]) + .Distinct(ActivityTemplateDTO.IdComparer) + .OrderBy(a => a.Name) + .ToList(); + if (usedActivityTemplates.Count != usedActivityTemplatesIds.Count) + throw new ApplicationException("Template references activity that is not registered in Hub"); + //3. adding tags for activity templates + var activityTemplatesCombinations = GetCombinations(usedActivityTemplates); + activityTemplatesCombinations.ForEach(a => result.ActivityTemplateTags.Add(new ActivityTemplateTag(a))); + + //4. adding tags for webservices + var usedWebServices = usedActivityTemplates.Select(a => a.WebService).Distinct(WebServiceDTO.NameComparer).OrderBy(b => b.Name).ToList(); + var webServicesCombination = GetCombinations(usedWebServices); + webServicesCombination.ForEach(a => result.WebServiceTemplateTags.Add(new WebServiceTemplateTag(a))); + + return result; + } + + private void CollectActivityTemplateIds(FullSubplanDto subplan, HashSet ids) + { + if (subplan.Activities == null) + { + return; + } + + foreach (var activity in subplan.Activities) + { + CollectActivityTemplateIds(activity, ids); + } + } + + private void CollectActivityTemplateIds(ActivityDTO activity, HashSet ids) + { + var at = activity.ActivityTemplate; + if (at != null && !string.IsNullOrEmpty(at.Name) + && !string.IsNullOrEmpty(at.Version) + && !string.IsNullOrEmpty(at.TerminalName) + && !string.IsNullOrEmpty(at.TerminalVersion)) + { + ids.Add($"{at.Name};{at.Version};{at.TerminalName}:{at.TerminalVersion}"); + } + + if (activity.ChildrenActivities == null) + { + return; + } + + foreach (var child in activity.ChildrenActivities) + { + CollectActivityTemplateIds(child, ids); + } + } + + /// + /// K-combination algorythm implementation. + /// For input: "A, B, C" + /// would output: + /// A, + /// A,B, + /// A,B,C, + /// A,C, + /// B, + /// B,C, + /// C, + /// + /// might require optimisation if this chunk will ever become a bottleneck + /// + private List> GetCombinations(List list) + { + var result = new List>(); + double count = Math.Pow(2, list.Count); + for (int i = 1; i <= count - 1; i++) + { + var row = new List(); + string str = Convert.ToString(i, 2).PadLeft(list.Count, '0'); + for (int j = 0; j < str.Length; j++) + { + if (str[j] == '1') + { + row.Add(list[j]); + } + } + result.Add(row); + } + return result; + } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Infrastructure/TemplateGenerator.cs b/Infrastructure_PD/Infrastructure/TemplateGenerator.cs new file mode 100644 index 0000000000..129bc33a00 --- /dev/null +++ b/Infrastructure_PD/Infrastructure/TemplateGenerator.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using HubWeb.Infrastructure_PD.Interfaces; + +namespace HubWeb.Infrastructure_PD.Infrastructure +{ + public class TemplateGenerator : ITemplateGenerator + { + public TemplateGenerator(Uri baseUrl, string outputFolder) + { + if (baseUrl == null) + { + throw new ArgumentNullException(nameof(baseUrl)); + } + if (string.IsNullOrWhiteSpace(outputFolder)) + { + throw new ArgumentException("Value can't be empty", nameof(outputFolder)); + } + BaseUrl = baseUrl; + OutputFolder = outputFolder; + } + + public TemplateGenerator(string baseUrl, string outputFolder) : this(new Uri(baseUrl), outputFolder) + { + } + + public Uri BaseUrl { get; set; } + + public string OutputFolder { get; set; } + + public async Task Generate(dynamic template, string fileName, IDictionary parameters = null) + { + if (template == null) + { + throw new ArgumentNullException(nameof(template)); + } + if (string.IsNullOrWhiteSpace(fileName)) + { + throw new ArgumentException("Value can't be empty", nameof(fileName)); + } + template.Session = parameters ?? new Dictionary(0); ; + template.Initialize(); + var pageContent = (string)template.TransformText(); + if (!Directory.Exists(OutputFolder)) + { + Directory.CreateDirectory(OutputFolder); + } + using (var writer = new StreamWriter(Path.Combine(OutputFolder, fileName))) + { + await writer.WriteAsync(pageContent); + } + } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Infrastructure/TemplateTag.cs b/Infrastructure_PD/Infrastructure/TemplateTag.cs new file mode 100644 index 0000000000..b9d2ff3421 --- /dev/null +++ b/Infrastructure_PD/Infrastructure/TemplateTag.cs @@ -0,0 +1,10 @@ +using Newtonsoft.Json; + +namespace HubWeb.Infrastructure_PD.Infrastructure +{ + public abstract class TemplateTag + { + [JsonIgnore] + public abstract string Title { get; } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Infrastructure/TemplateTagStorage.cs b/Infrastructure_PD/Infrastructure/TemplateTagStorage.cs new file mode 100644 index 0000000000..74804e3376 --- /dev/null +++ b/Infrastructure_PD/Infrastructure/TemplateTagStorage.cs @@ -0,0 +1,16 @@ +using System.Collections.Generic; + +namespace HubWeb.Infrastructure_PD.Infrastructure +{ + public class TemplateTagStorage + { + public TemplateTagStorage() + { + WebServiceTemplateTags = new List(); + ActivityTemplateTags = new List(); + } + public ICollection WebServiceTemplateTags { get; set; } + + public ICollection ActivityTemplateTags { get; set; } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Infrastructure/WebServiceTemplateTag.cs b/Infrastructure_PD/Infrastructure/WebServiceTemplateTag.cs new file mode 100644 index 0000000000..9fa4b202ca --- /dev/null +++ b/Infrastructure_PD/Infrastructure/WebServiceTemplateTag.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Fr8.Infrastructure.Data.DataTransferObjects; +using Newtonsoft.Json; +using PlanDirectory.Infrastructure; + +namespace HubWeb.Infrastructure_PD.Infrastructure +{ + public class WebServiceTemplateTag : TemplateTag + { + //id, iconPath, name + private List> _values = new List>(); + + public Dictionary TagsWithIcons + { + get { return _values.ToDictionary(x => x.Item3, x => x.Item2); } + } + + [JsonIgnore] + public override string Title + { + get { return string.Join(", ", _values.Select(a => a.Item3).ToArray()); } + } + + public WebServiceTemplateTag(List values) + { + values.ForEach(a => + { _values.Add(new Tuple(a.Id, a.IconPath, a.Name)); }); + } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Infrastructure/WebservicesPageGenerator.cs b/Infrastructure_PD/Infrastructure/WebservicesPageGenerator.cs new file mode 100644 index 0000000000..f489f66ea7 --- /dev/null +++ b/Infrastructure_PD/Infrastructure/WebservicesPageGenerator.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Data.Entities; +using Fr8.Infrastructure.Data.DataTransferObjects; +using Fr8.Infrastructure.Data.Manifests; +using Fr8.Infrastructure.Utilities.Configuration; +using Hub.Interfaces; +using HubWeb.CategoryPages; +using HubWeb.Infrastructure_PD.Interfaces; + +namespace HubWeb.Infrastructure_PD.Infrastructure +{ + public class WebservicesPageGenerator : IWebservicesPageGenerator + { + private const string TagsSeparator = "-"; + private const string PageExtension = ".html"; + private const string PageType = "WebService"; + + private readonly IPageDefinition _pageDefinitionService; + private readonly IPlanTemplate _planTemplateService; + private readonly ITemplateGenerator _templateGenerator; + private readonly ITagGenerator _tagGenerator; + + public WebservicesPageGenerator(IPageDefinition pageDefinitionService, IPlanTemplate planTemplateService, ITemplateGenerator templateGenerator, ITagGenerator tagGenerator) + { + _pageDefinitionService = pageDefinitionService; + _planTemplateService = planTemplateService; + _templateGenerator = templateGenerator; + _tagGenerator = tagGenerator; + } + + public async Task Generate(PlanTemplateCM planTemplate, string fr8AccountId) + { + var storage = await _tagGenerator.GetTags(planTemplate, fr8AccountId); + foreach (var tag in storage.WebServiceTemplateTags) + { + var tags = tag.TagsWithIcons.Select(x => x.Key).ToArray(); + var pageName = GeneratePageNameFromTags(tags); + var pageDefinition = _pageDefinitionService.Get(x => x.PageName == pageName && x.Type == PageType).FirstOrDefault() ?? new PageDefinitionDO + { + PageName = pageName, + Tags = tags, + Type = PageType, + Title = tag.Title + }; + if (!pageDefinition.PlanTemplatesIds.Contains(planTemplate.ParentPlanId)) + { + pageDefinition.PlanTemplatesIds.Add(planTemplate.ParentPlanId); + } + pageDefinition.Url = new Uri($"{_templateGenerator.BaseUrl}/{pageName}"); + _pageDefinitionService.CreateOrUpdate(pageDefinition); + var relatedPageDefinitions = _pageDefinitionService.GetAll().Where(x => x.PlanTemplatesIds.Contains(planTemplate.ParentPlanId)); + var curPageDefinition = relatedPageDefinitions.FirstOrDefault(x => x.PageName == pageName); + var curRelatedPlans = new List(); + foreach (var planTemplateId in curPageDefinition.PlanTemplatesIds) + { + curRelatedPlans.Add(_planTemplateService.GetPlanTemplateDTO(fr8AccountId, Guid.Parse(planTemplateId)).Result); + } + var relatedPlans = new List>(); + foreach (var publishPlanTemplateDTO in curRelatedPlans) + { + relatedPlans.Add(new + Tuple( + publishPlanTemplateDTO.Name, + publishPlanTemplateDTO.Description ?? publishPlanTemplateDTO.Name, + CloudConfigurationManager.GetSetting("HubApiBaseUrl").Replace("/api/v1/", "") + + "/dashboard/plans/" + publishPlanTemplateDTO.ParentPlanId + "/builder?viewMode=plan")); + } + await _templateGenerator.Generate(new PlanCategoryTemplate(), pageName, new Dictionary + { + ["Name"] = pageName, + ["Tags"] = tag.TagsWithIcons, + ["RelatedPlans"] = relatedPlans + }); + } + } + + /// + /// Generates pageName from tagsTitles + /// + /// + /// + private static string GeneratePageNameFromTags(IEnumerable tagsTitles) + { + return string.Join( + TagsSeparator, + tagsTitles.Select(x => x.ToLower()).OrderBy(x => x)) + PageExtension; + } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Interfaces/CreatePlanDTO.cs b/Infrastructure_PD/Interfaces/CreatePlanDTO.cs new file mode 100644 index 0000000000..02cb159ee1 --- /dev/null +++ b/Infrastructure_PD/Interfaces/CreatePlanDTO.cs @@ -0,0 +1,7 @@ +namespace HubWeb.Infrastructure_PD.Interfaces +{ + public class CreatePlanDTO + { + public int PlanTemplateId { get; set; } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Interfaces/GenerateMode.cs b/Infrastructure_PD/Interfaces/GenerateMode.cs new file mode 100644 index 0000000000..64c87c4f0f --- /dev/null +++ b/Infrastructure_PD/Interfaces/GenerateMode.cs @@ -0,0 +1,9 @@ +namespace HubWeb.Infrastructure_PD.Interfaces +{ + public enum GenerateMode + { + RetrieveExisting, + GenerateIfNotExists, + GenerateAlways + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Interfaces/IAuthTokenManager.cs b/Infrastructure_PD/Interfaces/IAuthTokenManager.cs new file mode 100644 index 0000000000..ca970b9d94 --- /dev/null +++ b/Infrastructure_PD/Interfaces/IAuthTokenManager.cs @@ -0,0 +1,10 @@ +//using System; + +//namespace PlanDirectory.Interfaces +//{ +// public interface IAuthTokenManager +// { +// string CreateToken(Guid fr8AccountId); +// Guid? GetFr8AccountId(string token); +// } +//} diff --git a/Infrastructure_PD/Interfaces/IHubCommunicatorFactory.cs b/Infrastructure_PD/Interfaces/IHubCommunicatorFactory.cs new file mode 100644 index 0000000000..10124a3e93 --- /dev/null +++ b/Infrastructure_PD/Interfaces/IHubCommunicatorFactory.cs @@ -0,0 +1,9 @@ +//using Fr8.TerminalBase.Interfaces; + +//namespace PlanDirectory.Interfaces +//{ +// public interface IHubCommunicatorFactory +// { +// IHubCommunicator Create(string userId); +// } +//} diff --git a/Infrastructure_PD/Interfaces/IManifestPageGenerator.cs b/Infrastructure_PD/Interfaces/IManifestPageGenerator.cs new file mode 100644 index 0000000000..1f346ac557 --- /dev/null +++ b/Infrastructure_PD/Interfaces/IManifestPageGenerator.cs @@ -0,0 +1,10 @@ +using System; +using System.Threading.Tasks; + +namespace HubWeb.Infrastructure_PD.Interfaces +{ + public interface IManifestPageGenerator + { + Task Generate(string manifestName, GenerateMode generateMode); + } +} diff --git a/Infrastructure_PD/Interfaces/IPlanTemplate.cs b/Infrastructure_PD/Interfaces/IPlanTemplate.cs new file mode 100644 index 0000000000..77b39e5017 --- /dev/null +++ b/Infrastructure_PD/Interfaces/IPlanTemplate.cs @@ -0,0 +1,15 @@ +using System; +using System.Threading.Tasks; +using Fr8.Infrastructure.Data.DataTransferObjects; +using Fr8.Infrastructure.Data.Manifests; + +namespace HubWeb.Infrastructure_PD.Interfaces +{ + public interface IPlanTemplate + { + Task CreateOrUpdate(string fr8AccountId, PublishPlanTemplateDTO planTemplate); + Task GetPlanTemplateDTO(string fr8AccountId, Guid planId); + Task Get(string fr8AccountId, Guid planId); + Task Remove(string fr8AccountId, Guid planId); + } +} diff --git a/Infrastructure_PD/Interfaces/ISearchProvider.cs b/Infrastructure_PD/Interfaces/ISearchProvider.cs new file mode 100644 index 0000000000..11c7f85a64 --- /dev/null +++ b/Infrastructure_PD/Interfaces/ISearchProvider.cs @@ -0,0 +1,14 @@ +using System; +using System.Threading.Tasks; +using Fr8.Infrastructure.Data.Manifests; + +namespace HubWeb.Infrastructure_PD.Interfaces +{ + public interface ISearchProvider + { + Task Initialize(bool recreate); + Task Search(SearchRequestDTO request); + Task CreateOrUpdate(PlanTemplateCM planTemplate); + Task Remove(Guid planId); + } +} diff --git a/Infrastructure_PD/Interfaces/ITagGenerator.cs b/Infrastructure_PD/Interfaces/ITagGenerator.cs new file mode 100644 index 0000000000..d43c8dfbbd --- /dev/null +++ b/Infrastructure_PD/Interfaces/ITagGenerator.cs @@ -0,0 +1,11 @@ +using System.Threading.Tasks; +using Fr8.Infrastructure.Data.Manifests; +using HubWeb.Infrastructure_PD.Infrastructure; + +namespace HubWeb.Infrastructure_PD.Interfaces +{ + public interface ITagGenerator + { + Task GetTags(PlanTemplateCM planTemplateCM, string fr8AccountId); + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Interfaces/ITemplateGenerator.cs b/Infrastructure_PD/Interfaces/ITemplateGenerator.cs new file mode 100644 index 0000000000..a65bcb3a66 --- /dev/null +++ b/Infrastructure_PD/Interfaces/ITemplateGenerator.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace HubWeb.Infrastructure_PD.Interfaces +{ + public interface ITemplateGenerator + { + Uri BaseUrl { get; } + + string OutputFolder { get; } + //TODO: make generated classes implement some specific base class or interface + Task Generate(dynamic template, string fileName, IDictionary parameters = null); + } +} diff --git a/Infrastructure_PD/Interfaces/IWebservicesPageGenerator.cs b/Infrastructure_PD/Interfaces/IWebservicesPageGenerator.cs new file mode 100644 index 0000000000..3a07900e03 --- /dev/null +++ b/Infrastructure_PD/Interfaces/IWebservicesPageGenerator.cs @@ -0,0 +1,10 @@ +using System.Threading.Tasks; +using Fr8.Infrastructure.Data.Manifests; + +namespace HubWeb.Infrastructure_PD.Interfaces +{ + public interface IWebservicesPageGenerator + { + Task Generate(PlanTemplateCM planTemplate, string fr8AccountId); + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Interfaces/SearchItemDTO.cs b/Infrastructure_PD/Interfaces/SearchItemDTO.cs new file mode 100644 index 0000000000..564f79ccc1 --- /dev/null +++ b/Infrastructure_PD/Interfaces/SearchItemDTO.cs @@ -0,0 +1,12 @@ +using System; + +namespace HubWeb.Infrastructure_PD.Interfaces +{ + public class SearchItemDTO + { + public Guid ParentPlanId { get; set; } + public string Name { get; set; } + public string Description { get; set; } + public string Owner { get; set; } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Interfaces/SearchRequestDTO.cs b/Infrastructure_PD/Interfaces/SearchRequestDTO.cs new file mode 100644 index 0000000000..d114f06656 --- /dev/null +++ b/Infrastructure_PD/Interfaces/SearchRequestDTO.cs @@ -0,0 +1,9 @@ +namespace HubWeb.Infrastructure_PD.Interfaces +{ + public class SearchRequestDTO + { + public string Text { get; set; } + public int PageStart { get; set; } + public int PageSize { get; set; } + } +} \ No newline at end of file diff --git a/Infrastructure_PD/Interfaces/SearchResultDTO.cs b/Infrastructure_PD/Interfaces/SearchResultDTO.cs new file mode 100644 index 0000000000..7fd58991fa --- /dev/null +++ b/Infrastructure_PD/Interfaces/SearchResultDTO.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace HubWeb.Infrastructure_PD.Interfaces +{ + public class SearchResultDTO + { + public IEnumerable PlanTemplates { get; set; } + public long TotalCount { get; set; } + } +} \ No newline at end of file diff --git a/ManifestPages/ManifestDescriptionTemplate.cs b/ManifestPages/ManifestDescriptionTemplate.cs new file mode 100644 index 0000000000..9553607c7b --- /dev/null +++ b/ManifestPages/ManifestDescriptionTemplate.cs @@ -0,0 +1,456 @@ +// ------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version: 14.0.0.0 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +// ------------------------------------------------------------------------------ +namespace HubWeb.ManifestPages +{ + using Newtonsoft.Json; + using System; + + /// + /// Class to produce the template output + /// + + #line 1 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "14.0.0.0")] + public partial class ManifestDescriptionTemplate : ManifestDescriptionTemplateBase + { +#line hidden + /// + /// Create the template output + /// + public virtual string TransformText() + { + + #line 6 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" +var manifestName = Manifests[0].Name; + + #line default + #line hidden + this.Write(@" + + + + + + + + + + + + Fr8 - "); + + #line 19 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(manifestName)); + + #line default + #line hidden + this.Write("\r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n " + + "
\r\n
\r\n
\r\n

Manifest - <" + + "em>"); + + #line 29 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(manifestName)); + + #line default + #line hidden + this.Write("

\r\n\t\t"); + + #line 30 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" +foreach (var manifest in Manifests) + { + + #line default + #line hidden + this.Write("
\r\n
\r\n <" + + "hr />\r\n
\r\n
\r\n
\r\n " + + "
\r\n

V"); + + #line 39 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(manifest.Version)); + + #line default + #line hidden + this.Write(" Registered By "); + + #line 39 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(manifest.RegisteredBy)); + + #line default + #line hidden + this.Write("

\r\n
\r\n
\r\n
\r\n " + + "
\r\n

\r\n "); + + #line 45 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(manifest.Description)); + + #line default + #line hidden + this.Write("\r\n

\r\n
\r\n
\r\n
\r\n
\r\n Sample J" + + "SON\r\n
\r\n
\r\n\t\t"); + + #line 54 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" + + var resultJson = manifest.SampleJSON; + try + { + resultJson = JsonConvert.SerializeObject(JsonConvert.DeserializeObject(manifest.SampleJSON), Formatting.Indented); + } + catch + { + //If we can't format manifest JSON we leave it as-is + } + + + #line default + #line hidden + this.Write("
\r\n
\r\n <" + + "pre>\r\n"); + + #line 68 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" + this.Write(this.ToStringHelper.ToStringWithCulture(resultJson)); + + #line default + #line hidden + this.Write("\r\n \r\n
\r\n
\r\n\t\t"); + + #line 72 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" + } + + #line default + #line hidden + this.Write("
\r\n\r\n\r\n"); + return this.GenerationEnvironment.ToString(); + } + + #line 1 "C:\dev\Work\fr8company\ManifestPages\ManifestDescriptionTemplate.tt" + +private global::System.Collections.Generic.IList _ManifestsField; + +/// +/// Access the Manifests parameter of the template. +/// +private global::System.Collections.Generic.IList Manifests +{ + get + { + return this._ManifestsField; + } +} + + +/// +/// Initialize the template +/// +public virtual void Initialize() +{ + if ((this.Errors.HasErrors == false)) + { +bool ManifestsValueAcquired = false; +if (this.Session.ContainsKey("Manifests")) +{ + this._ManifestsField = ((global::System.Collections.Generic.IList)(this.Session["Manifests"])); + ManifestsValueAcquired = true; +} +if ((ManifestsValueAcquired == false)) +{ + object data = global::System.Runtime.Remoting.Messaging.CallContext.LogicalGetData("Manifests"); + if ((data != null)) + { + this._ManifestsField = ((global::System.Collections.Generic.IList)(data)); + } +} + + + } +} + + + + #line default + #line hidden + } + + #line default + #line hidden + #region Base class + /// + /// Base class for this transformation + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "14.0.0.0")] + public class ManifestDescriptionTemplateBase + { + #region Fields + private global::System.Text.StringBuilder generationEnvironmentField; + private global::System.CodeDom.Compiler.CompilerErrorCollection errorsField; + private global::System.Collections.Generic.List indentLengthsField; + private string currentIndentField = ""; + private bool endsWithNewline; + private global::System.Collections.Generic.IDictionary sessionField; + #endregion + #region Properties + /// + /// The string builder that generation-time code is using to assemble generated output + /// + protected System.Text.StringBuilder GenerationEnvironment + { + get + { + if ((this.generationEnvironmentField == null)) + { + this.generationEnvironmentField = new global::System.Text.StringBuilder(); + } + return this.generationEnvironmentField; + } + set + { + this.generationEnvironmentField = value; + } + } + /// + /// The error collection for the generation process + /// + public System.CodeDom.Compiler.CompilerErrorCollection Errors + { + get + { + if ((this.errorsField == null)) + { + this.errorsField = new global::System.CodeDom.Compiler.CompilerErrorCollection(); + } + return this.errorsField; + } + } + /// + /// A list of the lengths of each indent that was added with PushIndent + /// + private System.Collections.Generic.List indentLengths + { + get + { + if ((this.indentLengthsField == null)) + { + this.indentLengthsField = new global::System.Collections.Generic.List(); + } + return this.indentLengthsField; + } + } + /// + /// Gets the current indent we use when adding lines to the output + /// + public string CurrentIndent + { + get + { + return this.currentIndentField; + } + } + /// + /// Current transformation session + /// + public virtual global::System.Collections.Generic.IDictionary Session + { + get + { + return this.sessionField; + } + set + { + this.sessionField = value; + } + } + #endregion + #region Transform-time helpers + /// + /// Write text directly into the generated output + /// + public void Write(string textToAppend) + { + if (string.IsNullOrEmpty(textToAppend)) + { + return; + } + // If we're starting off, or if the previous text ended with a newline, + // we have to append the current indent first. + if (((this.GenerationEnvironment.Length == 0) + || this.endsWithNewline)) + { + this.GenerationEnvironment.Append(this.currentIndentField); + this.endsWithNewline = false; + } + // Check if the current text ends with a newline + if (textToAppend.EndsWith(global::System.Environment.NewLine, global::System.StringComparison.CurrentCulture)) + { + this.endsWithNewline = true; + } + // This is an optimization. If the current indent is "", then we don't have to do any + // of the more complex stuff further down. + if ((this.currentIndentField.Length == 0)) + { + this.GenerationEnvironment.Append(textToAppend); + return; + } + // Everywhere there is a newline in the text, add an indent after it + textToAppend = textToAppend.Replace(global::System.Environment.NewLine, (global::System.Environment.NewLine + this.currentIndentField)); + // If the text ends with a newline, then we should strip off the indent added at the very end + // because the appropriate indent will be added when the next time Write() is called + if (this.endsWithNewline) + { + this.GenerationEnvironment.Append(textToAppend, 0, (textToAppend.Length - this.currentIndentField.Length)); + } + else + { + this.GenerationEnvironment.Append(textToAppend); + } + } + /// + /// Write text directly into the generated output + /// + public void WriteLine(string textToAppend) + { + this.Write(textToAppend); + this.GenerationEnvironment.AppendLine(); + this.endsWithNewline = true; + } + /// + /// Write formatted text directly into the generated output + /// + public void Write(string format, params object[] args) + { + this.Write(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args)); + } + /// + /// Write formatted text directly into the generated output + /// + public void WriteLine(string format, params object[] args) + { + this.WriteLine(string.Format(global::System.Globalization.CultureInfo.CurrentCulture, format, args)); + } + /// + /// Raise an error + /// + public void Error(string message) + { + System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError(); + error.ErrorText = message; + this.Errors.Add(error); + } + /// + /// Raise a warning + /// + public void Warning(string message) + { + System.CodeDom.Compiler.CompilerError error = new global::System.CodeDom.Compiler.CompilerError(); + error.ErrorText = message; + error.IsWarning = true; + this.Errors.Add(error); + } + /// + /// Increase the indent + /// + public void PushIndent(string indent) + { + if ((indent == null)) + { + throw new global::System.ArgumentNullException("indent"); + } + this.currentIndentField = (this.currentIndentField + indent); + this.indentLengths.Add(indent.Length); + } + /// + /// Remove the last indent that was added with PushIndent + /// + public string PopIndent() + { + string returnValue = ""; + if ((this.indentLengths.Count > 0)) + { + int indentLength = this.indentLengths[(this.indentLengths.Count - 1)]; + this.indentLengths.RemoveAt((this.indentLengths.Count - 1)); + if ((indentLength > 0)) + { + returnValue = this.currentIndentField.Substring((this.currentIndentField.Length - indentLength)); + this.currentIndentField = this.currentIndentField.Remove((this.currentIndentField.Length - indentLength)); + } + } + return returnValue; + } + /// + /// Remove any indentation + /// + public void ClearIndent() + { + this.indentLengths.Clear(); + this.currentIndentField = ""; + } + #endregion + #region ToString Helpers + /// + /// Utility class to produce culture-oriented representation of an object as a string. + /// + public class ToStringInstanceHelper + { + private System.IFormatProvider formatProviderField = global::System.Globalization.CultureInfo.InvariantCulture; + /// + /// Gets or sets format provider to be used by ToStringWithCulture method. + /// + public System.IFormatProvider FormatProvider + { + get + { + return this.formatProviderField ; + } + set + { + if ((value != null)) + { + this.formatProviderField = value; + } + } + } + /// + /// This is called from the compile/run appdomain to convert objects within an expression block to a string + /// + public string ToStringWithCulture(object objectToConvert) + { + if ((objectToConvert == null)) + { + throw new global::System.ArgumentNullException("objectToConvert"); + } + System.Type t = objectToConvert.GetType(); + System.Reflection.MethodInfo method = t.GetMethod("ToString", new System.Type[] { + typeof(System.IFormatProvider)}); + if ((method == null)) + { + return objectToConvert.ToString(); + } + else + { + return ((string)(method.Invoke(objectToConvert, new object[] { + this.formatProviderField }))); + } + } + } + private ToStringInstanceHelper toStringHelperField = new ToStringInstanceHelper(); + /// + /// Helper to produce culture-oriented representation of an object as a string + /// + public ToStringInstanceHelper ToStringHelper + { + get + { + return this.toStringHelperField; + } + } + #endregion + } + #endregion +} diff --git a/ManifestPages/ManifestDescriptionTemplate.tt b/ManifestPages/ManifestDescriptionTemplate.tt new file mode 100644 index 0000000000..0eff30d008 --- /dev/null +++ b/ManifestPages/ManifestDescriptionTemplate.tt @@ -0,0 +1,75 @@ +<#@ template language="C#" #> +<#@ assembly name="$(SolutionDir)\bin\Fr8Infrastructure.NET.dll" #> +<#@ assembly name="$(SolutionDir)\bin\Newtonsoft.Json.dll" #> +<#@ import namespace="Newtonsoft.Json" #> +<#@ parameter name="Manifests" type="System.Collections.Generic.IList" #> +<#var manifestName = Manifests[0].Name;#> + + + + + + + + + + + + + Fr8 - <#=manifestName#> + + + +
+
+ +
+
+
+

Manifest - <#=manifestName#>

+ <#foreach (var manifest in Manifests) + {#> +
+
+
+
+
+
+
+

V<#=manifest.Version#> Registered By <#=manifest.RegisteredBy#>

+
+
+
+
+

+ <#=manifest.Description#> +

+
+
+
+
+ Sample JSON +
+
+ <# + var resultJson = manifest.SampleJSON; + try + { + resultJson = JsonConvert.SerializeObject(JsonConvert.DeserializeObject(manifest.SampleJSON), Formatting.Indented); + } + catch + { + //If we can't format manifest JSON we leave it as-is + } + #> +
+
+
+<#=resultJson#>
+                
+
+
+ <# } #> +
+ + diff --git a/Scripts/PlanDirectoryApp.js b/Scripts/PlanDirectoryApp.js index f5951b362f..bcee723b8b 100644 --- a/Scripts/PlanDirectoryApp.js +++ b/Scripts/PlanDirectoryApp.js @@ -28,12 +28,12 @@ var promise = $q(function (resolve, reject) { $http.get(url) .then(function (res) { - $scope.totalCount = res.data.TotalCount; - $scope.planTemplates = res.data.PlanTemplates; + $scope.totalCount = res.data.totalCount; + $scope.planTemplates = res.data.planTemplates; $scope.currentPage = pageStart; $scope.pages = []; - for (var i = 0; i < Math.ceil(res.data.TotalCount / $scope.pageSize) ; ++i) { + for (var i = 0; i < Math.ceil(res.data.totalCount / $scope.pageSize) ; ++i) { $scope.pages.push(i + 1); } @@ -100,11 +100,11 @@ Metronic.unblockUI(); } else { - var url = urlPrefix + '/api/v1/plan_templates/createplan/?id=' + planTemplate.ParentPlanId; + var url = urlPrefix + '/api/v1/plan_templates/createplan/?id=' + planTemplate.parentPlanId; $http.post(url, null) .then(function (data) { Metronic.unblockUI(); - window.location.href = data.data.RedirectUrl; + window.location.href = data.data.redirectUrl; }); } }) @@ -116,7 +116,7 @@ $scope.removePlan = function (planTemplate) { Metronic.blockUI({ animate: true }); - var url = urlPrefix + '/api/v1/plan_templates/?id=' + planTemplate.ParentPlanId; + var url = urlPrefix + '/api/v1/plan_templates/?id=' + planTemplate.parentPlanId; $http.delete(url) .then(function (data) { Metronic.unblockUI(); diff --git a/Scripts/PlanDirectoryMain.js b/Scripts/PlanDirectoryMain.js index 99b607789d..ff27ac1c5e 100644 --- a/Scripts/PlanDirectoryMain.js +++ b/Scripts/PlanDirectoryMain.js @@ -7,7 +7,7 @@ } else { setNavbarLight(); } - } + } function setNavbarLight() { $('.navbar').addClass('navbar-light'); diff --git a/Startup.cs b/Startup.cs index a63f12df8f..ea09ceb479 100644 --- a/Startup.cs +++ b/Startup.cs @@ -30,6 +30,7 @@ using GlobalConfiguration = Hangfire.GlobalConfiguration; using System.Globalization; using System.Threading; +using PlanDirectory.Infrastructure; [assembly: OwinStartup(typeof(HubWeb.Startup))] @@ -59,6 +60,11 @@ public async void Configuration(IAppBuilder app, bool selfHostMode) { ObjectFactory.Configure(Fr8.Infrastructure.StructureMap.StructureMapBootStrapper.LiveConfiguration); StructureMapBootStrapper.ConfigureDependencies(StructureMapBootStrapper.DependencyType.LIVE); + + //For PlanDirectory merge + ObjectFactory.Configure(PlanDirectoryBootStrapper.LiveConfiguration); + + ObjectFactory.GetInstance().ConfigureAutoMapper(); var db = ObjectFactory.GetInstance(); diff --git a/Tests/terminalIntegrationTests/Unit/PageGeneratorTests.cs b/Tests/terminalIntegrationTests/Unit/PageGeneratorTests.cs index 5113371096..73872184f4 100644 --- a/Tests/terminalIntegrationTests/Unit/PageGeneratorTests.cs +++ b/Tests/terminalIntegrationTests/Unit/PageGeneratorTests.cs @@ -3,6 +3,7 @@ using Data.Repositories; using Fr8.Infrastructure.Data.DataTransferObjects; using Fr8.Infrastructure.Data.Manifests; +using HubWeb.Infrastructure_PD.Infrastructure; using Moq; using NUnit.Framework; using PlanDirectory.Infrastructure; diff --git a/Views/PlanDirectory/Index.cshtml b/Views/PlanDirectory/Index.cshtml index 970293cf8b..504f20c9fa 100644 --- a/Views/PlanDirectory/Index.cshtml +++ b/Views/PlanDirectory/Index.cshtml @@ -86,14 +86,14 @@
-
Name:
{{plan.Name}} +
Name:
{{plan.name}}
-
+
+
{{transition.errorMessage}}
+

diff --git a/terminalFr8Core/Activities/Make_A_Decision_v1.cs b/terminalFr8Core/Activities/Make_A_Decision_v1.cs index 9caebac7fb..9dbd8acf54 100644 --- a/terminalFr8Core/Activities/Make_A_Decision_v1.cs +++ b/terminalFr8Core/Activities/Make_A_Decision_v1.cs @@ -11,6 +11,7 @@ using Fr8.Infrastructure.Data.Manifests; using Fr8.Infrastructure.Data.States; using Fr8.Infrastructure.Data.Helpers; +using Fr8.TerminalBase.Infrastructure; namespace terminalFr8Core.Activities { @@ -126,6 +127,12 @@ public override async Task RunTests() Success(); } + protected override Task Validate() + { + ValidationManager.ValidateTransitions((ContainerTransition)ConfigurationControls.Controls.Single()); + return base.Validate(); + } + private OperationalStateCM.BranchStatus CreateBranch() { return new OperationalStateCM.BranchStatus From 7540f9127779e7f0897d8b6c806900972ad03013 Mon Sep 17 00:00:00 2001 From: Andrei Chaplygin Date: Thu, 4 Aug 2016 02:52:04 +0200 Subject: [PATCH 071/266] FR-3915: fixed Saelsforce terminal name on documentation page --- terminalSalesforce/Activities/Mail_Merge_From_Salesforce_v1.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/terminalSalesforce/Activities/Mail_Merge_From_Salesforce_v1.cs b/terminalSalesforce/Activities/Mail_Merge_From_Salesforce_v1.cs index ff07e91997..f779acb3c3 100644 --- a/terminalSalesforce/Activities/Mail_Merge_From_Salesforce_v1.cs +++ b/terminalSalesforce/Activities/Mail_Merge_From_Salesforce_v1.cs @@ -41,6 +41,7 @@ public class Mail_Merge_From_Salesforce_v1 : BaseSalesforceTerminalActivityPull data from a variety of sources, including Excel files, Google Sheets, and databases, and merge the data into your Salesforce template. You can link specific fields from your source data to Salesforce fields

"; + private const string TerminalDisplayName = "Salesforce"; public class ActivityUi : StandardConfigurationControlsCM { public DropDownList SalesforceObjectSelector { get; set; } @@ -315,7 +316,7 @@ protected override Task GetDocumentation(string docume { if (documentationType.Contains("MainPage")) { - var curSolutionPage = new DocumentationResponseDTO(SolutionName, SolutionVersion, TerminalName, SolutionBody); + var curSolutionPage = new DocumentationResponseDTO(SolutionName, SolutionVersion, TerminalDisplayName, SolutionBody); return Task.FromResult(curSolutionPage); } From 6e6c925381152628cca7e9ec89c1c80cf29e32c8 Mon Sep 17 00:00:00 2001 From: Andrei Chaplygin Date: Thu, 4 Aug 2016 02:52:52 +0200 Subject: [PATCH 072/266] FR-5000: Renamed 'Reconfigure' into 'Refresh' inside ActivityHeader --- Views/AngularTemplate/ActivityHeader.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Views/AngularTemplate/ActivityHeader.cshtml b/Views/AngularTemplate/ActivityHeader.cshtml index ca40b93923..e936b8354c 100644 --- a/Views/AngularTemplate/ActivityHeader.cshtml +++ b/Views/AngularTemplate/ActivityHeader.cshtml @@ -37,7 +37,7 @@ - Reconfigure + Refresh From 86a7ead7261db6741ce04dd23b355e6b285e8337 Mon Sep 17 00:00:00 2001 From: Anton Yakovets Date: Thu, 4 Aug 2016 11:15:22 +0600 Subject: [PATCH 073/266] FR-4073 Ready to merge PD to dev, for different configurations --- HubWeb.csproj | 2 ++ Web.Demo.config | 2 +- Web.Dev.config | 2 +- Web.Release.config | 2 +- packages.config | 2 +- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/HubWeb.csproj b/HubWeb.csproj index 475098cbfa..e35a1e076e 100644 --- a/HubWeb.csproj +++ b/HubWeb.csproj @@ -4561,6 +4561,7 @@ + @@ -4647,4 +4648,5 @@ + \ No newline at end of file diff --git a/Web.Demo.config b/Web.Demo.config index 74c1d0f7a2..2555ef3152 100644 --- a/Web.Demo.config +++ b/Web.Demo.config @@ -15,7 +15,7 @@ --> - + diff --git a/Web.Dev.config b/Web.Dev.config index fc5104a5c3..d4ad8a35c6 100644 --- a/Web.Dev.config +++ b/Web.Dev.config @@ -16,7 +16,7 @@ --> - + diff --git a/Web.Release.config b/Web.Release.config index da0073130b..1309c19237 100644 --- a/Web.Release.config +++ b/Web.Release.config @@ -17,7 +17,7 @@ - + diff --git a/packages.config b/packages.config index 96889e9063..1f0691583c 100644 --- a/packages.config +++ b/packages.config @@ -12,7 +12,7 @@ - + From 0151fc7c892f2f41e1657b75340c7d5525ab9dee Mon Sep 17 00:00:00 2001 From: Anton Yakovets Date: Thu, 4 Aug 2016 13:20:41 +0600 Subject: [PATCH 074/266] FR-4073 included lost css file and add 'debugger' to plan shring button --- HubWeb.csproj | 1 + Scripts/app/controllers/PlanDetailsController.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/HubWeb.csproj b/HubWeb.csproj index e35a1e076e..3b8fc9b1a8 100644 --- a/HubWeb.csproj +++ b/HubWeb.csproj @@ -598,6 +598,7 @@ + diff --git a/Scripts/app/controllers/PlanDetailsController.ts b/Scripts/app/controllers/PlanDetailsController.ts index 58facfced6..d8e741ea95 100644 --- a/Scripts/app/controllers/PlanDetailsController.ts +++ b/Scripts/app/controllers/PlanDetailsController.ts @@ -53,6 +53,7 @@ module dockyard.controllers { } $scope.sharePlan = () => { + debugger; if (!$scope.current.plan.visibility.public) { PlanService.share($stateParams.id) .then(() => { From 229ab6a34978d68ea6c55b846642dbf5d0542554 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bahad=C4=B1r=20Bozda=C4=9F?= Date: Thu, 4 Aug 2016 10:20:48 +0300 Subject: [PATCH 075/266] Fixed template name bug --- Hub/Services/Plan.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Hub/Services/Plan.cs b/Hub/Services/Plan.cs index cfe2ebe631..88ca3086f9 100644 --- a/Hub/Services/Plan.cs +++ b/Hub/Services/Plan.cs @@ -584,7 +584,13 @@ public async Task Run(Guid planId, Crate[] payload, Guid? containe if (activity != null) { - var label = string.IsNullOrWhiteSpace(activity.Label) ? activity.ActivityTemplate.Name : activity.Label; + + var label = string.IsNullOrWhiteSpace(activity.Label) ? activity.ActivityTemplate?.Name : activity.Label; + if (label == null) + { + var template = uow.ActivityTemplateRepository.GetByKey(activity.ActivityTemplateId); + label = template.Name; + } if (string.IsNullOrWhiteSpace(label)) { From 2147b54be282a72155df6ab8df61eb9770da8d47 Mon Sep 17 00:00:00 2001 From: Anton Yakovets Date: Thu, 4 Aug 2016 14:44:06 +0600 Subject: [PATCH 076/266] FR-4995 html for Dockyard account pages which in use. --- Views/DockyardAccount/ForgotPassword.cshtml | 61 +++--- Views/DockyardAccount/Index.cshtml | 185 ++++++++++-------- Views/DockyardAccount/LogOff.cshtml | 27 --- Views/DockyardAccount/Register.cshtml | 153 +++++++++------ Views/DockyardAccount/ResetPassword.cshtml | 32 ++- .../ResetPasswordConfirmation.cshtml | 3 +- 6 files changed, 267 insertions(+), 194 deletions(-) delete mode 100644 Views/DockyardAccount/LogOff.cshtml diff --git a/Views/DockyardAccount/ForgotPassword.cshtml b/Views/DockyardAccount/ForgotPassword.cshtml index 6ae2429298..909d911cdb 100644 --- a/Views/DockyardAccount/ForgotPassword.cshtml +++ b/Views/DockyardAccount/ForgotPassword.cshtml @@ -4,31 +4,46 @@ ViewBag.Title = "Forgot Password"; } -@Html.Partial("~/Views/DockyardAccount/_HeaderPartial.cshtml") + + + + + + + + + + + fr8 | @ViewBag.Title + + + @Html.Partial("~/Views/DockyardAccount/_HeaderPartial.cshtml") -
-
-

@ViewBag.Title

- @using (Html.BeginForm("ForgotPassword", "DockyardAccount", FormMethod.Post, new { @class = "form-horizontal" })) - { - @Html.AntiForgeryToken() - @Html.ValidationMessageFor(model => model.Email) -
-
- @Html.LabelFor(model => model.Email, new { @class = "col-md-3 control-label" }) -
- @Html.EditorFor(model => model.Email, new { @class = "form-control" }) +
+
+

@ViewBag.Title

+ @using (Html.BeginForm("ForgotPassword", "DockyardAccount", FormMethod.Post, new { @class = "form-horizontal" })) + { + @Html.AntiForgeryToken() + @Html.ValidationMessageFor(model => model.Email) +
+
+ @Html.LabelFor(model => model.Email, new { @class = "col-md-3 control-label" }) +
+ @Html.EditorFor(model => model.Email, new { @class = "form-control" }) +
-
-
-
- +
+
+ +
-
- } + } +
-
-@section Scripts { - @Scripts.Render("~/bundles/jqueryval") -} + @section Scripts { + @Scripts.Render("~/bundles/jqueryval") + } + + \ No newline at end of file diff --git a/Views/DockyardAccount/Index.cshtml b/Views/DockyardAccount/Index.cshtml index 23f697ad84..b80cbd6de8 100644 --- a/Views/DockyardAccount/Index.cshtml +++ b/Views/DockyardAccount/Index.cshtml @@ -2,100 +2,125 @@ @{ ViewBag.title = "Log in"; } + + + + + + + + + + - - + fr8 | Log In + + + -@Html.Partial("~/Views/DockyardAccount/_HeaderPartial.cshtml") + + @Html.Partial("~/Views/DockyardAccount/_HeaderPartial.cshtml") -
- + var actionWithoutHash = $('form').attr('action'); + $('form').attr('action', actionWithoutHash + window.location.hash); + }); + + + \ No newline at end of file diff --git a/Views/DockyardAccount/LogOff.cshtml b/Views/DockyardAccount/LogOff.cshtml deleted file mode 100644 index 494c2ea706..0000000000 --- a/Views/DockyardAccount/LogOff.cshtml +++ /dev/null @@ -1,27 +0,0 @@ - -@*fallback for case js won`t work*@ -@{ - Html.RenderAction("Index", "DockyardAccount"); -} - - - - - diff --git a/Views/DockyardAccount/Register.cshtml b/Views/DockyardAccount/Register.cshtml index d0b9f38afc..22fe1ee48a 100644 --- a/Views/DockyardAccount/Register.cshtml +++ b/Views/DockyardAccount/Register.cshtml @@ -3,71 +3,114 @@ @{ ViewBag.Title = "Register an Account"; } - - - - -@Html.Partial("~/Views/DockyardAccount/_HeaderPartial.cshtml") -
-
-
-
Created by:
{{plan.Owner}} +
+
Created by:
{{plan.owner}}
-
+
Description:
-
{{plan.Description}}
+
{{plan.description}}
diff --git a/Web.Dev.config b/Web.Dev.config index bd4968bde2..fc5104a5c3 100644 --- a/Web.Dev.config +++ b/Web.Dev.config @@ -20,7 +20,10 @@ - + + + + diff --git a/Web.Release.config b/Web.Release.config index 8f479cd78a..da0073130b 100644 --- a/Web.Release.config +++ b/Web.Release.config @@ -21,7 +21,9 @@ - + + + diff --git a/Web.config b/Web.config index e7be049e7f..5d49b20cd4 100644 --- a/Web.config +++ b/Web.config @@ -51,7 +51,10 @@ NOTE: For the settings defined in this file define values for the Dev, Demo and Release configurations (where applies). --> - + + + + diff --git a/packages.config b/packages.config index e85c7fd5ae..96889e9063 100644 --- a/packages.config +++ b/packages.config @@ -12,7 +12,7 @@ - + @@ -44,6 +44,7 @@ + @@ -58,6 +59,9 @@ + + + diff --git a/terminalAsana/Asana/Services/AsanaParametersService.cs b/terminalAsana/Asana/Services/AsanaParametersService.cs index 94f20f2d27..623c37b5af 100644 --- a/terminalAsana/Asana/Services/AsanaParametersService.cs +++ b/terminalAsana/Asana/Services/AsanaParametersService.cs @@ -49,7 +49,7 @@ public AsanaParametersService() AsanaClientId = CloudConfigurationManager.GetSetting("AsanaClientId"); MinutesBeforeTokenRenewal = CloudConfigurationManager.GetSetting("MinutesBeforeTokenRenewal"); - AsanaOriginalRedirectUrl = CloudConfigurationManager.GetSetting("DefaultHubUrl") + CloudConfigurationManager.GetSetting("AsanaOriginalRedirectUrl"); + AsanaOriginalRedirectUrl = CloudConfigurationManager.GetSetting("CoreWebServerUrl") + CloudConfigurationManager.GetSetting("AsanaOriginalRedirectUrl"); AsanaOAuthCodeUrl = CloudConfigurationManager.GetSetting("AsanaOAuthCodeUrl").Replace("%ASANA_CLIENT_ID%",AsanaClientId); AsanaOAuthTokenUrl = CloudConfigurationManager.GetSetting("AsanaOAuthTokenUrl"); From dfbfb62dbcc94e59093faa0928a2d8a7455e1d7d Mon Sep 17 00:00:00 2001 From: Anton Yakovets Date: Wed, 3 Aug 2016 19:02:34 +0600 Subject: [PATCH 056/266] FR-4073 navigation links --- Controllers/Api/ManifestRegistryController.cs | 2 +- ViewModels/NavLinks.cs | 2 +- Views/AngularTemplate/HeaderNav.cshtml | 3 ++- Views/Shared/_HomeNavNew.cshtml | 15 ++++++++------- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/Controllers/Api/ManifestRegistryController.cs b/Controllers/Api/ManifestRegistryController.cs index e5c06abb0e..3382fc8a1b 100644 --- a/Controllers/Api/ManifestRegistryController.cs +++ b/Controllers/Api/ManifestRegistryController.cs @@ -73,7 +73,7 @@ public IHttpActionResult Get() public async Task GetManifestPageUrl(string manifestName) { return Ok(await _restfulServiceClient.PostAsync( - new Uri($"{CloudConfigurationManager.GetSetting("PlanDirectoryUrl")}/api/page_generation/generate_manifest_page"), + new Uri($"{CloudConfigurationManager.GetSetting("PlanDirectoryUrl")}/api/v1/page_generation/generate_manifest_page"), manifestName)); } diff --git a/ViewModels/NavLinks.cs b/ViewModels/NavLinks.cs index 43a6b38764..fa2355bb35 100644 --- a/ViewModels/NavLinks.cs +++ b/ViewModels/NavLinks.cs @@ -21,6 +21,6 @@ public static string BaseUrl } public static string Blog = "http://blog.fr8.co"; public static string Developers = "https://github.com/Fr8org/Fr8Core/blob/master/Docs/Home.md"; - public static string PlanDirectory = ConfigurationManager.AppSettings["PlanDirectoryUrl"]; + public static string PlanDirectory = ConfigurationManager.AppSettings["PlanDirectoryUrl"] + "/plan_directory/"; } } \ No newline at end of file diff --git a/Views/AngularTemplate/HeaderNav.cshtml b/Views/AngularTemplate/HeaderNav.cshtml index b3f63ece8e..8821e6096e 100644 --- a/Views/AngularTemplate/HeaderNav.cshtml +++ b/Views/AngularTemplate/HeaderNav.cshtml @@ -42,7 +42,8 @@ diff --git a/Views/Shared/_HomeNavNew.cshtml b/Views/Shared/_HomeNavNew.cshtml index 1b530cfe78..da0d9f2ae1 100644 --- a/Views/Shared/_HomeNavNew.cshtml +++ b/Views/Shared/_HomeNavNew.cshtml @@ -47,7 +47,8 @@ From ee0c09054869a7698a15a3c1e822e5ffedfee597 Mon Sep 17 00:00:00 2001 From: Anton Yakovets Date: Wed, 3 Aug 2016 19:16:27 +0600 Subject: [PATCH 057/266] FR-4073 nav fix --- Views/AngularTemplate/HeaderNav.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Views/AngularTemplate/HeaderNav.cshtml b/Views/AngularTemplate/HeaderNav.cshtml index 8821e6096e..86b9959db9 100644 --- a/Views/AngularTemplate/HeaderNav.cshtml +++ b/Views/AngularTemplate/HeaderNav.cshtml @@ -43,7 +43,7 @@
  • Show All
  • Add
  • -
  • Plan Directory
  • +
  • Plan Directory
  • Load from JSON file
  • From 67b90e466f0aade02ccfd24121acfb8d66fc6bd2 Mon Sep 17 00:00:00 2001 From: teh_netaholic Date: Wed, 3 Aug 2016 16:32:39 +0300 Subject: [PATCH 058/266] removed serialization of terminal on discovery --- .../BaseClasses/DefaultTerminalController.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Fr8TerminalBase.NET/BaseClasses/DefaultTerminalController.cs b/Fr8TerminalBase.NET/BaseClasses/DefaultTerminalController.cs index fd84964223..df04a5ff15 100644 --- a/Fr8TerminalBase.NET/BaseClasses/DefaultTerminalController.cs +++ b/Fr8TerminalBase.NET/BaseClasses/DefaultTerminalController.cs @@ -3,6 +3,10 @@ using System.Web.Http.Description; using Fr8.Infrastructure.Data.Manifests; using Fr8.TerminalBase.Services; +using Newtonsoft.Json.Serialization; +using System.Collections.Generic; +using System; +using Newtonsoft.Json; namespace Fr8.TerminalBase.BaseClasses { @@ -40,7 +44,16 @@ public IHttpActionResult Get() _hubDiscovery.SetHubSecret(hubUrl, secret); } - return Json(curStandardFr8TerminalCM); + return Json(curStandardFr8TerminalCM, new JsonSerializerSettings() { ContractResolver = new ExcludeTerminalContractResolver() }); + } + + public class ExcludeTerminalContractResolver : Newtonsoft.Json.Serialization.DefaultContractResolver + { + protected override IList CreateProperties(Type type, Newtonsoft.Json.MemberSerialization memberSerialization) + { + IList properties = base.CreateProperties(type, memberSerialization); + return properties.Where(p => p.PropertyName != "terminal").ToList(); + } } } } From 454f9642ff010c2d245e18737b82042a48dd5581 Mon Sep 17 00:00:00 2001 From: Anton Yakovets Date: Wed, 3 Aug 2016 19:47:31 +0600 Subject: [PATCH 059/266] FR-4073 build fixed --- Tests/terminalIntegrationTests/Unit/PageGeneratorTests.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Tests/terminalIntegrationTests/Unit/PageGeneratorTests.cs b/Tests/terminalIntegrationTests/Unit/PageGeneratorTests.cs index 73872184f4..4fe9f5278a 100644 --- a/Tests/terminalIntegrationTests/Unit/PageGeneratorTests.cs +++ b/Tests/terminalIntegrationTests/Unit/PageGeneratorTests.cs @@ -6,7 +6,6 @@ using HubWeb.Infrastructure_PD.Infrastructure; using Moq; using NUnit.Framework; -using PlanDirectory.Infrastructure; using Ploeh.AutoFixture; namespace terminalIntegrationTests.Unit From 73c472a9595f5b0c3678a4596778d88f7794bb1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bahad=C4=B1r=20Bozda=C4=9F?= Date: Wed, 3 Aug 2016 16:51:20 +0300 Subject: [PATCH 060/266] Fixed Notification bug and UI fixes --- Hub/Managers/EventReporter.cs | 25 ++++++++++--------- .../ContainerService.ExecutionSession.cs | 3 ++- Views/AngularTemplate/ActivityHeader.cshtml | 6 ++--- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/Hub/Managers/EventReporter.cs b/Hub/Managers/EventReporter.cs index dd08e75845..56c33f0664 100644 --- a/Hub/Managers/EventReporter.cs +++ b/Hub/Managers/EventReporter.cs @@ -167,19 +167,20 @@ private void ActivityRunRequested(ActivityDO activityDo, ContainerDO containerDO planLastUpdated = planDO.LastUpdated; SaveAndLogFact(factDO); - } - //create user notifications - var _pusherNotifier = ObjectFactory.GetInstance(); - _pusherNotifier.NotifyUser(new NotificationPlanDTO - { - NotificationType = NotificationType.GenericInfo, - Message = "For Plan: " + containerDO.Name + "\nContainer: " + containerDO.Id.ToString(), - ActivityName = activityDo.ActivityTemplate.Name, - PlanId = planId, - PlanLastUpdated = planLastUpdated, - Collapsed = true, - }, activityDo.Fr8Account.Id); + //create user notifications + var _pusherNotifier = ObjectFactory.GetInstance(); + _pusherNotifier.NotifyUser(new NotificationPlanDTO + { + NotificationType = NotificationType.GenericInfo, + Message = "For Plan: " + containerDO.Name + "\nContainer: " + containerDO.Id.ToString(), + ActivityName = template?.Name, + PlanId = planId, + PlanLastUpdated = planLastUpdated, + Collapsed = true, + }, activityDo.Fr8Account.Id); + } + } catch (Exception exception) { diff --git a/Hub/Services/ContainerService.ExecutionSession.cs b/Hub/Services/ContainerService.ExecutionSession.cs index 5e5370a61f..dbfb6554b0 100644 --- a/Hub/Services/ContainerService.ExecutionSession.cs +++ b/Hub/Services/ContainerService.ExecutionSession.cs @@ -87,7 +87,8 @@ private void AddNodeForExecution(Guid nodeId) if (node is ActivityDO) { - nodeName = "Activity: " + ((ActivityDO) node).ActivityTemplate.Name; + + nodeName = "Activity: " + node.Id; } if (node is SubplanDO) diff --git a/Views/AngularTemplate/ActivityHeader.cshtml b/Views/AngularTemplate/ActivityHeader.cshtml index ca40b93923..718a222e8e 100644 --- a/Views/AngularTemplate/ActivityHeader.cshtml +++ b/Views/AngularTemplate/ActivityHeader.cshtml @@ -8,8 +8,8 @@

    - {{envelope.activity.name}} - {{envelope.activity.name}} + {{envelope.activityTemplate.label}} + {{envelope.activityTemplate.label}}

    {{envelope.activity.label}} @@ -20,7 +20,7 @@
    updating
    - {{envelope.activity.name}} + {{envelope.activityTemplate.label}}
    From c2bc1ee05780cfb26126760704564380986e372f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alp=20G=C3=BCrtan?= Date: Wed, 3 Aug 2016 16:51:27 +0300 Subject: [PATCH 061/266] Static header and messages are removed from Fr8Event.ts --- Controllers/Api/PlansController.cs | 3 ++- .../TerminalNotificationSampleFactory.cs | 2 +- Hub/Managers/EventReporter.cs | 1 + Hub/Services/ContainerService.cs | 1 + Hub/Services/Plan.cs | 9 +++++++++ Hub/Services/PlanDirectoryService.cs | 2 ++ .../ActivityExecutionRateLimitingService.cs | 1 + Scripts/app/directives/Controls/Fr8Event.ts | 20 ++++++------------- 8 files changed, 23 insertions(+), 16 deletions(-) diff --git a/Controllers/Api/PlansController.cs b/Controllers/Api/PlansController.cs index 3bd23c0814..4481f866a7 100644 --- a/Controllers/Api/PlansController.cs +++ b/Controllers/Api/PlansController.cs @@ -324,7 +324,8 @@ public async Task Deactivate(Guid planId) _pusherNotifier.NotifyUser(new NotificationMessageDTO { NotificationType = NotificationType.ExecutionStopped, - Message = $"\"{plan.Name}\"", + Subject = "Plan Stopped", + Message = $"\"{plan.Name}\" has been stopped.", Collapsed = false }, plan.Fr8AccountId); } diff --git a/Documentation/Swagger/SampleData/TerminalNotificationSampleFactory.cs b/Documentation/Swagger/SampleData/TerminalNotificationSampleFactory.cs index c74c68fb4a..d912b4c619 100644 --- a/Documentation/Swagger/SampleData/TerminalNotificationSampleFactory.cs +++ b/Documentation/Swagger/SampleData/TerminalNotificationSampleFactory.cs @@ -10,12 +10,12 @@ public NotificationMessageDTO GetSampleData() return new NotificationMessageDTO { NotificationType = NotificationType.GenericSuccess, + Subject = "Good Message", Message = "Something good just happened", TerminalName = "terminalFr8Core", ActivityName = "Build_Message_v1", ActivityVersion = "1", Collapsed = false, - Subject = "Good Message", TerminalVersion = "1" }; } diff --git a/Hub/Managers/EventReporter.cs b/Hub/Managers/EventReporter.cs index 45cb522213..c6a22b1171 100644 --- a/Hub/Managers/EventReporter.cs +++ b/Hub/Managers/EventReporter.cs @@ -174,6 +174,7 @@ private void ActivityRunRequested(ActivityDO activityDo, ContainerDO containerDO _pusherNotifier.NotifyUser(new NotificationPlanDTO { NotificationType = NotificationType.GenericInfo, + Subject = "Executing Activity", Message = "For Plan: " + containerDO.Name + "\nContainer: " + containerDO.Id.ToString(), ActivityName = activityDo.Name, PlanId = planId, diff --git a/Hub/Services/ContainerService.cs b/Hub/Services/ContainerService.cs index 2a1c7e6c78..058a4b41a1 100644 --- a/Hub/Services/ContainerService.cs +++ b/Hub/Services/ContainerService.cs @@ -281,6 +281,7 @@ private void ReportAuthError(IUnitOfWork uow, Fr8AccountDO user, InvalidTokenRun _pusherNotifier.NotifyUser(new NotificationMessageDTO { NotificationType = NotificationType.GenericFailure, + Subject = "Plan Failed", Message = errorMessage, Collapsed = false }, user.Id); diff --git a/Hub/Services/Plan.cs b/Hub/Services/Plan.cs index b5b7e7c9b7..261800bdf9 100644 --- a/Hub/Services/Plan.cs +++ b/Hub/Services/Plan.cs @@ -602,6 +602,7 @@ public async Task Run(Guid planId, Crate[] payload, Guid? containe _pusherNotifier.NotifyUser(new NotificationMessageDTO { NotificationType = NotificationType.GenericFailure, + Subject = "Plan Failed", Message = $"Validation failed for activities: {activitiesList} from plan \"{plan.Name}\". See activity configuration pane for details.", Collapsed = false }, currentUserId); @@ -649,6 +650,7 @@ public async Task Run(Guid planId, Crate[] payload, Guid? containe _pusherNotifier.NotifyUser(new NotificationMessageDTO { NotificationType = NotificationType.GenericSuccess, + Subject = "Success", Message = $"Plan \"{plan.Name}\" activated. It will wait and respond to specified external events.", Collapsed = false }, currentUserId); @@ -667,6 +669,7 @@ public async Task Run(Guid planId, Crate[] payload, Guid? containe _pusherNotifier.NotifyUser(new NotificationMessageDTO { NotificationType = NotificationType.GenericSuccess, + Subject = "Success", Message = $"Continue execution of the suspended Plan \"{plan.Name}\"", Collapsed = false }, currentUserId); @@ -682,6 +685,7 @@ public async Task Run(Guid planId, Crate[] payload, Guid? containe _pusherNotifier.NotifyUser(new NotificationMessageDTO { NotificationType = NotificationType.GenericSuccess, + Subject = "Success", Message = $"Complete processing for Plan \"{plan.Name}\".{responseMsg}", Collapsed = false }, currentUserId); @@ -691,6 +695,7 @@ public async Task Run(Guid planId, Crate[] payload, Guid? containe _pusherNotifier.NotifyUser(new NotificationMessageDTO { NotificationType = NotificationType.GenericFailure, + Subject = "Plan Failed", Message = $"Failed executing plan \"{plan.Name}\"", Collapsed = false }, currentUserId); @@ -784,6 +789,7 @@ private void NotifyWithErrorMessage(Exception exception, PlanDO planDO, string u _pusherNotifier.NotifyUser(new NotificationMessageDTO { NotificationType = NotificationType.GenericFailure, + Subject = "Plan Failed", Message = String.Format("Plan \"{0}\" failed. {1}", planDO.Name, messageToNotify), Collapsed = false }, userId); @@ -820,6 +826,7 @@ private void ReportGenericValidationErrors(string userId, string activityLabel, _pusherNotifier.NotifyUser(new NotificationMessageDTO { NotificationType = NotificationType.GenericFailure, + Subject = "Plan Failed", Message = $"Validation of activity '{activityLabel}' from plan \"{planName}\" failed: {errors}", Collapsed = false }, userId); @@ -945,6 +952,7 @@ private void ReportAuthError(IUnitOfWork uow, Fr8AccountDO user, InvalidTokenRun _pusherNotifier.NotifyUser(new NotificationMessageDTO { NotificationType = NotificationType.GenericFailure, + Subject = "Plan Failed", Message = errorMessage, Collapsed = false }, user.Id); @@ -971,6 +979,7 @@ private async Task ReportAuthDeactivation(IUnitOfWork uow, PlanDO plan, InvalidT _pusherNotifier.NotifyUser(new NotificationMessageDTO { NotificationType = NotificationType.GenericFailure, + Subject = "Plan Failed", Message = errorMessage, Collapsed = false }, plan.Fr8AccountId); diff --git a/Hub/Services/PlanDirectoryService.cs b/Hub/Services/PlanDirectoryService.cs index 58329d12c1..a109bfcb2b 100644 --- a/Hub/Services/PlanDirectoryService.cs +++ b/Hub/Services/PlanDirectoryService.cs @@ -110,6 +110,7 @@ public async Task Share(Guid planId, string userId) _pusherNotifier.NotifyUser(new NotificationMessageDTO { NotificationType = NotificationType.GenericSuccess, + Subject = "Success", Message = $"Plan Shared. To view, click on " + url, Collapsed = false }, userId); @@ -131,6 +132,7 @@ public async Task Unpublish(Guid planId, string userId) _pusherNotifier.NotifyUser(new NotificationMessageDTO { NotificationType = NotificationType.GenericSuccess, + Subject = "Success", Message = $"Plan Unpublished.", Collapsed = false }, userId); diff --git a/Hub/Services/Utilization/ActivityExecutionRateLimitingService.cs b/Hub/Services/Utilization/ActivityExecutionRateLimitingService.cs index bb21b18053..6c3c199b02 100644 --- a/Hub/Services/Utilization/ActivityExecutionRateLimitingService.cs +++ b/Hub/Services/Utilization/ActivityExecutionRateLimitingService.cs @@ -140,6 +140,7 @@ private void NotifyUser(IUnitOfWork uow, string user) _pusherNotifier.NotifyUser( new NotificationMessageDTO { NotificationType = NotificationType.GenericFailure, + Subject = "Plan Failed", Message = "You are running more Activities than your capacity right now. " + $"This Account will be prevented from processing Activities for the next {Math.Ceiling(_userBanTime.TotalSeconds / 60.0f)} minutes. " + "Contact support@fr8.co for assistance", diff --git a/Scripts/app/directives/Controls/Fr8Event.ts b/Scripts/app/directives/Controls/Fr8Event.ts index d0d462b54c..8dcba91e95 100644 --- a/Scripts/app/directives/Controls/Fr8Event.ts +++ b/Scripts/app/directives/Controls/Fr8Event.ts @@ -16,6 +16,10 @@ module dockyard.directives { export function Fr8Event(): ng.IDirective { var controller = ['$scope', ($scope: IFr8EventScope) => { + // Declared common values for all notification types + $scope.eventHeader = $scope.event.Subject + $scope.eventSubHeader = null; + $scope.eventMessage = $scope.event.Message; // Checks whether notification will be shown open or not $scope.isCollapsed = true; if ($scope.event.Collapsed != null) { @@ -29,40 +33,28 @@ module dockyard.directives { // Determines notification type and add necessary attributes switch ($scope.type) { case dockyard.enums.NotificationType.GenericSuccess: - $scope.eventHeader = $scope.event.Subject ? $scope.event.Subject : 'Success'; - $scope.eventSubHeader = null; - $scope.eventMessage = $scope.event.Message; $scope.color = 'green'; $scope.icon = 'fa-check'; break; case dockyard.enums.NotificationType.GenericFailure: - $scope.eventHeader = 'Plan Failed'; - $scope.eventSubHeader = null; - $scope.eventMessage = $scope.event.Message; $scope.color = 'red'; $scope.icon = 'fa-times'; break; case dockyard.enums.NotificationType.GenericInfo: - $scope.eventHeader = 'Executing Activity'; $scope.eventSubHeader = $scope.event.ActivityName; - $scope.eventMessage = $scope.event.Message; $scope.icon = 'fa-cogs'; break; case dockyard.enums.NotificationType.TerminalEvent: - if ($scope.event.Subject) { - $scope.eventHeader = $scope.event.Subject; - } else { + if (!$scope.event.Subject) { $scope.eventHeader = $scope.event.TerminalName + '-v' + $scope.event.TerminalVersion; $scope.eventSubHeader = $scope.event.ActivityName + '-v' + $scope.event.ActivityVersion; } - $scope.eventMessage = $scope.event.Message; $scope.icon = 'fa-bolt'; break; case dockyard.enums.NotificationType.ExecutionStopped: - $scope.eventHeader = 'Plan Stopped'; - $scope.eventMessage = $scope.event.Message + ' has been stopped.'; $scope.color = 'firebrick'; $scope.icon = 'fa-stop'; + break; } }]; From 2ad01c6bb9962cc63920790672c4ac6432b8b68d Mon Sep 17 00:00:00 2001 From: Anton Yakovets Date: Wed, 3 Aug 2016 20:53:19 +0600 Subject: [PATCH 062/266] FR-4073 fixed problesm after merge. --- CategoryPages/asana.html | 52 ++++++++++++++++++++++++++++++++++++++++ HubWeb.csproj | 4 ++++ 2 files changed, 56 insertions(+) create mode 100644 CategoryPages/asana.html diff --git a/CategoryPages/asana.html b/CategoryPages/asana.html new file mode 100644 index 0000000000..9f6624219a --- /dev/null +++ b/CategoryPages/asana.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + +
    + +
    +

    +
    +

    Plan Directory - asana.html

    +
    + + +
    +
    +

    Plan Definition Description

    +

    Related Plans

    + + + + + + + + + + + + + + + + + + +
    #Plan NamePlan DescriptionAction
    1UgaChagaUgaChagaCreate
    +
    + + diff --git a/HubWeb.csproj b/HubWeb.csproj index 5477ead117..475098cbfa 100644 --- a/HubWeb.csproj +++ b/HubWeb.csproj @@ -228,6 +228,10 @@ packages\Microsoft.Rest.ClientRuntime.Azure.2.5.2\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll True + + packages\Microsoft.Spatial.6.13.0\lib\portable-net40+sl5+wp8+win8+wpa\Microsoft.Spatial.dll + True + packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll True From 2530fb0aefbd40b28fc402637f114cb06737e659 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bahad=C4=B1r=20Bozda=C4=9F?= Date: Wed, 3 Aug 2016 19:19:48 +0300 Subject: [PATCH 063/266] Fixed tests --- Hub/Exceptions/ActivityExecutionException.cs | 4 ++-- Hub/Services/ContainerService.ExecutionSession.cs | 10 ++++++---- Hub/Services/ContainerService.cs | 3 ++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Hub/Exceptions/ActivityExecutionException.cs b/Hub/Exceptions/ActivityExecutionException.cs index a6ad2a23f4..9a618fce1e 100644 --- a/Hub/Exceptions/ActivityExecutionException.cs +++ b/Hub/Exceptions/ActivityExecutionException.cs @@ -50,11 +50,11 @@ protected virtual string GetErrorMessage() { if (!string.IsNullOrEmpty(Message)) { - return String.Format("Failed to run activity \"{0}\". {1}", FailedActivityDTO?.ActivityTemplate.Name, Message); + return String.Format("Failed to run activity \"{0}\". {1}", FailedActivityDTO?.ActivityTemplate?.Name, Message); } else { - return String.Format("Failed to run activity \"{0}\". Please, make sure it is set up correctly.", FailedActivityDTO?.ActivityTemplate.Name); + return String.Format("Failed to run activity \"{0}\". Please, make sure it is set up correctly.", FailedActivityDTO?.ActivityTemplate?.Name); } } } diff --git a/Hub/Services/ContainerService.ExecutionSession.cs b/Hub/Services/ContainerService.ExecutionSession.cs index dbfb6554b0..6cb30344ce 100644 --- a/Hub/Services/ContainerService.ExecutionSession.cs +++ b/Hub/Services/ContainerService.ExecutionSession.cs @@ -84,11 +84,11 @@ private void AddNodeForExecution(Guid nodeId) { var node = _uow.PlanRepository.GetById(nodeId); string nodeName = "undefined"; - + if (node is ActivityDO) { - - nodeName = "Activity: " + node.Id; + var activityTemplate = _uow.ActivityTemplateRepository.GetByKey(((ActivityDO)node).ActivityTemplateId); + nodeName = "Activity: " + activityTemplate.Name +" Version:" + activityTemplate.Version; } if (node is SubplanDO) @@ -212,7 +212,9 @@ public async Task Run() if (curActivity != null) { - throw new ActivityExecutionException(Mapper.Map(_container), Mapper.Map(curActivity), string.Empty, e); + var activityDTO = Mapper.Map(curActivity); + activityDTO.ActivityTemplate = Mapper.Map(_uow.ActivityTemplateRepository.GetByKey(curActivity.ActivityTemplateId)); + throw new ActivityExecutionException(Mapper.Map(_container), activityDTO, string.Empty, e); } throw; diff --git a/Hub/Services/ContainerService.cs b/Hub/Services/ContainerService.cs index 6baa424aaf..a3205376ec 100644 --- a/Hub/Services/ContainerService.cs +++ b/Hub/Services/ContainerService.cs @@ -199,7 +199,8 @@ private OperationalStateCM.ActivityCallStack RecoverCallStack(IUnitOfWork uow, C if (node is ActivityDO) { - nodeName = "Activity: " + ((ActivityDO)node).ActivityTemplate.Name; + var activityTemplate = uow.ActivityTemplateRepository.GetByKey(((ActivityDO)node).ActivityTemplateId); + nodeName = "Activity: " + activityTemplate.Name + " Version:" + activityTemplate.Version; } if (node is SubplanDO) From ae600f8ae017562ee8e956e896382ad2f1540e1d Mon Sep 17 00:00:00 2001 From: blazingmind Date: Thu, 4 Aug 2016 03:07:22 +0300 Subject: [PATCH 064/266] Updated plan JSON docs --- Docs/ForDevelopers/Objects/Objects.md | 7 +- .../Objects/PlanJSONDefinition.md | 34 ---- .../Objects/Plans/PlanJSONDefinition.md | 154 ++++++++++++++++++ .../Objects/{ => Plans}/PlanNodes.md | 0 .../Objects/{ => Plans}/Plans.md | 14 +- .../Objects/{ => Plans}/Subplans.md | 0 6 files changed, 164 insertions(+), 45 deletions(-) delete mode 100644 Docs/ForDevelopers/Objects/PlanJSONDefinition.md create mode 100644 Docs/ForDevelopers/Objects/Plans/PlanJSONDefinition.md rename Docs/ForDevelopers/Objects/{ => Plans}/PlanNodes.md (100%) rename Docs/ForDevelopers/Objects/{ => Plans}/Plans.md (61%) rename Docs/ForDevelopers/Objects/{ => Plans}/Subplans.md (100%) diff --git a/Docs/ForDevelopers/Objects/Objects.md b/Docs/ForDevelopers/Objects/Objects.md index 08b974a415..2a6b77f0a3 100644 --- a/Docs/ForDevelopers/Objects/Objects.md +++ b/Docs/ForDevelopers/Objects/Objects.md @@ -7,10 +7,9 @@ * [Activity Templates](ActivityTemplates.md) * [Crates](Fr8Crates.md) * [Hubs](Fr8Hubs.md) -* [Plans](Plans.md) -* [Plan Nodes](PlanNodes.md) -* [Plan Templates](Plans/PlanTemplates.md) -* [Subplans](Subplans.md) +* [Plans](Plans/Plans.md) +* [Plan Nodes](Plans/PlanNodes.md) +* [Subplans](Plans/Subplans.md) * [Containers](Containers.md) * [Container Execution](ContainerExecution.md) * [Terminals](Terminals.md) diff --git a/Docs/ForDevelopers/Objects/PlanJSONDefinition.md b/Docs/ForDevelopers/Objects/PlanJSONDefinition.md deleted file mode 100644 index f34591a12b..0000000000 --- a/Docs/ForDevelopers/Objects/PlanJSONDefinition.md +++ /dev/null @@ -1,34 +0,0 @@ -# PLAN – JSON DEFINITION -[Go to Contents](https://github.com/Fr8org/Fr8Core/blob/master/Docs/Home.md) - -The JSON specification for a Plan is: -```javascript -{ - "subplans": [ - { - "activities": [ - {}, - {} - ], - "id": "e9e89349-3871-46e4-ad11-71e9e207a9f3", - "planId": "91d3d82e-f471-4095-bd59-9f88ea86d5af", - "name": null, - "transitionKey": null - } - ], - "fr8UserId": "fcc7d694-4820-4d04-bc83-67251fcf8a15", - "id": "91d3d82e-f471-4095-bd59-9f88ea86d5af", - "name": "MonitorAllDocuSignEvents", - "tag": "docusign-auto-monitor-plan-fcc7d694-4820-4d04-bc83-67251fcf8a15", - "visibility": {"hidden": false, "public": false}, - "description": "MonitorAllDocuSignEvents", - "lastUpdated": "0001-01-01T00:00:00+00:00", - "planState": 2, - "startingSubrouteId": "e9e89349-3871-46e4-ad11-71e9e207a9f3" -} -``` -## Visibility - -This property is optional and consist of object with two boolean properties: "hidden" and "public". Default is {"hidden": false, "public": false}, "hidden" corresponds to Plan's visibility for user, false is “Standard” visibility. Plans with "hidden": false, “Internal” visibility are not generally displayed to their owning users. An example would be the Plan that registers for and records DocuSign Events when a Fr8 User has linked in a DocuSign account. Property "public" shows whether Plan is published in PlanDirectory, "public": true, means that Plan is published. - -[Go to Contents](https://github.com/Fr8org/Fr8Core/blob/master/Docs/Home.md) diff --git a/Docs/ForDevelopers/Objects/Plans/PlanJSONDefinition.md b/Docs/ForDevelopers/Objects/Plans/PlanJSONDefinition.md new file mode 100644 index 0000000000..0c8a26a493 --- /dev/null +++ b/Docs/ForDevelopers/Objects/Plans/PlanJSONDefinition.md @@ -0,0 +1,154 @@ +# PLAN – JSON DEFINITION +[Go to Contents](/Docs/Home.md) + +In Fr8 plans are represented in the form of JSON. Lets looks at the following plan: + +![plan with loop](/Doc/img/PlanExecution-PlanWithLoop.png) + + +The JSON representation of this plan is: +```javascript +{ + "subPlans": [ + { + "activities": [ + { + "label": null, + "name": "Get Google Sheet Data", + "activityTemplate": { + "name": "Get_Google_Sheet_Data", + "version": "1", + "terminalName": "terminalGoogle", + "terminalVersion": "1" + }, + "planId": "5c1499ce-4b21-4ca3-ab81-6924e0d55a84", + "parentPlanNodeId": "e26e374e-2691-4625-89fe-79d5200b4e89", + "currentView": null, + "ordering": 1, + "id": "28b93b3d-1abe-4443-aa1d-5bfa15365e3e", + "crateStorage": { + ... Content is omitted for clarity ... + }, + "childrenActivities": [], + "authTokenId": "4e58046e-efb9-4a43-ad93-4a98ad9cc1c0", + "authToken": null, + "documentation": null + }, + { + "label": null, + "name": "Loop", + "activityTemplate": { + "name": "Loop", + "version": "1", + "terminalName": "terminalFr8Core", + "terminalVersion": "1" + }, + "planId": "5c1499ce-4b21-4ca3-ab81-6924e0d55a84", + "parentPlanNodeId": "e26e374e-2691-4625-89fe-79d5200b4e89", + "currentView": null, + "ordering": 2, + "id": "e81fade0-5332-416c-9da1-31a322a70f05", + "crateStorage": { + ... Content is omitted for clarity ... + ] + }, + "childrenActivities": [ + { + "label": null, + "name": "Publish To Slack", + "activityTemplate": { + "name": "Publish_To_Slack", + "version": "2", + "terminalName": "terminalSlack", + "terminalVersion": "1" + }, + "planId": "5c1499ce-4b21-4ca3-ab81-6924e0d55a84", + "parentPlanNodeId": "e81fade0-5332-416c-9da1-31a322a70f05", + "currentView": null, + "ordering": 1, + "id": "9ad788eb-6ca0-42ee-888d-242d6971d7d8", + "crateStorage": { + ... Content is omitted for clarity ... + }, + "childrenActivities": [], + "authTokenId": "c8c69cc4-97a1-4787-ac69-1dcc8b9cb083", + "authToken": null, + "documentation": null + } + ], + "authTokenId": null, + "authToken": null, + "documentation": null + } + ], + "id": "e26e374e-2691-4625-89fe-79d5200b4e89", + "planId": "5c1499ce-4b21-4ca3-ab81-6924e0d55a84", + "parentPlanNodeId": null, + "name": "Starting Subplan" + } + ], + "fr8UserId": "fbb00d37-5c03-4296-9569-a32aeab70443", + "id": "5c1499ce-4b21-4ca3-ab81-6924e0d55a84", + "name": "Plan with loops", + "tag": null, + "description": null, + "lastUpdated": "2016-08-02T19:52:46.2268865+00:00", + "planState": 1, + "startingSubPlanId": "e26e374e-2691-4625-89fe-79d5200b4e89", + "visibility": { + "hidden": false, + "public": false + }, + "category": null +} +``` + +## Plan node JSON +Describes properties of the [plan](/Docs/ForDevelopers/Objects/Plans/Plans.md) itself. +* **subPlans** - one or more subplans. Each plan must have at least one subplan. +* **fr8UserId** - Id of the owner user +* **id** - Id of the plan. +* **name** - Name of the plan. Value of this property is shown in the UI. +* **description** - Optional free form text, describing what this plan is doing. +* **lastUpdated** - Last time this plan was changed +* **startingSubPlanId** - Identifier of the subplan, activities of which will be executed when the user requests the plan execution. +* **planState** - state of the plan. Can be: + * **1** - *Inactive*. Plan is created, but it is not being executed right now + * **2** - *Running*. Plan is being executed. + * **3** - *Deleted*. Plan was deleted. In Fr8, when user deletes the plan its content stays in the DB untouched. The only thing changes is the plan state. Fr8 marks such plan as deleted and stops displaying and processing it. + +### Visibility + +This property is optional and consist of object with two boolean properties: **hidden** and **public**. Default is: +```javascript +{ + "hidden": false, + "public": false +} +``` + +* **hidden** corresponds to Plan's visibility for user: + * **false** is “Standard” visibility. Plan is shown in the UI. + * **true** is “Internal” visibility. Such plans are not generally displayed to their owning users. An example would be the Plan that registers for and records DocuSign Events when a Fr8 User has linked in a DocuSign account +* **public** shows whether Plan is published in **PlanDirectory**. If **true** then the plan is published, othewise - **false**. + +## Subplan JSON +Describes properties of a [subplan](/Docs/ForDevelopers/Objects/Plans/Subplans.md). +* **activities** - list of activities. +* **id** - identifier of the subplan +* **planId** - identifier of the plan this subplan belongs to. +* **name** - name of the subplan. + +## Activity JSON +Describes properties of an [activity](/Docs/ForDevelopers/Objects/Activities.md) +* **name** - name of the activity. This property is displayed to a user +* **activityTemplate** - [Activity Template](/Docs/ForDevelopers/Objects/ActivityTemplates.md). +* **id** - Identifier of the activity +* **planId** - identifier of the plan this activitiy belongs to. +* **parentPlanNodeId** - identifier of the parent node this activity belongs to. This can be the Id of the subplan or Id of other activity. +* **ordering** - activities within the common parent are being displayed and executed in the order that is defined by this property +* **crateStorage** - [Crate Storage](/Docs/ForDevelopers/Objects/DataTransfer/CrateStorageDTO.md) where activity configuration is stored. +* **authTokenId** - identifier of the authentication token +* **childrenActivities** - list of children activities. + +[Go to Contents](/Docs/Home.md) diff --git a/Docs/ForDevelopers/Objects/PlanNodes.md b/Docs/ForDevelopers/Objects/Plans/PlanNodes.md similarity index 100% rename from Docs/ForDevelopers/Objects/PlanNodes.md rename to Docs/ForDevelopers/Objects/Plans/PlanNodes.md diff --git a/Docs/ForDevelopers/Objects/Plans.md b/Docs/ForDevelopers/Objects/Plans/Plans.md similarity index 61% rename from Docs/ForDevelopers/Objects/Plans.md rename to Docs/ForDevelopers/Objects/Plans/Plans.md index 3624c978be..a58b96db22 100644 --- a/Docs/ForDevelopers/Objects/Plans.md +++ b/Docs/ForDevelopers/Objects/Plans/Plans.md @@ -1,5 +1,5 @@ # Plans -[Go to Contents](https://github.com/Fr8org/Fr8Core/blob/master/Docs/Home.md) +[Go to Contents](/Docs/Home.md) A Fr8 Plan is a JSON element that defines a series of Activities. It may have one or more Subplans. When a Plan is run, a Fr8 Hubs first generates a Payload Container, which is a JSON structure designed to store any data generated during the execution of the Plan. The Hub then identifies the Terminal responsible for the starting Activity, and posts the Payload Container off to it. @@ -22,17 +22,17 @@ If you're developing a Terminal, you don't really worry about Plans. You're most Flow Control ------------ -Fr8 provides a powerful set of [flow control](https://github.com/Fr8org/Fr8Core/blob/master/Docs/ForDevelopers/Objects/Activities/ActivityResponses.md) tools that can be integrated into Plans. +Fr8 provides a powerful set of [flow control](/Docs/ForDevelopers/Objects/Activities/ActivityResponses.md) tools that can be integrated into Plans. Additional Resources -------------------- -[The Plan JSON Definition](https://github.com/Fr8org/Fr8Core/blob/master/Docs/ForDevelopers/Objects/PlanJSONDefinition.md) -[Activating & Running Plans](https://github.com/Fr8org/Fr8Core/blob/master/Docs/ForDevelopers/Objects/PlansActivationAndRunning.md) -[Moving and Sharing Plans](https://github.com/Fr8org/Fr8Core/blob/master/Docs/ForDevelopers/Objects/Plans/MovingPlans.md) +[The Plan JSON Definition](/Docs/ForDevelopers/Objects/Plans/PlanJSONDefinition.md) +[Activating & Running Plans](/Docs/ForDevelopers/Objects/PlansActivationAndRunning.md) +[Moving and Sharing Plans](/Docs/ForDevelopers/Objects/Plans/MovingPlans.md) -[Plan Execution](https://github.com/Fr8org/Fr8Core/blob/master/Docs/ForDevelopers/OperatingConcepts/PlanExecution.md) +[Plan Execution](/Docs/ForDevelopers/OperatingConcepts/PlanExecution.md) -[Go to Home](https://github.com/Fr8org/Fr8Core/blob/master/Docs/Home.md) +[Go to Home](/Docs/Home.md) diff --git a/Docs/ForDevelopers/Objects/Subplans.md b/Docs/ForDevelopers/Objects/Plans/Subplans.md similarity index 100% rename from Docs/ForDevelopers/Objects/Subplans.md rename to Docs/ForDevelopers/Objects/Plans/Subplans.md From 0eb865e3f0697462bb3b30175735e1b149a83d53 Mon Sep 17 00:00:00 2001 From: blazingmind Date: Thu, 4 Aug 2016 21:33:35 +0300 Subject: [PATCH 065/266] Updated Moving Plans documentation --- .../Objects/Plans/MovingPlans.md | 31 +++++++++++++++--- Docs/img/MovePlans.DownloadPlanButton.png | Bin 0 -> 31174 bytes Docs/img/MovePlans.PBPlanSettings.png | Bin 0 -> 17349 bytes Docs/img/MovePlans.PlanSettingsButton.png | Bin 0 -> 11403 bytes Docs/img/MovePlans.UploadPlanButton.png | Bin 0 -> 26219 bytes Docs/img/MovePlans.UploadPlanWindow.png | Bin 0 -> 10708 bytes 6 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 Docs/img/MovePlans.DownloadPlanButton.png create mode 100644 Docs/img/MovePlans.PBPlanSettings.png create mode 100644 Docs/img/MovePlans.PlanSettingsButton.png create mode 100644 Docs/img/MovePlans.UploadPlanButton.png create mode 100644 Docs/img/MovePlans.UploadPlanWindow.png diff --git a/Docs/ForDevelopers/Objects/Plans/MovingPlans.md b/Docs/ForDevelopers/Objects/Plans/MovingPlans.md index 2b277f77bf..86acf15789 100644 --- a/Docs/ForDevelopers/Objects/Plans/MovingPlans.md +++ b/Docs/ForDevelopers/Objects/Plans/MovingPlans.md @@ -1,12 +1,33 @@ Moving and Sharing Plans ======================== -Plan JSON is designed to be portable. You can download it and then upload it into a different Hub, and it should work. +[Plan JSON](/Docs/ForDevelopers/Objects/Plans/PlanJSONDefinition.md) is designed to be portable. You can download it and then upload it into a different Hub, and it should work. -Plans can be downloaded from the Plan Details page (reachable from [here](https://fr8.co/dashboard/myaccount)). -When a Plan is downloaded, the following things happen: +There are few ways to download the plan: -To upload a Plan, do this: +### Using plan details page +1. On this page (reachable from [here](https://fr8.co/dashboard/myaccount)) click on *Settings* button: +![Plan settings button](/Docs/img/MovePlans.PlanSettingsButton.png) +2. Click *Download* button in the page that will open: +![Plan settings button]/Docs/img/MovePlans.DownloadPlanButton.png) +Plan JSON will be downloaded as the file by your browser. -You can also share a Plan with others by publishing it to the [Plan Directory](https://github.com/Fr8org/Fr8Core/blob/master/Docs/ForDevelopers/OperatingConcepts/PlanDirectory.md). + + +### Using plan builder + +You can open plan details page directly from the Plan Builder: +![Plan settings button](/Docs/img/MovePlans.PBPlanSettings.png) + + +## Uploading the plan + +To upload the plan click on *Load from JSON file* under *Plans* menu group: +![Upload plan](/Docs/img/MovePlans.UploadPlanButton.png) + +Enter the name that the plan being uploaded will have and select the file with the plan JSON that was previously downloaded: +![Upload plan](/Docs/img/MovePlans.UploadPlanWindow.png) + + +You can also share a Plan with others by publishing it to the [Plan Directory](/Docs/ForDevelopers/OperatingConcepts/PlanDirectory.md). diff --git a/Docs/img/MovePlans.DownloadPlanButton.png b/Docs/img/MovePlans.DownloadPlanButton.png new file mode 100644 index 0000000000000000000000000000000000000000..2d62cd59b33295ba7a555e3bd5a06c30fbaa0279 GIT binary patch literal 31174 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 LWQEHG^?m*qu;1>a literal 0 HcmV?d00001 diff --git a/Docs/img/MovePlans.PBPlanSettings.png b/Docs/img/MovePlans.PBPlanSettings.png new file mode 100644 index 0000000000000000000000000000000000000000..cc4cf4e8006b11151304fddb7da7cc84a8fd3542 GIT binary patch literal 17349 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 Date: Wed, 3 Aug 2016 21:54:14 +0300 Subject: [PATCH 066/266] Fixed images refs --- Docs/ForDevelopers/Objects/Plans/PlanJSONDefinition.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docs/ForDevelopers/Objects/Plans/PlanJSONDefinition.md b/Docs/ForDevelopers/Objects/Plans/PlanJSONDefinition.md index 0c8a26a493..7952247498 100644 --- a/Docs/ForDevelopers/Objects/Plans/PlanJSONDefinition.md +++ b/Docs/ForDevelopers/Objects/Plans/PlanJSONDefinition.md @@ -3,7 +3,7 @@ In Fr8 plans are represented in the form of JSON. Lets looks at the following plan: -![plan with loop](/Doc/img/PlanExecution-PlanWithLoop.png) +![plan with loop](/Docs/img/PlanExecution-PlanWithLoop.png) The JSON representation of this plan is: From 7c1772b4f98d223fe17061b36c8ab31e1156483d Mon Sep 17 00:00:00 2001 From: blazingmind Date: Thu, 4 Aug 2016 23:05:50 +0300 Subject: [PATCH 067/266] Updated terminal discovery guide --- .../Guide-TerminalDiscovery.md | 42 +++++++++++-------- .../Authorization/TerminalAuthentication.md | 15 ------- 2 files changed, 24 insertions(+), 33 deletions(-) delete mode 100644 Docs/ForDevelopers/OperatingConcepts/Authorization/TerminalAuthentication.md diff --git a/Docs/ForDevelopers/DevelopmentGuides/Guide-TerminalDiscovery.md b/Docs/ForDevelopers/DevelopmentGuides/Guide-TerminalDiscovery.md index 0676ececbe..dd71a1054a 100644 --- a/Docs/ForDevelopers/DevelopmentGuides/Guide-TerminalDiscovery.md +++ b/Docs/ForDevelopers/DevelopmentGuides/Guide-TerminalDiscovery.md @@ -13,13 +13,6 @@ If you are using the ["Public Hub" Development Approach](https://github.com/Fr8o So, in either case, your Terminal needs to stand ready to respond with information about itself. -### Creating a Terminal ID -You need to generate a GUID for your Terminal and provide that ID to the Hub. -[ADD MORE MATERIAL HERE] -For more information on Terminal ID's, see [Terminal Authentication](/Docs/ForDevelopers/OperatingConcepts/Authorization/TerminalAuthentication.md). - - - ### Handling the /discover Request [Here's the API definition of a typical terminal](https://terminalfr8core.fr8.co/swagger/ui/index#!/Terminal/Terminal_Get). @@ -28,7 +21,6 @@ Here is an example of response your terminal should return in response to **/dis ```javascript { "Definition":{ - "id":"{generate some GUID value here}", "name":"MyTerminal", "label":"My Teriminal", "version":"1", @@ -37,6 +29,7 @@ Here is an example of response your terminal should return in response to **/dis }, "Activities":[ { + "id":"{generate some GUID value here}", "name":"My_fist_activity", "label":"My first activtiy", "version":"1", @@ -44,7 +37,16 @@ Here is an example of response your terminal should return in response to **/dis "name":"My Terminal", "iconPath":"http://terminal.com/my-terminal-icon.png" }, - "Category":"Processors", + "categories": [ + { + "name": "My Terminal", + "iconPath": "http://terminal.com/my-terminal-icon.png" + }, + { + "name": "Process", + "iconPath": "/Content/icons/monitor-icon-64x64.png" + } + ], "Type":"Standard", "minPaneWidth":330, "NeedsAuthentication":false, @@ -55,8 +57,7 @@ Here is an example of response your terminal should return in response to **/dis There are few important notes here: * All properties in the above JSON are mandatory. -* You should generate a GUID that will uniquely identify your terminal. This GUID should be returned as **Definition.Id** propery value. This GUID should never change unless and until you generate a new version of your Terminal (which will in most respects be treated as a completely different Terminal). GUID is represented by 32 hexadecimal digits separated by hyphens: 00000000-0000-0000-0000-000000000000. -* Asign **Definition.name** and **Definition.label** to anything you want. Note, that **Definition.label** is the text that is shown to users in fr8 UI in activity selection pane. +* Assign **Definition.name** and **Definition.label** to anything you want. Note, that **Definition.label** is the text that is shown to users in fr8 UI in activity selection pane. * **Definition.version** Set it to "1" initially. * **Definiton.endpoint** The address of the termninal's publically accessible HTTP endpoint. * **Definition.authenticationType** defines what kind of authentication your terminal is going to use. We will not use authentication for now. Read about possible values here [link to the page describing terminal authentication] @@ -64,21 +65,26 @@ There are few important notes here: Your /discover response informs the Hub about the Activities you're currently supporting. * For each activity you have to supply **name** and **label**. Name should be unique across your terminal. Label is shown to users in fr8 UI in the activity selection pane. -* Activtiy **version** Set it to "1" at the beginning.
    +* You should generate a GUID that will uniquely identify your activitiy. This GUID should be returned as **id** property value. This GUID **should never change** unless and until you generate a new version of your Activity. GUID is represented by 32 hexadecimal digits separated by hyphens: 00000000-0000-0000-0000-000000000000. +* Activtiy **version** Set it to "1" at the beginning. * If your Terminal communicates with branded web service(s), set the webService information so the Client will display correctly. * **iconPath** should be an absolute URL. * **NeedsAuthentication** flag should be set if this activity requires an authentication token. The Client checks for this before passing on /configure and /run requests, and instead displays the initial authentication UI to the user. -* + +> **Important!** +> You should **never** generate activity **Id** dynamically in your code. You should generate this unique identifier using some tool, like [this online GUID generator](https://www.guidgenerator.com/) and embed generated value into the code the same way you do this for **name** and **version** properties. Categories --------------- -This section is changing but until then, be aware of the following: - -Here's a correct set of category information for a terminal: -![](categories.png) +This section is changing but until then, be aware of the following: +* You have to fill **categories** property for each of your activity template. +* For each activity template you have to fill **categories** array with at least two items: + * Information about the general category of your activity: one of the four original Categories (Process, Forward, Monitor, Get) + * Information about your terminal. In general it is exactly the same info that is specified in **webService** property. -At this time, a category must be present in the categories json element for both a Web Service and one of the four original Categories (Process, Forwarder, Monitor, Get) +> **Important!** +> If you failed to populate **categories** property then your activity template will not be visible in the Plan Builder UI. This is being replaced by the work in JIRA FR-4943 diff --git a/Docs/ForDevelopers/OperatingConcepts/Authorization/TerminalAuthentication.md b/Docs/ForDevelopers/OperatingConcepts/Authorization/TerminalAuthentication.md deleted file mode 100644 index 2b75bdc36f..0000000000 --- a/Docs/ForDevelopers/OperatingConcepts/Authorization/TerminalAuthentication.md +++ /dev/null @@ -1,15 +0,0 @@ -Terminal Authentication -======================= - - -Vladimir says I need to create a unique Id for every discovery request from every other Hub. - -[2:36] -And if a force discovery is made, I need to return this Id again. - -[2:36] -This was one of the problems with the previous implementation. - -[2:36] -Currently, it returns an unique ID every time. - From b6ca0f181783e4f62ed2e278499bc2d18ac07d46 Mon Sep 17 00:00:00 2001 From: blazingmind Date: Thu, 4 Aug 2016 23:11:27 +0300 Subject: [PATCH 068/266] Removed obsolete PublicIdentifier from TerminalDTO --- .../Swagger/SampleData/TerminalSampleFactory.cs | 1 - .../Data/DataTransferObjects/TerminalDTO.cs | 4 +--- Fr8TerminalBase.NET/Services/ActivityStore.cs | 2 -- Fr8TerminalBase.NET/Services/HubDiscoveryService.cs | 10 +++++----- .../Services/HubDiscoveryServiceTests.cs | 1 - 5 files changed, 6 insertions(+), 12 deletions(-) diff --git a/Documentation/Swagger/SampleData/TerminalSampleFactory.cs b/Documentation/Swagger/SampleData/TerminalSampleFactory.cs index d313852012..2b44a2a657 100644 --- a/Documentation/Swagger/SampleData/TerminalSampleFactory.cs +++ b/Documentation/Swagger/SampleData/TerminalSampleFactory.cs @@ -14,7 +14,6 @@ public TerminalDTO GetSampleData() Name = "terminalFr8Core", Label = "Fr8Core", Version = "1", - PublicIdentifier = "2DB48191-CDA3-4922-9CC2-A636E828063F" }; } diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalDTO.cs b/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalDTO.cs index 6c7862fa51..09c06380ac 100644 --- a/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalDTO.cs +++ b/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalDTO.cs @@ -10,9 +10,7 @@ public TerminalDTO() AuthenticationType = States.AuthenticationType.None; Roles = new List(); } - - [JsonProperty("id")] - public string PublicIdentifier { get; set; } + [JsonProperty("InternalId")] public int InternalId { get; set; } [JsonProperty("name")] diff --git a/Fr8TerminalBase.NET/Services/ActivityStore.cs b/Fr8TerminalBase.NET/Services/ActivityStore.cs index 08d2e2177d..b0d8e2126d 100644 --- a/Fr8TerminalBase.NET/Services/ActivityStore.cs +++ b/Fr8TerminalBase.NET/Services/ActivityStore.cs @@ -24,8 +24,6 @@ public class ActivityStore : IActivityStore public ActivityStore(TerminalDTO terminal) { Terminal = terminal; - - Terminal.PublicIdentifier = CloudConfigurationManager.GetSetting("TerminalId") ?? ConfigurationManager.AppSettings[terminal.Name + "TerminalId"]; } public void RegisterActivity(ActivityTemplateDTO activityTemplate, IActivityFactory activityFactory) diff --git a/Fr8TerminalBase.NET/Services/HubDiscoveryService.cs b/Fr8TerminalBase.NET/Services/HubDiscoveryService.cs index 8ded935917..8c43841c29 100644 --- a/Fr8TerminalBase.NET/Services/HubDiscoveryService.cs +++ b/Fr8TerminalBase.NET/Services/HubDiscoveryService.cs @@ -222,7 +222,7 @@ private async Task SubsribeToHubTask(string hubUrl) } catch (Exception ex) { - Logger.Error($"Failed to add hub '{hubUrl}' to the subscription list of terminal {_activityStore.Terminal.Name} ({_activityStore.Terminal.PublicIdentifier})", ex); + Logger.Error($"Failed to add hub '{hubUrl}' to the subscription list of terminal {_activityStore.Terminal.Name} ({_activityStore.Terminal.Version})", ex); } } @@ -247,7 +247,7 @@ await masterHubCommunicator.DeleteFromWarehouse(new List Date: Thu, 4 Aug 2016 02:28:49 +0200 Subject: [PATCH 069/266] TerminalRegistrationDO removed --- Controllers/Api/TerminalsController.cs | 8 ++--- Data/Data.csproj | 1 - Data/Entities/TerminalDO.cs | 32 ++++++++++++++++--- Data/Entities/TerminalRegistrationDO.cs | 2 +- .../AutoMapper/DataAutoMapperBootstrapper.cs | 4 --- Data/Infrastructure/DockyardDbContext.cs | 1 - Data/Infrastructure/UnitOfWork.cs | 9 ------ Data/Interfaces/IUnitOfWork.cs | 2 -- Data/Migrations/MigrationConfiguration.cs | 9 +++--- .../TerminalRegistrationRepository.cs | 12 ------- .../TerminalRegistrationSampleFactory.cs | 20 ------------ .../Data/DataTransferObjects/TerminalDTO.cs | 6 ++++ .../TerminalRegistrationDTO.cs | 22 ------------- .../Data/States/TerminalStatus.cs | 3 +- .../Fr8Infrastructure.NET.csproj | 1 - Hub/Services/TerminalDiscoveryService.cs | 22 +++++++------ HubWeb.csproj | 1 - Tests/HealthMonitor/App.Dev.config | 1 + 18 files changed, 58 insertions(+), 98 deletions(-) delete mode 100644 Data/Repositories/TerminalRegistrationRepository.cs delete mode 100644 Documentation/Swagger/SampleData/TerminalRegistrationSampleFactory.cs delete mode 100644 Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalRegistrationDTO.cs diff --git a/Controllers/Api/TerminalsController.cs b/Controllers/Api/TerminalsController.cs index 24d4d91758..2bb927f3e3 100644 --- a/Controllers/Api/TerminalsController.cs +++ b/Controllers/Api/TerminalsController.cs @@ -48,13 +48,13 @@ public IHttpActionResult Get() /// Unauthorized request [HttpGet] [Fr8ApiAuthorize] - [ResponseType(typeof(List))] + [ResponseType(typeof(List))] public IHttpActionResult Registrations() { using (var uow = ObjectFactory.GetInstance()) { - var terminals = uow.TerminalRegistrationRepository.GetAll() - .Select(Mapper.Map) + var terminals = uow.TerminalRepository.GetAll() + .Select(Mapper.Map) .ToList(); @@ -103,7 +103,7 @@ public IHttpActionResult Get(int id) //[Fr8ApiAuthorize] [SwaggerResponse(HttpStatusCode.OK, "Terminal was registered and discovery process was successfully performed")] [SwaggerResponseRemoveDefaults] - public async Task Post([FromBody]TerminalRegistrationDTO registration) + public async Task Post([FromBody]TerminalDTO registration) { await _terminalDiscovery.RegisterTerminal(registration.Endpoint); return Ok(); diff --git a/Data/Data.csproj b/Data/Data.csproj index d564aa014c..1fdb610d3f 100644 --- a/Data/Data.csproj +++ b/Data/Data.csproj @@ -883,7 +883,6 @@ - diff --git a/Data/Entities/TerminalDO.cs b/Data/Entities/TerminalDO.cs index 01a776f2fd..15edd7b0f5 100644 --- a/Data/Entities/TerminalDO.cs +++ b/Data/Entities/TerminalDO.cs @@ -30,15 +30,20 @@ public TerminalDO() public int TerminalStatus { get; set; } public _TerminalStatusTemplate TerminalStatusTemplate { get; set; } - // TODO: remove this, DO-1397 - // public bool RequiresAuthentication { get; set; } - - //public string BaseEndPoint { get; set; } - + /// + /// Currently active endpoint. + /// + /// + /// The 'Endpoint' property contains the currently active endpoint which may be changed + /// by deployment scripts or by promoting the terminal from Dev to Production + /// while ProdUrl/DevUrl contains whatever user or administrator have supplied. + /// public string Endpoint { get; set; } public virtual Fr8AccountDO UserDO { get; set; } + [ForeignKey("UserDO")] + public string UserId { get; set; } public string Description { get; set; } [Required] @@ -46,5 +51,22 @@ public TerminalDO() public int AuthenticationType { get; set; } public virtual _AuthenticationTypeTemplate AuthenticationTypeTemplate { get; set; } + + public bool IsFr8OwnTerminal { get; set; } + + /// + /// Development endpoint URL. + /// + public string DevUrl { get; set; } + + /// + /// Production endpoint URL. + /// + public string ProdUrl { get; set; } + + [ForeignKey("ParticipationStateTemplate")] + public int ParticipationState { get; set; } + public virtual _ParticipationStateTemplate ParticipationStateTemplate { get; set; } + } } diff --git a/Data/Entities/TerminalRegistrationDO.cs b/Data/Entities/TerminalRegistrationDO.cs index 330aa7fe4d..11d49ed94f 100644 --- a/Data/Entities/TerminalRegistrationDO.cs +++ b/Data/Entities/TerminalRegistrationDO.cs @@ -5,7 +5,7 @@ namespace Data.Entities { - public class TerminalRegistrationDO : BaseObject + public class _TerminalRegistrationDO : BaseObject { [Key] [Required] diff --git a/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs b/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs index cb7c1d4909..b7ef0e8c42 100644 --- a/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs +++ b/Data/Infrastructure/AutoMapper/DataAutoMapperBootstrapper.cs @@ -164,10 +164,6 @@ public static void ConfigureAutoMapper() .ForMember(x => x.PlanId, opts => opts.ResolveUsing(x => x.RootPlanNodeId)) .ForMember(x => x.SubPlanId, opts => opts.ResolveUsing(x => x.Id)); - - Mapper.CreateMap(); - Mapper.CreateMap(); - Mapper.CreateMap().ConvertUsing(); Mapper.CreateMap(); diff --git a/Data/Infrastructure/DockyardDbContext.cs b/Data/Infrastructure/DockyardDbContext.cs index 3368e0fb7b..588d4f2a36 100644 --- a/Data/Infrastructure/DockyardDbContext.cs +++ b/Data/Infrastructure/DockyardDbContext.cs @@ -359,7 +359,6 @@ protected override void OnModelCreating(DbModelBuilder modelBuilder) .WillCascadeOnDelete(false); modelBuilder.Entity().ToTable("PageDefinitions"); - modelBuilder.Entity().ToTable("TerminalRegistration"); base.OnModelCreating(modelBuilder); } diff --git a/Data/Infrastructure/UnitOfWork.cs b/Data/Infrastructure/UnitOfWork.cs index 39c01e1030..78f6fcc7da 100644 --- a/Data/Infrastructure/UnitOfWork.cs +++ b/Data/Infrastructure/UnitOfWork.cs @@ -448,15 +448,6 @@ public IOrganizationRepository OrganizationRepository public IPageDefinitionRepository PageDefinitionRepository => _pageDefinitionRepository ?? (_pageDefinitionRepository = new PageDefinitionRepository(this)); - private TerminalRegistrationRepository _terminalRegistrationRepository; - public TerminalRegistrationRepository TerminalRegistrationRepository - { - get - { - return _terminalRegistrationRepository ?? (_terminalRegistrationRepository = new TerminalRegistrationRepository(this)); - } - } - private IActivityCategoryRepository _activityCategoryRepository; public IActivityCategoryRepository ActivityCategoryRepository { diff --git a/Data/Interfaces/IUnitOfWork.cs b/Data/Interfaces/IUnitOfWork.cs index 2761ebec29..261cb7d63d 100644 --- a/Data/Interfaces/IUnitOfWork.cs +++ b/Data/Interfaces/IUnitOfWork.cs @@ -68,8 +68,6 @@ public interface IUnitOfWork : IDisposable IPageDefinitionRepository PageDefinitionRepository { get; } - TerminalRegistrationRepository TerminalRegistrationRepository { get; } - IActivityCategoryRepository ActivityCategoryRepository { get; } IActivityCategorySetRepository ActivityCategorySetRepository { get; } diff --git a/Data/Migrations/MigrationConfiguration.cs b/Data/Migrations/MigrationConfiguration.cs index de03fb3b13..62740a161c 100644 --- a/Data/Migrations/MigrationConfiguration.cs +++ b/Data/Migrations/MigrationConfiguration.cs @@ -13,6 +13,7 @@ using Data.Interfaces; using StructureMap; using System.Text.RegularExpressions; +using Fr8.Infrastructure.Data.States; namespace Data.Migrations { @@ -123,12 +124,12 @@ private string ExtractPort(string url) // ReSharper disable once UnusedMember.Local private void RegisterTerminal(UnitOfWork uow, string terminalEndpoint) { - var terminalRegistration = new TerminalRegistrationDO(); + var terminalRegistration = new TerminalDO(); string terminalPort = ExtractPort(terminalEndpoint); terminalEndpoint = ExtractTerminalAuthority(terminalEndpoint); - if (uow.TerminalRegistrationRepository.GetAll().FirstOrDefault(x => + if (uow.TerminalRepository.GetAll().FirstOrDefault(x => string.Equals(ExtractTerminalAuthority(x.Endpoint), terminalEndpoint, StringComparison.OrdinalIgnoreCase) || (ExtractPort(x.Endpoint) != null && ExtractPort(terminalEndpoint) != null && string.Equals(ExtractPort(x.Endpoint), terminalPort, StringComparison.OrdinalIgnoreCase)) ) != null) @@ -138,10 +139,10 @@ private void RegisterTerminal(UnitOfWork uow, string terminalEndpoint) terminalRegistration.Endpoint = terminalEndpoint; terminalRegistration.IsFr8OwnTerminal = true; - terminalRegistration.OperationalState = OperationalState.Active; + terminalRegistration.TerminalStatus = TerminalStatus.Active; terminalRegistration.ParticipationState = ParticipationState.Approved; - uow.TerminalRegistrationRepository.Add(terminalRegistration); + uow.TerminalRepository.Add(terminalRegistration); uow.SaveChanges(); } diff --git a/Data/Repositories/TerminalRegistrationRepository.cs b/Data/Repositories/TerminalRegistrationRepository.cs deleted file mode 100644 index 22ff7ecc1d..0000000000 --- a/Data/Repositories/TerminalRegistrationRepository.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Data.Entities; -using Data.Interfaces; - -namespace Data.Repositories -{ - public class TerminalRegistrationRepository : GenericRepository - { - public TerminalRegistrationRepository(IUnitOfWork uow) : base(uow) - { - } - } -} diff --git a/Documentation/Swagger/SampleData/TerminalRegistrationSampleFactory.cs b/Documentation/Swagger/SampleData/TerminalRegistrationSampleFactory.cs deleted file mode 100644 index b4428d1699..0000000000 --- a/Documentation/Swagger/SampleData/TerminalRegistrationSampleFactory.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Fr8.Infrastructure.Data.DataTransferObjects; - -namespace HubWeb.Documentation.Swagger -{ - public class TerminalRegistrationSampleFactory : ISwaggerSampleFactory - { - public TerminalRegistrationDTO GetSampleData() - { - return new TerminalRegistrationDTO - { - Endpoint = "https://terminalfr8Core.fr8.co" - }; - } - - object ISwaggerSampleFactory.GetSampleData() - { - return GetSampleData(); - } - } -} \ No newline at end of file diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalDTO.cs b/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalDTO.cs index 6c7862fa51..d6e323b043 100644 --- a/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalDTO.cs +++ b/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalDTO.cs @@ -23,12 +23,18 @@ public TerminalDTO() public string Version { get; set; } [JsonProperty("terminalStatus")] public int TerminalStatus { get; set; } + [JsonProperty("participationState")] + public int ParticipationState { get; set; } [JsonProperty("endpoint")] public string Endpoint { get; set; } [JsonProperty("description")] public string Description { get; set; } [JsonProperty("authenticationType")] public int AuthenticationType { get; set; } + [JsonProperty("devUrl")] + public string DevUrl { get; set; } + [JsonProperty("prodUrl")] + public string ProdUrl { get; set; } /// /// Allowed roles for users, determing Terminal Permissions /// diff --git a/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalRegistrationDTO.cs b/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalRegistrationDTO.cs deleted file mode 100644 index 57c9a16b91..0000000000 --- a/Fr8Infrastructure.NET/Data/DataTransferObjects/TerminalRegistrationDTO.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Newtonsoft.Json; - -namespace Fr8.Infrastructure.Data.DataTransferObjects -{ - public class TerminalRegistrationDTO - { - [JsonProperty("id")] - public string Id { get; set; } - - [JsonProperty("endpoint")] - public string Endpoint { get; set; } - - [JsonProperty("devUrl")] - public string DevUrl { get; set; } - - [JsonProperty("operationalState")] - public int OperationalState{ get; set; } - - [JsonProperty("participationState")] - public int ParticipationState { get; set; } - } -} diff --git a/Fr8Infrastructure.NET/Data/States/TerminalStatus.cs b/Fr8Infrastructure.NET/Data/States/TerminalStatus.cs index 8bbd821600..6aa66100bd 100644 --- a/Fr8Infrastructure.NET/Data/States/TerminalStatus.cs +++ b/Fr8Infrastructure.NET/Data/States/TerminalStatus.cs @@ -2,7 +2,8 @@ { public class TerminalStatus { - public const int Inactive = 0; + public const int Undiscovered = 0; public const int Active = 1; + public const int Inactive = 1; } } diff --git a/Fr8Infrastructure.NET/Fr8Infrastructure.NET.csproj b/Fr8Infrastructure.NET/Fr8Infrastructure.NET.csproj index 3df09b2d66..96af59958f 100644 --- a/Fr8Infrastructure.NET/Fr8Infrastructure.NET.csproj +++ b/Fr8Infrastructure.NET/Fr8Infrastructure.NET.csproj @@ -226,7 +226,6 @@ - diff --git a/Hub/Services/TerminalDiscoveryService.cs b/Hub/Services/TerminalDiscoveryService.cs index 8fdc00ced6..464420930d 100644 --- a/Hub/Services/TerminalDiscoveryService.cs +++ b/Hub/Services/TerminalDiscoveryService.cs @@ -16,6 +16,7 @@ using Microsoft.AspNet.Identity; using Data.States; using Data.Infrastructure.StructureMap; +using Fr8.Infrastructure.Data.States; namespace Hub.Services { @@ -82,6 +83,7 @@ public async Task RegisterTerminal(string endpoint) { throw new ArgumentException("Invalid url", nameof(endpoint)); } + endpoint = endpoint.ToLower(); Logger.Info($"Registration of terminal at '{endpoint}' is requested."); @@ -89,13 +91,13 @@ public async Task RegisterTerminal(string endpoint) using (var uow = _unitOfWorkFactory.Create()) { - var terminalRegistration = new TerminalRegistrationDO(); - terminalRegistration.OperationalState = OperationalState.Undiscovered; + var terminalRegistration = new TerminalDO(); + terminalRegistration.TerminalStatus = TerminalStatus.Undiscovered; // The 'Endpoint' property contains the currently active endpoint which may be changed // by deployment scripts or by promoting the terminal from Dev to Production // while ProdUrl/DevUrl contains whatever user or administrator have supplied. - terminalRegistration.Endpoint = endpoint.ToLower(); + terminalRegistration.Endpoint = endpoint; if (UserHasTerminalAdministratorPermission()) { // Promote terminal directly to the Approved state if an admin adds it @@ -109,7 +111,7 @@ public async Task RegisterTerminal(string endpoint) terminalRegistration.DevUrl = terminalRegistration.Endpoint; } - if (uow.TerminalRegistrationRepository.GetAll().FirstOrDefault(x => string.Equals(ExtractTerminalAuthority(x.Endpoint), endpoint, StringComparison.OrdinalIgnoreCase)) != null) + if (uow.TerminalRepository.GetAll().FirstOrDefault(x => string.Equals(ExtractTerminalAuthority(x.Endpoint), endpoint, StringComparison.OrdinalIgnoreCase)) != null) { Logger.Error($"Terminal with endpoint '{endpoint}' was already registered"); throw new Exception($"Terminal with endpoint '{endpoint}' was already registered"); @@ -131,7 +133,7 @@ public async Task RegisterTerminal(string endpoint) throw new Exception($"Unable to discover terminal at '{normaizedEndpoint}'"); } - uow.TerminalRegistrationRepository.Add(terminalRegistration); + uow.TerminalRepository.Add(terminalRegistration); uow.SaveChanges(); } @@ -147,9 +149,9 @@ private bool UserHasTerminalAdministratorPermission() public async Task Discover() { var terminalUrls = ListTerminalEndpoints(); - var discoverTerminalsTasts = terminalUrls.Select(x => DiscoverInternal(NormalizeTerminalEndpoint(x))).ToArray(); + var discoverTerminalsTasks = terminalUrls.Select(x => DiscoverInternal(NormalizeTerminalEndpoint(x))).ToArray(); - await Task.WhenAll(discoverTerminalsTasts); + await Task.WhenAll(discoverTerminalsTasks); } public async Task Discover(string terminalUrl) @@ -225,10 +227,10 @@ private async Task DiscoverInternal(string terminalUrl) throw new Exception($"Terminal at '{terminalUrl}' didn't return meaningfull reply for discovery request."); } - var activityTemplates = terminalRegistrationInfo.Activities.Select(Mapper.Map).ToList(); + terminalRegistrationInfo.Definition.Endpoint = terminalUrl; // Don't let terminal change its endpoint URL (FR-5069) + var activityTemplates = terminalRegistrationInfo.Activities.Select(Mapper.Map).ToList(); var terminal = Mapper.Map(terminalRegistrationInfo.Definition); - terminal.Secret = secret; if (string.IsNullOrWhiteSpace(terminal.Label)) @@ -286,7 +288,7 @@ private string[] ListTerminalEndpoints() using (var uow = _unitOfWorkFactory.Create()) { - foreach (var terminalRegistration in uow.TerminalRegistrationRepository.GetAll()) + foreach (var terminalRegistration in uow.TerminalRepository.GetAll()) { terminalUrls.Add(terminalRegistration.Endpoint); } diff --git a/HubWeb.csproj b/HubWeb.csproj index f6364c0feb..453ea88e84 100644 --- a/HubWeb.csproj +++ b/HubWeb.csproj @@ -456,7 +456,6 @@ - diff --git a/Tests/HealthMonitor/App.Dev.config b/Tests/HealthMonitor/App.Dev.config index 18bdc645f2..d3172b4a3c 100644 --- a/Tests/HealthMonitor/App.Dev.config +++ b/Tests/HealthMonitor/App.Dev.config @@ -6,6 +6,7 @@ + From c22cb275466d65c9d00ae41346b700f5240a9823 Mon Sep 17 00:00:00 2001 From: Andrei Chaplygin Date: Thu, 4 Aug 2016 02:51:26 +0200 Subject: [PATCH 070/266] Added validation and error message displaying --- App_Start/StartupMigration.cs | 56 ++++++++++++------- Fr8Infrastructure.NET/Data/Control/Control.cs | 28 +++++++++- .../Infrastructure/ValidationExtensions.cs | 28 +++++++++- .../Controls/ContainerTransition.ts | 13 ++++- Scripts/app/model/ControlsList.ts | 11 +++- Scripts/app/services/CrateHelper.ts | 14 ++++- Startup.cs | 2 +- .../ContainerTransition.cshtml | 3 + .../Activities/Make_A_Decision_v1.cs | 7 +++ 9 files changed, 132 insertions(+), 30 deletions(-) diff --git a/App_Start/StartupMigration.cs b/App_Start/StartupMigration.cs index 6f94742934..849d49c221 100644 --- a/App_Start/StartupMigration.cs +++ b/App_Start/StartupMigration.cs @@ -4,6 +4,13 @@ using Fr8.Infrastructure.Utilities; using Newtonsoft.Json; using System.Linq; +using AutoMapper; +using Data.Repositories.Encryption; +using Fr8.Infrastructure.Data.Control; +using Fr8.Infrastructure.Data.Crates; +using Fr8.Infrastructure.Data.DataTransferObjects; +using Fr8.Infrastructure.Data.Managers; +using Fr8.Infrastructure.Data.Manifests; namespace HubWeb.App_Start { @@ -25,30 +32,41 @@ public static void CreateSystemUser() uow.SaveChanges(); } } - - //Prior to FR-3683 Salesforce refresh tokens were stored in nonsecure part of database - //This method is intended to save them into key vault - //This method is not a part of Seed method because at that point of time key vault is not yet configured - //TODO: delete this method after this is deployed to prod - public static void MoveSalesforceRefreshTokensIntoKeyVault() + + //TODO: this method is a one-time update of transitions inside ContainerTransition control and should be removed after it is deployed to prod + public static void UpdateTransitionNames() { using (var uow = ObjectFactory.GetInstance()) { - var terminalId = uow.TerminalRepository.GetQuery().Where(x => x.Name == "terminalSalesforce").Select(x => x.Id).FirstOrDefault(); - if (terminalId == 0) - { - return; - } - var tokens = uow.AuthorizationTokenRepository.GetPublicDataQuery().Where(x => x.TerminalID == terminalId && x.AdditionalAttributes.StartsWith("refresh_token")); - foreach (var token in tokens) + var encryptionService = ObjectFactory.GetInstance(); + foreach (var activity in uow.PlanRepository + .GetActivityQueryUncached() + .Where(x => x.ActivityTemplate.Name == "Make_a_Decision" && x.ActivityTemplate.Version == "1")) { - var actualToken = uow.AuthorizationTokenRepository.FindTokenById(token.Id); - var refreshTokenFirstIndex = actualToken.AdditionalAttributes.IndexOf('=') + 1; - var refreshTokenLastIndex = actualToken.AdditionalAttributes.IndexOf(';'); - actualToken.Token = JsonConvert.SerializeObject(new { AccessToken = actualToken.Token, RefreshToken = actualToken.AdditionalAttributes.Substring(refreshTokenFirstIndex, refreshTokenLastIndex - refreshTokenFirstIndex) }); - actualToken.AdditionalAttributes = actualToken.AdditionalAttributes.Substring(refreshTokenLastIndex + 1); + + var dto = Mapper.Map(activity); + if (dto.CrateStorage == null) + { + dto.CrateStorage = JsonConvert.DeserializeObject(encryptionService.DecryptString(activity.Fr8AccountId, activity.EncryptedCrateStorage)); + } + using (var storage = new CrateManager().GetUpdatableStorage(dto)) + { + var controls = storage.FirstCrateOrDefault()?.Content; + if (controls == null) + { + continue; + } + var transitionList = controls.Controls.OfType().First(); + for (var i = 0; i < transitionList.Transitions.Count; i++) + { + var transition = transitionList.Transitions[i]; + transition.Name = $"transition_{i}"; + } + } + activity.CrateStorage = JsonConvert.SerializeObject(dto.CrateStorage, Formatting.Indented); + activity.EncryptedCrateStorage = encryptionService.EncryptData(activity.Fr8AccountId, activity.CrateStorage); + uow.SaveChanges(); } - uow.SaveChanges(); } } } diff --git a/Fr8Infrastructure.NET/Data/Control/Control.cs b/Fr8Infrastructure.NET/Data/Control/Control.cs index 488106df6e..e24a8de058 100644 --- a/Fr8Infrastructure.NET/Data/Control/Control.cs +++ b/Fr8Infrastructure.NET/Data/Control/Control.cs @@ -680,6 +680,26 @@ public enum ContainerTransitions ProceedToNextActivity } + public static class ContainerTransitionsExtensions + { + public static bool RequiresTargetNodeId(this ContainerTransitions transition) + { + switch (transition) + { + case ContainerTransitions.JumpToActivity: + case ContainerTransitions.LaunchAdditionalPlan: + case ContainerTransitions.JumpToSubplan: + return true; + case ContainerTransitions.StopProcessing: + case ContainerTransitions.SuspendProcessing: + case ContainerTransitions.ProceedToNextActivity: + return false; + default: + throw new ArgumentOutOfRangeException(nameof(transition), transition, null); + } + } + } + public class ContainerTransitionField { [JsonProperty("conditions")] @@ -688,8 +708,10 @@ public class ContainerTransitionField [JsonProperty("transition")] public ContainerTransitions Transition { get; set; } - [JsonProperty("targetNodeId")] - public Guid? TargetNodeId; + [JsonProperty("name")] + public string Name { get; set; } + + [JsonProperty("targetNodeId")] public Guid? TargetNodeId; } public class FilterPaneField @@ -751,7 +773,6 @@ public UpstreamCrateChooser() [JsonProperty("multiSelection")] public bool MultiSelection { get; set; } - } public class CrateChooser : ControlDefinitionDTO @@ -827,6 +848,7 @@ public string URL } } } + public class BuildMessageAppender : TextArea { public BuildMessageAppender() diff --git a/Fr8TerminalBase.NET/Infrastructure/ValidationExtensions.cs b/Fr8TerminalBase.NET/Infrastructure/ValidationExtensions.cs index 0b868743b0..1ee340b8c6 100644 --- a/Fr8TerminalBase.NET/Infrastructure/ValidationExtensions.cs +++ b/Fr8TerminalBase.NET/Infrastructure/ValidationExtensions.cs @@ -7,6 +7,33 @@ namespace Fr8.TerminalBase.Infrastructure { public static class ValidationExtensions { + public static void ValidateTransitions(this ValidationManager validationManager, ContainerTransition control) + { + for (var i = 0; i < control.Transitions.Count; i++) + { + var transition = control.Transitions[i]; + if (transition.Transition.RequiresTargetNodeId() && transition.TargetNodeId == null) + { + validationManager.SetError(GetMissingNodeTransitionErrorMessage(transition.Transition), $"transition_{i}"); + } + } + } + + private static string GetMissingNodeTransitionErrorMessage(ContainerTransitions transition) + { + switch (transition) + { + case ContainerTransitions.JumpToActivity: + return "Target activity is not specified"; + case ContainerTransitions.LaunchAdditionalPlan: + return "Target plan is not specified"; + case ContainerTransitions.JumpToSubplan: + return "Target subplan is not specified"; + default: + return string.Empty; + } + } + public static void ValidateEmail(this ValidationManager validationManager, IConfigRepository configRepository, ControlDefinitionDTO control, string errorMessage = null) { if (!RegexUtilities.IsValidEmailAddress(configRepository, control.Value)) @@ -42,7 +69,6 @@ public static bool ValidatePhoneNumber(this ValidationManager validationManager, validationManager.SetError(control.InitialLabel + " Is Invalid", control); return false; } - } catch (NumberParseException npe) { diff --git a/Scripts/app/directives/Controls/ContainerTransition.ts b/Scripts/app/directives/Controls/ContainerTransition.ts index f5b5b18b74..f387aef8f7 100644 --- a/Scripts/app/directives/Controls/ContainerTransition.ts +++ b/Scripts/app/directives/Controls/ContainerTransition.ts @@ -238,7 +238,9 @@ module dockyard.directives.containerTransition { }; $scope.addTransition = () => { - $scope.field.transitions.push(new model.ContainerTransitionField()); + var newTransition = new model.ContainerTransitionField(); + newTransition.name = "transition_" + $scope.field.transitions.length; + $scope.field.transitions.push(newTransition); }; var buildJumpTargets = (): Array => { var targets = new Array(); @@ -283,6 +285,7 @@ module dockyard.directives.containerTransition { $scope.onTargetChange = (transition: model.ContainerTransitionField) => { var dd = (transition)._dummySecondaryOperationDD; transition.targetNodeId = dd.value; + transition.errorMessage = null; triggerChange(); if ((transition)._dummyOperationDD.value === ContainerTransitions.JumpToSubplan.toString() @@ -298,7 +301,12 @@ module dockyard.directives.containerTransition { $scope.onOperationChange = (transition: model.ContainerTransitionField) => { var dd = (transition)._dummyOperationDD; + var targetNodeDd = (transition)._dummySecondaryOperationDD; + targetNodeDd.value = null; + targetNodeDd.selectedKey = null; + transition.targetNodeId = null; transition.transition = parseInt(dd.value); + transition.errorMessage = ""; processTransition(transition); triggerChange(); return angular.noop; @@ -336,6 +344,9 @@ module dockyard.directives.containerTransition { }; $scope.removeTransition = (index: number) => { $scope.field.transitions.splice(index, 1); + $scope.field.transitions.forEach((tran, index) => { + tran.name = "transition_" + index; + }); triggerChange(); }; diff --git a/Scripts/app/model/ControlsList.ts b/Scripts/app/model/ControlsList.ts index d38b36330f..43b35ece7c 100644 --- a/Scripts/app/model/ControlsList.ts +++ b/Scripts/app/model/ControlsList.ts @@ -7,7 +7,12 @@ controls: Array; } - export class ControlDefinitionDTO { + export interface ISupportsErrorMessage { + name: string; + errorMessage: string; + } + + export class ControlDefinitionDTO implements ISupportsErrorMessage { type: string; fieldLabel: string; label: string; @@ -224,10 +229,12 @@ metaDescriptions: Array; } - export class ContainerTransitionField { + export class ContainerTransitionField implements ISupportsErrorMessage { conditions: Array; transition: number; targetNodeId: string; + name: string; + errorMessage: string; constructor() { this.conditions = []; diff --git a/Scripts/app/services/CrateHelper.ts b/Scripts/app/services/CrateHelper.ts index 0e6c13e890..c0e0e1606a 100644 --- a/Scripts/app/services/CrateHelper.ts +++ b/Scripts/app/services/CrateHelper.ts @@ -196,7 +196,7 @@ } } - private setFieldValidationErrors(field: model.ControlDefinitionDTO, validationResults: model.ValidationResults) { + private setFieldValidationErrors(field: model.ISupportsErrorMessage, validationResults: model.ValidationResults) { for (var j = 0; j < validationResults.validationErrors.length; j++) { if (validationResults.validationErrors[j].controlNames == null) { continue; @@ -210,7 +210,7 @@ } } - public resetValidationErrors(fields: Array) { + public resetValidationErrors(fields: Array) { for (var i = 0; i < fields.length; i++) { fields[i].errorMessage = null; @@ -223,10 +223,14 @@ if (field.radios) { this.resetValidationErrors((field).radios); } + //If we have ContainerTransitions we check every individual transition + if (field.transitions) { + this.resetValidationErrors((field).transitions); + } } } - public setValidationErrors(fields: Array, validationResults: model.ValidationResults) { + public setValidationErrors(fields: Array, validationResults: model.ValidationResults) { for (var i = 0; i < fields.length; i++) { fields[i].errorMessage = null; @@ -241,6 +245,10 @@ if (field.radios) { this.setValidationErrors((field).radios, validationResults); } + //If we have ContainerTransitions we check every individual transition + if (field.transitions) { + this.setValidationErrors((field).transitions, validationResults); + } } } diff --git a/Startup.cs b/Startup.cs index a63f12df8f..034f5fced5 100644 --- a/Startup.cs +++ b/Startup.cs @@ -71,7 +71,7 @@ public async void Configuration(IAppBuilder app, bool selfHostMode) incidentReporter.SubscribeToAlerts(); StartupMigration.CreateSystemUser(); - StartupMigration.MoveSalesforceRefreshTokensIntoKeyVault(); + StartupMigration.UpdateTransitionNames(); SetServerUrl(); diff --git a/Views/AngularTemplate/ContainerTransition.cshtml b/Views/AngularTemplate/ContainerTransition.cshtml index 07427a717b..041a4be8f8 100644 --- a/Views/AngularTemplate/ContainerTransition.cshtml +++ b/Views/AngularTemplate/ContainerTransition.cshtml @@ -24,6 +24,9 @@