Хранилища Subversion ant

Редакция

Редакция 44 | Весь файл | Не учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS

Редакция 44 Редакция 45
Строка 1... Строка 1...
1
<?php
1
<?php
2
2
3
/**
3
/**
4
 * Project:     Ant: sources.list generator
4
 * Project:     Ant: sources.list generator
5
 * File:        index.php
5
 * File:        modern.php
6
 *
6
 *
7
 * This application is free software; you can redistribute it and/or
7
 * This application is free software; you can redistribute it and/or
8
 * modify it under the terms of the GNU Lesser General Public
8
 * modify it under the terms of the GNU Lesser General Public
9
 * License as published by the Free Software Foundation; either
9
 * License as published by the Free Software Foundation; either
10
 * version 2.1 of the License, or (at your option) any later version.
10
 * version 2.1 of the License, or (at your option) any later version.
Строка 20... Строка 20...
20
 *
20
 *
21
 */
21
 */
22
22
23
23
24
include "lib/init.php";
24
include "lib/init.php";
25
$status = abs(intval($_GET["step"]));
-
 
26
$dist   = abs(intval($_GET["d"]));
-
 
27
$vers   = abs(intval($_GET["v"]));
-
 
28
25
29
$query =& $db->query("SELECT * FROM settings WHERE opt LIKE 'version'");
26
$query =& $db->query("SELECT * FROM settings WHERE opt LIKE 'version'");
30
$query->fetchInto($antv, DB_FETCHMODE_ASSOC);
27
$query->fetchInto($antv, DB_FETCHMODE_ASSOC);
31
$antversion = $antv["optvalue"];
28
$antversion = $antv["optvalue"];
32
29
-
 
30
$scripts = "
-
 
31
(function($){
-
 
32
  // очищаем select
-
 
33
  $.fn.clearSelect = function() {
-
 
34
          return this.each(function(){
-
 
35
                  if(this.tagName=='SELECT') {
-
 
36
                      this.options.length = 0;
33
$query =& $db->query("SELECT * FROM distribution");
37
                      $(this).attr('disabled','disabled');
-
 
38
                  }
-
 
39
          });
-
 
40
  }
-
 
41
  // заполняем select
-
 
42
  $.fn.fillSelect = function(dataArray) {
-
 
43
          return this.clearSelect().each(function(){
-
 
44
                  if(this.tagName=='SELECT') {
-
 
45
                          var currentSelect = this;
34
while ($query->fetchInto($data, DB_FETCHMODE_ASSOC)) {
46
                          $.each(dataArray,function(index,data){
-
 
47
                                  var option = new Option(data.text,data.value);
-
 
48
                                  if($.support.cssFloat) {
-
 
49
                                          currentSelect.add(option,null);
-
 
50
                                  } else {
-
 
51
                                          currentSelect.add(option);
-
 
52
                                  }
-
 
53
                          });
-
 
54
                  }
-
 
55
          });
-
 
56
  }
-
 
57
})(jQuery);
-
 
58
</script>
-
 
59
<script type='text/javascript'>
-
 
60
$(document).ready(function(){
-
 
61
  // выбор дистрибутива
-
 
62
  function adjustDistro(){
-
 
63
        var distroValue = $('#distro').val();
-
 
64
        var tmpSelect = $('#distver');
-
 
65
        if(distroValue.length == 0) {
-
 
66
                tmpSelect.attr('disabled','disabled');
-
 
67
                tmpSelect.clearSelect();
-
 
68
                adjustReps();
-
 
69
                $('#replist').css('display','none');
-
 
70
        } else {
35
        $linux .= "<p><input type='radio' name='d' value='".$data["dist_id"]."' />".stripslashes($data["distname"])."</p>\n";
71
                $.getJSON('m-process.php',{d:distroValue,status:1},function(data) { tmpSelect.fillSelect(data).attr('disabled',''); adjustReps(); });
-
 
72
                $('#replist').css('display','none');
-
 
73
        }
-
 
74
  };
-
 
75
  // Выбор версии дистрибутива
-
 
76
  function adjustReps(){
-
 
77
        var distroValue = $('#distro').val();
-
 
78
        var versionValue = $('#distver').val();
-
 
79
        if (distroValue != 0 && versionValue != 0) {
-
 
80
                $.get('m-process.php',{d:distroValue,v:versionValue,status:2},function(data){ $('#replist').css('display','block'); $('#replist').html(data); },'html');
36
}
81
        }
-
 
82
  }
37
83

-
 
84
  $('#distro').change(adjustDistro);
38
if (!isset($status)) { $status = 0; };
85
  $('#distver').change(adjustReps);
39
86

40
if (isset($dist)) {
-
 
41
        $query =& $db->query("SELECT * FROM version v JOIN distribution d ON d.dist_id=v.dist_id WHERE v.dist_id='$dist'");
-
 
42
        $distvers = "<p><input type='hidden' name='d' value='".$dist."' /></p>\n";
-
 
43
        while ($query->fetchInto($version, DB_FETCHMODE_ASSOC)) {
-
 
44
                if ($version["vname"]!="") {
-
 
45
                        $distname = "&#8220;".stripslashes($version["vname"])."&#8221;";
-
 
46
                } else {
-
 
47
                        $distname = "";
-
 
48
                }
87
});
49
                $distvers .= "<p><input type='radio' name='v' value='".$version["version_id"]."' />".stripslashes($version["distname"])." ".stripslashes($version["version"])." ".$distname."</p>\n";
-
 
50
        }
88
";
51
}
-
 
