Ignore:
Timestamp:
Mar 17, 2011, 8:25:13 PM (13 years ago)
Author:
mistic100
Message:

[extensions] Contest Results

  • New bloc for PWG Stuffs
  • Use new admin links and javascript implementation
  • Distinguish pending and running contests (both pending before)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/ContestResults/admin/template/results.tpl

    r9572 r9745  
    1 {combine_script id='jquery' path='themes/default/js/jquery.min.js'}
    2 {combine_script id='jquery.ui' path='themes/default/js/ui/minified/jquery.ui.core.min.js'}
    3 {combine_script id='jquery.ui.sortable' path='themes/default/js/ui/minified/jquery.ui.sortable.min.js'}
    4 {combine_script id='jquery.cluetip' path='themes/default/js/plugins/jquery.cluetip.packed.js'}
    5 {combine_script id='jquery.vtip' path=$CR_PATH|@cat:'admin/template/vtip.js'}
    6 {combine_css id='cr_admin_style' path=$CR_PATH|@cat:'admin/template/style.css'}
     1{combine_script id='jquery.ui'                  require='jquery' path='themes/default/js/ui/minified/jquery.ui.core.min.js'}
     2{combine_script id='jquery.ui.sortable' require='jquery' path='themes/default/js/ui/minified/jquery.ui.sortable.min.js'}
     3{combine_script id='jquery.cluetip'     require='jquery' path='themes/default/js/plugins/jquery.cluetip.js'}
     4{combine_script id='jquery.vtip'                require='jquery' path=$CR_PATH|@cat:'admin/template/vtip.js'}
     5
     6{combine_css path=$CR_PATH|@cat:'admin/template/style.css'}
    77{include file='include/autosize.inc.tpl'}
    88
     9{footer_script require='jquery'}
     10        // AJOUTE UN CHAMP DE RESULTAT
     11        function CreateResultField(j, new_contest){ldelim}
     12                // Si il n'y a aucun résultats on efface le message
     13                if(new_contest) jQuery('#categoryUl').html('');
     14               
     15                // Ajoute à la fin de la liste une nouvelle ligne de résultat vide
     16                jQuery('<li id="result_'+ j +'" class="categoryLi virtual_cat"></li>').appendTo('#categoryUl');
     17               
     18                // Contenu de la ligne
     19                jQuery('#result_'+ j).html('<ul class="categoryActions"> '+
     20                                '<li> '+
     21                                        '<a href="#" title="{'CR_delete_result'|@translate}" onclick="jQuery(\'#result_'+ j +'\').remove();return false;"> '+
     22                                                '<img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'CR_delete_result'|@translate}"/> '+
     23                                        '</a> '+
     24                                '</li> '+
     25                        '</ul> '+
     26                        '<p> '+
     27                                '<img src="{$themeconf.admin_icon_dir}/cat_move.png" class="button drag_button" style="display:none;" title="{'Drag to re-order'|@translate}"> '+
     28                                '{'CR_image_no'|@translate} <input type="text" size="6" name="results['+ j +'][image_id]" value="" onkeyup="UpdatePreview('+ j +', this);"/> '+
     29                                '<span id="preview-'+ j +'"> '+
     30                                        '<span class="vtip" title="<img src=\'admin/themes/default/icon/errors.png\'/><br>N/A"> '+
     31                                                '<img src="{$CR_PATH}admin/template/image/images.png"/> '+
     32                                        '</span> '+
     33                                '</span> '+
     34                                '{'CR_author'|@translate} : <input type="text" name="results['+ j +'][author]" value=""/> '+
     35                                '<textarea class="result_comment" name="results['+ j +'][comment]"></textarea> '+
     36                        '</p> '+
     37                        '<p class="catPos">{'CR_rank'|@translate} : <input type="text" name="results['+ j +'][rank]" value=""/></p>');
     38               
     39                // Remplace le lien de création
     40                jQuery('#AddLink').html('<input class="submit" type="reset" onclick="CreateResultField('+ (j+1) +');return false;" value="{'CR_addfield'|@translate}"/>');
     41               
     42                // Réinitiliase les fonctions jQuery
     43                jQuery('.catPos').hide();
     44                jQuery('.drag_button').show();
     45                jQuery('.categoryLi').css('cursor', 'move');
     46                jQuery('textarea').autogrow();
     47                jQuery('textarea').css('overflow-y', 'hidden');
     48                vtip();
     49        }
     50       
     51        // MET A JOUR LA PREVISUALISATION DE L'IMAGE
     52        function UpdatePreview(image_id, input){ldelim}
     53                $.get("{$CR_PATH}admin/get_tn.php", {ldelim}image_id: input.value},
     54                        function success(data){ldelim}
     55                                document.getElementById('preview-'+image_id).innerHTML = '<span class="vtip" title="'+ data + '">'+
     56                                                '<img src="{$CR_PATH}admin/template/image/images.png"/>'+
     57                                        '</span>';
     58                                vtip();
     59                        }
     60                );
     61        }
     62               
     63{literal}
     64        jQuery().ready(function(){
     65                //  Drag-and-Drop
     66                jQuery('.catPos').hide();
     67                jQuery('.drag_button').show();
     68                jQuery('.categoryLi').css('cursor', 'move');
     69                jQuery('.categoryUl').sortable({
     70                        axis: 'y',
     71                        opacity: 0.8
     72                });
     73                jQuery('#categoryOrdering').submit(function(){
     74                        ar = jQuery('.categoryUl').sortable('toArray');
     75                        for(i=0; i<ar.length; i++) {
     76                                cat = ar[i].split('result_');
     77                                document.getElementsByName('results[' + cat[1] + '][rank]')[0].value = i+1;
     78                        }
     79                });
     80                // Cluetip
     81                jQuery('.cluetip').cluetip({
     82                        width: 550,
     83                        splitTitle: '|'
     84                });
     85        });
     86{/literal}
     87{/footer_script}
     88
    989{html_head}
    10         <script type="text/javascript">
    11                 // AJOUTE UN CHAMP DE RESULTAT
    12                 function CreateResultField(j, new_contest){ldelim}
    13                         // Si il n'y a aucun résultats on efface le message
    14                         if(new_contest) document.getElementById('categoryUl').innerHTML = '';
    15                        
    16                         // Ajoute à la fin de la liste une nouvelle ligne de résultat vide
    17                         var new_result = document.createElement('li');
    18                         new_result.setAttribute('id', 'result_'+(j));
    19                         new_result.setAttribute('class', 'categoryLi virtual_cat');
    20                         document.getElementById('categoryUl').appendChild(new_result);
    21                        
    22                         // Contenu de la ligne
    23                         new_result.innerHTML = '<ul class="categoryActions"> '+
    24                                         '<li> '+
    25                                                 '<a href="#" title="{'CR_delete_result'|@translate}" onclick="DeleteResultField('+ j +');return false;"> '+
    26                                                         '<img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'CR_delete_result'|@translate}"/> '+
    27                                                 '</a> '+
    28                                         '</li> '+
    29                                 '</ul> '+
    30                                 '<p> '+
    31                                         '<img src="{$themeconf.admin_icon_dir}/cat_move.png" class="button drag_button" style="display:none;" title="{'Drag to re-order'|@translate}"> '+
    32                                         '{'CR_image_no'|@translate} <input type="text" size="6" name="results['+ j +'][image_id]" value="" onkeyup="UpdatePreview('+ j +', this);"/> '+
    33                                         '<span id="preview-'+ j +'"> '+
    34                                                 '<span class="vtip" title="<img src=\'admin/themes/default/icon/errors.png\'/><br>N/A"> '+
    35                                                         '<img src="{$CR_PATH}admin/template/image/images.png"/> '+
    36                                                 '</span> '+
    37                                         '</span> '+
    38                                         '{'CR_author'|@translate} : <input type="text" name="results['+ j +'][author]" value=""/> '+
    39                                         '<textarea class="result_comment" name="results['+ j +'][comment]"></textarea> '+
    40                                 '</p> '+
    41                                 '<p class="catPos">{'CR_rank'|@translate} : <input type="text" name="results['+ j +'][rank]" value=""/></p>';
    42                        
    43                         // Remplace le lien de création
    44                         document.getElementById('AddLink').innerHTML = '<input class="submit" type="reset" onclick="CreateResultField('+ (j+1) +');return false;" value="{'CR_addfield'|@translate}"/>';
    45                        
    46                         // Réinitiliase les fonctions jQuery
    47                         jQuery('.catPos').hide();
    48                         jQuery('.drag_button').show();
    49                         jQuery('.categoryLi').css('cursor', 'move');
    50                         jQuery('textarea').autogrow();
    51                         jQuery('textarea').css('overflow-y', 'hidden');
    52                         vtip();
    53                 }
    54                
    55                 // SUPPRIME UN CHAMP DE RESULTAT
    56                 function DeleteResultField(k){ldelim}
    57                         var result = document.getElementById('result_'+k);
    58                         var parent = result.parentNode;
    59                         parent.removeChild(result);
    60                 }
    61 
    62                 jQuery().ready(function(){ldelim}
    63                         //  Drag-and-Drop
    64                         jQuery('.catPos').hide();
    65                         jQuery('.drag_button').show();
    66                         jQuery('.categoryLi').css('cursor', 'move');
    67                         jQuery('.categoryUl').sortable({ldelim}
    68                                 axis: 'y',
    69                                 opacity: 0.8
    70                         });
    71                         jQuery('#categoryOrdering').submit(function(){ldelim}
    72                                 ar = jQuery('.categoryUl').sortable('toArray');
    73                                 for(i=0; i<ar.length; i++) {ldelim}
    74                                         cat = ar[i].split('result_');
    75                                         document.getElementsByName('results[' + cat[1] + '][rank]')[0].value = i+1;
    76                                 }
    77                         });
    78                         // Cluetip
    79                         jQuery('.cluetip').cluetip({ldelim}
    80                                 width: 550,
    81                                 splitTitle: '|'
    82                         });
    83                 });
    84                
    85                 // MET A JOUR LA PREVISUALISATION DE L'IMAGE
    86                 function UpdatePreview(image_id, input){ldelim}
    87                         $.get("{$CR_PATH}admin/get_tn.php", {ldelim}image_id: input.value},
    88                                 function success(data){ldelim}
    89                                         document.getElementById('preview-'+image_id).innerHTML = '<span class="vtip" title="'+ data + '">'+
    90                                                         '<img src="{$CR_PATH}admin/template/image/images.png"/>'+
    91                                                 '</span>';
    92                                         vtip();
    93                                 }
    94                         );
    95                 }
    96         </script>
    97        
    98         <style type="text/css">
    99                 .cluetip:after {ldelim}
    100                         content:url('{$themeconf.admin_icon_dir}/help.png');
    101                 }
    102         </style>
     90<style type="text/css">
     91        .cluetip:after {ldelim}
     92                content:url('{$themeconf.admin_icon_dir}/help.png');
     93        }
     94</style>
    10395{/html_head}
    10496
    105 <h2 style="float:right;top:-24px;position:relative;font-style:italic;margin-bottom:-20px;font-size:12px;font-weight:normal;">{$CR_VERSION}</h2>
     97<h2 class="version_title">{$CR_VERSION}</h2>
    10698
    10799<div class="titrePage">
     
    114106        {if isset($results)}
    115107                {foreach from=$results item=result}
    116                         <li class="categoryLi {if $result.IMAGE_NAME == 'N/A'}error_cat{/if}" id="result_{$i}">
     108                        <li class="categoryLi {if isset($result.ERROR)}error_cat{/if}" id="result_{$i}">
    117109                                <ul class="categoryActions">
    118110                                        <li>
    119                                                 <a href="#" title="{'CR_delete_result'|@translate}" onclick="DeleteResultField({$i});return false;">
     111                                                <a href="#" title="{'CR_delete_result'|@translate}" onclick="jQuery('#result_{$i}').remove();return false;">
    120112                                                        <img src="{$themeconf.admin_icon_dir}/category_delete.png" class="button" alt="{'CR_delete_result'|@translate}"/>
    121113                                                </a>
Note: See TracChangeset for help on using the changeset viewer.