Хранилища Subversion ant

Редакция

Редакция 688 | Авторство | Сравнить с предыдущей | Последнее изменение | Открыть журнал | RSS

<?php
/**
 *
 *  Codename: ant-ng - generator of sources.list for apt-distributives
 *  http://alex-w.org.ru/p/antng/
 *
 *  Copyright (c) 2009 Alexander Wolf
 *  Dual licensed under the MIT and GNU LGPL licenses.
 *  http://alex-w.org.ru/p/antng/license
 *
 */


require_once dirname(__FILE__)."/init.php";

if(!empty($_GET["action"])) {
    $action = $_GET["action"];
} else {
    $action = "view";
}
if(!empty($_GET["mode"])) {
    $mode = $_GET["mode"];
} else {
    $mode = "empty";
}

$uuid = $secure->checkInt($_GET["uuid"]);

$valid = $core->checkCookieSign($_COOKIE[$cookie]);

$scripts  = "";

$menu  = "<fieldset><legend>Меню</legend>\n";
$menu .= "<div id='rmenu'></div>\n";
$menu .= "<ul class='vfix'><li><a href='".$manager."?mode=distributions'>Дистрибутивы</a></li>";
$menu .= "<li><a href='".$manager."?mode=versions'>Версии</a></li>";
$menu .= "<li><a href='".$manager."?mode=sections'>Секции</a></li>";
$menu .= "<li><a href='".$manager."?mode=signs'>Подписи</a></li>";
$menu .= "<li><a href='".$manager."?mode=repositories'>Репозитории</a></li>";
$menu .= "<li><a href='".$manager."?mode=archs'>Архитектуры</a></li>";
$menu .= "<li><a href='".$manager."?mode=schemes'>Схемы</a></li>";
$menu .= "<li><a href='".$manager."?mode=protos'>Протоколы</a></li>";
$menu .= "<li><a href='".$manager."?mode=hosts'>Хосты репозиториев</a></li>";
$menu .= "<li><a href='".$manager."?mode=folders'>Корневые папки</a></li>";
$menu .= "<li><a href='".$manager."?mode=settings'>Настройки</a></li>";
$menu .= "<li><a href='".$manager."?mode=exit'>Выход</a></li></ul>";
$menu .=" </fieldset>\n";

$tmpl->assign('scripts', $scripts);
$tmpl->assign('menu', $menu);

