aboutsummaryrefslogblamecommitdiff
path: root/cgi/templates/board.html
blob: 6cf10b15a6b0bb1287a3cfbd06b9d5a55e0d8cc2 (plain) (tree)
1
2
3
4
5
6
7
8
                                          




                                                               

                       




                                                               


                                             
                   
                                           
          
                                                                                                   














                                                                                                                                                                            

                      
                               
                 
                                
                                                                     
               
                                                                       
                

                    






                                                                                                        
                                                                                                                                    
                         










                                                                          
                                                                                                                    




                                   


                                                                                    
                                                                                                                  
           


                  

                                                                                    

                              




                                                                                             
                                                             







                                                                                            
                    



                                                                   

                                                                                                              

         









                                                                                                                                                                                                                                                                                     
                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                      

             

          
                           

                          

                                    
              
 



                                                           
                                                                                
                               
                                                                                                                                                                                    
                  
                                        






























                                                                                                                                                                                                                                                                                                                     
                      
                                    







                                                                         




                                                                                                                                                         
                       




                                                                                                     
                        
                                                                                                   


                                                            

                                                                                                                  
                       
                                                                                                                                                                                                                                                                                                          
                        


                                                                                              
                        




                                                                                                
                        












                                                                                                                                                                                                                                                                                        
                        
                                










                                                                                                                                                                          
                                                            
                                                                                                                 
                     
                                                                 
                      
                                                         
                                                                                                                                                                                                                                      
                      
                                         

                                                                                                   
                                                            
                                            
                                                                                       
                                             

                                                                                                           



                     
                      

                    
                              
                           

                           

                                                                   
                                                               

                                                        
                  
          
                 
  
                    



                                                                                                                       

                
 
                   
                               
              
 
                                             
<?py include('templates/base_top.html') ?>
<?py if oek_finish: ?>
  <div class="nav">
    &#91;<a href="#{boards_url}#{board}/">Volver al IB</a>&#93;
  </div>
  <hr />
<?py #endif ?>
<?py if replythread: ?>
  <div class="nav">
    &#91;<a href="#{boards_url}#{board}/">Volver al IB</a>&#93;
    &#91;<a href="/cgi/catalog/${board}">Catálogo</a>&#93;
    &#91;<a href="#bottom" name="top">Bajar</a>&#93;
  </div>
  <div class="replymode">Modo Respuesta</div>
<?py #endif ?>
<a name="postbox"></a>
<div id="postarea">
<?py if allow_oekaki and not oek_finish: ?>
  <center>
    <form id="oekform" action="#{cgi_url}oekaki/paint" method="post" enctype="multipart/form-data">
    <input type="hidden" name="board" value="#{board}" />
    <?py if replythread: ?>
      <input type="hidden" name="parent" value="#{replythread}" />
    <?py #endif ?>
    Usar: <select name="oek_applet">
      <option value="neo">PaintBBS NEO</option>
      <option value="tegaki">Tegaki</option>
      <option value="wpaint">wPaint</option>
      <option value="shipainter|n|n">Shi-Painter</option>
      <option value="shipainter|y|n">Shi-Painter Pro</option>
    </select>
    <span id="oek_size"><input type="text" name="oek_x" size="4" maxlength="4" value="300" /> x <input type="text" name="oek_y" size="4" maxlength="4" value="300" /></span>
    <input type="submit" value="Dibujar" /><br /><a href="#{cgi_url}oekaki/finish/#{board}/#{replythread}">Recuperar dibujo guardado</a>
    </form>
  </center>
<?py #endif ?>
<?py if oek_finish: ?>
<center style="margin:0.5em 0">
  <table><tr><td>
  <?py if oek_finish == "no": ?>
    <div style="font-size:xx-large;margin:0.25em">No hay dibujo</div>
  <?py else: ?>
    <img src="#{images_url}#{board}/temp/#{oek_finish}.png?ts=#{ts}" />
  <?py #endif ?>
  </td></tr></table>
