updated with fullcalendar.css, added front end page

Conflicts:
	vendor/built_in_modules/calendar_new/init.rb
This commit is contained in:
saurabhbhatia 2013-07-17 11:12:34 +08:00
parent 4ff5724379
commit 3d3d5ed144
7 changed files with 252 additions and 194 deletions

View File

@ -63,6 +63,7 @@
<div class="row-fluid">
<div class="span8">
</div>
<%if is_manager?%>
<div class="span4">
<%= link_to "Add", new_panel_calendar_back_end_event_path, :class => "btn btn-primary pull-right", :id=>"create_event_btn", :ref=>"add-btn" %>
</div>
@ -76,5 +77,6 @@
<script type="text/javascript">
var calendar = new calendarAPI();
</script>
<%end%>

View File

@ -1,12 +1,7 @@
/*
* FullCalendar v1.5.4 Stylesheet
*
* Copyright (c) 2011 Adam Shaw
* Dual licensed under the MIT and GPL licenses, located in
* MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
*
* Date: Tue Sep 4 23:38:33 2012 -0700
*
/*!
* FullCalendar v1.6.1 Stylesheet
* Docs & License: http://arshaw.com/fullcalendar/
* (c) 2013 Adam Shaw
*/
@ -79,11 +74,8 @@ html .fc,
margin-right: -1px;
}
.fc-header .fc-corner-right {
margin-right: 1px; /* back to normal */
}
.fc-header .ui-corner-right {
.fc-header .fc-corner-right, /* non-theme */
.fc-header .ui-corner-right { /* theme */
margin-right: 0; /* back to normal */
}
@ -124,17 +116,17 @@ html .fc,
.fc-widget-header, /* <th>, usually */
.fc-widget-content { /* <td>, usually */
border: 1px solid #ccc;
border: 1px solid #ddd;
}
.fc-state-highlight { /* <td> today cell */ /* TODO: add .fc-today to <th> */
background: #ffc;
background: #fcf8e3;
}
.fc-cell-overlay { /* semi-transparent rectangle while dragging */
background: #9cf;
opacity: .2;
filter: alpha(opacity=20); /* for IE */
background: #bce8f1;
opacity: .3;
filter: alpha(opacity=30); /* for IE */
}
@ -145,43 +137,54 @@ html .fc,
.fc-button {
position: relative;
display: inline-block;
padding: 0 .6em;
overflow: hidden;
height: 1.9em;
line-height: 1.9em;
white-space: nowrap;
cursor: pointer;
}
.fc-state-default { /* non-theme */
border-style: solid;
border-width: 1px 0;
border: 1px solid;
}
.fc-button-inner {
position: relative;
float: left;
overflow: hidden;
.fc-state-default.fc-corner-left { /* non-theme */
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
}
.fc-state-default .fc-button-inner { /* non-theme */
border-style: solid;
border-width: 0 1px;
.fc-state-default.fc-corner-right { /* non-theme */
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
.fc-button-content {
position: relative;
float: left;
height: 1.9em;
line-height: 1.9em;
padding: 0 .6em;
white-space: nowrap;
/*
Our default prev/next buttons use HTML entities like &lsaquo; &rsaquo; &laquo; &raquo;
and we'll try to make them look good cross-browser.
*/
.fc-text-arrow {
margin: 0 .1em;
font-size: 2em;
font-family: "Courier New", Courier, monospace;
vertical-align: baseline; /* for IE7 */
}
.fc-button-prev .fc-text-arrow,
.fc-button-next .fc-text-arrow { /* for &lsaquo; &rsaquo; */
font-weight: bold;
}
/* icon (for jquery ui) */
.fc-button-content .fc-icon-wrap {
.fc-button .fc-icon-wrap {
position: relative;
float: left;
top: 50%;
}
.fc-button-content .ui-icon {
.fc-button .ui-icon {
position: relative;
float: left;
margin-top: -50%;
@ -189,68 +192,58 @@ html .fc,
*top: -50%;
}
/* gloss effect */
/*
button states
borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/)
*/
.fc-state-default .fc-button-effect {
position: absolute;
top: 50%;
left: 0;
}
.fc-state-default .fc-button-effect span {
position: absolute;
top: -100px;
left: 0;
width: 500px;
height: 100px;
border-width: 100px 0 0 1px;
border-style: solid;
border-color: #fff;
background: #444;
opacity: .09;
filter: alpha(opacity=9);
}
/* button states (determines colors) */
.fc-state-default,
.fc-state-default .fc-button-inner {
border-style: solid;
border-color: #ccc #bbb #aaa;
background: #F3F3F3;
color: #000;
.fc-state-default {
background-color: #f5f5f5;
background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
background-repeat: repeat-x;
border-color: #e6e6e6 #e6e6e6 #bfbfbf;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
color: #333;
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
}
.fc-state-hover,
.fc-state-hover .fc-button-inner {
border-color: #999;
.fc-state-down,
.fc-state-active,
.fc-state-disabled {
color: #333333;
background-color: #e6e6e6;
}
.fc-state-hover {
color: #333333;
text-decoration: none;
background-position: 0 -15px;
-webkit-transition: background-position 0.1s linear;
-moz-transition: background-position 0.1s linear;
-o-transition: background-position 0.1s linear;
transition: background-position 0.1s linear;
}
.fc-state-down,
.fc-state-down .fc-button-inner {
border-color: #555;
background: #777;
}
.fc-state-active,
.fc-state-active .fc-button-inner {
border-color: #555;
background: #777;
color: #fff;
}
.fc-state-disabled,
.fc-state-disabled .fc-button-inner {
color: #999;
border-color: #ddd;
.fc-state-active {
background-color: #cccccc;
background-image: none;
outline: 0;
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
}
.fc-state-disabled {
cursor: default;
}
.fc-state-disabled .fc-button-effect {
display: none;
background-image: none;
opacity: 0.65;
filter: alpha(opacity=65);
box-shadow: none;
}
@ -259,47 +252,38 @@ html .fc,
------------------------------------------------------------------------*/
.fc-event {
border-style: solid;
border-width: 0;
border: 1px solid #3a87ad; /* default BORDER color */
background-color: #3a87ad; /* default BACKGROUND color */
color: #fff; /* default TEXT color */
font-size: .85em;
cursor: default;
}
a.fc-event {
text-decoration: none;
}
a.fc-event,
.fc-event-draggable {
cursor: pointer;
}
a.fc-event {
text-decoration: none;
}
.fc-rtl .fc-event {
text-align: right;
}
.fc-event-skin {
border-color: #36c; /* default BORDER color */
background-color: #36c; /* default BACKGROUND color */
color: #fff; /* default TEXT color */
}
.fc-event-inner {
position: relative;
width: 100%;
height: 100%;
border-style: solid;
border-width: 0;
overflow: hidden;
}
.fc-event-time,
.fc-event-title {
padding: 3px 1px;
background-color: #eee;
padding: 0 1px;
}
.fc .ui-resizable-handle { /*** TODO: don't use ui-resizable anymore, change class ***/
.fc .ui-resizable-handle {
display: block;
position: absolute;
z-index: 99999;
@ -318,6 +302,20 @@ a.fc-event {
margin-bottom: 1px;
}
.fc-ltr .fc-event-hori.fc-event-start,
.fc-rtl .fc-event-hori.fc-event-end {
border-left-width: 1px;
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
}
.fc-ltr .fc-event-hori.fc-event-end,
.fc-rtl .fc-event-hori.fc-event-start {
border-right-width: 1px;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
}
/* resizable */
.fc-event-hori .ui-resizable-e {
@ -342,66 +340,6 @@ a.fc-event {
/* Fake Rounded Corners (for buttons and events)
------------------------------------------------------------*/
.fc-corner-left {
margin-left: 1px;
}
.fc-corner-left .fc-button-inner,
.fc-corner-left .fc-event-inner {
margin-left: -1px;
}
.fc-corner-right {
margin-right: 1px;
}
.fc-corner-right .fc-button-inner,
.fc-corner-right .fc-event-inner {
margin-right: -1px;
}
.fc-corner-top {
margin-top: 1px;
}
.fc-corner-top .fc-event-inner {
margin-top: -1px;
}
.fc-corner-bottom {
margin-bottom: 1px;
}
.fc-corner-bottom .fc-event-inner {
margin-bottom: -1px;
}
/* Fake Rounded Corners SPECIFICALLY FOR EVENTS
-----------------------------------------------------------------*/
.fc-corner-left .fc-event-inner {
border-left-width: 1px;
}
.fc-corner-right .fc-event-inner {
border-right-width: 1px;
}
.fc-corner-top .fc-event-inner {
border-top-width: 1px;
}
.fc-corner-bottom .fc-event-inner {
border-bottom-width: 1px;
}
/* Reusable Separate-border Table
------------------------------------------------------------*/
@ -438,6 +376,15 @@ table.fc-border-separate {
text-align: center;
}
.fc .fc-week-number {
width: 22px;
text-align: center;
}
.fc .fc-week-number div {
padding: 0 2px;
}
.fc-grid .fc-day-number {
float: right;
padding: 0 2px;
@ -494,6 +441,10 @@ table.fc-border-separate {
font-weight: normal;
}
.fc-agenda .fc-week-number {
font-weight: bold;
}
.fc-agenda .fc-day-content {
padding: 2px 2px 1px;
}
@ -568,12 +519,16 @@ table.fc-border-separate {
border-width: 0 1px;
}
.fc-event-vert .fc-event-head,
.fc-event-vert .fc-event-content {
position: relative;
z-index: 2;
width: 100%;
overflow: hidden;
.fc-event-vert.fc-event-start {
border-top-width: 1px;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
}
.fc-event-vert.fc-event-end {
border-bottom-width: 1px;
border-bottom-left-radius: 3px;
border-bottom-right-radius: 3px;
}
.fc-event-vert .fc-event-time {
@ -581,6 +536,11 @@ table.fc-border-separate {
font-size: 10px;
}
.fc-event-vert .fc-event-inner {
position: relative;
z-index: 2;
}
.fc-event-vert .fc-event-bg { /* makes the event lighter w/ a semi-transparent overlay */
position: absolute;
z-index: 1;
@ -589,8 +549,8 @@ table.fc-border-separate {
width: 100%;
height: 100%;
background: #fff;
opacity: .3;
filter: alpha(opacity=30);
opacity: .25;
filter: alpha(opacity=25);
}
.fc .ui-draggable-dragging .fc-event-bg, /* TODO: something nicer like .fc-opacity */

View File

@ -1,9 +1,11 @@
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<%= stylesheet_link_tag 'fullcalendar'%>
<%= stylesheet_link_tag 'calendar'%>
<%= javascript_include_tag 'fullcalendar' %>
<%= javascript_include_tag 'calendar' %>
<%= javascript_include_tag 'bootstrap-datetimepicker' %>
<%= stylesheet_link_tag "fullcalendar"%>
<%= stylesheet_link_tag "calendar"%>
<div id="orbit_calendar" class="month_view">
<div class="row-fluid cal-fn">
<div class="span3" id='sec1'>
@ -50,6 +52,7 @@
<div class="row-fluid">
<div class="span8">
</div>
<%if is_manager?%>
<div class="span4">
<%= link_to "Add", new_panel_calendar_new_back_end_event_path, :class => "btn btn-primary pull-right", :id=>"create_event_btn", :ref=>"add-btn" %>
</div>
@ -59,3 +62,4 @@
<script type="text/javascript">
var calendar = new Calendar("#calendar");
</script>
<%end%>

View File

@ -0,0 +1,65 @@
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<%= javascript_include_tag 'fullcalendar' %>
<%= javascript_include_tag 'calendar' %>
<%= javascript_include_tag 'bootstrap-datetimepicker' %>
<%= stylesheet_link_tag "fullcalendar"%>
<%= stylesheet_link_tag "calendar"%>
<div id="orbit_calendar" class="month_view">
<div class="row-fluid cal-fn">
<div class="span3" id='sec1'>
<div class="btn-toolbar" id="navigation" style="margin:0;">
<div id="calendar-nav">
<div class="btn-group">
<button class="btn" id="today_btn">Today</button>
</div>
<div class="btn-group">
<button class="btn" id="prev_month_btn"><span class="icon-chevron-left"></span></button>
<button class="btn" id="next_month_btn"><span class="icon-chevron-right"></span></button>
</div>
</div>
</div>
<div class="form-inline" id="range_selection" style="display:none;margin:0;">
</div>
</div>
<div class="span5" id='sec2'>
<h3 id="current_title" class="current_day_title"></h4>
</div>
<div class="span4" id='sec3'>
<div class="btn-toolbar" style="margin:0; text-align:right;">
<div class="btn-group calendar_mode">
<button class="btn mode_switch" data-mode="agendaDay" >day</button>
<button class="btn mode_switch" data-mode="agendaWeek" >week</button>
<button class="btn active mode_switch" data-mode="month" >month</button>
<button class="btn mode_switch" data-mode="agenda" >agenda</button>
</div>
<div class="btn-group">
<button id="refresh_btn" class="btn icon-refresh"></button>
</div>
</div>
</div>
</div>
<div id="view_holder">
<div id="calendar"></div>
<div id="calendar_agenda"></div>
</div>
</div>
<div id="event_quick_view" class="modal" style="width: 300px; display:none; margin:0 0 0 0;"></div>
<div id="event_create_space" class="modal" style="right: 8px; bottom: 50px; left: auto; top: auto; width: 400px; margin: 0;display:none;"></div>
<div id="calendar-loading">Loading...</div>
<div class="form-actions form-fixed">
<div class="row-fluid">
<div class="span8">
</div>
<%if is_manager?%>
<div class="span4">
<%= link_to "Add", new_panel_calendar_new_back_end_event_path, :class => "btn btn-primary pull-right", :id=>"create_event_btn", :ref=>"add-btn" %>
</div>
</div>
</div>
<script type="text/javascript">
var calendar = new Calendar("#calendar");
</script>
<%end%>

View File

@ -1,5 +1,6 @@
en:
calendar:
all: All
calendar: Calendar
calendars: Calendars
color: Color

View File

@ -6,6 +6,10 @@ Rails.application.routes.draw do
match 'events/agenda' => 'events#agenda', :as => :agenda
resources :events
end
namespace :front_end do
match 'events/agenda' => 'events#agenda', :as => :agenda
resources :events
end
end
end
end

View File

@ -10,6 +10,17 @@ module CalendarNew
intro "I am intro"
update_info 'some update_info'
authorizable
categorizable
taggable
category_customizable
front_end do
app_page 'events' do
frontend_i18n "calendar_new.frontend.events"
end
end
side_bar do
head_label_i18n 'calendar.calendar',:icon_class=>"icons-calendar"
available_for [:admin,:guest,:manager,:sub_manager]
@ -18,17 +29,28 @@ module CalendarNew
head_link_path "panel_calendar_new_back_end_events_path"
context_link 'calendar.new_category',
:link_path=>"new_panel_calendar_new_back_end_event_category_path" ,
context_link 'calendar.categories',
:link_path=>"admin_module_app_categories_path(get_module_app)" ,
:priority=>3,
:active_for_action=>{:event_categories=>:new},
:active_for_category => 'CalendarNew',
:available_for => [:manager]
context_link 'calendar.categories',
:link_path=>"panel_calendar_new_back_end_event_categories_path" ,
:priority=>2,
:active_for_action=>{:event_categories=>:index},
:link_path=>"admin_module_app_categories_path(get_module_app)" ,
:priority=>3,
:active_for_category => 'CalendarNew',
:available_for => [:manager]
context_link 'tags',
:link_path=>"admin_module_tags_path(module_app_id: get_module_app)" ,
:priority=>4,
:active_for_tag => 'CalendarNew',
:available_for => [:manager]
context_link 'module_authorization',
:link_path=>"admin_authorizations_path(get_module_app.key)",
:priority=>6,
:available_for => [:manager]
end
end
end