switch ($mode) {
    case 'empty':
        if ($valid["ERR"]==1)  {
            $tmpl->assign('header', "Вход");
            $tmpl->assign('description', "Вход в панель управления генератором");
            $tmpl->assign('body', $core->showSigninForm());
            $tmpl->display('default.tpl');
        } else {
            $tmpl->assign('header', "CPanel");
            $tmpl->assign('description', "Панель управления генератором");      
            $tmpl->assign('body', $body);
            $tmpl->display('manager.tpl');
        }        
        break;
    case 'exit':
        setcookie($cookie, '', time()-10);
        header("Location: ./\n\n");
        break;
    case 'distributions':
        // Управление дистрибутивами
        $body = "<h3>Управление дистрибутивами</h3>";
        switch ($action) {
            case 'view':
                    $body .= "<p><a href='".$manager."?mode=distributions&action=new'>Добавить новый дистрибутив</a></p>";
                    $body .= $core->showDistributionList("distributions", $maganer, "", "list");
                break;
            case 'new':
                    $body .= "<form action='".$process."' method='post' enctype='multipart/form-data'>\n";
                    $body .= "<input type='hidden' name='mode' value='distributive-add'>\n";
                    $body .= $core->showDistributionForm(0,"Добавление информации о новом дистрибутиве");
                    $body .= "</form>";
                break;
            case 'edit':
                    $body .= "<form action='".$process."' method='post' enctype='multipart/form-data'>\n";
                    $body .= "<input type='hidden' name='mode' value='distributive-edit'>\n";
                    $body .= "<input type='hidden' name='distID' value='".$uuid."'>\n";
                    $body .= $core->showDistributionForm($uuid, "Редактирование информации о дистрибутиве");
                    $body .= "</form>";
                break;
            case 'delete':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='distributive-delete'>\n";
                    $body .= "<input type='hidden' name='distID' value='".$uuid."'>\n";
                    $body .= $core->showDistributionForm($uuid, "Удаление информации о дистрибутиве");
                    $body .= "</form>";
                break;
        }
        $tmpl->assign('header', "CPanel");
        $tmpl->assign('description', "Панель управления генератором");
        $tmpl->assign('body', $body);
        $tmpl->display('manager.tpl');
        break;
    case 'versions':
        // Управление версиями
        $body  = "<h3>Управление версиями</h3>";
        switch ($action) {
            case 'view':
                    $body .= "<p><a href='".$manager."?mode=versions&action=new'>Добавить новую версию дистрибутива</a></p>";
                    $body .= $core->showDistVersionsList("versions", 0, "list", $manager);
                break;
            case 'edit':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='version-edit'>\n";
                    $body .= "<input type='hidden' name='versionID' value='".$uuid."'>\n";
                    $body .= $core->showDistVersionsForm($uuid, "Редактирование информации о версии дистрибутива");
                    $body .= "</form>";
                break;
            case 'delete':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='version-delete'>\n";
                    $body .= "<input type='hidden' name='versionID' value='".$uuid."'>\n";
                    $body .= $core->showDistVersionsForm($uuid, "Удаление информации о версии дистрибутива");
                    $body .= "</form>";
                break;
            case 'new':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='version-add'>\n";
                    $body .= $core->showDistVersionsForm(0, "Добавление новой версии дистрибутива");
                    $body .= "</form>";
                break;
        }
        $tmpl->assign('header', "CPanel");
        $tmpl->assign('description', "Панель управления генератором");
        $tmpl->assign('body', $body);
        $tmpl->display('manager.tpl');
        break;
    case 'sections':
        // Управление секциями (deb)
        $body  = "<h3>Управление секциями репозиториев</h3>";
        switch ($action) {
            case 'view':
                    $body .= "<p><a href='".$manager."?mode=sections&action=new'>Добавить новую секцию репозитория</a></p>";
                    $body .= $core->showSectionsList("sections", $manager);
                break;
            case 'edit':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='section-edit'>\n";
                    $body .= "<input type='hidden' name='sectionID' value='".$uuid."'>\n";
                    $body .= $core->showSectionsForm($uuid, "Редактирование информации о секции");
                    $body .= "</form>";
                break;
            case 'delete':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='section-delete'>\n";
                    $body .= "<input type='hidden' name='sectionID' value='".$uuid."'>\n";
                    $body .= $core->showSectionsForm($uuid, "Удаление информации о секции");
                    $body .= "</form>";
                break;
            case 'new':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='section-add'>\n";
                    $body .= $core->showSectionsForm(0, "Добавление новой секции");
                    $body .= "</form>";
                break;
        }
        $tmpl->assign('header', "CPanel");
        $tmpl->assign('description', "Панель управления генератором");
        $tmpl->assign('body', $body);
        $tmpl->display('manager.tpl');
        break;
    case 'signs':
        // Управление подписями (rpm)
        $body  = "<h3>Управление подписями репозиториев</h3>";
        switch ($action) {
            case 'view':
                    $body .= "<p><a href='".$manager."?mode=signs&action=new'>Добавить новую подпись репозитория</a></p>";
                    $body .= $core->showSignsList("signs", $manager);
                break;
            case 'edit':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='sign-edit'>\n";
                    $body .= "<input type='hidden' name='signID' value='".$uuid."'>\n";
                    $body .= $core->showSignsForm($uuid, "Редактирование информации о подписи");
                    $body .= "</form>";
                break;
            case 'delete':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='sign-delete'>\n";
                    $body .= "<input type='hidden' name='signID' value='".$uuid."'>\n";
                    $body .= $core->showSignsForm($uuid, "Удаление информации о подписи");
                    $body .= "</form>";
                break;
            case 'new':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='sign-add'>\n";
                    $body .= $core->showSignsForm(0, "Добавление новой подписи");
                    $body .= "</form>";
                break;
        }
        $tmpl->assign('header', "CPanel");
        $tmpl->assign('description', "Панель управления генератором");
        $tmpl->assign('body', $body);
        $tmpl->display('manager.tpl');
        break;
    case 'archs':
        // Управление архитектурами
        $body  = "<h3>Управление архитектурами</h3>";
        switch ($action) {
            case 'view':
                    $body .= "<p><a href='".$manager."?mode=archs&action=new'>Добавить новую архитектуру</a></p>";
                    $body .= $core->showArchList("archs", $manager, "list");
                break;
            case 'edit':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='arch-edit'>\n";
                    $body .= "<input type='hidden' name='archID' value='".$uuid."'>\n";
                    $body .= $core->showArchForm($uuid, "Редактирование информации об архитектуре");
                    $body .= "</form>";
                break;
            case 'delete':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='arch-delete'>\n";
                    $body .= "<input type='hidden' name='archID' value='".$uuid."'>\n";
                    $body .= $core->showArchForm($uuid, "Удаление информации об архитектуре");
                    $body .= "</form>";
                break;
            case 'new':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='arch-add'>\n";
                    $body .= $core->showArchForm(0, "Добавление новой архитектуре");
                    $body .= "</form>";
                break;
        }
        $tmpl->assign('header', "CPanel");
        $tmpl->assign('description', "Панель управления генератором");
        $tmpl->assign('body', $body);
        $tmpl->display('manager.tpl');
        break;
    case 'schemes':
        // Управление схемами репозиториев
        $body  = "<h3>Управление схемами репозиториев</h3>";
        switch ($action) {
            case 'view':
                    $body .= "<p><a href='".$manager."?mode=schemes&action=new'>Добавить новую схему репозитория</a></p>";
                    $body .= $core->showSchemeList("schemes", $manager, "list");
                break;
            case 'edit':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='scheme-edit'>\n";
                    $body .= "<input type='hidden' name='schemeID' value='".$uuid."'>\n";
                    $body .= $core->showSchemeForm($uuid, "Редактирование информации о схеме репозитория");
                    $body .= "</form>";
                break;
            case 'delete':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='scheme-delete'>\n";
                    $body .= "<input type='hidden' name='schemeID' value='".$uuid."'>\n";
                    $body .= $core->showSchemeForm($uuid, "Удаление информации о схеме репозитория");
                    $body .= "</form>";
                break;
            case 'new':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='scheme-add'>\n";
                    $body .= $core->showSchemeForm(0, "Добавление новой схемы репозитория");
                    $body .= "</form>";
                break;
        }
        $tmpl->assign('header', "CPanel");
        $tmpl->assign('description', "Панель управления генератором");
        $tmpl->assign('body', $body);
        $tmpl->display('manager.tpl');
        break;
    case 'protos':
        // Управление протоколами доступа
        $body  = "<h3>Управление протоколами доступа</h3>";
        switch ($action) {
            case 'view':
                    $body .= "<p><a href='".$manager."?mode=protos&action=new'>Добавить новый протокол доступа</a></p>";
                    $body .= $core->showProtoList("protos", $manager, "list");
                break;
            case 'edit':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='proto-edit'>\n";
                    $body .= "<input type='hidden' name='protoID' value='".$uuid."'>\n";
                    $body .= $core->showProtoForm($uuid, "Редактирование информации о протоколе доступа");
                    $body .= "</form>";
                break;
            case 'delete':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='proto-delete'>\n";
                    $body .= "<input type='hidden' name='protoID' value='".$uuid."'>\n";
                    $body .= $core->showProtoForm($uuid, "Удаление информации о протоколе доступа");
                    $body .= "</form>";
                break;
            case 'new':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='proto-add'>\n";
                    $body .= $core->showProtoForm(0, "Добавление нового протокола доступа");
                    $body .= "</form>";
                break;
        }
        $tmpl->assign('header', "CPanel");
        $tmpl->assign('description', "Панель управления генератором");
        $tmpl->assign('body', $body);
        $tmpl->display('manager.tpl');
        break;
    case 'hosts':
        // Управление хостами репозиториев
        $body  = "<h3>Управление хостами репозиториев</h3>";
        switch ($action) {
            case 'view':
                    $body .= "<p><a href='".$manager."?mode=hosts&action=new'>Добавить новый хост репозитория</a></p>";
                    $body .= $core->showHostsList("hosts", $manager, "list");
                break;
            case 'edit':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='host-edit'>\n";
                    $body .= "<input type='hidden' name='hostID' value='".$uuid."'>\n";
                    $body .= $core->showHostForm($uuid, "Редактирование информации о хосте репозитория");
                    $body .= "</form>";
                break;
            case 'delete':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='host-delete'>\n";
                    $body .= "<input type='hidden' name='hostID' value='".$uuid."'>\n";
                    $body .= $core->showHostForm($uuid, "Удаление информации о хосте репозитория");
                    $body .= "</form>";
                break;
            case 'new':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='host-add'>\n";
                    $body .= $core->showHostForm(0, "Добавление нового хоста репозитория");
                    $body .= "</form>";
                break;
        }
        $tmpl->assign('header', "CPanel");
        $tmpl->assign('description', "Панель управления генератором");
        $tmpl->assign('body', $body);
        $tmpl->display('manager.tpl');
        break;
    case 'folders':
        // Управление коревыми папками
        $body  = "<h3>Управление коревыми папками репозиториев</h3>";
        switch ($action) {
            case 'view':
                    $body .= "<p><a href='".$manager."?mode=folders&action=new'>Добавить новую корневую папку репозитория</a></p>";
                    $body .= $core->showFoldersList("folders", $manager, "list");
                break;
            case 'edit':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='folder-edit'>\n";
                    $body .= "<input type='hidden' name='folderID' value='".$uuid."'>\n";
                    $body .= $core->showFolderForm($uuid, "Редактирование информации о корневой папке репозитория");
                    $body .= "</form>";
                break;
            case 'delete':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='folder-delete'>\n";
                    $body .= "<input type='hidden' name='folderID' value='".$uuid."'>\n";
                    $body .= $core->showFolderForm($uuid, "Удаление информации о корневой папке репозитория");
                    $body .= "</form>";
                break;
            case 'new':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='folder-add'>\n";
                    $body .= $core->showFolderForm(0, "Добавление новой корневой папки репозитория");
                    $body .= "</form>";
                break;
        }
        $tmpl->assign('header', "CPanel");
        $tmpl->assign('description', "Панель управления генератором");
        $tmpl->assign('body', $body);
        $tmpl->display('manager.tpl');
        break;
    case 'repositories':
        // Управление репозиториями
        $body  = "<h3>Управление репозиториями</h3>";
        switch ($action) {
            case 'view':
                    $body .= "<ul><li><a href='".$manager."?mode=repositories&action=new-master'>Добавить новый репозиторий (мастер)</a></li>";
                    $body .= "<li><a href='".$manager."?mode=repositories&action=new'>Добавить новый репозиторий (&#8220;хакерский&#8221; способ)</a></li></ul>";
                    $body .= $core->showRepositoriesList("repositories", $manager, "list");
                break;
            case 'edit':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='repository-edit'>\n";
                    $body .= "<input type='hidden' name='repositoryID' value='".$uuid."'>\n";
                    $body .= $core->showRepositoriesForm($uuid, "Редактирование информации о репозитории");
                    $body .= "</form>";
                break;
            case 'delete':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='repository-delete'>\n";
                    $body .= "<input type='hidden' name='repositoryID' value='".$uuid."'>\n";
                    $body .= $core->showRepositoriesForm($uuid, "Удаление информации о репозитории");
                    $body .= "</form>";
                break;
            case 'new-master':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='repository-master'>\n";
                    $body .= $core->showRepositoriesForm(0, "Добавление нового репозитория");
                    $body .= "</form>";
                break;            
            case 'new':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='repository-add'>\n";
                    $body .= "<fieldset><legend>Добавление нового репозитория</legend>\n";
                    $body .= "<div class='inputbox'><label for='repscheme'>Строка sources.list:</label> <input type='text' id='repscheme' name='repscheme' value=''></div>\n";
                    $body .= "<div class='inputbox'><input type='submit' value=' Обработать строку '></div>\n";
                    $body .= "</fieldset></form>";
                break;
        }
       
        $tmpl->assign('header', "CPanel");
        $tmpl->assign('description', "Панель управления генератором");
        $tmpl->assign('body', $body);
        $tmpl->display('manager.tpl');
        break;
    case 'settings':
        // Настройки генератора
        $body  = "<h3>Настройка генератора</h3>";
        switch ($action) {
            case 'view':
                    $body .= $core->showSettingsList("settings", $manager, "list");
                break;
            case 'update-password':
                    $body .= "<form action='".$process."' method='post'>\n";
                    $body .= "<input type='hidden' name='mode' value='update-password'>\n";
                    $body .= $core->showUpdatePasswordForm();
                    $body .= "</form>";
                break;            
        }

        $tmpl->assign('header', "CPanel");
        $tmpl->assign('description', "Панель управления генератором");
        $tmpl->assign('body', $body);
        $tmpl->display('manager.tpl');
        break;
}

?>