package org.ovirt.engine.ui.frontend.utils; import com.google.gwt.core.client.GWT; public class FrontendUrlUtils { /** * Returns the root URL of the server from where the application was served, based on * {@linkplain GWT#getModuleBaseURL GWT module base URL}. * <p> * For example, if the application was served from <code>http://www.example.com/foo/bar</code>, it will return * <code>http://www.example.com/</code>. * * @return Root URL of the server, including the trailing slash. */ public static String getRootURL() { String moduleURL = GWT.getModuleBaseURL(); String separator = "://"; //$NON-NLS-1$ int index = moduleURL.indexOf(separator); index = moduleURL.indexOf("/", index + separator.length()); //$NON-NLS-1$ String result = (index != -1) ? moduleURL.substring(0, index + 1) : moduleURL; if (!result.endsWith("/")) { //$NON-NLS-1$ result += "/"; //$NON-NLS-1$ } return result; } /** * Returns the current page URL without hash fragment and query part, based on current window location. * <p> * For example, if the current window location is <code>http://www.example.com/page?query#hash</code>, it will * return <code>http://www.example.com/page</code>. * * @return Current page URL without hash fragment and query part. */ public static native String getCurrentPageURL() /*-{ var url = $wnd.location.href; // Pull off hash fragment part var i = url.indexOf('#'); url = (i != -1) ? url.substring(0, i) : url; // Pull off query part i = url.indexOf('?'); url = (i != -1) ? url.substring(0, i) : url; return url; }-*/; /** * Strip the parameters of the passed in URL. For instance passing in <br /> * <p>http://someurl/somewhere?x=y&a=b</p> will return <p>http://someurl/somewhere</p> * If there are no parameters on the URL, the full URL will be returned. * @param url The URL to strip. * @return The stripped URL. */ public static String stripParameters(String url) { return url.indexOf('?') < 0 ? url : url.substring(0, url.indexOf('?')); } /** * Returns the welcome page url, used for the logo link in webadmin and user portal. */ public static String getWelcomePageLink(String moduleBaseURL) { String url = moduleBaseURL.substring(0, moduleBaseURL.lastIndexOf("/")); //$NON-NLS-1$ return url.substring(0, url.lastIndexOf("/")); //$NON-NLS-1$ } }