mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-20 04:35:32 +00:00
bug5883: rework based on Axel's review from 01.10.2023 (https://bugzilla.sapsailing.com/bugzilla/show_bug.cgi?id=5883#c10)
- Fixed spacing for small screens - Fixed header text orientation - Removed optional URL translations from properties and StringConstants class and implemented handling of not existing url accordingly
This commit is contained in:
+18
-15
@@ -320,23 +320,26 @@
|
||||
margin: 0 auto;
|
||||
width: 140px;
|
||||
}
|
||||
|
||||
/* Small screens */
|
||||
@media ( max-width: 400px) {
|
||||
.featureCheck {
|
||||
margin: 0 15px;
|
||||
}
|
||||
.featureNone {
|
||||
margin: 0 15px;
|
||||
}
|
||||
.featureHeader {
|
||||
-ms-writing-mode: tb-rl;
|
||||
-webkit-writing-mode: vertical-rl;
|
||||
writing-mode: vertical-rl;
|
||||
transform: rotate(180deg);
|
||||
white-space: nowrap;
|
||||
width: auto;
|
||||
}
|
||||
.featureCheck {
|
||||
margin: 0 0 0 8px;
|
||||
}
|
||||
.featureNone {
|
||||
margin: 0 0 0 8px;
|
||||
}
|
||||
.featureHeader {
|
||||
-ms-writing-mode: tb-rl;
|
||||
-webkit-writing-mode: vertical-rl;
|
||||
writing-mode: vertical-rl;
|
||||
transform: rotate(180deg);
|
||||
white-space: nowrap;
|
||||
width: auto;
|
||||
text-align: left;
|
||||
}
|
||||
.featureCheck img {
|
||||
width: 19px;
|
||||
}
|
||||
}
|
||||
|
||||
.buttonWarning {
|
||||
|
||||
+12
-9
@@ -2,6 +2,7 @@ package com.sap.sailing.gwt.home.desktop.partials.subscription;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.MissingResourceException;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
@@ -58,8 +59,8 @@ public class SubscriptionCardContainer extends Composite {
|
||||
for (final SubscriptionPlan.PlanCategory category : SubscriptionPlan.PlanCategory.getCategoriesWithFeature()) {
|
||||
rowIndex++;
|
||||
final Label title = new Label(i18n.getString(category.getId() + "_name"));
|
||||
title.addStyleName(SubscriptionCardResources.INSTANCE.css().featureHeader());
|
||||
featureGrid.setWidget(0, rowIndex, title);
|
||||
featureGrid.getCellFormatter().addStyleName(0, rowIndex, SubscriptionCardResources.INSTANCE.css().featureHeader());
|
||||
}
|
||||
// add features to list
|
||||
for (final String featureId : SubscriptionPlan.PlanCategory.getAllFeatureIds()) {
|
||||
@@ -76,23 +77,20 @@ public class SubscriptionCardContainer extends Composite {
|
||||
}
|
||||
|
||||
private void addFeature(final String featureId) {
|
||||
String titleString = i18n.getString(featureId + "_title");
|
||||
String descriptionString = i18n.getString(featureId + "_description");
|
||||
String urlString = i18n.getString(featureId + "_url");
|
||||
int currentRowIndex = featureGrid.getRowCount();
|
||||
// get size but index starts with 0 therefore row count is current index + 1
|
||||
featureGrid.resizeRows(currentRowIndex + 1);
|
||||
VerticalPanel line = new VerticalPanel();
|
||||
String titleString = i18n.getString(featureId + "_title");
|
||||
String descriptionString = i18n.getString(featureId + "_description");
|
||||
// title
|
||||
Label title = new Label(titleString);
|
||||
title.addStyleName(SubscriptionCardResources.INSTANCE.css().featureTitle());
|
||||
line.add(title);
|
||||
// description
|
||||
if (urlString == null || urlString.trim().isEmpty()) {
|
||||
Label description = new Label(descriptionString);
|
||||
description.addStyleName(SubscriptionCardResources.INSTANCE.css().featureDescription());
|
||||
line.add(description);
|
||||
} else {
|
||||
try {
|
||||
String urlString = i18n.getString(featureId + "_url");
|
||||
// add a description with link
|
||||
SimplePanel descriptionWithLink = new SimplePanel();
|
||||
HTML exampleLink = new HTML(descriptionString + " <a href=\""
|
||||
+ new SafeHtmlBuilder().appendEscaped(urlString).toSafeHtml().asString() + "\" title=\""
|
||||
@@ -102,6 +100,11 @@ public class SubscriptionCardContainer extends Composite {
|
||||
descriptionWithLink.addStyleName(SubscriptionCardResources.INSTANCE.css().featureDescription());
|
||||
descriptionWithLink.add(exampleLink);
|
||||
line.add(descriptionWithLink);
|
||||
} catch (MissingResourceException e) {
|
||||
// add a description without link
|
||||
Label description = new Label(descriptionString);
|
||||
description.addStyleName(SubscriptionCardResources.INSTANCE.css().featureDescription());
|
||||
line.add(description);
|
||||
}
|
||||
featureGrid.setWidget(currentRowIndex, TITLE_DESCRIPTION_ROW, line);
|
||||
// create check marks
|
||||
|
||||
+2
-18
@@ -46,56 +46,40 @@ public interface SubscriptionStringConstants extends ConstantsWithLookup {
|
||||
String trial_features();
|
||||
String features_map_analytics_title();
|
||||
String features_map_analytics_description();
|
||||
String features_map_analytics_url();
|
||||
String features_simulator_title();
|
||||
String features_simulator_description();
|
||||
String features_simulator_url();
|
||||
String features_advanced_leaderboard_info_title();
|
||||
String features_advanced_leaderboard_info_description();
|
||||
String features_advanced_leaderboard_info_url();
|
||||
String features_competitor_analytics_title();
|
||||
String features_competitor_analytics_description();
|
||||
String features_competitor_analytics_url();
|
||||
String features_maneuver_analytics_title();
|
||||
String features_maneuver_analytics_description();
|
||||
String features_maneuver_analytics_url();
|
||||
String features_wind_analytics_title();
|
||||
String features_wind_analytics_description();
|
||||
String features_wind_analytics_url();
|
||||
String features_limited_live_analytics_title();
|
||||
String features_limited_live_analytics_description();
|
||||
String features_limited_live_analytics_url();
|
||||
String features_full_live_analytics_title();
|
||||
String features_full_live_analytics_description();
|
||||
String features_full_live_analytics_url();
|
||||
String features_organize_events_title();
|
||||
String features_organize_events_description();
|
||||
String features_organize_events_url();
|
||||
String features_organize_events_url();//
|
||||
String features_events_with_more_regatta_title();
|
||||
String features_events_with_more_regatta_description();
|
||||
String features_events_with_more_regatta_url();
|
||||
String features_connect_to_tractrac_title();
|
||||
String features_connect_to_tractrac_description();
|
||||
String features_connect_to_tractrac_url();
|
||||
String features_connect_to_tractrac_url();//
|
||||
String features_imports_title();
|
||||
String features_imports_description();
|
||||
String features_imports_url();
|
||||
String features_media_management_title();
|
||||
String features_media_management_description();
|
||||
String features_media_management_url();
|
||||
String features_analytic_charts_title();
|
||||
String features_analytic_charts_description();
|
||||
String features_analytic_charts_url();
|
||||
String features_media_tags_title();
|
||||
String features_media_tags_description();
|
||||
String features_media_tags_url();
|
||||
String features_scoring_title();
|
||||
String features_scoring_description();
|
||||
String features_scoring_url();
|
||||
String features_data_mining_title();
|
||||
String features_data_mining_description();
|
||||
String features_data_mining_url();
|
||||
String features_data_mining_all_title();
|
||||
String features_data_mining_all_description();
|
||||
String features_data_mining_all_url();
|
||||
}
|
||||
|
||||
-16
@@ -52,61 +52,45 @@ premium_subscription_plan_shortname=premium
|
||||
datamining_subscription_plan_shortname=data mining
|
||||
features_limited_live_analytics_title=Live Analytics (limited)
|
||||
features_limited_live_analytics_description=Limited Live Analytics
|
||||
features_limited_live_analytics_url=
|
||||
features_full_live_analytics_title=Live Analytics (full)
|
||||
features_full_live_analytics_description=Full live analytics with hundreds of features including wind streamlets, comparison charts, advanced map visualizations and much more
|
||||
features_full_live_analytics_url=
|
||||
features_organize_events_title=Organize Events
|
||||
features_organize_events_description=Run the Sailing Analytics at your regatta with our free tracking app or a professional tracking service like Trac Trac. Maneuever detection and Analytics
|
||||
features_organize_events_url=https://support.sapsailing.com/hc/en-us/articles/360018169799-Create-a-simple-event-on-my-sapsailing-com
|
||||
features_events_with_more_regatta_title=Events with more than one regatta
|
||||
features_events_with_more_regatta_description=You can create a multi-class event or a season of events counting in a seasonal leaderboard
|
||||
features_events_with_more_regatta_url=
|
||||
features_connect_to_tractrac_title=Connect to Trac Trac
|
||||
features_connect_to_tractrac_description=Connect to professional tracking service
|
||||
features_connect_to_tractrac_url=https://tractrac.com/
|
||||
features_imports_title=Import external data
|
||||
features_imports_description=Import GPX and KML file formats, GRIB files and Expedition logs
|
||||
features_imports_url=
|
||||
features_media_management_title=Media Management
|
||||
features_media_management_description=Integrate/upload and replay video and Pictures
|
||||
features_media_management_url=
|
||||
features_analytic_charts_title=Analytic Charts
|
||||
features_analytic_charts_description=Charts for comparing competitor performance, wind strip charts and a table for maneuver analysis and comparison
|
||||
features_analytic_charts_url=
|
||||
features_media_tags_title=Link and upload media (tags)
|
||||
features_media_tags_description=Place and read comments (notes and images on timeline)
|
||||
features_media_tags_url=
|
||||
features_scoring_title=Scoring
|
||||
features_scoring_description=Low-Point, High-Point, various tie breaking variants, ToT/ToD as well as ORC Performance Curve Scoring handicap support
|
||||
features_scoring_url=
|
||||
features_map_analytics_title=Map analytics
|
||||
features_map_analytics_description=Wind streamlets
|
||||
features_map_analytics_url=
|
||||
features_simulator_title=Simulator
|
||||
features_simulator_description=Simulation and analysis
|
||||
features_simulator_url=
|
||||
features_advanced_leaderboard_info_title=Detailed leaderboard information
|
||||
features_advanced_leaderboard_info_description=Advanced leaderboard information, e.g. gap to leader, speed over ground, maneuvers, velocity made good (VMG) and cross-track error (XTE)
|
||||
features_advanced_leaderboard_info_url=
|
||||
features_competitor_analytics_title=Competitor analysis
|
||||
features_competitor_analytics_description=Advanced competitor analytics charts with values such as speed over ground (SOG), true wind angle (TWA), gap to leader and velocity made good (VMG)
|
||||
features_competitor_analytics_url=
|
||||
features_maneuver_analytics_title=Maneuver Analytics
|
||||
features_maneuver_analytics_description=Advanced analytics regarding maneuver execution of competitors, including maneuver loss, turn rate and maneuver angle
|
||||
features_maneuver_analytics_url=
|
||||
features_wind_analytics_title=Wind analytics
|
||||
features_wind_analytics_description=Advanced analytics regarding collected wind data; colored animated overlay and strip charts for every wind source considered
|
||||
features_wind_analytics_url=
|
||||
features_data_mining_title=Data\u00A0Mining-Archive
|
||||
features_data_mining_description=Use Data Mining on data from past events across races and events
|
||||
features_data_mining_url=
|
||||
features_data_mining_all_title=Data Mining - All
|
||||
features_data_mining_all_description=While with the "Archive" plan you can use data mining for past events that have already been archived, \
|
||||
the "All" plan allows you to use data mining also for live events and ongoing league seasons. \
|
||||
It also includes all data from archive (everything that can be found under www.sapsailing.com) \
|
||||
and all sub domains (e.g. for leagues, live events or club servers)
|
||||
features_data_mining_all_url=
|
||||
trial_name=Free Trial
|
||||
trial_description=Free trial of all plans for one day, including the "Premium" and both "Data Mining" plans. Can be subscribed to only once
|
||||
trial_info=
|
||||
|
||||
Reference in New Issue
Block a user