Posts Tagged ajax

The Rock, i fondi

Continua il divertimento con The Rock Insurance, l’azienda finanziaria virtuale con cui collaboro.

Per far partire un nuovo servizio, cioè dei fondi di investimento, ho dovuto rimettere mano all’applicazione Ruby On Rails che avevo scritto ormai 2 anni fa.

Dopo un po’ di spavento nel constatare che con Rails 2.3 non mi funzionava più niente, ho facilmente fatto ripartire il tutto e aggiungere la gestione dei fondi, completa di distribuzione dei dividendi, è stato semplice e veloce come sempre.

Mi sono pure divertito a usare RJS (scusate, ma non l’avevo mai fatto!).

A posteriori, posso solo lamentarmi che mi sono allargato forse un po’ troppo con AJAX e che continuo a rimandare l’uso dei test unit.

Migliorerò, prometto.

, , ,

No Comments

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.

, ,

No Comments