preview per Freego


Da quando uso Typo per il blog, mi sono abituato alla preview: quando sto inserendo un articolo, questo viene visualizzato “al volo” così come dovrebbe apparire nel blog.

Ho pensato, quindi, di aggiungerlo a Freego, che essendo scritto in Ruby on Rails mi facilita il “porting” di questa feature. Tra l’altro su Freego mi torna utile: le news che inserisco li’, infatti, sono spesso piene di link e non ci si accorge di errori sull’html se non visualizzando la news già salvata.

Aggiungere la preview di una news (o qualsiasi altra cosa simile) è stato molto semplice.

Nella view news/new.rhtml ho aggiunto (partendo dallo scaffold):

<%= javascript_include_tag :defaults %>

Il start_form_tag ora ha un id, per poterlo identificare:

<%= start_form_tag ({:action => 'create'}, :id => 'form_edit_news') %>
  <%= render :partial => 'form' %>
  <%= submit_tag "Invia" %>
<%= end_form_tag %>

Poi ho aggiunto una chiamata AJAX:

<%= observe_form "form_edit_news",
                    :frequency => 3.0,
                    :update    => 'ajaxWrapper',
                    :loading_text => "Retrieving data...",
                    :complete  => "Element.hide('spinner')",
                    :before    => " Element.show('spinner')",
                    :url       => {:action=>'preview', :o nly_path => false} %>

Questa chiamata controlla modifiche al form per l’editing della news, ogni 3.0 secondi, e aggiorna l’elemento ‘ajaxWrapper’, chiamando l’azione ‘preview’. Quello che segue è l’elemento ‘ajaxWrapper’, che tramite un partial rende la preview della news.

<div id='ajaxWrapper'>
<%= render :partial=>'preview', :o bject => @new_news, :layout => false %>
</div>

Piuttosto banale, eh? Qui ho descritto solo le parti fondamentali; se qualcuno vuole proprio vedere il codice intero, ricordo che Freego è GPL.

, ,

  1. No comments yet.
(will not be published)