52
89
53
if (isset($vers)) {
-
 
54
        $query =& $db->query("SELECT * FROM settings");
90
$query =& $db->query("SELECT * FROM distribution");
55
        $settings = array();
-
 
56
        while ($query->fetchInto($setting, DB_FETCHMODE_ASSOC)) {
91
while ($query->fetchInto($data, DB_FETCHMODE_ASSOC)) {
57
                $settings[stripslashes($setting["opt"])] = stripslashes($setting["optvalue"]);
-
 
58
        };
-
 
59
        $query =& $db->query("SELECT * FROM version v JOIN distribution d ON d.dist_id=v.dist_id JOIN dtype p ON d.disttype=p.type_id WHERE v.dist_id='$dist' AND v.version_id='$vers'");
-
 
60
        $query->fetchInto($infodist, DB_FETCHMODE_ASSOC);
-
 
61
        $distname = "";
-
 
62
        if ($infodist["vname"]!="") {
-
 
63
                $distname = "&#8220;".stripslashes($infodist["vname"])."&#8221;";
-
 
64
        }
-
 
65
        $info = "<h2>Доступные репозитории для <em>".stripslashes($infodist["distname"])." ".stripslashes($infodist["version"])." ".$distname."</em></h2>";
-
 
66
        $query =& $db->query("SELECT * FROM repository r JOIN ver2rep v ON r.rep_id=v.rep_id JOIN version v2 ON v.ver_id=v2.version_id JOIN scheme s ON s.scheme_id=r.scheme_id WHERE v.ver_id='$vers' ORDER BY r.rtype_id, r.scheme_id ASC");
-
 
67
        $result = "<p>Скопируйте эти строки в файл <span id='sourceslist'>/etc/apt/sources.list</span>:</p><pre>";
-
 
68
        while ($query->fetchInto($resinfo, DB_FETCHMODE_ASSOC)) {
-
 
69
            $repscheme = stripslashes($resinfo["scheme"]);
-
 
70
           
-
 
71
            $querysect =& $db->query("SELECT * FROM section s JOIN sect2rep r ON s.sect_id=r.sect_id WHERE
-
 
72
r.rep_id='$resinfo[rep_id]'");
-
 
73
            $sections = "";
-
 
74
            while ($querysect->fetchInto($section,DB_FETCHMODE_ASSOC)) {
-
 
75
                    $sections .= stripslashes($section["sectname"])." ";
-
 
76
            }
-
 
77
-
 
78
            $repscheme = str_replace("{TYPE}",stripslashes($infodist["type"]),$repscheme);
-
 
79
            $repscheme = str_replace("{PROTO}",$settings["proto"],$repscheme);
-
 
80
            $repscheme = str_replace("{URL}",$settings["url"],$repscheme);
-
 
81
            $repscheme = str_replace("{REP}",stripslashes($resinfo["repname"]),$repscheme);
92
        $linux .= "<option value='".$data["dist_id"]."'>".stripslashes($data["distname"])."</option>\n";
82
            $repscheme = str_replace("{DIST}",stripslashes($infodist["vcodename"]),$repscheme);
-
 
83
            $repscheme = str_replace("{SECT}",$sections,$repscheme);
-
 
84
           
-
 
85
            $result .= $repscheme."\n";
-
 
86
        }
-
 
87
        $result .= "</pre>";
-
 
88
        $result = $info.$result;
-
 
89
}
93
}
90
94
-
 
95
$modern .= "<h2>Генератор sources.list</h2>";
91
$smarty->assign('status',$status);
96
$modern .= "<div class='border'>";
-
 
97
$modern .= "<label>Дистрибутив</label><br />";
-
 
98
$modern .= "<select id='distro'>\n<option value=''>Выбрать дистрибутив</option>\n";
92
$smarty->assign('linux',$linux);
99
$modern .= $linux."</select>";
-
 
100
$modern .= "</div><div class='border'>";
-
 
101
$modern .= "<label>Версия дистрибутива</label><br />";
-
 
102
$modern .= "<select id='distver' disabled='disabled'>\n";
-
 
103
$modern .= "</select></div>";
-
 
104
$modern .= "<pre id='replist'></pre></div>";
-
 
105
93
$smarty->assign('version',$distvers);
106
$smarty->assign('modern',$modern);
94
$smarty->assign('result',$result);
107
$smarty->assign('scripts',$scripts);
95
$smarty->assign('antversion',$antversion);
108
$smarty->assign('antversion',$antversion." &bull; <a href='./classic.php'>Классический интерфейс</a>");
96
109
97
$smarty->display('index.tpl');
110
$smarty->display('modern.tpl');
98
111
99
?>
112
?>