Files
alfresco-community-repo/source/java/org/alfresco/web/scripts/ScriptUrlMethod.java
Kevin Roast ed5b547943 Portlet webscript updates:
MySpaces portlet changed to use ajax update to main list div.
Upload file now refreshes list after upload complete.
Manual refresh icon added to MySpaces and MyDocs portlets.
Removed video preview from pop-up panel in portlets (unstable in Firefox).
Manic scrollbar flicking fixed in MyDocs and MySpaces portlets.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5736 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2007-05-21 17:46:52 +00:00

91 lines
3.1 KiB
Java

/*
* Copyright (C) 2005-2007 Alfresco Software Limited.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* As a special exception to the terms and conditions of version 2.0 of
* the GPL, you may redistribute this Program in connection with Free/Libre
* and Open Source Software ("FLOSS") applications as described in Alfresco's
* FLOSS exception. You should have recieved a copy of the text describing
* the FLOSS exception, and it is also available here:
* http://www.alfresco.com/legal/licensing"
*/
package org.alfresco.web.scripts;
import java.util.List;
import freemarker.template.TemplateBooleanModel;
import freemarker.template.TemplateMethodModelEx;
import freemarker.template.TemplateModelException;
import freemarker.template.TemplateScalarModel;
/**
* @author David Caruana
*
* Custom FreeMarker Template language method.
* <p>
* Render script url independent of script hosting environment e.g. render inside / outside
* portal.
* <p>
* Usage: scripturl(String url)
*/
public final class ScriptUrlMethod implements TemplateMethodModelEx
{
WebScriptRequest req;
WebScriptResponse res;
/**
* Construct
*
* @param basePath base path used to construct absolute url
*/
public ScriptUrlMethod(WebScriptRequest req, WebScriptResponse res)
{
this.req = req;
this.res = res;
}
/**
* @see freemarker.template.TemplateMethodModel#exec(java.util.List)
*/
public Object exec(List args) throws TemplateModelException
{
String result = "";
if (args.size() != 0)
{
Object arg0 = args.get(0);
boolean prefixServiceUrl = true;
if (args.size() == 2 && args.get(1) instanceof TemplateBooleanModel)
{
prefixServiceUrl = ((TemplateBooleanModel)args.get(1)).getAsBoolean();
}
if (arg0 instanceof TemplateScalarModel)
{
String arg = ((TemplateScalarModel)arg0).getAsString();
String url = prefixServiceUrl ? req.getServicePath() : "";
url += arg;
url += (arg.length() != 0) ? "&" : "";
url += "guest=" + (req.isGuest() ? "true" : "");
url += (req.getFormat().length() != 0) ? "&format=" + req.getFormat() : "";
result = res.encodeScriptUrl(url);
}
}
return result;
}
}