social_stream-events 1.1.1 → 2.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +7 -0
  2. data/app/assets/javascripts/social_stream/calendar.js.erb +135 -0
  3. data/app/assets/javascripts/social_stream/event.js +44 -0
  4. data/app/assets/javascripts/social_stream/events.action.js +36 -0
  5. data/app/assets/javascripts/social_stream/events.poster.js +23 -0
  6. data/app/assets/javascripts/social_stream/events.timeline.js +6 -0
  7. data/app/assets/javascripts/social_stream/fullcalendar.js +135 -0
  8. data/app/assets/javascripts/social_stream-events.js +1 -1
  9. data/app/assets/stylesheets/social_stream/events/calendar/_calendar.css.sass +63 -0
  10. data/app/assets/stylesheets/social_stream/events/calendar/_calendar_modal.css.sass +15 -0
  11. data/app/assets/stylesheets/social_stream/events/calendar/_calendar_sidebar.css.sass +50 -0
  12. data/app/assets/stylesheets/social_stream/events/calendar/layout/_calendar.css.sass +28 -0
  13. data/app/assets/stylesheets/social_stream/events/calendar/layout/_calendar_modal.css.sass +60 -0
  14. data/app/assets/stylesheets/social_stream/events/calendar/layout/_calendar_sidebar.css.sass +26 -0
  15. data/app/assets/stylesheets/social_stream/events/explore/layout/_explore_timeline_events.css.sass +6 -0
  16. data/app/assets/stylesheets/social_stream/events/header_nav/layout/_header_nav_events.css.sass +2 -0
  17. data/app/assets/stylesheets/social_stream/events/repository/_repository.css.sass +16 -0
  18. data/app/assets/stylesheets/social_stream/events/repository/layout/_repository.css.sass +24 -0
  19. data/app/assets/stylesheets/social_stream/events/responsive/_responsive-1200px-min.css.sass +34 -0
  20. data/app/assets/stylesheets/social_stream/events/responsive/_responsive-767px-max.css.sass +77 -0
  21. data/app/assets/stylesheets/social_stream/events/responsive/_responsive-768px-979px.css.sass +32 -0
  22. data/app/assets/stylesheets/social_stream/events/timeline/_timeline_events.css.sass +66 -0
  23. data/app/assets/stylesheets/social_stream/events/timeline/layout/_timeline_events.css.sass +70 -0
  24. data/app/assets/stylesheets/social_stream-events.css.sass +42 -0
  25. data/app/helpers/events_helper.rb +12 -1
  26. data/app/models/event.rb +7 -9
  27. data/app/overrides/layouts/_header_signed_in/icon_nav.html.erb.deface +8 -0
  28. data/app/overrides/settings/_index/add_rooms.html.erb.deface +6 -0
  29. data/app/overrides/sidebar/_show/add_calendar.html.erb.deface +5 -0
  30. data/app/views/events/_calendar_month.erb +3 -1
  31. data/app/views/events/{_event_date.html.erb → _date.html.erb} +5 -8
  32. data/app/views/events/{_event_date_sidebar.html.erb → _date_sidebar.html.erb} +4 -4
  33. data/app/views/events/{_event_details.html.erb → _details.html.erb} +11 -8
  34. data/app/views/events/_event.html.erb +17 -9
  35. data/app/views/events/_event_sidebar.html.erb +3 -3
  36. data/app/views/events/_form_poster.html.erb +2 -2
  37. data/app/views/events/_new.html.erb +11 -20
  38. data/app/views/events/_poster.html.erb +13 -0
  39. data/app/views/events/_quick_search_result.html.erb +1 -0
  40. data/app/views/events/_search_result.html.erb +1 -0
  41. data/app/views/events/_timeline.html.erb +8 -0
  42. data/app/views/events/create.js.erb +4 -16
  43. data/app/views/events/edit.js.erb +2 -2
  44. data/app/views/events/index.html.erb +23 -91
  45. data/app/views/events/index.js.erb +1 -1
  46. data/app/views/rooms/_form.html.erb +11 -16
  47. data/app/views/rooms/_index.html.erb +3 -7
  48. data/app/views/settings/_rooms.html.erb +11 -0
  49. data/app/views/sidebar/_calendar.html.erb +48 -0
  50. data/config/locales/en.yml +6 -0
  51. data/config/locales/es.yml +6 -0
  52. data/lib/generators/social_stream/events/install_generator.rb +2 -3
  53. data/lib/social_stream/events/engine.rb +0 -12
  54. data/lib/social_stream/events/version.rb +1 -1
  55. data/lib/social_stream-events.rb +3 -12
  56. data/lib/tasks/db/populate.rake +44 -0
  57. data/social_stream-events.gemspec +2 -2
  58. data/spec/controllers/events_controller_spec.rb +20 -0
  59. data/spec/views/settings_spec.rb +39 -0
  60. metadata +69 -44
  61. data/app/assets/javascripts/social_stream.calendar.js.erb +0 -104
  62. data/app/assets/javascripts/social_stream.event.js +0 -55
  63. data/app/assets/javascripts/social_stream.events.action.js +0 -31
  64. data/app/assets/javascripts/social_stream.events.poster.js +0 -22
  65. data/app/assets/stylesheets/events.css.scss +0 -218
  66. data/app/assets/stylesheets/social_stream-events.css +0 -3
  67. data/app/decorators/social_stream/base/document_decorator.rb +0 -3
  68. data/app/models/activity_object_property/poster.rb +0 -2
  69. data/app/views/events/_event_poster.html.erb +0 -9
  70. data/app/views/events/_sidebar_calendar.html.erb +0 -45
  71. data/app/views/rooms/_settings.html.erb +0 -23
  72. data/lib/social_stream/events/models/document.rb +0 -26
  73. data/lib/social_stream/views/settings/events.rb +0 -18
  74. data/lib/social_stream/views/sidebar/events.rb +0 -17
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4987018b8e4381997ef90ed050e02372997d8053
4
+ data.tar.gz: 94fb6cb287d1ec59d53f8a08e8e4c4acaded1542
5
+ SHA512:
6
+ metadata.gz: 26a6ca8444a54b5417e77c47fbfe96561de78196425295ac2584b6e852e6f1f83dbd31007e9450672f013f96209eba4f35ff8dade130c84f5307710d4ca373af
7
+ data.tar.gz: ae173bef7a68e5c34a66848ad84412027ee325e66bad1a9be6746ec40f88f887022fd20044686a08f7a9c32f44545a5a254e6fb58853fd1b9be31818c87baaf6
@@ -0,0 +1,135 @@
1
+ //= require jquery.tipsy
2
+
3
+ SocialStream.Calendar = (function(SS, $, undefined){
4
+ var eventsPath;
5
+
6
+ var element = function(){
7
+ return $("#sidebar_calendar");
8
+ }
9
+ var eventElementRegExp = new RegExp('day_(..?)_(..?)_(..?.?.?)');
10
+
11
+ var eventElementMatch = function(el){
12
+ return eventElementRegExp.exec($(el).attr('id'));
13
+ }
14
+
15
+ var eventElementDate = function(el) {
16
+ var m = eventElementMatch(el);
17
+
18
+ if(m == null) return;
19
+
20
+ return new Date(m[3], (m[2]-1), m[1], 23, 59, 59);
21
+ }
22
+
23
+ var eventElement = function(date) {
24
+ return $('#day_' + date.getDate() + '_' + (date.getMonth()+1) + '_' + date.getFullYear())
25
+ }
26
+
27
+ var show = function(){
28
+ var cal = $('#sidebar_calendar');
29
+ var calStart = cal.attr('data-start');
30
+ var calEnd = cal.attr('data-end');
31
+ eventsPath = cal.attr('data-path');
32
+
33
+ var now = new Date();
34
+
35
+ eventElement(now).addClass('today');
36
+
37
+
38
+ cal.find('#days td').each(function(index, domEl){
39
+ var d = eventElementDate(domEl)
40
+
41
+ if(d < now) $(domEl).addClass('past');
42
+ if(d.getMonth() != now.getMonth() && d > now) $(domEl).addClass('next_month');
43
+ });
44
+
45
+ $.ajax({
46
+ dataType: 'json',
47
+ cache: false,
48
+ url: eventsPath,
49
+ data: {
50
+ start: calStart,
51
+ end: calEnd
52
+ },
53
+
54
+ success: initBusyEvents
55
+ });
56
+ }
57
+
58
+ var initBusyEvents = function(events) {
59
+ $.each(events, function(i, event) {
60
+ var start = new Date(event.start); // This applies TZ
61
+ var end = new Date(event.end);
62
+
63
+ for(loopTime=start.getTime(); loopTime <= end.getTime(); loopTime+=86400000) {
64
+ var d = new Date(loopTime);
65
+ var domEl = eventElement(d);
66
+
67
+ domEl.addClass("busy");
68
+ }
69
+
70
+ element().find('.busy').click(function(e) {
71
+ e.preventDefault();
72
+
73
+ showBusyModal($(this));
74
+ });
75
+ })
76
+ }
77
+
78
+ var showBusyModal = function(el) {
79
+ if (! el.attr('data-loaded')) {
80
+ createBusyModal(el);
81
+ }
82
+
83
+ $('#modal-' + el.attr('id')).modal('show');
84
+ };
85
+
86
+ var createBusyModal = function(el) {
87
+ var modal = $('#modal-sidebar_calendar').clone();
88
+
89
+ modal.attr('id', 'modal-' + el.attr('id'));
90
+ modal.find(".modal-header h3").html(busyTitle(el));
91
+ modal.find("button.view-calendar").click(function() {
92
+ document.location.href = el.find('a').attr('href');
93
+ });
94
+
95
+ loadBusyContent(el);
96
+
97
+ modal.appendTo($('body'));
98
+
99
+ modal.modal();
100
+
101
+ el.attr('data-loaded', true);
102
+ };
103
+
104
+ var busyTitle = function(el){
105
+ var date = eventElementDate(el);
106
+
107
+ return I18n.t('event.popover.title', { date: I18n.l('date.formats.long', date) } );
108
+ };
109
+
110
+ var loadBusyContent = function(el){
111
+ var startDate = eventElementDate(el)
112
+ startDate.setHours(0);
113
+ startDate.setMinutes(0);
114
+ startDate.setSeconds(0);
115
+ var endDate = eventElementDate(el)
116
+
117
+ $.ajax({
118
+ dataType: "script",
119
+ url: eventsPath,
120
+ data: {
121
+ // use UNIX timestamps
122
+ start: Math.round(startDate.getTime() / 1000),
123
+ end: Math.round(endDate.getTime() / 1000),
124
+ day: el.attr('id')
125
+ }
126
+ });
127
+ }
128
+
129
+ return {
130
+ show: show,
131
+ element: element,
132
+ eventElement: eventElement
133
+ }
134
+
135
+ })(SocialStream, jQuery);
@@ -0,0 +1,44 @@
1
+ //= require social_stream/callback
2
+ //= require social_stream/events.poster
3
+
4
+ SocialStream.Event = (function(SS, $, undefined) {
5
+ var callback = new SS.Callback();
6
+
7
+ var color = function(){
8
+ return SS.Events.current.eventColor;
9
+ };
10
+
11
+ var fixDates = function(){
12
+ $(".event").each(function(){
13
+ dateString = $(this).find("time").attr("datetime");
14
+
15
+ date = new Date(dateString);
16
+
17
+ var dayEl = $(this).find(".event .day");
18
+ if (dayEl.length) {
19
+ dayEl.text($.datepicker.formatDate('d', date));
20
+ }
21
+
22
+ var monthEl = $(this).find(".event .month");
23
+ if (monthEl.length) {
24
+ monthEl.text($.datepicker.formatDate('M', date));
25
+ }
26
+
27
+ var hourEl = $(this).find(".event .hour");
28
+ if(hourEl.length) {
29
+ var minutes = date.getMinutes();
30
+ if (minutes<10) minutes = "0" + minutes;
31
+ hourEl.text(date.getHours() + ':' + minutes);
32
+ }
33
+ });
34
+ };
35
+
36
+ callback.register('index',
37
+ fixDates,
38
+ SocialStream.Events.Poster.show);
39
+
40
+ return callback.extend({
41
+ color: color,
42
+ });
43
+
44
+ })(SocialStream, jQuery);
@@ -0,0 +1,36 @@
1
+ //= require social_stream/action
2
+
3
+ SocialStream.Events.Action = (function(SS, $, undefined){
4
+ var animateCalendar = function(action) {
5
+ if (action.activity_object.type != "Event") {
6
+ return;
7
+ }
8
+
9
+ if (!action.follow) {
10
+ return;
11
+ }
12
+
13
+ var el = SS.Action.followForms(action).closest(".event");
14
+ var eventDate = new Date(el.find("time").attr('datetime'));
15
+
16
+ var calEl = SS.Calendar.eventElement(eventDate);
17
+
18
+ if (calEl.length === 0) {
19
+ calEl = SS.Calendar.element();
20
+ }
21
+
22
+ if (action.follow.following) {
23
+ el.find('.poster').effect("transfer", {to: calEl});
24
+ calEl.addClass("busy");
25
+ } else {
26
+ calEl.effect("transfer", {to: el.find('.poster')});
27
+ calEl.effect("pulsate");
28
+ }
29
+ };
30
+
31
+ SS.Action.callbackRegister('update', animateCalendar);
32
+
33
+ return {
34
+ };
35
+
36
+ })(SocialStream, jQuery);
@@ -0,0 +1,23 @@
1
+ //= require social_stream/callback
2
+
3
+ SocialStream.Events.Poster = (function(SS, $, undefined){
4
+ var callback = new SS.Callback();
5
+
6
+ var init = function(){
7
+ $('.event .poster .update').hide();
8
+
9
+ $('.event .poster').hover(
10
+ function(){
11
+ $(this).find(".update").fadeIn("slow");
12
+ },
13
+ function(){
14
+ $(this).find(".update").fadeOut("slow");
15
+ });
16
+ };
17
+
18
+ callback.register('show', init);
19
+
20
+ return callback.extend({
21
+ });
22
+
23
+ })(SocialStream, jQuery);
@@ -0,0 +1,6 @@
1
+ //= require social_stream/timeline
2
+ //= require social_stream/event
3
+
4
+ SocialStream.Timeline.callbackRegister('show', SocialStream.Event.index);
5
+
6
+ SocialStream.Timeline.callbackRegister('update', SocialStream.Event.index);
@@ -0,0 +1,135 @@
1
+ //= require social_stream/callback
2
+ //= require social_stream/object
3
+
4
+ SocialStream.FullCalendar = (function(SS, $, Scheduler, undefined){
5
+ var callback = new SS.Callback(),
6
+ current,
7
+ eventColor = 'gray';
8
+
9
+ var getCurrent = function() {
10
+ return current;
11
+ };
12
+
13
+ var getCalendarEl = function() {
14
+ return $('#calendar');
15
+ };
16
+
17
+ var getFormEl = function() {
18
+ return $('#calendar_form');
19
+ };
20
+
21
+ var initFullCalendar = function() {
22
+ var calendar = getCalendarEl();
23
+
24
+ var options = {
25
+ header: {
26
+ left: 'prev,next today',
27
+ center: 'title',
28
+ right: 'month,agendaWeek,agendaDay'
29
+ },
30
+ ignoreTimezone: false,
31
+ firstDay: 1,
32
+ eventColor: eventColor,
33
+ events: getEvents
34
+ };
35
+
36
+ if (calendar.attr('data-can-create')) {
37
+ $.extend(options, {
38
+ selectable: true,
39
+ selectHelper: true,
40
+ select: selectEvent
41
+ // Implement event edition
42
+ // editable: true,
43
+ });
44
+ }
45
+
46
+ current = calendar.fullCalendar(options);
47
+
48
+ // Hack for Fullcalendar + Twitter Bootstrap, see https://github.com/addyosmani/jquery-ui-bootstrap/issues/37
49
+ $('.fc-button-content').each(function() {
50
+ $(this).parent().parent().html($(this).html());
51
+ });
52
+
53
+ if (calendar.attr('data-date'))
54
+ // TODO: optimize this to save one index call
55
+ current.fullCalendar('gotoDate', new Date(calendar.attr('data-date') * 1000));
56
+
57
+ if (calendar.attr('data-view'))
58
+ current.fullCalendar('changeView', calendar.attr('data-view'));
59
+ };
60
+
61
+ var initFormModal = function() {
62
+ getFormEl().modal({
63
+ show: false
64
+ });
65
+ };
66
+
67
+ var selectEvent = function(startDate, endDate, allDay, jsEvent){
68
+ var c = getFormEl().find('.new_event');
69
+
70
+ c.children('#event_start_at').val(startDate.toJSON());
71
+ c.children('#event_end_at').val(endDate.toJSON());
72
+ c.children('#event_all_day').val(allDay.toString());
73
+
74
+ // From rails-scheduler gem
75
+ Scheduler.form.init(c.find('.scheduler_form'), startDate);
76
+
77
+ getFormEl().modal('show');
78
+ };
79
+
80
+ var getEvents = function(start, end, callback) {
81
+ $.ajax({
82
+ url: getCalendarEl().attr('data-events-path'),
83
+ dataType: 'json',
84
+ data: {
85
+ // our hypothetical feed requires UNIX timestamps
86
+ start: Math.round(start.getTime() / 1000),
87
+ end: Math.round(end.getTime() / 1000)
88
+ },
89
+ success: function(events) {
90
+ callback(
91
+ $.map(events, function(event) {
92
+ event.color = eventColor;
93
+ return event;
94
+ })
95
+ );
96
+ }
97
+ });
98
+ };
99
+
100
+ var addEvent = function(options) {
101
+ getFormEl().modal('hide');
102
+
103
+ $.each(JSON.parse(options.events), function(i, ev) {
104
+ ev.color = eventColor;
105
+ current.fullCalendar('renderEvent', ev,
106
+ true // make the event "stick"
107
+ );
108
+ });
109
+
110
+ current.fullCalendar('unselect');
111
+ };
112
+
113
+ var resetForm = function() {
114
+ var form = getFormEl();
115
+ form.find('#event_title').val('');
116
+ form.find('#event_description').val('');
117
+
118
+ Scheduler.form.reset(form.find('.scheduler_form'));
119
+ };
120
+
121
+ callback.register('show',
122
+ initFullCalendar,
123
+ initFormModal,
124
+ SS.Object.new_);
125
+
126
+ callback.register('create',
127
+ addEvent,
128
+ resetForm);
129
+
130
+ return callback.extend({
131
+ current: getCurrent,
132
+ getFormEl: getFormEl
133
+ });
134
+
135
+ })(SocialStream, jQuery, Scheduler);
@@ -6,7 +6,7 @@
6
6
  //= require social_stream-base
