public function index_page() {

        if (is_null($this->installer)) {
            throw new coding_exception('Installer instance has not been set.');
        }

        $permcheckurl = new moodle_url('/admin/tool/installaddon/permcheck.php');
        $this->page->requires->yui_module('moodle-tool_installaddon-permcheck', 'M.tool_installaddon.permcheck.init',
            array(array('permcheckurl' => $permcheckurl->out())));
        $this->page->requires->strings_for_js(
            array('permcheckprogress', 'permcheckresultno', 'permcheckresultyes', 'permcheckerror', 'permcheckrepeat'),
            'tool_installaddon');

        $out = $this->output->header();
        $out .= $this->index_page_heading();
        $out .= $this->index_page_repository();
        $out .= $this->index_page_upload();
        $out .= $this->output->footer();

        return $out;
    }