hacken-in/hacken-in

View on GitHub
app/views/admin/events/_form.html.haml

Summary

Maintainability
Test Coverage
-# ToDo: Termin-Wiederholungen bearbeiten können
= semantic_form_for [:admin, @event] do |form|
  = form.inputs do
    = form.input :name
    = form.input :description, input_html: { class: 'autogrow preview-base', rows: 10 }, wrapper_html: { class: 'previewable' }
    = form.input :venue, input_html: {class: 'chosen-select'}
    = form.input :venue_info
    - if @current_user.admin?
      -# Admins dürfen alles
      = form.input :region, :as => :select, include_blank: false
    - else
      -# Wenn keine Region vorhanden ist, oder die Region innerhalb der vom Nutzer
      -# freigeschalteten ist, diese bearbeiten dürfen
      = form.input :region, :as => :select, :collection => @current_user.assigned_regions, include_blank: false

    = form.input :category, collection: Category.order("title")
    = form.input :picture, input_html: {class: 'chosen-select'}
    = form.input :url
    = form.input :twitter
    = form.input :twitter_hashtag
    = form.input :tag_list
  = form.inputs name: "Terminregeln" do
    = form.input :start_time, as: :datetime_select, hint: "Bei wiederholenden Terminen gib hier den Start-Zeitpunkt an. Die Uhrzeit wird für alle Termine benutzt. Der Tag um den Startzeitpunkt der Wochen-Regeln zu definieren."
    = form.input :duration, as: :number, min: 0
    = form.input :full_day
    = form.input :schedule_rules, as: :hidden, input_html: {value: @event.schedule_rules.to_json}
    = form.input :excluded_times, as: :hidden, input_html: {value: @event.excluded_times.to_json}

    %li.string.input.optional.stringish
      %label.label Terminregeln
      .rule_editor
        %h4 Regeln
        %ul.rules

        .rule_entry
          An jedem
          %select{id:"week_number", name:"week_number"}
            %option{value: "1"} ersten
            %option{value: "2"} zweiten
            %option{value: "3"} dritten
            %option{value: "4"} vierten
            %option{value: "5"} fünften
            %option{value: "-1"} letzten
          %select{id:"day_of_week", name:"day_of_week"}
            %option{value: "monday"} Montag
            %option{value: "tuesday"} Dienstag
            %option{value: "wednesday"} Mittwoch
            %option{value: "thursday"} Donnerstag
            %option{value: "friday"} Freitag
            %option{value: "saturday"} Samstag
            %option{value: "sunday"} Sonntag
          des Monats
          %button{id:"add_rule_monthly", type:"button"} hinzufügen

        oder

        .rule_entry
          %select{id:"week_recurrence", name: "week_recurrence"}
            %option{value: "1"} Jede Woche
            %option{value: "2"} Jede 2. Woche
            %option{value: "3"} Jede 3. Woche
            %option{value: "4"} Jede 4. Woche
            %option{value: "5"} Jede 5. Woche
          an einem
          %select{id:"repeat_week_day", name: "repeat_week_day"}
            %option{value: "monday"} Montag
            %option{value: "tuesday"} Dienstag
            %option{value: "wednesday"} Mittwoch
            %option{value: "thursday"} Donnerstag
            %option{value: "friday"} Freitag
            %option{value: "saturday"} Samstag
            %option{value: "sunday"} Sonntag
          %button{id:"add_rule_weekly", type:"button"} hinzufügen
        %h4 Ausgeschlossene Termine
        %ul.excludes

  - if @event.persisted?
    = form.inputs name: "Termine:" do
      %li
        %label.label Termine
        .termine
          %p
            - if @event.single_events.count > 0
              %a{href:admin_event_single_events_path(@event)}
                #{pluralize(@event.single_events.count, "Termin", "Termine")} anzeigen
              |
              %a{href:new_admin_event_single_event_path(@event)}
                Neuen Termin anlegen
  = form.actions