<?PHP //$Id: restore_form.html,v 1.15.4.1 2004/09/23 11:25:44 moodler Exp $
    //This page prints the restore form to select everything yo want
    //to restore. Form is dinamically buid, depending of "info" object
    //that contains the backup contents and depending of every mod
    //capabilities.

    //Get objects from session
    $info = $SESSION->info;
    $course_header = $SESSION->course_header;

    //Check that we have all we need
    //backup_unique_code
    require_variable($backup_unique_code);
    //file
    require_variable($file);
    //info
    require_variable($info);
    //course_header
    require_variable($course_header);

    //Check login
    require_login();

    //Check admin
    if (!empty($id)) {
        if (!isteacheredit($id)) {
            error("You need to be a teacher or admin user to use this page.", "$CFG->wwwroot/login/index.php");
        }
    } else {
        if (!isadmin()) {
            error("You need to be an admin user to use this page.", "$CFG->wwwroot/login/index.php");   
        }
    }

    //Check site
    if (!$site = get_site()) {
        error("Site not found!");
    } 

    //Checks for the required files/functions to restore every mod
    $count = 0;
    if ($allmods = get_records("modules") ) {
        foreach ($allmods as $mod) {
            $modname = $mod->name;
            $modfile = "$CFG->dirroot/mod/$modname/restorelib.php";
            $modrestore = $modname."_restore_mods";
            if (file_exists($modfile)) {
               include_once($modfile);
               if (function_exists($modrestore)) {
                   $var = "exists_".$modname;
                   $$var = true;
                   $count++;
               }
            }
            //Check data
            //Check module info
            $var = "restore_".$modname;
            if (!isset($$var)) {
                $$var = 1;
            }
            //Check include user info
            $var = "restore_user_info_".$modname;
            if (!isset($$var)) {
                $$var = 1;
            }
        }
    }

    //Check other parameters
    if (!isset($restore_users)) {
        $restore_users = 1;
    }
   
    if (!isset($restore_logs)) {
        $restore_logs = 1;
    }

    if (!isset($restore_user_files)) {
        $restore_user_files = 1;
    }

    if (!isset($restore_course_files)) {
        $restore_course_files = 1;
    }

    if (!isset($restore_restoreto)) {
        if (isteacheredit($id) and !isadmin()) {
            $restore_restoreto = 1;
        }
        if (isadmin()) {
            $restore_restoreto = 2;
        }
    }

    if ($count == 0) {
        notice("No restorable modules are installed!");
    }

?>

<SCRIPT LANGUAGE="JavaScript">
<!--
function selectItemInMenuByName(formId, menuName, selectIndex ) {
    myForm = document.getElementById(formId)
    for (i=0,n=myForm.elements.length;i<n;i++) {
        myLen = menuName.length;
        myName = myForm.elements[i].name;
        myType = myForm.elements[i].type;
        if (myName.substring(0,myLen) == menuName && myType == "select-one")
            myForm.elements[i].options[selectIndex].selected = true;
        }
}
-->
</script>