7
7
  //
8
8
  //= require_self
9
- //= require_tree .
9
+ //= require_tree ./social_stream
10
10
 
11
11
  SocialStream.Events = SocialStream.Events || {};
12
12
  SocialStream.Events.current = SocialStream.Events.current || {};
@@ -0,0 +1,63 @@
1
+ @import "fullcalendar"
2
+
3
+ #calendar
4
+ .fc-button.fc-state-default
5
+ @include btn-primary
6
+ color: $blue
7
+ @include border-radius(0)
8
+
9
+ .fc-button.fc-state-active
10
+ @include btn-secundary
11
+ color: $white
12
+ .fc-button.fc-state-disabled
13
+ @include btn-primary
14
+ background-color: $blue
15
+ color: $white
16
+
17
+ .fc-button.fc-state-disabled:active
18
+ @include box-shadow(none)
19
+
20
+ .fc-button.fc-corner-left
21
+ @include border-top-left-radius (4px)
22
+ @include border-bottom-left-radius (4px)
23
+
24
+ .fc-button.fc-corner-right
25
+ // .btn-group > .btn:last-child, .btn-group > .dropdown-toggle
26
+ @include border-top-right-radius (4px)
27
+ @include border-bottom-right-radius (4px)
28
+
29
+ .fc-event-inner
30
+ background-color: $gray
31
+
32
+ .fc-event-inner,
33
+ .fc-other-month
34
+ @include opacity (80)
35
+
36
+ .fc-day-number
37
+ pointer: pointer
38
+
39
+ .fc-header-right,
40
+ .fc-header-left,
41
+ .fc-header-center
42
+ vertical-align: middle
43
+ text-align: center
44
+
45
+ .fc-header-right,
46
+ .fc-header-left
47
+ background-color: whitesmoke
48
+ .fc-header-right
49
+ .fc-header-title
50
+ h2
51
+ line-height: 32px
52
+
53
+
54
+ .fc-widget-header
55
+ background: whitesmoke
56
+
57
+ .fc-event-skin
58
+ background-color: $gray
59
+
60
+
61
+ #calendar_form
62
+ .modal-body
63
+ background: whitesmoke
@@ -0,0 +1,15 @@
1
+
2
+ #scheduler-options
3
+ input
4
+ padding: 0 9px 0 7px
5
+ text-align: center
6
+
7
+
8
+ .scheduler_form
9
+ input
10
+ &[type="submit"]
11
+
12
+
13
+
14
+ #scheduler-weekly-days
15
+ background-color: $white
@@ -0,0 +1,50 @@
1
+ @import "fullcalendar"
2
+
3
+
4
+ #month_top,
5
+ #month_bottom
6
+ text-align: center
7
+
8
+
9
+ #month_top
10
+ border-bottom: 1px solid #dbdbdb
11
+
12
+
13
+ #month_bottom
14
+ border-top: 1px solid #dbdbdb
15
+
16
+
17
+ #month_top.past
18
+ @include opacity (70)
19
+
20
+
21
+ #days
22
+ tbody
23
+ tr
24
+ td
25
+ text-align: right
26
+ a
27
+ color: $gray
28
+ text-decoration: none
29
+ .today
30
+ @include border-radius(15px)
31
+ border: 1px solid $blue !important
32
+ a
33
+ color: $blue
34
+ .busy
35
+ font-weight: bold
36
+ @include border-radius(5px)
37
+ border: 1px solid #c4c4c4
38
+ background-color: $white
39
+ .past
40
+ @include opacity (70)
41
+ .other_month
42
+ @include opacity (70)
43
+
44
+ .fc-content
45
+ .fc-cell-overlay,
46
+ @include opacity (40)
47
+ color: $blue
48
+
49
+ .fc-state-highlight
50
+ background-color: rgba(4,156,219,0.2)
@@ -0,0 +1,28 @@
1
+ @import "fullcalendar"
2
+
3
+ #calendar
4
+ .fc-button.fc-state-default
5
+ position: relative
6
+
7
+ .fc-button.fc-corner-left
8
+ // .btn-group > .btn:first-child
9
+ margin-left: 0
10
+
11
+
12
+ .fc-day-number
13
+ float: right
14
+ padding: 1px 3px 0 0
15
+ min-height: 89px
16
+
17
+ .fc-header-right,
18
+ .fc-header-left,
19
+ .fc-header-center
20
+ padding: 0 0 6px 6px
21
+
22
+ .fc-header-right
23
+ padding-right: 6px
24
+
25
+ .fc-header-title
26
+ margin-top: 13px
27
+ .btn
28
+ margin-right: 6px
@@ -0,0 +1,60 @@
1
+ #new_event
2
+ textarea,
3
+ height: 100px
4
+ width: 97%
5
+
6
+ #event_title
7
+ width: 97%
8
+
9
+ #scheduler-options
10
+ display: inline-table
11
+ input
12
+ padding: 0 9px 0 7px
13
+ width: auto
14
+ margin-left: 6px
15
+
16
+ #event_frequency
17
+ float: left
18
+ margin-right: 11px
19
+
20
+ #event_week_day_order,
21
+ #event_week_day,
22
+ #event_frequency
23
+ width: 95px !important
24
+ display: inline-block
25
+ margin-left: 6px
26
+
27
+ .scheduler_form
28
+ input
29
+ &[type="submit"]
30
+ float: right
31
+ margin-top: 20px
32
+
33
+ #scheduler-weekly-week,
34
+ #scheduler-frequency-3
35
+ input
36
+ &[type="number"]
37
+ width: 25px !important
38
+ margin-top: 3px
39
+
40
+
41
+ #scheduler-frequency-3
42
+ display: inline-table
43
+ float: left
44
+
45
+ #scheduler-weekly-days
46
+ margin-left: 42px
47
+ padding: 6px
48
+ margin-top: 1px
49
+
50
+
51
+ #event_week_days_0
52
+ margin-left: 0px
53
+
54
+ #event_week_days_1,
55
+ #event_week_days_2,
56
+ #event_week_days_3,
57
+ #event_week_days_4,
58
+ #event_week_days_5,
59
+ #event_week_days_6
60
+ margin-left: 4px
@@ -0,0 +1,26 @@
1
+ @import "fullcalendar"
2
+
3
+ #events
4
+ #toolbar
5
+ display: none
6
+
7
+ #sidebar
8
+ .calendar
9
+ padding: 2%
10
+ display: block
11
+
12
+ #month_top,
13
+ #month_bottom
14
+ padding: 2%
15
+
16
+
17
+ #days
18
+ margin: 0 auto
19
+ padding: 2.5%
20
+ width: 100%
21
+ tbody
22
+ width: 100%
23
+ tr
24
+ td
25
+ padding-left: 2.5%
26
+ padding-right: 2.5%
@@ -0,0 +1,6 @@
1
+ .content-full
2
+ .timeline
3
+ .media
4
+ .event
5
+ .details
6
+ @include makeColumn(8, 0)
@@ -0,0 +1,16 @@
1
+ /////////////////////////////////////// EXPLORE SEARCH
2
+ /////////////
3
+
4
+ #repository
5
+
6
+ .event
7
+ .data
8
+ .name
9
+ .date
10
+ @include ellipsis
11
+ font-size: 12px
12
+ .frequency
13
+ @include ellipsis
14
+ font-size: 12px
15
+ color: #888
16
+
@@ -0,0 +1,24 @@
1
+ /////////////////////////////////////// EXPLORE SEARCH
2
+ /////////////
3
+
4
+ #repository
5
+ .event
6
+ width: 240px
7
+ float: left
8
+ margin-left: 19px
9
+ min-height: 81px
10
+ margin-bottom: 14px
11
+ .avatar
12
+ float: left
13
+ min-height: 55px
14
+ a
15
+ .icon_50-event
16
+ @include size (53px, 50px)
17
+ background-image: url("icons/files_ico-50.png")
18
+ .data
19
+ .name
20
+ margin-top: 11px
21
+ @include ellipsis
22
+ width: 73%
23
+ .date
24
+ font-size: 11px