Changeset 1083


Ignore:
Timestamp:
12/21/09 14:03:40 (2 years ago)
Author:
bogdan2412
Message:

Many small fixes from live.

  • Moved admin/task_tags to admin/task-tags because that's apparently how we do urls.
  • Fixed autocomplete showing up only under the first tag form in the page.
  • Added "number of tasks" column to admin/task-tags page and made it and "Operations" column fixed width.
  • Disabled deletion of algorithm tags that are in use.
  • Allow ( and ) in algorithm tags. (for Sortare O(NlogN))
  • Made age_group no longer depend on the contest.

REVIEW URL: http://reviewboard.infoarena.ro/r/123/

Location:
trunk
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/common/common.php

    r1079 r1083  
    4747define("IA_RE_ROUND_ID", '[a-z0-9][a-z0-9_\-\.]*'); 
    4848define("IA_RE_TASK_ID", '(?-i:[a-z0-9][a-z0-9_\-\.]*)'); 
    49 define("IA_RE_TAG_NAME", '[a-z0-9\-\.\ \@]+'); 
     49define("IA_RE_TAG_NAME", '[a-z0-9\-\.\ \@\(\)]+'); 
    5050define("IA_RE_SCORE_NAME", '[a-z0-9][a-z0-9_\-\.]*'); 
    5151define("IA_RE_USER_NAME", '[_@a-z0-9][a-z0-9_\-\.\@]*'); 
  • trunk/common/tags.php

    r1081 r1083  
    6262    foreach ($parent_tags as $key => $tag) { 
    6363        $parent_tags[$key]['sub_tags'] = Array(); 
    64         $parent_tags_key[ $tag['tag_id'] ] = $key; 
     64        $parent_tags_key[$tag['tag_id']] = $key; 
    6565    } 
    6666 
    6767    foreach ($sub_tags as $tag) { 
    68         log_assert(isset($parent_tags_key[ $tag['tag_parent'] ]), "Child tag doesn't have a parent"); 
    69         $parent_tag_key = $parent_tags_key[ $tag['tag_parent'] ]; 
    70         $parent_tags[ $parent_tag_key ]['sub_tags'][] = $tag; 
     68        log_assert(isset($parent_tags_key[$tag['tag_parent']]), "Child tag doesn't have a parent"); 
     69        $parent_tag_key = $parent_tags_key[$tag['tag_parent']]; 
     70        $parent_tags[$parent_tag_key]['sub_tags'][] = $tag; 
    7171    } 
    7272 
  • trunk/www/controllers/task.php

    r1082 r1083  
    6666    // Tag data 
    6767    $tag_types = Array('author', 'contest', 'year', 'round', 'age_group'); 
    68     $tag_parents = Array('year' => 'contest', 'round' => 'year', 'age_group' => 'contest'); 
     68    $tag_parents = Array('year' => 'contest', 'round' => 'year'); 
    6969 
    7070    // FIXME: tags that have children such as contest, year or round should have only one tag 
  • trunk/www/controllers/task_tags.php

    r1080 r1083  
    1212        $category["sub_tags"] = tag_get_all(array("algorithm"), 
    1313            $category["id"]); 
     14        foreach ($category["sub_tags"] as &$tag) { 
     15            $tag["task_count"] = tag_count_objects("task", array($tag["id"])); 
     16        } 
    1417    } 
    1518 
     
    6972    } 
    7073 
     74    // Do not delete tags if they have been added to tasks. 
     75    if ($tag["type"] == "algorithm") { 
     76        $task_count = tag_count_objects("task", array($tag_id)); 
     77    } else if ($tag["type"] == "method") { 
     78        $task_count = 0; 
     79        $sub_tags = tag_get_all(array("algorithm"), $tag_id); 
     80        foreach ($sub_tags as $sub_tag) { 
     81            $task_count += tag_count_objects("task", array($sub_tag["id"])); 
     82        } 
     83    } 
     84    if ($task_count != 0) { 
     85        flash_error("Nu poti sterge un tag care a fost asociat deja unei probleme."); 
     86        redirect(url_task_tags()); 
     87    } 
     88 
    7189    tag_delete_by_id($tag_id); 
    7290    flash("Tag-ul a fost sters."); 
  • trunk/www/index.php

    r1081 r1083  
    9696 
    9797// Task algorithm tags 
    98 else if ($page == 'admin/task_tags') { 
     98else if ($page == 'admin/task-tags') { 
    9999    require_once(IA_ROOT_DIR.'www/controllers/task_tags.php'); 
    100100    if (request("action") == "add") { 
  • trunk/www/static/css/screen.css

    r1082 r1083  
    552552 
    553553input[type='text'], input[type='password'], select { 
    554     width: 150px; 
     554    width: 250px; 
    555555} 
    556556 
     
    15241524 
    15251525/* Task algorithm tags page */ 
    1526 .task_tag_actions { 
     1526.task-tag-actions { 
    15271527    margin: 0.5em; 
    15281528} 
    1529 ul.task_tag_actions li { 
     1529ul.task-tag-actions li { 
    15301530    display: inline; 
    15311531} 
     1532 
     1533.tag-table .tag-task-count { 
     1534    width: 20%; 
     1535} 
     1536.tag-table .tag-operations { 
     1537    width: 25%; 
     1538} 
  • trunk/www/static/css/wick.css

    r852 r1083  
    2828    color:black; 
    2929    padding: 0; 
     30    width: 257px; 
    3031} 
    3132 
  • trunk/www/static/js/inline_form.js

    r1080 r1083  
    66    var initialText = toggleElement.innerHTML; 
    77    formElement.style.display = "none"; 
    8     connect(toggleElement, "onclick", function() { 
     8    connect(toggleElement, "onclick", function(e) { 
     9        e.preventDefault(); 
    910        if (formElement.style.display == "none") { 
    1011            // Display inline form and replace toggleElement with "Anuleaza" 
  • trunk/www/url.php

    r1081 r1083  
    272272 
    273273function url_task_tags() { 
    274     return url_complex("admin/task_tags"); 
     274    return url_complex("admin/task-tags"); 
    275275} 
    276276 
    277277function url_task_tags_add() { 
    278     return url_complex("admin/task_tags", array("action" => "add")); 
     278    return url_complex("admin/task-tags", array("action" => "add")); 
    279279} 
    280280 
    281281function url_task_tags_delete() { 
    282     return url_complex("admin/task_tags", array("action" => "delete")); 
     282    return url_complex("admin/task-tags", array("action" => "delete")); 
    283283} 
    284284 
    285285function url_task_tags_rename() { 
    286     return url_complex("admin/task_tags", array("action" => "rename")); 
     286    return url_complex("admin/task-tags", array("action" => "rename")); 
    287287} 
    288288 
  • trunk/www/views/tags_header.php

    r1078 r1083  
    99// Format a tag input box 
    1010// FIXME: Width parameter does not work, I hate CSS 
    11 function tag_format_input_box($field, $value = null, $width = "50", $name = "tags", $autocomplete = true) { 
     11function tag_format_input_box($field, $value = null, $width = "50", $name = "tags") { 
    1212    $esc_name = html_escape($field['name']); 
    1313    $esc_width = html_escape($width); 
     
    1616    $output = '<li><label for="form_'.$esc_name.'">'.$field['label'].'</label>'; 
    1717    $output .= ferr_span($name); 
    18     $output .= '<input class="wickEnabled" type="text" name="'.$esc_name. 
     18    $output .= '<input class="wickEnabled:wick_'.$name.'" type="text" name="'.$esc_name. 
    1919               '" id="form_'.$esc_name.'"'; 
    2020    if (!is_null($width)) { 
     
    2424        $output .= ' value="'.$value.'"'; 
    2525    } 
    26     $output .= ' />'; 
    27     $output .= '<script type="text/javascript" language="JavaScript" src="'. 
    28                 html_escape(url_static("js/wick.js")).'"></script>'; 
     26    $output .= ' autocomplete="off" />'; 
     27    $output .= '<table id="wick_'.$name.'" class="floater"><tr><td><div class="wick_content"></div></td></tr></table>'; 
    2928    $output .= "</li>"; 
    3029    return $output; 
     
    3433<link rel="stylesheet" type="text/css" href="<?= html_escape(url_static("css/wick.css")) ?> " /> 
    3534<script type="text/javascript" language="JavaScript"> 
     35/* <![CDATA[ */ 
    3636function checkForm() { 
    3737    answer = true; 
     
    4949echo "];\n"; 
    5050?> 
     51/* ]]> */ 
    5152</script> 
     53<script type="text/javascript" language="JavaScript" src="<?php echo html_escape(url_static("js/wick.js")) ?>"></script> 
  • trunk/www/views/task_edit.php

    r1081 r1083  
    146146            <?php 
    147147                foreach (array_keys($tag_fields) as $tag) { 
    148                     echo tag_format_input_box($tag_fields[$tag], fval('tag_'.$tag), 50, 'tag_'.$tag, false); 
     148                    echo tag_format_input_box($tag_fields[$tag], fval('tag_'.$tag), 50, 'tag_'.$tag); 
    149149                } 
    150150            ?> 
  • trunk/www/views/task_tags.php

    r1082 r1083  
    4646    array( 
    4747        'title' => 'Tag', 
    48         'rowform' => 'format_tag_name' 
     48        'rowform' => 'format_tag_name', 
     49        'css_class' => 'tag-name', 
     50    ), 
     51    array( 
     52        'title' => 'Numar probleme', 
     53        'key' => 'task_count', 
     54        'css_class' => 'tag-task-count', 
    4955    ), 
    5056    array( 
    5157        'title' => 'Operatii', 
    5258        'rowform' => 'format_operations', 
     59        'css_class' => 'tag-operations', 
    5360    ), 
    5461); 
     
    5764 
    5865<h1>Editare taguri algoritmi</h1> 
    59 <div id="add_category" class="task_tag_actions"> 
     66<div id="add_category" class="task-tag-actions"> 
    6067[<a href="#">Adauga categorie noua</a><?php 
    6168    echo inline_post_form(url_task_tags_add(), array("type" => "method"), "", "Adauga"); 
     
    6673?> 
    6774    <h2><?php echo html_escape($category["name"]); ?></h2> 
    68     <ul class="task_tag_actions"> 
     75    <ul class="task-tag-actions"> 
    6976        <li class="algorithm_tag_add">[<a class="toggle_add" href="#">Adauga tag nou</a><?php 
    7077            echo inline_post_form(url_task_tags_add(), 
     
    8289    <?php 
    8390    echo format_table($category["sub_tags"], $column_infos, 
    84         array('css_class' => 'category fill-screen')); 
     91        array('css_class' => 'category fill-screen tag-table')); 
    8592    ?> 
    8693<?php 
Note: See TracChangeset for help on using the changeset viewer.