<%@ page import="org.apache.axis2.context.ConfigurationContext" %>
<%@ page import="org.wso2.carbon.CarbonConstants" %>
<%@ page import="org.wso2.carbon.ui.CarbonUIUtil" %>
<%@ page import="org.wso2.carbon.utils.ServerConstants" %>
<%@ page import="org.wso2.carbon.analytics.spark.ui.client.AnalyticsExecutionClient" %>
<%@ page
        import="org.wso2.carbon.analytics.spark.admin.stub.AnalyticsProcessorAdminServiceAnalyticsProcessorAdminExceptionException" %>
<%@ page import="org.owasp.encoder.Encode" %>
<!--
~ Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
~
~ WSO2 Inc. licenses this file to you 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.
-->

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib uri="http://wso2.org/projects/carbon/taglibs/carbontags.jar" prefix="carbon" %>

<fmt:bundle basename="org.wso2.carbon.analytics.spark.ui.i18n.Resources">
    <%
        if (!"post".equalsIgnoreCase(request.getMethod())) {
            response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
            return;
        }
        String serverURL = CarbonUIUtil.getServerURL(config.getServletContext(), session);
        ConfigurationContext configContext =
                (ConfigurationContext) config.getServletContext().getAttribute(CarbonConstants.CONFIGURATION_CONTEXT);
        String cookie = (String) session.getAttribute(ServerConstants.ADMIN_SERVICE_COOKIE);

        AnalyticsExecutionClient client = new AnalyticsExecutionClient(cookie, serverURL, configContext);
        String scriptName = Encode.forHtmlContent(request.getParameter("scriptName"));
        try {
            if(client.isAnalyticsTaskExecuting(scriptName)) {
    %>
            <script type="text/javascript">
                CARBON.showWarningDialog('Scheduled task for the script : <%=scriptName%> is already running. Please try again after the scheduled task is completed.', function () {
                    location.href = "listScripts.jsp";
                }, function () {
                    location.href = "listScripts.jsp";
                });
            </script>
    <%
            } else if (client.isAnalyticsScriptExecuting(scriptName)) {
    %>
                <script type="text/javascript">
                    CARBON.showWarningDialog('Script : <%=scriptName%> is already running in background. Please try again after the background execution is completed.', function () {
                        location.href = "listScripts.jsp";
                    }, function () {
                        location.href = "listScripts.jsp";
                    });
                </script>
    <%
            } else {
                client.executeScriptInBackground(scriptName);
    %>
                <script type="text/javascript">
                    CARBON.showInfoDialog('Successfully started executing the script: <%=scriptName%> in background.', function () {
                        location.href = "listScripts.jsp";
                    }, function () {
                        location.href = "listScripts.jsp";
                    });
                </script>
    <%
            }
        } catch (Exception e) {
    %>
    <script type="text/javascript">
        location.href = "listScripts.jsp";
        CARBON.showErrorDialog('Error while executing the script <%=scriptName%> in background. <%=e.getMessage()%>');
    </script>
    <%
        }
    %>
</fmt:bundle>
