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:
Wessels, Udo (PPN)
2023-10-06 14:38:59 +02:00
parent d396a0e4c5
commit 212d840dea
4 changed files with 32 additions and 58 deletions
@@ -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 {
@@ -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 + "&nbsp;<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
@@ -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();
}
@@ -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=