Changeset 1461

Show
Ignore:
Timestamp:
10/30/06 16:09:03 (2 years ago)
Author:
coderanger
Message:

TracForgePlugin:

Allow for arbitrary initial steps (so this can be use to modify existing prototypes).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • tracforgeplugin/0.10/tracforge/admin/prototypes_admin.py

    r1460 r1461  
    105105                } 
    106106                 
     107        initial_steps = ['MakeTracEnvironment'] 
     108                 
    107109        req.hdf['tracforge.prototypes.steps'] = steps 
     110        req.hdf['tracforge.prototypes.initialsteps'] = initial_steps 
     111        req.hdf['tracforge.prototypes.liststeps'] = [k for k in steps.iterkeys() if k not in initial_steps] 
    108112         
    109113        return 'admin_tracforge_prototypes_new.cs', None 
  • tracforgeplugin/0.10/tracforge/templates/admin_tracforge_prototypes_new.cs

    r1460 r1461  
    33<a href="<?cs var:tracforge.href.prototypes ?>">Back</a> 
    44 
     5<?cs def:step(name, text, show) ?> 
     6<div id="step_<?cs var:name ?>" class="step" <?cs if:!show ?>style="display: none"<?cs /if ?>> 
     7    <div class="step-buttons"> 
     8        <img src="<?cs var:tracforge.href.htdocs ?>/img/greyscale/x.gif" alt="Remove" /> 
     9        <img src="<?cs var:tracforge.href.htdocs ?>/img/greyscale/down.gif" alt="Down" /> 
     10        <img src="<?cs var:tracforge.href.htdocs ?>/img/greyscale/up.gif" alt="Up" /> 
     11    </div> 
     12    <div class="step-name"><?cs var:name ?></div> 
     13    <div class="step-args"><label>Arguments:<input type="text" name="args" /></label></div> 
     14    <hr /><div class="step-text"><?cs var:text ?></div> 
     15 </div> 
     16 <?cs /def ?> 
     17 
     18 
    519<div id="steps"> 
     20<?cs each:step = tracforge.prototypes.initialsteps ?> 
     21    <?cs call:step(step, tracforge.prototypes.steps[step].description, 1) ?> 
     22<?cs /each ?> 
     23<?cs call:step("TEMPLATE", "", 0) ?> 
    624<div id="addstep" class="step"> 
    725    <div class="step-buttons"> 
     
    1028    <form id="addstep-form"> 
    1129        <select name="type"> 
    12             <?cs each:step = tracforge.prototypes.steps ?> 
    13             <option value="<?cs name:step ?>"><?cs name:step ?></option> 
     30            <?cs each:step = tracforge.prototypes.liststeps ?> 
     31            <option value="<?cs var:step ?>"><?cs var:step ?></option> 
    1432            <?cs /each ?> 
    1533        </select> 
     
    3048    }); 
    3149    var step_type = step.id().substr(5); 
    32     $("#addstep-form select[@name=type]").append('<option value="'+step_type+'">'+step_type+'</option>'); 
     50    var select = $("#addstep-form select[@name=type]"); 
     51    if($(select).find("option[@value="+step_type+"]").length == 0) { 
     52        select.append('<option value="'+step_type+'">'+step_type+'</option>'); 
     53    } 
    3354} 
    3455     
     
    4465    var next = $(me).next(".step"); 
    4566    if(next.length == 0) { return; } // Bottom item 
    46     if(next.id() == "addstep") { return; } 
     67    if(next.id() == "addstep" || next.id() == "step_TEMPLATE") { return; } 
    4768    me.animatedSwap(next, 400); 
    4869} 
    49  
    50 var STEP_HTML = Array( 
    51 '<div id="step_((name))" class="step" style="display: none">', 
    52 '   <div class="step-buttons">', 
    53 '       <img src="<?cs var:tracforge.href.htdocs ?>/img/greyscale/x.gif" alt="Remove" />', 
    54 '       <img src="<?cs var:tracforge.href.htdocs ?>/img/greyscale/down.gif" alt="Down" />', 
    55 '       <img src="<?cs var:tracforge.href.htdocs ?>/img/greyscale/up.gif" alt="Up" />', 
    56 '   </div>', 
    57 '   <div class="step-name">((name))</div>', 
    58 '   <div class="step-args"><label>Arguments:<input type="text" name="args" /></label></div>', 
    59 '   <hr /><div class="step-text">((text))</div>', 
    60 '</div>' 
    61 ); 
    6270 
    6371var DESCRIPTIONS = { 
     
    6775}; 
    6876 
    69 function step_html(name) { 
    70     return (STEP_HTML.join("\n")+"\n").replace(/\(\(name\)\)/g, name).replace(/\(\(text\)\)/g, DESCRIPTIONS[name]); 
    71 } 
    72  
    7377function collect_steps() { 
    7478    var steps = Array(); 
     
    7680        steps.push(this.id.substr(5)); 
    7781    }); 
     82    steps.pop(); // This is the template div 
    7883    steps.pop(); // This will always be the addstep div 
    7984    return steps; 
     
    8186 
    8287$(function() { 
     88    $("img[@alt=Remove]").click(remove_step); 
     89    $("img[@alt=Up]").click(up_step); 
     90    $("img[@alt=Down]").click(down_step); 
     91     
    8392    $("#addstep img[@alt=Add]").click(function() { 
    8493        var step_type = $("#addstep-form select[@name=type]").val(); 
    8594        if(step_type == "") { return; } 
    86         $(this).parents(".step").before(step_html(step_type)); 
    87         $(this).parents(".step").prev() 
     95 
     96        $("#step_TEMPLATE").clone().insertBefore("#step_TEMPLATE") 
     97            .id("step_"+step_type) 
     98            .find(".step-name").empty().prepend(step_type).end() 
     99            .find(".step-text").empty().prepend(DESCRIPTIONS[step_type]).end() 
    88100            .animate({height: 'show'}, DURATION) 
    89101            .find("img[@alt=Remove]").click(remove_step).end() 
     
    94106     
    95107    $("#collect").click(function() { 
    96         alert(collect_steps()); 
     108        alert(collect_steps().join("\n")); 
    97109    }); 
    98      
    99     // Start the list off with this entry 
    100     $("#addstep-form select[@name=type]").val("MakeTracEnvironment"); 
    101     var temp = DURATION; 
    102     DURATION = 1; 
    103     $("#addstep img[@alt=Add]").click(); 
    104     DURATION = temp; 
    105110}); 
    106111</script>