</center>
<?py #endif ?>
<form name="postform" id="postform" action="#{cgi_url}post" method="post" enctype="multipart/form-data">
  <input type="hidden" name="board" value="#{board}" />
  <?py if replythread: ?>
    <input type="hidden" name="parent" value="#{replythread}" />
    <input type="hidden" name="default_subject" value="#{default_subject}" />
  <?py #endif ?>
  <div style="display:none">No tocar: <input type="text" name="name" size="25" /> <input type="text" name="email" size="25" /></div>
  <table id="postform-t">
    <?py if not disable_name: ?>
    <tr>
      <td class="postblock">Nombre</td>
      <td><input type="text" name="fielda" size="25" accesskey="n" /></td>
    </tr>
    <?py #endif ?>
    <tr>
      <td class="postblock">E-mail</td>
      <td>
        <input type="text" name="fieldb" size="25" accesskey="e" />
        <?py if disable_subject: ?>
          <input id="sendbtn" type="submit" value="#{'Responder' if replythread else 'Crear hilo'}" accesskey="z" />
        <?py #endif ?>
      </td>
    </tr>
    <?py if not disable_subject: ?>
    <tr>
      <td class="postblock">Asunto</td>
      <td>
        <input type="text" name="subject" size="35" maxlength="100" accesskey="s" />
        <input id="sendbtn" type="submit" value="#{'Responder' if replythread else 'Crear hilo'}" accesskey="z" />
      </td>
    </tr>
    <?py #endif ?>
    <tr>
      <td class="postblock">Mensaje</td>
      <td><textarea name="message" cols="50" rows="6" accesskey="m"></textarea></td>
    </tr>
    <?py if not oek_finish: ?>
      <?py if (replythread and allow_image_replies) or (not replythread and allow_images): ?>
      <tr>
        <td class="postblock">Archivo</td>
        <td>
          <input type="file" name="file" id="file" accesskey="f" />
          <span id="filepreview" style="display:none"></span>
          <?py if allow_spoilers: ?>
            <label>[<input type="checkbox" name="spoil" id="spoil" />Spoiler]</label>
          <?py #endif ?>
          <?py if allow_noimage and not replythread: ?>
            <label>[<input type="checkbox" name="noimage" id="noimage" />Sin imagen]</label>
          <?py #endif ?>
        </td>
      </tr>
      <?py #endif ?>
    <?py elif oek_finish != 'no': ?>
      <input type="hidden" name="oek_file" value="#{oek_finish}" />
    <?py #endif ?>
    <tr class="pass">
      <td class="postblock">Clave</td>
      <td><input type="password" name="password" size="8" accesskey="p" /> (para eliminar el post)</form></td>
    </tr>
    <tr>
      <td colspan="2" id="rules">
        <ul>
          #{postarea_desc}
        <?py if supported_filetypes: ?>
          <li>Archivos permitidos: #{', '.join(supported_filetypes).upper()}. Hasta #{maxsize}KB. Miniaturas: #{maxdimensions}x#{maxdimensions}px</li>
        <?py #endif ?>
          <li><a href="/cgi/catalog/${board}">Catálogo de hilos</a> (Orden: <a href="/cgi/catalog/${board}?sort=1">Nuevo</a>/<a href="/cgi/catalog/${board}?sort=2">Viejo</a>/<a href="/cgi/catalog/${board}?sort=3">Más</a>/<a href="/cgi/catalog/${board}?sort=4">Menos</a>)</li>
        <?py if maxage: ?>
          <li>Los hilos son automáticamente eliminados a los <b>#{maxage}</b> días de edad.</li>
        <?py #endif ?>
          <li>¿Eres nuevo? <a href="/guia.html">Cómo postear</a> · <a href="/faq.html">Preguntas frecuentes</a> · <a href="/bai/">Contacto</a> · <a href="/userconf.html">Configurar</a></li>
          <li id="search"><form method="get" action="/tools/search.py" style="display:inline-block"><input type="hidden" name="board" value="${board}"><label for="searchin">Buscar: </label><input type="text" name="q" id="searchin" value="" size="10"> <input id="searchbtn" type="submit" value="Ir"></form></li>
        </ul>
      </td>
    </tr>
  </table>
</div><?py #div .postarea?>
<hr />
<?py if postarea_extra: ?>
  <center>#{postarea_extra}</center>
  <hr />
<?py #endif ?>

