package page.tools.management;

import java.io.File;

import org.wikiwebserver.core.WareHouse;
import org.wikiwebserver.handler.http.interfaces.HTTPResponder;
import org.wikiwebserver.html.HTMLHelper;

import page.config.SiteTemplatedPage;

import page.tools.entity.User;
import static org.wikiwebserver.html.HTMLHelper.*;



public class FileUploadPage extends SiteTemplatedPage implements HTTPResponder {
	
    public void generate() {
        
        setTitle("Upload - WikiWebServer.org");
        setDescription("Upload files to WikiWebServer.");
        
        String action = WareHouse.getUrlPathForClass(page.tools.management.FileUpload.class);
        String presentation = WareHouse.getUrlPathForClass(page.tools.management.FileUploadPage.class);
        
        append(h(1, "Upload files to WikiWebServer"));
        
        User u = getUser();
        if (u == null) {
            append(p("You must sign in to upload files."));
        }
        else {
            append("<form method='post' action='" + action + "' enctype='multipart/form-data'>");
            append(p("Specify one or more files to upload."));
            append("<input type='hidden' name='redirect' value='" + presentation + "'>");
            for (int i=0; i<5; i++) {
                append("<input type='file' name='file" + i + "' size='80'><br/>");
            }
            append("<input class='submit' type='submit' value='Upload (disabled)'></form>");    
    
            append(div("ActiveUploads", "Please wait"));
            
            append(h(1, "Synchronization Tool"));

            //String syncAction = WareHouse.getUrlPathForClass(org.wikiwebserver.sync.JNLP.class);
            append(HTMLHelper.form(p("Click below to launch JSiteSync") +
                                     submitbutton("none", "Launch JSiteSync (disabled)"), ""));            
            
            setPeriodicAjaxUpdateEnabled(true);
            
            File userDir = getUserDir(u);
            if (userDir.exists()) {
                
                append(h(1, "Files in your user area"));
             
                FileTreeView tree = new FileTreeView();
                if (tree != null) {
                    appendToHead(tree.getHead());
                }

                
                append(tree.getFileTree("User directory", userDir, userDir));
            }            
        }
    }
    
    public void ajax() {
        File[] files = FileUpload.getActiveFileUploads();
        String uploadSummary = FileUpload.getUploadSummary(files);
        if (uploadSummary != null && uploadSummary.length() > 0) {
            uploadSummary = "<h1>Files uploading</h1><pre>" + 
                            uploadSummary + "</pre>";
        }
        append(updateHTMLScript("ActiveUploads", uploadSummary));
    }    
    
    public String getCacheKey() {
        return null;
    }
}