001/*
002 * This library is part of OpenCms -
003 * the Open Source Content Management System
004 *
005 * Copyright (c) Alkacon Software GmbH & Co. KG (http://www.alkacon.com)
006 *
007 * This library is free software; you can redistribute it and/or
008 * modify it under the terms of the GNU Lesser General Public
009 * License as published by the Free Software Foundation; either
010 * version 2.1 of the License, or (at your option) any later version.
011 *
012 * This library is distributed in the hope that it will be useful,
013 * but WITHOUT ANY WARRANTY; without even the implied warranty of
014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015 * Lesser General Public License for more details.
016 *
017 * For further information about Alkacon Software GmbH & Co. KG, please see the
018 * company website: http://www.alkacon.com
019 *
020 * For further information about OpenCms, please see the
021 * project website: http://www.opencms.org
022 *
023 * You should have received a copy of the GNU Lesser General Public
024 * License along with this library; if not, write to the Free Software
025 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
026 */
027
028package org.opencms.workplace.list;
029
030import org.opencms.main.OpenCms;
031import org.opencms.workplace.CmsWorkplace;
032
033/**
034 * Generates a CSV file for a list.<p>
035 *
036 * @since 6.0.0
037 */
038public class CmsListCsvExportIAction extends A_CmsListIndependentJsAction {
039
040    /** List independent action id constant. */
041    public static final String LIST_ACTION_ID = "iac";
042
043    /**
044     * Default constructor.<p>
045     */
046    public CmsListCsvExportIAction() {
047
048        super(LIST_ACTION_ID);
049        setName(Messages.get().container(Messages.GUI_LIST_ACTION_CSV_NAME_0));
050        setHelpText(Messages.get().container(Messages.GUI_LIST_ACTION_CSV_HELP_0));
051        setConfirmationMessage(Messages.get().container(Messages.GUI_LIST_ACTION_CSV_CONF_0));
052        setIconPath("list/csv.png");
053        setEnabled(true);
054        setVisible(true);
055    }
056
057    /**
058     * @see org.opencms.workplace.list.A_CmsListIndependentJsAction#jsCode(CmsWorkplace)
059     */
060    @Override
061    public String jsCode(CmsWorkplace wp) {
062
063        String url = OpenCms.getLinkManager().substituteLink(
064            wp.getCms(),
065            "/system/workplace/commons/list-csv.jsp?"
066                + CmsListCsvExportDialog.PARAM_LISTCLASS
067                + "="
068                + wp.getClass().getName());
069        String title = "CSV - " + ((A_CmsListDialog)wp).getList().getName().key(wp.getLocale());
070        String opts = "toolbar=no,location=no,directories=no,status=yes,menubar=0,scrollbars=yes,resizable=yes,top=150,left=660,width=450,height=450";
071        StringBuffer js = new StringBuffer(512);
072        js.append("window.open('");
073        js.append(url);
074        js.append("', '");
075        js.append(title);
076        js.append("', '");
077        js.append(opts);
078        js.append("');");
079        return js.toString();
080    }
081}