<form id="delform" action="#{cgi_url}delete" method="post">
  <input type="hidden" name="board" value="#{board}" />
  <?py if threads: ?>
  <?py for thread in threads: ?>
    <div id="t#{thread['id']}" class="thread" data-length="#{thread['length']}">
    <?py if not replythread: ?>
      <span class="unhide" style="display:none">Hilo <a href="#{boards_url}#{board}/res/#{thread['id']}.html">#{thread['id']}</a> oculto. <a class="tt" href="#">Ver hilo</a></span>
    <?py #endif ?>
    <?py for post in thread['posts']: ?>
      <?py if not post['IS_DELETED']: ?>
        <?py if post['parentid']: ?>
        <table>
          <tr>
            <td class="ell"></td>
            <td class="reply" id="p#{post['id']}">
        <?py elif post['file']: ?>
          <div class="fs">
            <?py if post['image_width']: ?>
              <span>Nombre de archivo:</span><a href="#{images_url}#{board}/src/#{post['file']}" class="expimg" target="_blank" data-id="#{post['id']}" data-w="#{post['image_width']}" data-h="#{post['image_height']}">#{post['file']}</a>-(#{post['file_size']} B, #{post['image_width']}x#{post['image_height']})
            <?py else: ?>
              <span>Nombre de archivo:</span><a href="#{images_url}#{board}/src/#{post['file']}" target="_blank">#{post['file']}</a>-(#{post['file_size']} B)
            <?py #endif ?>
            <?py if post['file'][-3:] == 'gif': ?>
              <small>GIF animado</small>
            <?py elif not post['thumb'].startswith('mime'): ?>
              <small>Imagen miniatura</small>
            <?py #endif ?>
            <?py if not replythread: ?>
              [<a href="#" class="tt">Ocultar hilo</a>]
            <?py #endif ?>
          </div><?py #div .fs ?>
          <a target="_blank" href="#{images_url}#{board}/src/#{post['file']}" id="thumb#{post['id']}">
            <?py if post['thumb'].startswith('mime'): ?>
              <img class="thumb" alt="#{post['id']}" src="/static/#{post['thumb']}" width="#{post['thumb_width']}" height="#{post['thumb_height']}" />
            <?py elif post['file'][-3:] == 'gif': ?>
              <img class="thumb" alt="#{post['id']}" src="#{images_url}#{board}/src/#{post['file']}" width="#{post['thumb_width']}" height="#{post['thumb_height']}" />
            <?py else: ?>
              <img class="thumb" alt="#{post['id']}" src="#{images_url}#{board}/thumb/#{post['thumb']}" width="#{post['thumb_width']}" height="#{post['thumb_height']}" />
            <?py #endif ?>
          </a>
        <?py #endif ?>
        <a name="#{post['id']}"></a>
        <div class="info">
          <label>
            <input type="checkbox" name="delete" value="#{post['id']}" />
            <?py if post['subject']: ?>
            <span class="subj">#{post['subject']}</span>
            <?py #endif ?>
          </label>
          <?py if post['email']: ?>
            <?py if post['tripcode']: ?>
              <a class="email" href="mailto:#{post['email']}"><span class="name">#{post['name']}</span> <span class="trip">#{post['tripcode']}</span></a>
            <?py else: ?>
              <a class="email" href="mailto:#{post['email']}"><span class="name">#{post['name']}</span></a>
            <?py #endif ?>
          <?py else: ?>
            <?py if post['tripcode']: ?>
              <span class="name">#{post['name']} <span class="trip">#{post['tripcode']}</span></span>
            <?py else: ?>
              <span class="name">#{post['name']}</span>
            <?py #endif ?>
          <?py #endif ?>
          <span class="date" data-unix="#{post['timestamp']}">#{post['timestamp_formatted']}</span>
          <?py if post['posterid']: ?>
            <span class="hash">ID:#{post['posterid']}</span>
          <?py #endif ?>
          <?py if replythread: ?>
            <span class="reflink"><a href="##{post['id']}">No.</a><a href="#" class="num">#{post['id']}</a></span>
          <?py else: ?>
            <span class="reflink"><a href="#{boards_url}#{board}/res/#{post['parentid'] if post['parentid'] != 0 else post['id']}.html##{post['id']}">No.</a><a href="#{boards_url}#{board}/res/#{post['parentid'] if post['parentid'] != 0 else post['id']}.html#i#{post['id']}">#{post['id']}</a></span>
          <?py #endif ?>
          <a class="rep" href="#{cgi_url}report/#{board}/#{post['id']}" rel="nofollow">rep</a>
          <?py if post['expires']: ?>
            <small>Expira el ${post['expires_formatted']}</small>
          <?py #endif ?>
          <?py if not post['parentid'] and not replythread: ?>
            [<a href="#{boards_url}#{board}/res/#{post['id']}.html" class="hsbn">Responder</a>] 
            <?py if not post['file']: ?>
              [<a href="#" class="tt">Ocultar hilo</a>]
            <?py #endif ?>
          <?py #endif ?>
          <?py if post['parentid'] and post['file']: ?>
            <div class="fs">
              <?py if post['image_width']: ?>
                <a href="#{images_url}#{board}/src/#{post['file']}" class="expimg" target="_blank" data-id="#{post['id']}" data-w="#{post['image_width']}" data-h="#{post['image_height']}">#{post['file']}</a>-(#{post['file_size']} B, #{post['image_width']}x#{post['image_height']})
              <?py else: ?>
                <a href="#{images_url}#{board}/src/#{post['file']}" target="_blank">#{post['file']}</a>-(#{post['file_size']} B)
              <?py #endif ?>
              <?py if post['file'][-3:] == 'gif': ?>
                <small>GIF animado</small>
              <?py elif not post['thumb'].startswith('mime'): ?>
                <small>Imagen miniatura</small>
              <?py #endif ?>
            </div><?py #div .fs ?>
          <?py #endif ?>
        </div><?py #div .info ?>
        <?py if post['parentid'] and post['file']: ?>
          <a target="_blank" href="#{images_url}#{board}/src/#{post['file']}" id="thumb#{post['id']}">
            <?py if post['thumb'].startswith('mime'): ?>
              <img class="thumb" alt="#{post['id']}" src="/static/#{post['thumb']}" width="#{post['thumb_width']}" height="#{post['thumb_height']}" />
            <?py elif post['file'][-3:] == 'gif': ?>
              <img class="thumb" alt="#{post['id']}" src="#{images_url}#{board}/src/#{post['file']}" width="#{post['thumb_width']}" height="#{post['thumb_height']}" />
            <?py else: ?>
              <img class="thumb" alt="#{post['id']}" src="#{images_url}#{board}/thumb/#{post['thumb']}" width="#{post['thumb_width']}" height="#{post['thumb_height']}" />
            <?py #endif ?>
          </a>
        <?py #endif ?>
        <?py if post['thumb_width'] and post['parentid']: ?>
          <blockquote class="msg" style="margin-left:#{post['thumb_width']+40}px">#{post['message']}</blockquote>
        <?py else: ?>
          <blockquote class="msg">#{post['message']}</blockquote>
        <?py #endif ?>
        <?py if not replythread and post['shortened']: ?>
          <blockquote class="abbrev">(Post muy largo... Presiona <a href="#{boards_url}#{board}/res/#{post['id'] if not post['parentid'] else post['parentid']}.html##{post['id']}">aqu&iacute;</a> para verlo completo.)</blockquote>
        <?py #endif ?>
        <?py if post['expires_alert']: ?>
          <div style="color:red;font-weight:bold;">Este hilo es viejo y desaparecerá pronto.</div>
        <?py #endif ?>
        <?py if not post['parentid'] and not replythread: ?>
          <?py if thread['omitted'] == 1: ?>
            <div class="omitted">Un post omitido. Haz clic en Responder para ver.</div>
          <?py elif thread['omitted'] > 1: ?>
            <div class="omitted">#{thread['omitted']} posts omitidos. Haz clic en Responder para ver.</div>
          <?py #endif ?>
        <?py else: ?>
              </td>
            </tr>
          </table>
        <?py #endif ?>
      <?py #endif ?>
    <?py #endfor ?>
    </div><?py #div .thread ?>
    <div class="cut"></div>
    <?py if replythread: ?>
      <hr />
      <div class="nav">
        &#91;<a href="#{boards_url}#{board}/">Volver al IB</a>&#93;
        &#91;<a href="/cgi/catalog/${board}">Catálogo</a>&#93;
        &#91;<a href="#top" name="bottom">Subir</a>&#93;
      </div>
    <?py #endif ?>
    <hr />
  <?py #endfor ?>
  
  <div id="userdel">
    Eliminar post <label>[<input type="checkbox" name="imageonly" id="imageonly" />Sólo imagen]</label>
    <br />
    Clave <input type="password" name="password" size="8" /> <input name="deletepost" value="Eliminar" type="submit" />
  </div>
  <?py #endif ?>
</form>

<?py if pagenav: ?>
  <div id="pg">#{pagenav}</div>
<?py #endif ?>

<?py include('templates/base_bottom.html') ?>