Kalender mit Auswahlmöglichkeit (AJAX)

Für ein Projekt, vielleicht werde ich es in einen späteren Artikel vorstellen, brauchte ich einen Kalender, bei dem man einen Tag auswählen kann. Zu dem ausgewählten Tag sollten dann bestimmte Informationen angezeigt werden. Natürlich hätte man das Ganze auch mit einer simplen textbox oder die ruby on rails implementierte Lösung date_select, lösen können. Ich denke, dass mir die Meisten zu stimmen würden, dass ein Kalender mit Wochentagen und Monaten, in dem man einfach per Mausklick einen Tag auswählen kann, schöner ist.

Ich habe diverse Plugins mir angeschaut und das einzige, welches meinen Anspruch gerecht geworden ist, war calendardateselect!

Installation:

  1. Installiere das calendar_date_select gem.
    sudo gem install calendar_date_select
  2. Füge die gem Abhängigkeit zu dem ROR-Projekt hinzu (environment.rb).
    config.gem “calendar_date_select”
  3. Starte das Projekt neu.
  4. Füge folgende Zeile an den Anfang des Views hinzu.
    <%= calendar_date_select_includes "red"
      # or "blue", or "silver", or nil for the default! %>

Einen Kalender im View anzeigen:

Füge folgende Zeile an die Stelle an die der Kalender angezeigt werden soll hinzu:

<%= calendar_date_select_tag
"name_of_variable_of_the_selected_date",
default_date, :embedded => true %>

Screenshot des Kalenders mit der Einstellung
<%= calendar_date_select_includes “silver”%>

kalender

Erklärungen:

name_variable_of_the_selected_date in dieser Variable wird der ausgewählte Tag gespeichert. Sie können diese bennen wie Sie möchten.

default_date dieser Tag wird beim Aufruf angezeigt. Sie können Ihn auf nil setzten, dann wird der heutige Tag angezeigt. 

Auswahl eines Tages verfolgen:

Hierzu benutze ich einen Observer, damit ich mitbekomme, wenn ein ander Tag ausgewählt wird.

<%= observe_field("name_of_variable_of_the_selected_date",
:frequency => 0.25,
:update => "update_this_part_in_the_view",
:url => { :action => :action_which_should_called_by_change },
:with => "'name_of_variable_of_the_selected_date='+value") %>
This entry was posted in plugins, ruby on rails and tagged , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

3 Comments

  1. Posted 18/03/2009 at 16:53 | Permalink

    Hmm, nicht schlecht aber in welchem Format wird das Datum übergeben?
    params[:name_of_variable_of_the_selected_date] wird ja kaum vom Typ Time oder Date sein können oder? Und was bedeutet red, blue und nil bei calendar_date_select_includes?

  2. Malte
    Posted 18/03/2009 at 16:56 | Permalink

    P.S. Wie wäre es mit einem kleinen Screenshot von dem Ding? :)

  3. admin
    Posted 19/03/2009 at 08:14 | Permalink

    Das Datum wird als String in dem Format “year-month-day” übergeben und kann einfach mit

    Date.parse(name_of_variable_of_the_selected_date)

    in ein Date Objekt umgewandelt werden.

    red, blue und nil bei calendar_date_select_includes sind die verschiedenen Styles. Der Screenshot zeigt zum Beispiel den Style silver an. Die anderen Styles kann man sich auf der HP von calendardateselect anschauen.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Security Code: