/* * Copyright 2008 FatWire Corporation. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.fatwire.gst.foundation.facade.assetapi.asset; import java.util.Date; import COM.FutureTense.Interfaces.ICS; import COM.FutureTense.Util.ftMessage; import com.fatwire.cs.core.db.Util; /** * @author Dolf.Dijkstra * @since Apr 21, 2011 * @deprecated - com.fatwire.gst.foundation.facade and all subpackages have moved to the tools.gsf.facade package */ public class PreviewContext { /** * Returns the value of the preview date based on the session variable and * the setting for the xcelerate property <tt>cs.sitepreview</tt>. * * @param ics Content Server context object * @param ssvarName server session variable name * @return the preview date */ public static Date getPreviewDateFromSession(final ICS ics, final String ssvarName) { final Date cutoff = ics.GetSSVar(ssvarName) != null ? Util.parseJdbcDate(ics.GetSSVar(ssvarName)) : null; return getPreviewDate(ics, cutoff); } /** * Returns the value of the preview date based on the cs variable and the * setting for the xcelerate property <tt>cs.sitepreview</tt>. * * @param ics Content Server context object * @param varName variable name * @return the date to preview */ public static Date getPreviewDateFromCSVar(final ICS ics, final String varName) { final Date cutoff = ics.GetVar(varName) != null ? Util.parseJdbcDate(ics.GetVar(varName)) : null; return getPreviewDate(ics, cutoff); } /** * Returns the value of the preview date based on the provided date and the * setting for the xcelerate property <tt>cs.sitepreview</tt>. * * @param ics Content Server context object * @param cutoff cut-off date * @return the date to preview */ public static Date getPreviewDate(final ICS ics, final Date cutoff) { if (ics.LoadProperty("futuretense.ini;futuretense_xcel.ini")) { if (ftMessage.cm.equals(ics.GetProperty(ftMessage.cssitepreview))) { // We disable caching if and ONLY if cs.sitepreview is // contentmanagement. Check for that property in the ini files ics.DisableFragmentCache(); // Insite Editing is enabled if (null == cutoff) return new Date(); else return cutoff; } else if (ftMessage.disabled.equals(ics.GetProperty(ftMessage.cssitepreview))) return null; else return new Date(); // site preview disabled or delivery, // implies production install, use // server date } else // Cannot read from property file, use server date // TODO: isn't ignoring cutoff a better option when prop can't be // read?? return new Date(); } /** * Checks if start/enddate checking is enabled. * * @param ics Content Server context object * @return true if 'cs.sitepreview' xcelerate property is either * 'contentmanagement' or 'delivery', false if set to 'disabled'. */ public static boolean isSitePreviewEnabled(final ICS ics) { boolean ret = false; if (ics.LoadProperty("futuretense.ini;futuretense_xcel.ini")) { if (!ftMessage.disabled.equals(ics.GetProperty(ftMessage.cssitepreview))) { ret = true; } } return ret; } /** * @param ics Content Server context object * @return true if 'cs.sitepreview' xcelerate property is set to delivery */ public static boolean isSitePreviewDelivery(final ICS ics) { boolean ret = false; if (ics.LoadProperty("futuretense.ini;futuretense_xcel.ini")) { if (ftMessage.delivery.equals(ics.GetProperty(ftMessage.cssitepreview))) { ret = true; } } return ret; } }