mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
Added paper_trail, also starting work on the scheduler
This commit is contained in:
parent
90b30db9e8
commit
f86232bedf
35 changed files with 523 additions and 32137 deletions
2
Gemfile
2
Gemfile
|
|
@ -30,8 +30,10 @@ gem "haml"
|
|||
gem 'bcrypt-ruby', '~> 3.0.0'
|
||||
gem 'node'
|
||||
gem 'twitter-bootstrap-rails'
|
||||
gem 'paper_trail'
|
||||
gem 'formtastic-bootstrap'
|
||||
gem 'cocoon'
|
||||
gem 'therubyracer'
|
||||
gem 'transitions', :require => ["transitions", "active_record/transitions"]
|
||||
gem 'acts_as_commentable_with_threading'
|
||||
gem 'prawn'
|
||||
|
|
|
|||
10
Gemfile.lock
10
Gemfile.lock
|
|
@ -75,6 +75,7 @@ GEM
|
|||
thor (>= 0.14, < 2.0)
|
||||
jquery_datepicker (0.4)
|
||||
json (1.7.5)
|
||||
libv8 (3.11.8.11)
|
||||
mail (2.4.4)
|
||||
i18n (>= 0.4.0)
|
||||
mime-types (~> 1.16)
|
||||
|
|
@ -84,6 +85,9 @@ GEM
|
|||
node (0.0.2)
|
||||
eventmachine
|
||||
orm_adapter (0.4.0)
|
||||
paper_trail (2.7.0)
|
||||
activerecord (~> 3.0)
|
||||
railties (~> 3.0)
|
||||
paperclip (3.4.0)
|
||||
activemodel (>= 3.0.0)
|
||||
activerecord (>= 3.0.0)
|
||||
|
|
@ -126,6 +130,7 @@ GEM
|
|||
rake (10.0.3)
|
||||
rdoc (3.12)
|
||||
json (~> 1.4)
|
||||
ref (1.0.2)
|
||||
ruby-rc4 (0.1.5)
|
||||
sass (3.2.4)
|
||||
sass-rails (3.2.5)
|
||||
|
|
@ -138,6 +143,9 @@ GEM
|
|||
rack (~> 1.0)
|
||||
tilt (~> 1.1, != 1.3.0)
|
||||
sqlite3 (1.3.6)
|
||||
therubyracer (0.11.1)
|
||||
libv8 (~> 3.11.8.7)
|
||||
ref
|
||||
thor (0.16.0)
|
||||
tilt (1.3.3)
|
||||
transitions (0.1.4)
|
||||
|
|
@ -172,12 +180,14 @@ DEPENDENCIES
|
|||
jquery-rails
|
||||
jquery_datepicker
|
||||
node
|
||||
paper_trail
|
||||
paperclip (~> 3.0)
|
||||
prawn
|
||||
prawn_rails
|
||||
rails (= 3.2.9)
|
||||
sass-rails (~> 3.2.3)
|
||||
sqlite3
|
||||
therubyracer
|
||||
transitions
|
||||
twitter-bootstrap-rails
|
||||
uglifier (>= 1.0.3)
|
||||
|
|
|
|||
|
|
@ -47,6 +47,21 @@ $(function() {
|
|||
}
|
||||
});
|
||||
|
||||
$("#conference-reg-start-datepicker").datepicker({
|
||||
dateFormat: 'yy/mm/dd',
|
||||
numberOfMonths: 2,
|
||||
onSelect: function(selected) {
|
||||
$("#conference-reg-end-datepicker").datepicker("option","minDate", selected)
|
||||
}
|
||||
});
|
||||
$("#conference-reg-end-datepicker").datepicker({
|
||||
dateFormat: 'yy/mm/dd',
|
||||
numberOfMonths: 2,
|
||||
onSelect: function(selected) {
|
||||
$("#conference-reg-start-datepicker").datepicker("option","maxDate", selected)
|
||||
}
|
||||
});
|
||||
|
||||
$(".comment-reply-link").click(function(){
|
||||
$(".comment-reply", $(this).parent()).toggle();
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
*= require formtastic-bootstrap
|
||||
*= require bootstrap_and_overrides
|
||||
*= require osem
|
||||
*= require schedule
|
||||
*= require jquery-ui-1.9.2.custom
|
||||
*= require jquery.fileupload-ui
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -100,3 +100,4 @@ textarea {
|
|||
position:relative;
|
||||
top:1px;
|
||||
}
|
||||
|
||||
|
|
|
|||
45
app/assets/stylesheets/schedule.css
Normal file
45
app/assets/stylesheets/schedule.css
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
.schedule-content {
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.unscheduled {
|
||||
float:left;
|
||||
border:1px solid #bbb;
|
||||
padding-left:10px;
|
||||
padding-right: 10px;
|
||||
margin-right:20px;
|
||||
margin-left:20px;
|
||||
width:149px;
|
||||
height:100%;
|
||||
position:relative;
|
||||
}
|
||||
|
||||
.schedule {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.schedule-track-column-header {
|
||||
position: absolute;
|
||||
width: 149px;
|
||||
}
|
||||
|
||||
.schedule-track-column {
|
||||
float:left;
|
||||
border-right:1px solid #bbb;
|
||||
width:149px;
|
||||
height:400px;
|
||||
position:relative;
|
||||
}
|
||||
|
||||
.schedule-event {
|
||||
position:absolute;
|
||||
cursor:move;
|
||||
width:141px;
|
||||
height:32px;
|
||||
background: #6af;
|
||||
color:#fff;
|
||||
padding:4px;
|
||||
font-weight:bold;
|
||||
z-index:1;
|
||||
}
|
||||
13
app/controllers/admin/schedule_controller.rb
Normal file
13
app/controllers/admin/schedule_controller.rb
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
class Admin::ScheduleController < ApplicationController
|
||||
before_filter :verify_organizer
|
||||
layout "schedule"
|
||||
|
||||
def show
|
||||
@dates = @conference.start_date..@conference.end_date
|
||||
@tracks = @conference.tracks
|
||||
end
|
||||
|
||||
def update
|
||||
|
||||
end
|
||||
end
|
||||
|
|
@ -71,7 +71,8 @@ class EventAttachmentsController < ApplicationController
|
|||
end
|
||||
|
||||
def update
|
||||
@upload = EventAttachment.find(params[:proposal_id])
|
||||
@proposal = current_user.person.events.find(params[:proposal_id])
|
||||
@upload = @proposal.event_attachments.find(params[:proposal_id])
|
||||
|
||||
respond_to do |format|
|
||||
if @upload.update_attributes(params[:upload])
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ class ProposalController < ApplicationController
|
|||
@event = @person.events.find_by_id(params[:id])
|
||||
@attachments = @event.event_attachments
|
||||
|
||||
if @event.nil?
|
||||
if @event.nil? || !@conference.cfp_open?
|
||||
redirect_to(conference_proposal_index_path(:conference_id => @conference.short_title), :alert => 'Invalid proposal.')
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
class Conference < ActiveRecord::Base
|
||||
attr_accessible :title, :short_title, :social_tag, :contact_email, :timezone, :html_export_path,
|
||||
:start_date, :end_date, :rooms_attributes, :tracks_attributes, :cfp_open, :registration_open,
|
||||
:event_types_attributes
|
||||
:start_date, :end_date, :rooms_attributes, :tracks_attributes,
|
||||
:event_types_attributes, :registration_start_date, :registration_end_date
|
||||
|
||||
has_paper_trail
|
||||
|
||||
has_one :call_for_papers, :dependent => :destroy
|
||||
has_many :events, :dependent => :destroy
|
||||
|
|
@ -61,6 +63,15 @@ class Conference < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
|
||||
def registration_open?
|
||||
today = Date.current
|
||||
if self.registration_start_date.nil? || self.registration_end_date.nil?
|
||||
false
|
||||
end
|
||||
|
||||
(registration_start_date..registration_end_date).cover?(today)
|
||||
end
|
||||
|
||||
def cfp_open?
|
||||
today = Date.current
|
||||
cfp = self.call_for_papers
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
class Event < ActiveRecord::Base
|
||||
include ActiveRecord::Transitions
|
||||
|
||||
has_paper_trail
|
||||
attr_accessible :title, :subtitle, :abstract, :description, :event_type_id, :people_attributes, :person,
|
||||
:proposal_additional_speakers
|
||||
acts_as_commentable
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
class EventAttachment < ActiveRecord::Base
|
||||
has_paper_trail
|
||||
|
||||
belongs_to :event
|
||||
scope :public, where(:public => true)
|
||||
attr_accessible :public, :attachment, :event_id, :title
|
||||
|
|
|
|||
|
|
@ -32,8 +32,9 @@ class Person < ActiveRecord::Base
|
|||
:person_id => self.id).count
|
||||
end
|
||||
|
||||
|
||||
def proposals conference
|
||||
self.events.where("conference_id = ? AND state != ? AND state != ?", conference.id, "withdrawn", "rejected")
|
||||
self.events.where("conference_id = ? AND state != ? AND state != ? AND event_people.event_role=?", conference.id, "withdrawn", "rejected", "submitter")
|
||||
end
|
||||
|
||||
def proposal_count conference
|
||||
|
|
@ -48,6 +49,10 @@ class Person < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
|
||||
def self.find_person_by_user_id user_id
|
||||
Person.where(:user_id => user_id).first
|
||||
end
|
||||
|
||||
private
|
||||
def biography_limit
|
||||
if self.biography.split.size > 150
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
= f.input :timezone, :as => :time_zone, :hint => "The conference time zone"
|
||||
= f.input :start_date, :as => :string, :input_html => { :id => "conference-start-datepicker", :readonly => "readonly" }
|
||||
= f.input :end_date, :as => :string, :input_html => { :id => "conference-end-datepicker", :readonly => "readonly" }
|
||||
= f.input :registration_start_date, :as => :string, :input_html => { :id => "conference-reg-start-datepicker", :readonly => "readonly" }
|
||||
= f.input :registration_end_date, :as => :string, :input_html => { :id => "conference-reg-end-datepicker", :readonly => "readonly" }
|
||||
= f.input :html_export_path, :hint => "The path for static HTML exports"
|
||||
= f.input :cfp_open, :label => false, :hint => "Allow people to submit papers?"
|
||||
= f.input :registration_open, :label => false, :hint => "Allow people to register as attendees?"
|
||||
= f.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"}
|
||||
112
app/views/admin/events/_proposal.html.haml
Normal file
112
app/views/admin/events/_proposal.html.haml
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
.row-fluid
|
||||
.span10
|
||||
%h3
|
||||
= @event.title
|
||||
%i= @event.subtitle
|
||||
|
||||
.span2
|
||||
= link_to "Edit Submission", edit_admin_conference_event_path(@conference.short_title, @event),
|
||||
:class => "btn btn-mini btn-primary pull-right", :style => "margin-top:20px;"
|
||||
|
||||
.row-fluid
|
||||
.span12
|
||||
%table.table
|
||||
%tr
|
||||
%td
|
||||
%b State
|
||||
%td
|
||||
.dropdown
|
||||
= link_to "#", :class => "dropdown-toggle" do
|
||||
= @event.state.humanize
|
||||
<b class="caret"></b>
|
||||
%ul.dropdown-menu
|
||||
- if @event.transition_possible? :accept
|
||||
%li= link_to "Accept event (no email)", update_state_admin_conference_event_path(@conference.short_title, @event, :transition => :accept, :send_mail => false),
|
||||
:method => :put, :hint => "Accept this event without sending an automated email."
|
||||
- if @event.transition_possible? :reject
|
||||
%li= link_to "Reject event (no email)", update_state_admin_conference_event_path(@conference.short_title, @event, :transition => :reject, :send_mail => false),
|
||||
:method => :put, :confirm => "Are you sure?",
|
||||
:hint => "Reject this event without sending an automated email."
|
||||
- if @event.transition_possible? :start_review
|
||||
%li= link_to "Start review", update_state_admin_conference_event_path(@conference.short_title, @event, :transition => :start_review),
|
||||
:method => :put
|
||||
- if @event.transition_possible? :confirm
|
||||
%li= link_to "Confirm event", update_state_admin_conference_event_path(@conference.short_title, @event, :transition => :confirm),
|
||||
:method => :put, :hint => "Confirm that the speaker(s) will be present and that the event will actually take place."
|
||||
- if @event.transition_possible? :cancel
|
||||
%li= link_to "Cancel event", update_state_admin_conference_event_path(@conference.short_title, @event, :transition => :cancel),
|
||||
:method => :put, :hint => "Mark this event as cancelled. Usually this means that the speakers had to cancel their appearance."
|
||||
|
||||
%tr
|
||||
%td
|
||||
%b Submitter
|
||||
%td
|
||||
= link_to @event.submitter.public_name, admin_person_path(@conference.short_title, @event.submitter)
|
||||
(
|
||||
= link_to @event.submitter.email, "mailto: #{@event.submitter.email}"
|
||||
)
|
||||
%tr
|
||||
%td
|
||||
%b Biography
|
||||
%td
|
||||
= simple_format(@event.submitter.biography)
|
||||
%tr
|
||||
%td
|
||||
%b Submitted on
|
||||
%td= @event.created_at
|
||||
%tr
|
||||
%td
|
||||
%b Last updated on
|
||||
%td= @event.updated_at
|
||||
%tr
|
||||
%td
|
||||
%b Abstract
|
||||
%td= simple_format(@event.abstract)
|
||||
%tr
|
||||
%td
|
||||
%b Description
|
||||
%td= simple_format(@event.description)
|
||||
- if @event.event_attachments.size > 0
|
||||
%table.table
|
||||
%thead
|
||||
%th
|
||||
%b Filename
|
||||
%th
|
||||
%b Title
|
||||
%th
|
||||
%b Size
|
||||
%th
|
||||
%b Public?
|
||||
%th
|
||||
%tbody
|
||||
- @event.event_attachments.each do |a|
|
||||
%tr
|
||||
%td
|
||||
= link_to a.attachment_file_name, conference_proposal_event_attachment_path(@conference.short_title, @event.id, a.id)
|
||||
%td
|
||||
= a.title
|
||||
%td
|
||||
= number_to_human_size a.attachment_file_size
|
||||
%td
|
||||
- if a.public?
|
||||
Public
|
||||
- else
|
||||
Not Public
|
||||
%td
|
||||
= link_to "Delete", conference_proposal_event_attachment_path(@conference.short_title, @event.id, a.id),
|
||||
:method => :delete, :confirm => "Are you sure you want to delete this attachment? It's permanant!"
|
||||
|
||||
.row-fluid
|
||||
= link_to "Comments (#{@comment_count})", "#", :id => "event-comment-link"
|
||||
#comments-div
|
||||
%hr
|
||||
%ul.media
|
||||
%div
|
||||
.row-fluid
|
||||
= form_tag(comment_admin_conference_event_path(@conference.short_title, @event.id), :method => :post) do
|
||||
= text_area_tag(:comment, "")
|
||||
= submit_tag "Add Comment", :class => "btn btn-primary pull-right"
|
||||
%br
|
||||
- @comments.each do |comment|
|
||||
%div
|
||||
= raw format_comments(comment)
|
||||
|
|
@ -1,112 +1,38 @@
|
|||
.row-fluid
|
||||
.span10
|
||||
%h3
|
||||
= @event.title
|
||||
%i= @event.subtitle
|
||||
.tabbable
|
||||
%ul.nav.nav-tabs
|
||||
%li.active
|
||||
= link_to "Proposal", "#proposal-content", "data-toggle"=>"tab"
|
||||
%li
|
||||
= link_to "History", "#history-content", "data-toggle"=>"tab"
|
||||
.tab-content
|
||||
#proposal-content.tab-pane.active
|
||||
= render 'proposal'
|
||||
#history-content.tab-pane
|
||||
.span12
|
||||
%table.table
|
||||
%thead
|
||||
%th
|
||||
%b Who
|
||||
%th
|
||||
%b Timestamp
|
||||
%th
|
||||
%b Modification Type
|
||||
%th
|
||||
%b Changes
|
||||
%tbody
|
||||
- @event.versions.each do |version|
|
||||
%tr
|
||||
%td
|
||||
- if !version.whodunnit.nil?
|
||||
= Person.find_person_by_user_id(version.whodunnit).public_name
|
||||
- else
|
||||
No user (probably via the console)
|
||||
%td
|
||||
= version.created_at
|
||||
%td
|
||||
= version.event
|
||||
%td
|
||||
- version.changeset.each_key do |key|
|
||||
= "#{key}: #{version.changeset[key][0]} -> #{version.changeset[key][1]}"
|
||||
%br
|
||||
|
||||
.span2
|
||||
= link_to "Edit Submission", edit_admin_conference_event_path(@conference.short_title, @event),
|
||||
:class => "btn btn-mini btn-primary pull-right", :style => "margin-top:20px;"
|
||||
|
||||
.row-fluid
|
||||
.span12
|
||||
%table.table
|
||||
%tr
|
||||
%td
|
||||
%b State
|
||||
%td
|
||||
.dropdown
|
||||
= link_to "#", :class => "dropdown-toggle" do
|
||||
= @event.state.humanize
|
||||
<b class="caret"></b>
|
||||
%ul.dropdown-menu
|
||||
- if @event.transition_possible? :accept
|
||||
%li= link_to "Accept event (no email)", update_state_admin_conference_event_path(@conference.short_title, @event, :transition => :accept, :send_mail => false),
|
||||
:method => :put, :hint => "Accept this event without sending an automated email."
|
||||
- if @event.transition_possible? :reject
|
||||
%li= link_to "Reject event (no email)", update_state_admin_conference_event_path(@conference.short_title, @event, :transition => :reject, :send_mail => false),
|
||||
:method => :put, :confirm => "Are you sure?",
|
||||
:hint => "Reject this event without sending an automated email."
|
||||
- if @event.transition_possible? :start_review
|
||||
%li= link_to "Start review", update_state_admin_conference_event_path(@conference.short_title, @event, :transition => :start_review),
|
||||
:method => :put
|
||||
- if @event.transition_possible? :confirm
|
||||
%li= link_to "Confirm event", update_state_admin_conference_event_path(@conference.short_title, @event, :transition => :confirm),
|
||||
:method => :put, :hint => "Confirm that the speaker(s) will be present and that the event will actually take place."
|
||||
- if @event.transition_possible? :cancel
|
||||
%li= link_to "Cancel event", update_state_admin_conference_event_path(@conference.short_title, @event, :transition => :cancel),
|
||||
:method => :put, :hint => "Mark this event as cancelled. Usually this means that the speakers had to cancel their appearance."
|
||||
|
||||
%tr
|
||||
%td
|
||||
%b Submitter
|
||||
%td
|
||||
= link_to @event.submitter.public_name, admin_person_path(@conference.short_title, @event.submitter)
|
||||
(
|
||||
= link_to @event.submitter.email, "mailto: #{@event.submitter.email}"
|
||||
)
|
||||
%tr
|
||||
%td
|
||||
%b Biography
|
||||
%td
|
||||
= simple_format(@event.submitter.biography)
|
||||
%tr
|
||||
%td
|
||||
%b Submitted on
|
||||
%td= @event.created_at
|
||||
%tr
|
||||
%td
|
||||
%b Last updated on
|
||||
%td= @event.updated_at
|
||||
%tr
|
||||
%td
|
||||
%b Abstract
|
||||
%td= simple_format(@event.abstract)
|
||||
%tr
|
||||
%td
|
||||
%b Description
|
||||
%td= simple_format(@event.description)
|
||||
- if @event.event_attachments.size > 0
|
||||
%table.table
|
||||
%thead
|
||||
%th
|
||||
%b Filename
|
||||
%th
|
||||
%b Title
|
||||
%th
|
||||
%b Size
|
||||
%th
|
||||
%b Public?
|
||||
%th
|
||||
%tbody
|
||||
- @event.event_attachments.each do |a|
|
||||
%tr
|
||||
%td
|
||||
= link_to a.attachment_file_name, conference_proposal_event_attachment_path(@conference.short_title, @event.id, a.id)
|
||||
%td
|
||||
= a.title
|
||||
%td
|
||||
= number_to_human_size a.attachment_file_size
|
||||
%td
|
||||
- if a.public?
|
||||
Public
|
||||
- else
|
||||
Not Public
|
||||
%td
|
||||
= link_to "Delete", conference_proposal_event_attachment_path(@conference.short_title, @event.id, a.id),
|
||||
:method => :delete, :confirm => "Are you sure you want to delete this attachment? It's permanant!"
|
||||
|
||||
.row-fluid
|
||||
= link_to "Comments (#{@comment_count})", "#", :id => "event-comment-link"
|
||||
#comments-div
|
||||
%hr
|
||||
%ul.media
|
||||
%div
|
||||
.row-fluid
|
||||
= form_tag(comment_admin_conference_event_path(@conference.short_title, @event.id), :method => :post) do
|
||||
= text_area_tag(:comment, "")
|
||||
= submit_tag "Add Comment", :class => "btn btn-primary pull-right"
|
||||
%br
|
||||
- @comments.each do |comment|
|
||||
%div
|
||||
= raw format_comments(comment)
|
||||
4
app/views/admin/schedule/_day_tab.html.haml
Normal file
4
app/views/admin/schedule/_day_tab.html.haml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
- @tracks.each do |track|
|
||||
.schedule-track-column-header
|
||||
= track.name
|
||||
.schedule-track-column
|
||||
43
app/views/admin/schedule/show.html.haml
Normal file
43
app/views/admin/schedule/show.html.haml
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
.schedule-content
|
||||
.unscheduled
|
||||
Unscheduled Events
|
||||
#test1.schedule-event
|
||||
Test
|
||||
#test2.schedule-event
|
||||
Test2
|
||||
.schedule
|
||||
.tabbable
|
||||
%ul.nav.nav-tabs
|
||||
- @dates.each do |date|
|
||||
-if date == @dates.first
|
||||
%li.active
|
||||
= link_to "#{date}", "##{date}-content", "data-toggle"=>"tab"
|
||||
- else
|
||||
%li
|
||||
= link_to "#{date}", "##{date}-content", "data-toggle"=>"tab"
|
||||
.tab-content
|
||||
- @dates.each do |date|
|
||||
- if date == @dates.first
|
||||
.tab-pane.active{:id => "#{date}-content"}
|
||||
= render 'day_tab'
|
||||
- else
|
||||
.tab-pane{:id => "#{date}-content"}
|
||||
= render 'day_tab'
|
||||
|
||||
:javascript
|
||||
$(document).ready( function() {
|
||||
$('.schedule-track-column').droppable({
|
||||
accept: '.schedule-event',
|
||||
drop: function(event, ui) {
|
||||
var evtName = ui.draggable.text();
|
||||
var evtDay = $(this).attr('title');
|
||||
alert('Moved \'' + evtName + '\' to ' + evtDay);
|
||||
}
|
||||
});
|
||||
$('.schedule-event').draggable({
|
||||
grid: [150,20],
|
||||
containment: '.schedule-content',
|
||||
opacity: 0.7,
|
||||
zIndex: 2
|
||||
});
|
||||
});
|
||||
|
|
@ -15,16 +15,19 @@
|
|||
= conference.venue.address
|
||||
.row-fluid{:style => "padding-top: 30px;"}
|
||||
.span4
|
||||
- if conference.user_registered?(current_user)
|
||||
= link_to "Modify Registration", register_conference_path(conference.short_title), :class => "mainbutton center-text"
|
||||
%br
|
||||
%i.icon-thumbs-up You're attending!
|
||||
- if conference.registration_open?
|
||||
- if conference.user_registered?(current_user)
|
||||
= link_to "Modify Registration", register_conference_path(conference.short_title), :class => "mainbutton center-text"
|
||||
%br
|
||||
%i.icon-thumbs-up You're attending!
|
||||
- else
|
||||
= link_to "Register", register_conference_path(conference.short_title), :class => "mainbutton center-text"
|
||||
%br
|
||||
- if !current_user.nil?
|
||||
%i.icon-thumbs-down
|
||||
You haven't registered yet!
|
||||
- else
|
||||
= link_to "Register", register_conference_path(conference.short_title), :class => "mainbutton center-text"
|
||||
%br
|
||||
- if !current_user.nil?
|
||||
%i.icon-thumbs-down
|
||||
You haven't registered yet!
|
||||
%b Registration is closed.
|
||||
.span4.offset4.pull-right
|
||||
- if !current_user.nil? && current_user.person.proposal_count(conference) > 0
|
||||
= link_to "View My Proposals", conference_proposal_index_path(conference.short_title), :class => "mainbutton center-text"
|
||||
|
|
|
|||
|
|
@ -16,6 +16,12 @@
|
|||
- else
|
||||
%li
|
||||
= link_to "Events", admin_conference_events_path(@conference.short_title)
|
||||
- if current_page?(admin_conference_schedule_path(@conference.short_title))
|
||||
%li.active
|
||||
= link_to "Schedule", "#"
|
||||
-else
|
||||
%li
|
||||
= link_to "Schedule ", admin_conference_schedule_path(@conference.short_title)
|
||||
%ul.nav.secondary-nav.pull-right
|
||||
- if !@conference.nil?
|
||||
%li.dropdown
|
||||
|
|
|
|||
22
app/views/layouts/schedule.html.haml
Normal file
22
app/views/layouts/schedule.html.haml
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
!!!
|
||||
%html
|
||||
%head
|
||||
%meta{:charset => "utf-8"}
|
||||
%meta{:name => "viewport", :content => "width=device-width, initial-scale=1, maximum-scale=1"}
|
||||
%title= content_for?(:title) ? yield(:title) : "OSEM"
|
||||
%meta{:content => "", :name => "description"}
|
||||
%meta{:content => "", :name => "author"}
|
||||
= stylesheet_link_tag "application", :media => "all"
|
||||
= javascript_include_tag "application"
|
||||
= csrf_meta_tags
|
||||
= yield(:head)
|
||||
%body
|
||||
.navbar.navbar-fixed-top
|
||||
.navbar-inner
|
||||
.container-fluid
|
||||
= render 'layouts/admin_navigation'
|
||||
= render 'layouts/messages'
|
||||
.content
|
||||
#wrap
|
||||
#inner-content
|
||||
= yield
|
||||
|
|
@ -6,40 +6,7 @@
|
|||
= link_to "Attachments", "#attachment-content", "data-toggle"=>"tab"
|
||||
.tab-content
|
||||
#proposal-content.tab-pane.active
|
||||
.span12
|
||||
= semantic_form_for(@event, :url => @url) do |f|
|
||||
%section#basic
|
||||
= f.inputs :name => "Basic Information" do
|
||||
= f.input :title, :required => true
|
||||
= f.input :subtitle
|
||||
= f.input :abstract, :input_html => {:rows => 5, "onkeyup" => "word_count(this, 'abstract-count')"}, :required => true
|
||||
You have used
|
||||
%span#abstract-count #{@event.abstract_word_count}
|
||||
words. Abstracts are limited to 250 words.
|
||||
%br
|
||||
%br
|
||||
= f.input :description, :input_html => {:rows => 5}, :hint => "This will only be shown to organizers, not to attendees."
|
||||
%section#details
|
||||
= f.inputs :name => "Event Details" do
|
||||
= f.input :event_type_id,:as => :select, :collection => @event_types, :include_blank => false
|
||||
%section#information
|
||||
= f.inputs :name => "Your Information" do
|
||||
= semantic_fields_for @person do |p|
|
||||
= p.input :public_name, :required => true
|
||||
= p.input :company, :label => "Affiliation", :hint => "This could be a company, a user group, or nothing at all."
|
||||
= p.input :biography, :required => true, :input_html => {:rows => 5, "onkeyup" => "word_count(this, 'biography-count')"}
|
||||
You have used
|
||||
%span#biography-count #{@person.biography_word_count}
|
||||
words. Biographies are limited to 150 words.
|
||||
%br
|
||||
%br
|
||||
|
||||
%section#speakers
|
||||
= f.inputs :name => "Additional Speakers" do
|
||||
Will there be any additional speakers? If so, please enter their full names, email address, and a short
|
||||
biography for each.
|
||||
= f.input :proposal_additional_speakers, :input_html => {:rows => 5}, :label => false
|
||||
= f.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"}
|
||||
= render 'proposal_form'
|
||||
#attachment-content.tab-pane
|
||||
.span12
|
||||
= form_for EventAttachment.new, :url => conference_proposal_event_attachment_index_path(@conference.short_title, @event),
|
||||
|
|
|
|||
34
app/views/proposal/_proposal_form.html.haml
Normal file
34
app/views/proposal/_proposal_form.html.haml
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
.span12
|
||||
= semantic_form_for(@event, :url => @url) do |f|
|
||||
%section#basic
|
||||
= f.inputs :name => "Basic Information" do
|
||||
= f.input :title, :required => true
|
||||
= f.input :subtitle
|
||||
= f.input :abstract, :input_html => {:rows => 5, "onkeyup" => "word_count(this, 'abstract-count')"}, :required => true
|
||||
You have used
|
||||
%span#abstract-count #{@event.abstract_word_count}
|
||||
words. Abstracts are limited to 250 words.
|
||||
%br
|
||||
%br
|
||||
= f.input :description, :input_html => {:rows => 5}, :hint => "This will only be shown to organizers, not to attendees."
|
||||
%section#details
|
||||
= f.inputs :name => "Event Details" do
|
||||
= f.input :event_type_id,:as => :select, :collection => @event_types, :include_blank => false
|
||||
%section#information
|
||||
= f.inputs :name => "Your Information" do
|
||||
= semantic_fields_for @person do |p|
|
||||
= p.input :public_name, :required => true
|
||||
= p.input :company, :label => "Affiliation", :hint => "This could be a company, a user group, or nothing at all."
|
||||
= p.input :biography, :required => true, :input_html => {:rows => 5, "onkeyup" => "word_count(this, 'biography-count')"}
|
||||
You have used
|
||||
%span#biography-count #{@person.biography_word_count}
|
||||
words. Biographies are limited to 150 words.
|
||||
%br
|
||||
%br
|
||||
|
||||
%section#speakers
|
||||
= f.inputs :name => "Additional Speakers" do
|
||||
Will there be any additional speakers? If so, please enter their full names, email address, and a short
|
||||
biography for each.
|
||||
= f.input :proposal_additional_speakers, :input_html => {:rows => 5}, :label => false
|
||||
= f.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"}
|
||||
|
|
@ -13,6 +13,7 @@
|
|||
.span10
|
||||
= event.title
|
||||
.pull-right
|
||||
= link_to "Edit", edit_conference_proposal_path(@conference.short_title, event.id), :class => "btn btn-mini btn-primary"
|
||||
= link_to "Withdraw", conference_proposal_path(@conference.short_title, event.id), :method => :delete,
|
||||
:confirm => "Are you sure you want to withdraw this proposal?", :class => "btn btn-mini btn-danger"
|
||||
- if @conference.cfp_open?
|
||||
= link_to "Edit", edit_conference_proposal_path(@conference.short_title, event.id), :class => "btn btn-mini btn-primary"
|
||||
= link_to "Withdraw", conference_proposal_path(@conference.short_title, event.id), :method => :delete,
|
||||
:confirm => "Are you sure you want to withdraw this proposal?", :class => "btn btn-mini btn-danger"
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
.container
|
||||
= render 'form'
|
||||
= render 'proposal_form'
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ Osem::Application.routes.draw do
|
|||
resources :people
|
||||
|
||||
resources :conference do
|
||||
get "/schedule" => "schedule#show"
|
||||
put "/schedule" => "schedule#update"
|
||||
get "/registrations" => "registrations#show"
|
||||
get "/venue" => "venue#show", :as => "venue_info"
|
||||
put "/venue" => "venue#update", :as => "venue_update"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
class AddRegistrationDatesToConferencesTable < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :conferences, :registration_start_date, :date
|
||||
add_column :conferences, :registration_end_date, :date
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
class RemoveCfpAndRegBooleansFromConferences < ActiveRecord::Migration
|
||||
def up
|
||||
remove_column :conferences, :cfp_open
|
||||
remove_column :conferences, :registration_open
|
||||
end
|
||||
|
||||
def down
|
||||
add_column :conferences, :cfp_open, :default => false
|
||||
add_column :registration_open, :default => false
|
||||
end
|
||||
end
|
||||
19
db/migrate/20130107114930_create_versions.rb
Normal file
19
db/migrate/20130107114930_create_versions.rb
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
class CreateVersions < ActiveRecord::Migration
|
||||
def self.up
|
||||
create_table :versions do |t|
|
||||
t.string :item_type, :null => false
|
||||
t.integer :item_id, :null => false
|
||||
t.string :event, :null => false
|
||||
t.string :whodunnit
|
||||
t.text :object
|
||||
t.text :object_changes
|
||||
t.datetime :created_at
|
||||
end
|
||||
add_index :versions, [:item_type, :item_id]
|
||||
end
|
||||
|
||||
def self.down
|
||||
remove_index :versions, [:item_type, :item_id]
|
||||
drop_table :versions
|
||||
end
|
||||
end
|
||||
45
db/schema.rb
45
db/schema.rb
|
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended to check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(:version => 20130105115603) do
|
||||
ActiveRecord::Schema.define(:version => 20130107114930) do
|
||||
|
||||
create_table "call_for_papers", :force => true do |t|
|
||||
t.date "start_date", :null => false
|
||||
|
|
@ -42,31 +42,32 @@ ActiveRecord::Schema.define(:version => 20130105115603) do
|
|||
add_index "comments", ["user_id"], :name => "index_comments_on_user_id"
|
||||
|
||||
create_table "conferences", :force => true do |t|
|
||||
t.string "guid", :null => false
|
||||
t.string "title", :null => false
|
||||
t.string "short_title", :null => false
|
||||
t.string "guid", :null => false
|
||||
t.string "title", :null => false
|
||||
t.string "short_title", :null => false
|
||||
t.string "social_tag"
|
||||
t.string "contact_email", :null => false
|
||||
t.string "timezone", :null => false
|
||||
t.string "contact_email", :null => false
|
||||
t.string "timezone", :null => false
|
||||
t.string "html_export_path"
|
||||
t.date "start_date", :null => false
|
||||
t.date "end_date", :null => false
|
||||
t.boolean "cfp_open", :default => false
|
||||
t.boolean "registration_open", :default => false
|
||||
t.date "start_date", :null => false
|
||||
t.date "end_date", :null => false
|
||||
t.integer "venue_id"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.date "registration_start_date"
|
||||
t.date "registration_end_date"
|
||||
end
|
||||
|
||||
create_table "event_attachments", :force => true do |t|
|
||||
t.integer "event_id"
|
||||
t.string "title", :null => false
|
||||
t.string "title", :null => false
|
||||
t.string "attachment_file_name"
|
||||
t.string "attachment_content_type"
|
||||
t.integer "attachment_file_size"
|
||||
t.datetime "attachment_updated_at"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.boolean "public", :default => true
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "event_people", :force => true do |t|
|
||||
|
|
@ -103,11 +104,11 @@ ActiveRecord::Schema.define(:version => 20130105115603) do
|
|||
t.string "logo_content_type"
|
||||
t.integer "logo_file_size"
|
||||
t.datetime "logo_updated_at"
|
||||
t.text "proposal_additional_speakers"
|
||||
t.integer "track_id"
|
||||
t.integer "room_id"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.text "proposal_additional_speakers"
|
||||
end
|
||||
|
||||
create_table "people", :force => true do |t|
|
||||
|
|
@ -136,7 +137,6 @@ ActiveRecord::Schema.define(:version => 20130105115603) do
|
|||
t.boolean "using_affiliated_lodging", :default => true
|
||||
t.date "arrival"
|
||||
t.date "departure"
|
||||
t.text "additional_speakers"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
|
@ -205,4 +205,15 @@ ActiveRecord::Schema.define(:version => 20130105115603) do
|
|||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "versions", :force => true do |t|
|
||||
t.string "item_type", :null => false
|
||||
t.integer "item_id", :null => false
|
||||
t.string "event", :null => false
|
||||
t.string "whodunnit"
|
||||
t.text "object"
|
||||
t.datetime "created_at"
|
||||
end
|
||||
|
||||
add_index "versions", ["item_type", "item_id"], :name => "index_versions_on_item_type_and_item_id"
|
||||
|
||||
end
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
|
|
@ -1,53 +1,53 @@
|
|||
---
|
||||
rails.png: rails.png
|
||||
rails/index.png: rails.png
|
||||
ui-bg_flat_0_aaaaaa_40x100.png: ui-bg_flat_0_aaaaaa_40x100.png
|
||||
ui-bg_flat_0_aaaaaa_40x100/index.png: ui-bg_flat_0_aaaaaa_40x100.png
|
||||
ui-bg_flat_55_fbec88_40x100.png: ui-bg_flat_55_fbec88_40x100.png
|
||||
ui-bg_flat_55_fbec88_40x100/index.png: ui-bg_flat_55_fbec88_40x100.png
|
||||
ui-bg_glass_75_d0e5f5_1x400.png: ui-bg_glass_75_d0e5f5_1x400.png
|
||||
ui-bg_glass_75_d0e5f5_1x400/index.png: ui-bg_glass_75_d0e5f5_1x400.png
|
||||
ui-bg_glass_85_dfeffc_1x400.png: ui-bg_glass_85_dfeffc_1x400.png
|
||||
ui-bg_glass_85_dfeffc_1x400/index.png: ui-bg_glass_85_dfeffc_1x400.png
|
||||
ui-bg_glass_95_fef1ec_1x400.png: ui-bg_glass_95_fef1ec_1x400.png
|
||||
ui-bg_glass_95_fef1ec_1x400/index.png: ui-bg_glass_95_fef1ec_1x400.png
|
||||
ui-bg_gloss-wave_55_5c9ccc_500x100.png: ui-bg_gloss-wave_55_5c9ccc_500x100.png
|
||||
ui-bg_gloss-wave_55_5c9ccc_500x100/index.png: ui-bg_gloss-wave_55_5c9ccc_500x100.png
|
||||
ui-bg_inset-hard_100_f5f8f9_1x100.png: ui-bg_inset-hard_100_f5f8f9_1x100.png
|
||||
ui-bg_inset-hard_100_f5f8f9_1x100/index.png: ui-bg_inset-hard_100_f5f8f9_1x100.png
|
||||
ui-bg_inset-hard_100_fcfdfd_1x100.png: ui-bg_inset-hard_100_fcfdfd_1x100.png
|
||||
ui-bg_inset-hard_100_fcfdfd_1x100/index.png: ui-bg_inset-hard_100_fcfdfd_1x100.png
|
||||
ui-icons_217bc0_256x240.png: ui-icons_217bc0_256x240.png
|
||||
ui-icons_217bc0_256x240/index.png: ui-icons_217bc0_256x240.png
|
||||
ui-icons_2e83ff_256x240.png: ui-icons_2e83ff_256x240.png
|
||||
ui-icons_2e83ff_256x240/index.png: ui-icons_2e83ff_256x240.png
|
||||
ui-icons_469bdd_256x240.png: ui-icons_469bdd_256x240.png
|
||||
ui-icons_469bdd_256x240/index.png: ui-icons_469bdd_256x240.png
|
||||
ui-icons_6da8d5_256x240.png: ui-icons_6da8d5_256x240.png
|
||||
ui-icons_6da8d5_256x240/index.png: ui-icons_6da8d5_256x240.png
|
||||
ui-icons_cd0a0a_256x240.png: ui-icons_cd0a0a_256x240.png
|
||||
ui-icons_cd0a0a_256x240/index.png: ui-icons_cd0a0a_256x240.png
|
||||
ui-icons_d8e7f3_256x240.png: ui-icons_d8e7f3_256x240.png
|
||||
ui-icons_d8e7f3_256x240/index.png: ui-icons_d8e7f3_256x240.png
|
||||
ui-icons_f9bd01_256x240.png: ui-icons_f9bd01_256x240.png
|
||||
ui-icons_f9bd01_256x240/index.png: ui-icons_f9bd01_256x240.png
|
||||
application.js: application.js
|
||||
application/index.js: application.js
|
||||
application.css: application.css
|
||||
application/index.css: application.css
|
||||
fontawesome-webfont.eot: fontawesome-webfont.eot
|
||||
fontawesome-webfont/index.eot: fontawesome-webfont.eot
|
||||
fontawesome-webfont.svg: fontawesome-webfont.svg
|
||||
fontawesome-webfont/index.svg: fontawesome-webfont.svg
|
||||
fontawesome-webfont.ttf: fontawesome-webfont.ttf
|
||||
fontawesome-webfont/index.ttf: fontawesome-webfont.ttf
|
||||
fontawesome-webfont.woff: fontawesome-webfont.woff
|
||||
fontawesome-webfont/index.woff: fontawesome-webfont.woff
|
||||
twitter/bootstrap/glyphicons-halflings-white.png: twitter/bootstrap/glyphicons-halflings-white.png
|
||||
twitter/bootstrap/glyphicons-halflings-white/index.png: twitter/bootstrap/glyphicons-halflings-white.png
|
||||
twitter/bootstrap/glyphicons-halflings.png: twitter/bootstrap/glyphicons-halflings.png
|
||||
twitter/bootstrap/glyphicons-halflings/index.png: twitter/bootstrap/glyphicons-halflings.png
|
||||
loading.gif: loading.gif
|
||||
loading/index.gif: loading.gif
|
||||
progressbar.gif: progressbar.gif
|
||||
progressbar/index.gif: progressbar.gif
|
||||
rails.png: rails-a3386665c05a2d82f711a4aaa72d247c.png
|
||||
rails/index.png: rails-a3386665c05a2d82f711a4aaa72d247c.png
|
||||
ui-bg_flat_0_aaaaaa_40x100.png: ui-bg_flat_0_aaaaaa_40x100-7d1197a52442bc56fcad60d0390f4b32.png
|
||||
ui-bg_flat_0_aaaaaa_40x100/index.png: ui-bg_flat_0_aaaaaa_40x100-7d1197a52442bc56fcad60d0390f4b32.png
|
||||
ui-bg_flat_55_fbec88_40x100.png: ui-bg_flat_55_fbec88_40x100-6bd1905222cab173dc4996f12b7a07cb.png
|
||||
ui-bg_flat_55_fbec88_40x100/index.png: ui-bg_flat_55_fbec88_40x100-6bd1905222cab173dc4996f12b7a07cb.png
|
||||
ui-bg_glass_75_d0e5f5_1x400.png: ui-bg_glass_75_d0e5f5_1x400-d4e12d9ce6e2b20ae0aadf27c8dcd12c.png
|
||||
ui-bg_glass_75_d0e5f5_1x400/index.png: ui-bg_glass_75_d0e5f5_1x400-d4e12d9ce6e2b20ae0aadf27c8dcd12c.png
|
||||
ui-bg_glass_85_dfeffc_1x400.png: ui-bg_glass_85_dfeffc_1x400-d1dabcb9501a4ed8c9bfc1b19c966022.png
|
||||
ui-bg_glass_85_dfeffc_1x400/index.png: ui-bg_glass_85_dfeffc_1x400-d1dabcb9501a4ed8c9bfc1b19c966022.png
|
||||
ui-bg_glass_95_fef1ec_1x400.png: ui-bg_glass_95_fef1ec_1x400-ab58fbcd66af992f067fcbc7c6488996.png
|
||||
ui-bg_glass_95_fef1ec_1x400/index.png: ui-bg_glass_95_fef1ec_1x400-ab58fbcd66af992f067fcbc7c6488996.png
|
||||
ui-bg_gloss-wave_55_5c9ccc_500x100.png: ui-bg_gloss-wave_55_5c9ccc_500x100-b9ac529234515ff4971dee7e7281c14b.png
|
||||
ui-bg_gloss-wave_55_5c9ccc_500x100/index.png: ui-bg_gloss-wave_55_5c9ccc_500x100-b9ac529234515ff4971dee7e7281c14b.png
|
||||
ui-bg_inset-hard_100_f5f8f9_1x100.png: ui-bg_inset-hard_100_f5f8f9_1x100-ad5cffb7206618b1667599d7c6c24e00.png
|
||||
ui-bg_inset-hard_100_f5f8f9_1x100/index.png: ui-bg_inset-hard_100_f5f8f9_1x100-ad5cffb7206618b1667599d7c6c24e00.png
|
||||
ui-bg_inset-hard_100_fcfdfd_1x100.png: ui-bg_inset-hard_100_fcfdfd_1x100-9f0c2e70b06a9eaec77d569b25b04d7e.png
|
||||
ui-bg_inset-hard_100_fcfdfd_1x100/index.png: ui-bg_inset-hard_100_fcfdfd_1x100-9f0c2e70b06a9eaec77d569b25b04d7e.png
|
||||
ui-icons_217bc0_256x240.png: ui-icons_217bc0_256x240-2f9a30594e6475d5f34e3e43d6447b41.png
|
||||
ui-icons_217bc0_256x240/index.png: ui-icons_217bc0_256x240-2f9a30594e6475d5f34e3e43d6447b41.png
|
||||
ui-icons_2e83ff_256x240.png: ui-icons_2e83ff_256x240-2ea4c160a75c1992daa2eeac86255b99.png
|
||||
ui-icons_2e83ff_256x240/index.png: ui-icons_2e83ff_256x240-2ea4c160a75c1992daa2eeac86255b99.png
|
||||
ui-icons_469bdd_256x240.png: ui-icons_469bdd_256x240-232cd1e8416c1a5e7bbc316084708d2c.png
|
||||
ui-icons_469bdd_256x240/index.png: ui-icons_469bdd_256x240-232cd1e8416c1a5e7bbc316084708d2c.png
|
||||
ui-icons_6da8d5_256x240.png: ui-icons_6da8d5_256x240-d155be4d851213e810cb13fc5e009fbf.png
|
||||
ui-icons_6da8d5_256x240/index.png: ui-icons_6da8d5_256x240-d155be4d851213e810cb13fc5e009fbf.png
|
||||
ui-icons_cd0a0a_256x240.png: ui-icons_cd0a0a_256x240-c0c1ec6a8bcf48fec40303e975a4dfa6.png
|
||||
ui-icons_cd0a0a_256x240/index.png: ui-icons_cd0a0a_256x240-c0c1ec6a8bcf48fec40303e975a4dfa6.png
|
||||
ui-icons_d8e7f3_256x240.png: ui-icons_d8e7f3_256x240-e5dd5fb46ca349d167fbabdcb57e8f7c.png
|
||||
ui-icons_d8e7f3_256x240/index.png: ui-icons_d8e7f3_256x240-e5dd5fb46ca349d167fbabdcb57e8f7c.png
|
||||
ui-icons_f9bd01_256x240.png: ui-icons_f9bd01_256x240-08305efda447dd00f0eaf5e34994bc92.png
|
||||
ui-icons_f9bd01_256x240/index.png: ui-icons_f9bd01_256x240-08305efda447dd00f0eaf5e34994bc92.png
|
||||
application.js: application-9016673953cb4aa8c7ea06dc4da2482a.js
|
||||
application/index.js: application-9016673953cb4aa8c7ea06dc4da2482a.js
|
||||
application.css: application-35f07b325acce0c59f42ac76f4921a19.css
|
||||
application/index.css: application-35f07b325acce0c59f42ac76f4921a19.css
|
||||
fontawesome-webfont.eot: fontawesome-webfont-86a6da438b901860c3a54e21f9098bf8.eot
|
||||
fontawesome-webfont/index.eot: fontawesome-webfont-86a6da438b901860c3a54e21f9098bf8.eot
|
||||
fontawesome-webfont.svg: fontawesome-webfont-c3f3594758768fbb43eae746d18b3b50.svg
|
||||
fontawesome-webfont/index.svg: fontawesome-webfont-c3f3594758768fbb43eae746d18b3b50.svg
|
||||
fontawesome-webfont.ttf: fontawesome-webfont-89ca9bd89cea7c74302ae94f18d4ec3e.ttf
|
||||
fontawesome-webfont/index.ttf: fontawesome-webfont-89ca9bd89cea7c74302ae94f18d4ec3e.ttf
|
||||
fontawesome-webfont.woff: fontawesome-webfont-8255009c90d86ee3458a13f5db9a6ed0.woff
|
||||
fontawesome-webfont/index.woff: fontawesome-webfont-8255009c90d86ee3458a13f5db9a6ed0.woff
|
||||
twitter/bootstrap/glyphicons-halflings-white.png: twitter/bootstrap/glyphicons-halflings-white-6cccd17a7aed91dbc0157d343c68c0d9.png
|
||||
twitter/bootstrap/glyphicons-halflings-white/index.png: twitter/bootstrap/glyphicons-halflings-white-6cccd17a7aed91dbc0157d343c68c0d9.png
|
||||
twitter/bootstrap/glyphicons-halflings.png: twitter/bootstrap/glyphicons-halflings-2851b489e8c39f8fad44fc10efb99c3e.png
|
||||
twitter/bootstrap/glyphicons-halflings/index.png: twitter/bootstrap/glyphicons-halflings-2851b489e8c39f8fad44fc10efb99c3e.png
|
||||
loading.gif: loading-b7ff30d20adcf2b850f420d17048930c.gif
|
||||
loading/index.gif: loading-b7ff30d20adcf2b850f420d17048930c.gif
|
||||
progressbar.gif: progressbar-bc538af0ba6ff3d792217a96651cd58a.gif
|
||||
progressbar/index.gif: progressbar-bc538af0ba6ff3d792217a96651cd58a.gif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue