]> iEval git - gruntmaster-page.git/commitdiff
Merge branch 'master' into newmc
authorMarius Gavrilescu <marius@ieval.ro>
Sun, 8 Feb 2015 10:56:33 +0000 (12:56 +0200)
committerMarius Gavrilescu <marius@ieval.ro>
Sun, 8 Feb 2015 10:56:33 +0000 (12:56 +0200)
Conflicts:
tmpl/skel.en

1  2 
js/90-themes.js
lib/Plack/App/Gruntmaster/HTML.pm
tmpl/ct_entry.en
tmpl/pb_entry.en
tmpl/skel.en

diff --combined js/90-themes.js
index 56138d36f94d7000c8cba5e6599d6e1f8c7e80d1,5ec968a4552821ba55119ec759b007f5057d0826..9bc36047b545d8d781111259ca4e25bff45be3e2
@@@ -3,16 -3,9 +3,15 @@@
        function set_style(name){
                $('#stylesheet').attr("href", "/css/" + name + ".css");
                localStorage.setItem("theme", name);
 +              $(document).ready(function() {
 +                      if(name == 'slate' || name == 'cyborg')
 +                              $('.logo').removeClass('logo-light');
 +                      else
 +                              $('.logo').addClass('logo-light');
 +              });
        }
  
        $( document ).ready(function() {
-               $('#theme-selector').removeClass('hidden');
                $('#theme_slate'   ).on('click', function () { set_style("slate"); });
                $('#theme_cerulean').on('click', function () { set_style("cerulean"); });
                $('#theme_cyborg'  ).on('click', function () { set_style("cyborg"); });
index 090ca325e85dc3d486453b2bec0c332b999a5a98,bdd20c2d183439a6ef7635abc3bf38b075282e82..0a681161a51f91856bedde4e9b43d49177ef0a29
@@@ -32,7 -32,7 +32,7 @@@ sub HTML::Element::iter3 
  }
  
  sub HTML::Element::fid    { shift->look_down(id    => shift) }
- sub HTML::Element::fclass { shift->look_down(class => shift) }
+ sub HTML::Element::fclass { shift->look_down(class => qr/\b$_[0]\b/) }
  
  sub HTML::Element::namedlink {
        my ($self, $id, $name) = @_;
@@@ -114,12 -114,15 +114,16 @@@ sub process_us 
  sub process_ct_entry {
        my ($tree, %args) = @_;
        $_->edit_href (sub {s/contest_id/$args{id}/}) for $tree->find('a');
 +      $tree->fid('editorial')->detach unless $args{finished};
        $tree->fid('links')->detach unless $args{started};
+       my $status = ($args{time} < $args{start} ? 'starts' : 'ends');
+       $tree->fclass('timer')->attr('data-stop', $status eq 'ends' ? $args{stop} : $args{start});
        $tree->content_handler(
                start       => ftime   $args{start},
                stop        => ftime   $args{stop},
+               status      => $status,
                description => literal $args{description});
+       $tree->fid('ctcountdown')->detach if $args{time} >= $args{stop};
  }
  
  sub process_ct {
@@@ -148,25 -151,24 +152,24 @@@ sub process_pb_entry 
        if ($args{contest_stop}) {
                $tree->fid('solution')->detach;
                $tree->fid('solution_modal')->detach;
-               my $countdown = $tree->fid('countdown');
-               $countdown->attr('data-start' => $args{open_time});
-               $countdown->attr('data-stop' => $args{contest_stop});
-               $countdown->attr('data-time' => $args{time});
-               my $left = $args{contest_stop} - $args{time};
-               $countdown->replace_content(sprintf '%02d:%02d:%02d', $left/60/60, $left/60%60, $left%60);
-               $tree->fid('score')->attr('data-value' => $args{value});
-               $tree->fid('score')->replace_content(Gruntmaster::Data::Result::Contest::calc_score($args{value}, $args{time} - $args{open_time}, 0, $args{contest_stop} - $args{contest_start}));
+               my $score = $tree->fid('score');
+               $score->attr('data-start' => $args{open_time});
+               $score->attr('data-stop'  => $args{contest_stop});
+               $score->attr('data-value'  => $args{value});
+               $tree->fid('countdown')->attr('data-stop' => $args{contest_stop});
        } else {
                $tree->fid('solution')->detach unless $args{solution};
                $_->detach for $tree->fclass('rc'); # requires contest
                $tree->fid('solution_modal')->fclass('modal-body')->replace_content(literal $args{solution});
        }
        if ($args{cansubmit}) {
+               $tree->fid('nosubmit')->detach;
                $tree->look_down(name => 'problem')->attr(value => $args{id});
                my $contest = $tree->look_down(name => 'contest');
                $contest->attr(value => $args{contest}) if $args{contest};
                $contest->detach unless $args{contest}
        } else {
+               $tree->fid('nosubmit')->find('a')->edit_href(sub{s/id/$args{id}/});
                $tree->fid('submit')->detach
        }
  }
diff --combined tmpl/ct_entry.en
index ec16306ba86b115d10ca537ece00fa90afaf0089,c18fba22885f54443b2cbc1df6fd78284165fc6b..13d2e9eb6e877c37c750992db96d3cb1c9c470b6
@@@ -3,11 -3,14 +3,14 @@@
  <dt>Contest stop time</dt>  <dd id="stop">stop</dd>
  </dl>
  
+ <div id="ctcountdown" class="reqjs">
+ Contest <span id="status">starts/ends</span> in: <span class="timer" data-stop="...">
+ </div>
  <div id="description">description</div>
  
  <div id="links">
  <a href="/pb/?contest=contest_id">Problems</a><br>
 -<a href="/ed/contest_id">Editorial</a><br>
 +<a href="/ed/contest_id" id="editorial">Editorial</a><br>
  <a href="/log/?contest=contest_id">Job log</a><br>
  <a href="/st/contest_id">Standings</a>
  </div>
diff --combined tmpl/pb_entry.en
index f2e597e86c4dbb1366f2ccef5ff9f911fa42af29,c76c56cf3d5f23961d48aabe2ff858fcd85064ed..a74fc79e1887442b592abbaf8fec4ebefbe9aa13
@@@ -9,15 -9,21 +9,21 @@@
  <dt>Owner</dt> <dd id="owner">owner</dd>
  <dt>Level</dt> <dd id="level">Easy</dd>
  <dt>Time limit (seconds)</dt> <dd smap="timeout">1</dd>
- <dt class="rc">Score</dt> <dd id="score" data-value="100" class="rc">50</dd>
- <dt class="rc">Contest ends in</dt> <dd id="countdown" data-start="..." data-time="..." data-stop="..." class="rc">01:30</dd>
+ <dt class="rc reqjs">Score</dt> <dd id="score" class="timer reqjs rc" data-start="..." data-stop="..." data-value="100">50</dd>
+ <dt class="rc reqjs">Contest ends in</dt> <dd id="countdown" class="timer reqjs rc" data-stop="...">01:30</dd>
  </dl>
  
  <a href="/log/?problem=problem_id" id="job_log">Job log</a><br>
  <a href="/sol/problem_id" id="solution" data-toggle="modal" data-target="#solution_modal">Solution</a>
  
- <div id="submit">
  <h1>Submit solution</h1>
+ <div id="nosubmit">
+ The contest has finished.<br>
+ To submit solutions to this problem, please visit the problem <a href="/pb/id">outside&nbsp;the&nbsp;contest</a>.
+ </div>
+ <div id="submit">
  <form action="/action/submit" method="POST" enctype="multipart/form-data" role="form">
  <input type="hidden" name="problem" value="problem_id">
  <input type="hidden" name="contest" value="contest_id">
  <div class="form-group"><label for="prog">File:</label><input id="prog" name="prog" type="file"></div>
  <div class="form-group"><label for="source_code">Source code:</label> <textarea class="form-control" id="source_code" name="source_code"></textarea></div>
  <div class="form-group"><label for="prog_format">File format:</label><select id="prog_format" name="prog_format" class="form-control" required>
 -<option value="C">C (gcc)</option>
 -<option value="CPP" selected>C++ (g++)</option>
 -<option value="GCCGO">Go (gccgo)</option>
 -<option value="GOLANG">Go (gc)</option>
 -<option value="HASKELL">Haskell (ghc)</option>
 -<option value="JAVA">Java (javac)</option>
 -<option value="PASCAL">Pascal (fpc)</option>
 -<option value="PERL">Perl (perl)</option>
 -<option value="PYTHON">Python (python)</option>
 +<option value="C">C (gcc 4.7.2)</option>
 +<option value="CPP" selected>C++ (g++ 4.7.2)</option>
 +<option value="GCCGO">Go (gccgo 4.7.2)</option>
 +<option value="GOLANG">Go (gc 1.0.2)</option>
 +<option value="HASKELL">Haskell (ghc 7.4.1)</option>
 +<option value="JAVA">Java (javac 6b34)</option>
 +<option value="PASCAL">Pascal (fpc 2.6.0)</option>
 +<option value="PERL">Perl (perl 5.14.2)</option>
 +<option value="PYTHON">Python (python 2.7.3)</option>
  </select></div>
  
  <input type="submit" value="Submit job" class="btn btn-primary">
diff --combined tmpl/skel.en
index 16ebd70a30f2880d4f2cd7e1c0c299c6c4ca9785,19f3180712c4ec1d3f116d84d1873763e2f80418..19377d91df6910a4473593357d580c9ff0466850
@@@ -3,21 -3,20 +3,21 @@@
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
 -<link rel="stylesheet" href="/css/cyborg.css" id="stylesheet">
 +<link rel="stylesheet" href="/css/slate.css" id="stylesheet">
  <script src="/js.js" type="text/javascript"></script>
  
  <body>
  <nav role="navigation">
  <div class="container-fluid">
  <ul class="nav nav-pills nav-justified">
 -<li id="nav-home"><a href="/">Gruntmaster 6000</a>
 +<li id="nav-home"><a href="/">Home</a>
  <li id="nav-pb"><a href="/pb/">Problems</a>
  <li id="nav-ct"><a href="/ct/">Contests</a>
  <li id="nav-log"><a href="/log/">Job log</a>
  <li id="nav-us"><a href="/us/">Users</a>
  <li id="nav-account"><a href="/account">Account</a>
- <li id="theme-selector" class="hidden"><a class="dropdown-toggle" data-toggle="dropdown"> Theme <span class="caret"></span></a>
 +<li id="nav-about"><a href="/about">About / Help</a>
+ <li id="theme-selector" class="reqjs"><a class="dropdown-toggle" data-toggle="dropdown"> Theme <span class="caret"></span></a>
  <ul class="dropdown-menu" role="menu">
  <li><a href="#" id="theme_slate">Gunmetal gray</a>
  <li><a href="#" id="theme_cyborg">Black</a>
  </nav>
  
  <div class="container-fluid">
 -
 +<div class="logo logo-mindcoding center-block"></div>
  <h1 id="title">TITLE</h1>
  <div id="result"></div>
  
  <div id="content">Content goes here</div>
  
- <div id="login" class="hidden"><a href="/login">Log in</a></div>
+ <div id="login" class="reqjs"><a href="/login">Log in</a></div>
 +<div id="webchat"><a href="http://webchat.oftc.net/?channels=%23mindcoding" target="_blank">Webchat</a></div>
  
- <div id="tracker" class="hidden">
+ <div id="tracker" class="reqjs">
  <h3>Track user</h3>
  <div id="tracker_form">
  <div class="form-group">
@@@ -61,31 -59,8 +61,31 @@@ Tracking <a href="#" id="tracker_userli
  </div>
  </div>
  
 +<div id="sponsors">
 +<h3>Official sponsors</h3>
 +<a class="logo logo-emag" href="http://www.fundatiaemag.ro/"></a>
 +<a class="logo logo-easyhost" href="http://ro.easyhost.com/"></a>
 +<a class="logo logo-takeofflabs" href="http://www.takeofflabs.com/"></a>
 +<a class="logo logo-bigstep" href="http://www.bigstep.com/"></a>
 +</div>
 +
  <footer>
 -Dilmom: Why don't you call your product the Gruntmaster 6000?<br>
 -Dilbert: What kind of product do you see when you imagine a Gruntmaster 6000?<br>
 -Dilmom: Well, it's a stripped-down version of the Gruntmaster 9000, of course. But it's software-upgradeable.
 +<div class="row">
 +<div class="col-md-6 column text-center">
 +<a class="logo logo-hermes" href="http://www.societatea-hermes.ro"></a>
 +</div>
 +
 +<div class="col-md-6 column text-center">
 +<a class="logo logo-facebook" href="http://www.facebook.com/mindcodingcluj"></a>
 +</div>
 +</div>
 +
 +<h3>Partners</h3>
 +<a href="https://www.facebook.com/spyhce?fref=ts" class="logo logo-spyhce"></a>
 +<a href="https://www.facebook.com/telenav?fref=ts" class="logo logo-telenav"></a>
 +<h3>Media Partners</h3>
 +<a href="http://cs.ubbcluj.ro" class="logo logo-csf"></a>
 +<a href="http://www.uniunea.ro" class="logo logo-usr"></a>
 +<a href="http://www.coscj.ro" class="logo logo-cos"></a>
 +<a href="http://www.cluj2015.ro/romana" class="logo logo-eyc"></a>
  </footer>
This page took 0.044821 seconds and 4 git commands to generate.