package org.molgenis.data.settings;
/**
* Application settings
*/
public interface AppSettings
{
/**
* @return application title
*/
String getTitle();
/**
* @param title application title
*/
void setTitle(String title);
/**
* @return href of logo displayed above top menu
*/
String getLogoTopHref();
/**
* @param logoHref href of logo displayed above top menu
*/
void setLogoTopHref(String logoHref);
/**
* @return href of logo displayed in menu
*/
String getLogoNavBarHref();
/**
* @param logoHref href of logo displayed in menu
*/
void setLogoNavBarHref(String logoHref);
/**
* @return footer text
*/
String getFooter();
/**
* @param footerText footer text
*/
void setFooter(String footerText);
/**
* @return whether sign up is enabled
*/
boolean getSignUp();
/**
* @param signUp <code>true</code> if sign up is enabled
*/
void setSignUp(boolean signUp);
/**
* @return whether sign up is moderated
*/
boolean getSignUpModeration();
/**
* @param signUpModeration <code>true</code> if sign up is moderated
*/
void setSignUpModeration(boolean signUpModeration);
/**
* @return application ISO 639 alpha-2 or alpha-3 language code
*/
String getLanguageCode();
/**
* @param languageCode application ISO 639 alpha-2 or alpha-3 language code
*/
void setLanguageCode(String languageCode);
/**
* @return application bootstrap theme file name without path
*/
String getBootstrapTheme();
/**
* @param bootstrapTheme application bootstrap theme file name without path
*/
void setBootstrapTheme(String bootstrapTheme);
/**
* @return file name containing custom CSS without path
*/
String getCssHref();
/**
* @param cssHref file name containing custom CSS without path
*/
void setCssHref(String cssHref);
/**
* @return JSON object string representation of menu
*/
String getMenu();
/**
* @param menuJson JSON object string representation of menu
*/
void setMenu(String menuJson);
/**
* @return data aggregation threshold or <code>null</code> if no threshold exists
*/
Integer getAggregateThreshold();
/**
* @param threshold data aggregation threshold, <code>null</code> implies no threshold
*/
void setAggregateThreshold(Integer threshold);
/**
* @return JS string containing tracking code to be placed in the footer
*/
String getTrackingCodeFooter();
/**
* @param trackingCodeFooter JS string containing tracking code to be placed in the footer
*/
void setTrackingCodeFooter(String trackingCodeFooter);
/**
* @return whether Google analytics data is collected anonymously
*/
boolean getGoogleAnalyticsIpAnonymization();
/**
* @param googleAnalyticsPrivacyFriendlyTracking <code>true</code> if Google analytics data is collected anonymously
*/
void setGoogleAnalyticsIpAnonymization(boolean googleAnalyticsPrivacyFriendlyTracking);
/**
* @return 3rd party Google analytics tracking ID
*/
String getGoogleAnalyticsTrackingId();
/**
* @param googleAnalyticsTrackingId 3rd party Google analytics tracking ID
*/
void setGoogleAnalyticsTrackingId(String googleAnalyticsTrackingId);
/**
* @return MOLGENIS Google analytics tracking ID
*/
String getGoogleAnalyticsTrackingIdMolgenis();
/**
* @param googleAnalyticsTrackingIdMolgenis MOLGENIS Google analytics tracking ID
*/
void setGoogleAnalyticsTrackingIdMolgenis(String googleAnalyticsTrackingIdMolgenis);
/**
* Privacy friendly: as described here: https://cbpweb.nl/sites/default/files/atoms/files/handleiding_privacyvriendelijk_instellen_google_analytics_0.pdf
* @return whether the 3rd Google Analytics account is configured to be privacy friendly
*/
boolean getGoogleAnalyticsAccountPrivacyFriendly();
/**
* Privacy friendly: as described here: https://cbpweb.nl/sites/default/files/atoms/files/handleiding_privacyvriendelijk_instellen_google_analytics_0.pdf
* @param googleAnalyticsAccountPrivacyFriendly whether the 3rd Google Analytics account is configured to be privacy friendly
*/
void setGoogleAnalyticsAccountPrivacyFriendly(boolean googleAnalyticsAccountPrivacyFriendly);
/**
* Privacy friendly: as described here: https://cbpweb.nl/sites/default/files/atoms/files/handleiding_privacyvriendelijk_instellen_google_analytics_0.pdf
* @return whether the MOLGENIS Google Analytics account is configured to be privacy friendly
*/
boolean getGoogleAnalyticsAccountPrivacyFriendlyMolgenis();
/**
* @param signIn whether sign in is enabled
*/
void setGoogleSignIn(boolean signIn);
/**
* @return <code>true</code> if sign in is enabled
*/
boolean getGoogleSignIn();
/**
* @param googleAppClientId Google app client ID used during Google Sign-In
*/
void setGoogleAppClientId(String googleAppClientId);
/**
* @return Google app client ID used during Google Sign-In
*/
String getGoogleAppClientId();
/**
* @param customJavascript Custom JavaScript <script src="..."></script> headers, specified as comma separated list
*/
void setCustomJavascript(String customJavascript);
/**
* @return Custom JavaScript <script src="..."></script> headers, specified as comma separated list
*/
String getCustomJavascript();
}