<form name="form1" id="form1" method="post" action="<?php echo $ME ?>">
<table cellpadding=5>
<?php

    //First, course destination
    //Print the full tr
    echo "<tr>";
    echo "<td align=\"right\"><P><b>";
    echo get_string("restoreto").":</b>";
    echo "</td><td>";
    if (isteacheredit($id) and !iscreator()) {
        $restore_restoreto_options[0] = get_string("currentcoursedeleting");
        $restore_restoreto_options[1] = get_string("currentcourseadding");
    } 
    if (iscreator()) {
        $restore_restoreto_options[0] = get_string("existingcoursedeleting");
        $restore_restoreto_options[1] = get_string("existingcourseadding");
        $restore_restoreto_options[2] = get_string("newcourse"); 
    }
    choose_from_menu($restore_restoreto_options, "restore_restoreto", $restore_restoreto, "");
    echo "</td></tr>";
    //Line
    echo "<tr><td colspan=\"2\"><hr noshade size=\"1\"></td></tr>";
    //Now, check modules and info and show posibilities
    if ($allmods = get_records("modules") ) {
        //Print option to select/deselect every "with user info" popup. For Gustav, lol, Eloy :-)
        echo "<tr>";
        echo "<td colspan=\"2\" align=\"right\"><font size=\"-1\">";
        echo get_string("userdata").":";
        echo "<a href=\"javascript:void(0);\" onclick=\"selectItemInMenuByName('form1', 'restore_user_info_', '1');\">".
             get_string("all")."</a>/";
        echo "<a href=\"javascript:void(0);\" onclick=\"selectItemInMenuByName('form1', 'restore_user_info_', '0');\">".
             get_string("none")."</a>";
        echo "</font></td>";
        echo "</tr>";
        echo "<tr><td colspan=\"2\"><hr noshade size=\"1\"></td></tr>";
        foreach ($allmods as $mod) {
            $modname = $mod->name;
            $modrestore = $modname."_restore_mods";
            //If exists the lib & function
            $exist = "exists_".$modname;
            $restore_var = "restore_".$modname;
            $user_info_var = "restore_user_info_".$modname;
            if (isset($$exist)) {
                if ($$exist) {
                    //Now check that we have that module info in the backup file
                    if (isset($info->mods[$modname]) && $info->mods[$modname]->backup == "true") {
                        //Print the full tr
                        echo "<tr>";
                        echo "<td align=\"right\"><P><B>";
                        echo get_string("include")." ". get_string("modulenameplural",$modname).":";
                        echo "</td><td>";
                        $restore_options[0] = get_string("no"); 
                        $restore_options[1] = get_string("yes");
                        choose_from_menu($restore_options, $restore_var, $$restore_var, "");
                        //If backup contains user data, then show menu, else fix it to
                        //without user data
                        if ($info->mods[$modname]->userinfo == "true") {
                            $restore_user_options[0] = get_string("withoutuserdata"); 
                            $restore_user_options[1] = get_string("withuserdata");
                            choose_from_menu($restore_user_options, $user_info_var, $$user_info_var, "");
                        } else {
                            //Module haven't userdata
                            echo get_string("withoutuserdata");
                            echo "<input type=\"hidden\" name=\"$user_info_var\" value=\"0\">";
                        }
                        echo "</td></tr>";
                    } else {
                        //Module isn't restorable
                        echo "<input type=\"hidden\" name=\"$restore_var\" value=\"0\">";
                        echo "<input type=\"hidden\" name=\"$user_info_var\" value=\"0\">";
                    }
                } else {
                    //Module isn't restorable
                    echo "<input type=\"hidden\" name=\"$restore_var\" value=\"0\">";
                    echo "<input type=\"hidden\" name=\"$user_info_var\" value=\"0\">";
                }
            } else {
                //Module isn't restorable
                echo "<input type=\"hidden\" name=\"$restore_var\" value=\"0\">";
                echo "<input type=\"hidden\" name=\"$user_info_var\" value=\"0\">";
            }
        }
        //Line
        echo "<tr><td colspan=\"2\"><hr noshade size=\"1\"></td></tr>";

        //Now print the Users tr
        echo "<tr>";
        echo "<td align=\"right\"><P><B>";
        echo get_string("users").":";
        echo "</td><td>";
        //If some user is present in the backup file
        if ($info->backup_users == "all" or $info->backup_users == "course") {
            //If all users are in the backup file
            if ($info->backup_users == "all") {
                $user_options[0] = get_string("all");
            }
            $user_options[1] = get_string("course");
            $user_options[2] = get_string("none");
            choose_from_menu($user_options, "restore_users", $restore_users, "");
        } else {
            echo get_string("none");
            echo "<input type=\"hidden\" name=\"restore_users\" value=\"2\">";

        }
        echo "</td></tr>";

        //Now print the Logs tr
        echo "<tr>";
        echo "<td align=\"right\"><P><B>";
        echo get_string("logs").":";                                               
        echo "</td><td>";
        //If logs are in the backup file, show menu, else fixed to no
        if ($info->backup_logs == "true") {
            $log_options[0] = get_string("no");
            $log_options[1] = get_string("yes"); 
            choose_from_menu($log_options, "restore_logs", $restore_logs, ""); 
        } else {
            echo get_string("no");
            echo "<input type=\"hidden\" name=\"restore_logs\" value=\"0\">";
        }
        echo "</td></tr>";

        //Now print the User Files tr
        echo "<tr>";
        echo "<td align=\"right\"><P><B>";
        echo get_string ("userfiles").":";
        echo "</td><td>";
        //If user files are in the backup file, show menu, else fixed to no
        if ($info->backup_user_files == "true") {
            $user_file_options[0] = get_string("no"); 
            $user_file_options[1] = get_string("yes"); 
            choose_from_menu($user_file_options, "restore_user_files", $restore_user_files, "");
        } else {
            echo get_string("no");
            echo "<input type=\"hidden\" name=\"restore_user_files\" value=\"0\">";
        }
        echo "</td></tr>";

        //Now print the Course Files tr
        echo "<tr>";
        echo "<td align=\"right\"><P><B>";
        echo get_string ("coursefiles").":";
        echo "</td><td>";
        //If course files are in the backup file, show menu, else fixed to no
        if ($info->backup_course_files == "true") {
            $course_file_options[0] = get_string("no");
            $course_file_options[1] = get_string("yes");
            choose_from_menu($course_file_options, "restore_course_files", $restore_course_files, "");
        } else {
            echo get_string("no");
            echo "<input type=\"hidden\" name=\"restore_course_files\" value=\"0\">";
        }
        echo "</td></tr>";
        echo "<input type=\"hidden\" name=\"backup_unique_code\" value=\"$backup_unique_code\">";
        echo "<input type=\"hidden\" name=\"file\" value=\"$file\">";
    }
?>
</table>
<BR>
<CENTER>
<input type="hidden" name=id     value="<?php  p($id) ?>">
<input type="hidden" name=launch value="check">
<input type="submit" value="<?php  print_string("continue") ?>">
<input type="submit" name=cancel value="<?php  print_string("cancel") ?>">
</CENTER>
</FORM>
