]> ruin.nu Git - ndwebbie.git/commitdiff
Storing government for planets
authorMichael Andreen <harv@ruin.nu>
Fri, 4 Apr 2008 10:39:39 +0000 (12:39 +0200)
committerMichael Andreen <harv@ruin.nu>
Fri, 4 Apr 2008 10:39:39 +0000 (12:39 +0200)
NDWeb/Pages/Check.pm
NDWeb/Pages/Intel.pm
database/gov.sql [new file with mode: 0644]
templates/check.tmpl
templates/intel.tmpl

index 88e37e6dc5d98034613a53d7a85d12bb237f75e7..a0062ab3568b7a67327e171ecdf68d2cff7b67ea 100644 (file)
@@ -78,7 +78,7 @@ sub render_body {
                $extra_columns = ", planet_status,hit_us, alliance,relationship";
        }
 
-       my $query = $DBH->prepare(qq{Select p.id,coords(x,y,z), ((ruler || ' OF ') || p.planet) as planet,race,
+       my $query = $DBH->prepare(qq{Select p.id,coords(x,y,z), ((ruler || ' OF ') || p.planet) as planet,race,gov,
                size, size_gain, size_gain_day,
                score,score_gain,score_gain_day,
                value,value_gain,value_gain_day,
index bd9777aeac0b787fd2ebba1f1c9876a8174aac61..a5dfc5e77b37cf5d6832c01276fae568ee7cb18a 100644 (file)
@@ -48,7 +48,7 @@ sub render_body {
 
        my $planet;
        if (defined param('coords') && param('coords') =~ /^(\d+)(?: |:)(\d+)(?: |:)(\d+)$/){
-               my $query = $DBH->prepare(q{SELECT x,y,z,coords(x,y,z),id, nick, alliance,alliance_id, planet_status,channel,ftid FROM current_planet_stats
+               my $query = $DBH->prepare(q{SELECT x,y,z,coords(x,y,z),id, nick, alliance,alliance_id, planet_status,channel,ftid,gov FROM current_planet_stats
                        WHERE  x = ? AND y = ? AND z = ?});
                $planet = $DBH->selectrow_hashref($query,undef,$1,$2,$3) or $ND::ERROR .= p $DBH->errstr;
        }
@@ -127,6 +127,16 @@ sub render_body {
                                        $error .= "<p> Something went wrong: ".$DBH->errstr."</p>";
                                }
                        }
+                       if (param('cgov')){
+                               my $value = escapeHTML(param('gov'));
+                               if ($DBH->do(q{UPDATE planets SET gov = ? WHERE id =?}
+                                               ,undef,$value,$planet->{id})){
+                                       intel_log $ND::UID,$planet->{id},"Set government to: $value";
+                                       $planet->{gov} = $value;
+                               }else{
+                                       $error .= "<p> Something went wrong: ".$DBH->errstr."</p>";
+                               }
+                       }
                        if (param('calliance')){
                                if ($DBH->do(q{UPDATE planets SET alliance_id = NULLIF(?,-1) WHERE id =?}
                                                ,undef,param('alliance'),$planet->{id})){
@@ -157,9 +167,14 @@ sub render_body {
                $BODY->param(Planet => $planet->{id});
                $BODY->param(Nick => escapeHTML($planet->{nick}));
                $BODY->param(Channel => $planet->{channel});
+               my @gov;
+               for my $gov ("","Feu", "Dic", "Dem","Uni"){
+                       push @gov,{Gov => $gov, Selected => $gov eq $planet->{gov}}
+               }
+               $BODY->param(Gov => \@gov);
                my @status;
                for my $status ("","Friendly", "NAP", "Hostile"){
-                       push @status,{Status => $status, Selected => defined $planet->{planet_status} && $status eq $planet->{planet_status}}
+                       push @status,{Status => $status, Selected => $status eq $planet->{planet_status}}
                }
                $BODY->param(PlanetStatus => \@status);
                my @alliances = alliances($planet->{alliance_id});
diff --git a/database/gov.sql b/database/gov.sql
new file mode 100644 (file)
index 0000000..5c0149c
--- /dev/null
@@ -0,0 +1,19 @@
+DROP VIEW current_planet_stats_full;
+DROP VIEW current_planet_stats;
+
+CREATE TYPE governments AS ENUM ('','Feu','Dic','Dem','Uni');
+
+ALTER TABLE planets ADD COLUMN gov governments NOT NULL DEFAULT ''::governments;
+
+CREATE VIEW current_planet_stats AS
+       SELECT p.id, p.nick, p.planet_status, p.hit_us, ps.x, ps.y, ps.z, p.ruler, p.planet, p.race, ps.size, ps.score, ps.value, ps.xp, ps.sizerank, ps.scorerank, ps.valuerank, ps.xprank, alliances.name AS alliance, alliances.relationship, p.alliance_id, p.channel, p.ftid, p.gov
+       FROM (SELECT planet_stats.id, planet_stats.tick, planet_stats.x, planet_stats.y, planet_stats.z, planet_stats.size, planet_stats.score, planet_stats.value, planet_stats.xp, planet_stats.sizerank, planet_stats.scorerank, planet_stats.valuerank, planet_stats.xprank FROM planet_stats WHERE (planet_stats.tick = (SELECT max(planet_stats.tick) AS max FROM planet_stats))) ps
+               NATURAL JOIN planets p
+               LEFT JOIN alliances ON alliances.id = p.alliance_id;
+
+
+CREATE VIEW current_planet_stats_full AS
+    SELECT p.id, p.nick, p.planet_status, p.hit_us, ps.x, ps.y, ps.z, p.ruler, p.planet, p.race, ps.size, ps.score, ps.value, ps.xp, ps.sizerank, ps.scorerank, ps.valuerank, ps.xprank, alliances.name AS alliance, alliances.relationship, p.alliance_id, p.channel, p.ftid, ps.size_gain, ps.score_gain, ps.value_gain, ps.xp_gain, ps.sizerank_gain, ps.scorerank_gain, ps.valuerank_gain, ps.xprank_gain, ps.size_gain_day, ps.score_gain_day, ps.value_gain_day, ps.xp_gain_day, ps.sizerank_gain_day, ps.scorerank_gain_day, ps.valuerank_gain_day, ps.xprank_gain_day,p.gov
+       FROM (SELECT planet_stats.id, planet_stats.tick, planet_stats.x, planet_stats.y, planet_stats.z, planet_stats.size, planet_stats.score, planet_stats.value, planet_stats.xp, planet_stats.sizerank, planet_stats.scorerank, planet_stats.valuerank, planet_stats.xprank, planet_stats.size_gain, planet_stats.score_gain, planet_stats.value_gain, planet_stats.xp_gain, planet_stats.sizerank_gain, planet_stats.scorerank_gain, planet_stats.valuerank_gain, planet_stats.xprank_gain, planet_stats.size_gain_day, planet_stats.score_gain_day, planet_stats.value_gain_day, planet_stats.xp_gain_day, planet_stats.sizerank_gain_day, planet_stats.scorerank_gain_day, planet_stats.valuerank_gain_day, planet_stats.xprank_gain_day FROM planet_stats WHERE (planet_stats.tick = (SELECT max(planet_stats.tick) AS max FROM planet_stats))) ps 
+               NATURAL JOIN planets p
+               LEFT JOIN alliances ON alliances.id = p.alliance_id;
index 3270812cdc5a20fdf0600f10c37d2cc38a128845..37be1103fd22c1a7d882bb8a8fe7c6ec5aeeb161 100644 (file)
@@ -36,7 +36,7 @@
 <table>
        <tr align="center"><th colspan="4">Rank</th>
        </tr>
-       <tr><th>Size</th><th>Score</th><th>Value </th> <th>XP</th><th>Coords</th><th>Planet</th><th>Race</th><th>Size</th><th>Score</th><th>Value </th>
+       <tr><th>Size</th><th>Score</th><th>Value </th> <th>XP</th><th>Coords</th><th>Planet</th><th>Race</th><th>Gov</th><th>Size</th><th>Score</th><th>Value </th>
                <th>XP</th><th>Fleet (Resource) value</th><TMPL_IF isBC><th>Nick</th><th>Hit us</th><th>Alliance</th></TMPL_IF>
        </tr>
        <TMPL_LOOP GPlanets>
@@ -50,6 +50,7 @@
                <td align="left"><a href="/<TMPL_VAR NAME=PAGE>?coords=<TMPL_VAR NAME=Coords>"><TMPL_VAR NAME=Coords></a></td>
                <td align="center"><TMPL_VAR NAME=Planet></td>
                <td align="center"><TMPL_VAR NAME=Race></td>
+               <td align="center"><TMPL_VAR NAME=Gov></td>
                <td style="padding-left: 0.5em" title="<TMPL_VAR NAME=Size_Gain_day> Today | <TMPL_VAR NAME=Size_Gain> Tick"><TMPL_VAR NAME=Size> <img src="/images/<TMPL_VAR NAME=SizeImg>.png" alt="<TMPL_VAR NAME=SizeImg>"/> </td>
                <td style="padding-left: 0.5em" title="<TMPL_VAR NAME=Score_Gain_day> Today | <TMPL_VAR NAME=Score_Gain> Tick"><TMPL_VAR NAME=Score> <img src="/images/<TMPL_VAR NAME=ScoreImg>.png" alt="<TMPL_VAR NAME=ScoreImg>"/> </td>
                <td style="padding-left: 0.5em" title="<TMPL_VAR NAME=Value_Gain_day> Today | <TMPL_VAR NAME=Value_Gain> Tick"><TMPL_VAR NAME=Value> <img src="/images/<TMPL_VAR NAME=ValueImg>.png" alt="<TMPL_VAR NAME=ValueImg>"/> </td>
index 080233bbef262616796d0da5e83b88674b8127ed..fca56ebf1c28c7ad17414e1cbbcc5c6276c865f7 100644 (file)
                        <td><input type="text" name="channel" value="<TMPL_VAR NAME=Channel>"/></td>
                        <td><input type="checkbox" name="cchannel"/></td>
                </tr>
+               <tr><td>Government</td>
+                       <td><select name="gov">
+                               <TMPL_LOOP Gov>
+                                       <option value="<TMPL_VAR NAME=Gov>" <TMPL_IF NAME=Selected>selected="selected"</TMPL_IF>><TMPL_VAR NAME=Gov></option>
+                               </TMPL_LOOP>
+                               </select></td>
+                       <td><input type="checkbox" name="cgov"/></td>
+               </tr>
                <tr><td>Planet status</td>
                        <td><select name="status">
                                <TMPL_LOOP PlanetStatus>