diff --git a/app/assets/javascripts/calendar.js b/app/assets/javascripts/calendar.js
index 0bf80e3..3b3447d 100644
--- a/app/assets/javascripts/calendar.js
+++ b/app/assets/javascripts/calendar.js
@@ -360,7 +360,10 @@ var EventDialog = function(calendar,event){
time_string = (start_time === end_time ? start_time + " " + stime + " - " + etime : start_time + " " + stime + " - " + end_time + " " +etime );
}
event_quick_view = $('
');
- template = ''+ time_string +'
'+ _event.note +'
';
+ template = ''+ time_string +'
'+ _event.note +'
';
+ if(_event.can_edit){
+ template+='';
+ }
}
this.show = function(pos){
diff --git a/app/assets/javascripts/category_type.js b/app/assets/javascripts/category_type.js
new file mode 100644
index 0000000..98d1b8d
--- /dev/null
+++ b/app/assets/javascripts/category_type.js
@@ -0,0 +1,25 @@
+$(function() {
+ $.pageslide.closeCallback(function(pageslide, item) {
+ $('.filter-item').removeClass("active");
+ });
+ $.pageslide.loadComplete(function(pageslide, item) {
+ $('.filter-item').removeClass("active");
+ item.closest('li').addClass('active');
+ if(item.data('id') == 'new') {
+ resetForm();
+ pageslide.find('form').attr('method', 'post');
+ $("#update_patch").remove();
+ }
+ else {
+ $('.color-picker').miniColors("destroy");
+ setForm(item.data('form'));
+ pageslide.find('form').attr("action",item.data("href"));
+ if($("#update_patch").length == 0){
+ pageslide.find("form").append("");
+ }
+ pageslide.find('input[type="checkbox"]').prop( 'checked', item.data('disable') );
+ $('.color-picker').miniColors();
+ $('.miniColors-trigger').addClass('btn');
+ }
+ });
+})
\ No newline at end of file
diff --git a/app/controllers/admin/calendar_types_controller.rb b/app/controllers/admin/calendar_types_controller.rb
index cd92c2c..9ee137b 100644
--- a/app/controllers/admin/calendar_types_controller.rb
+++ b/app/controllers/admin/calendar_types_controller.rb
@@ -34,6 +34,19 @@ class Admin::CalendarTypesController < OrbitAdminController
redirect_to admin_calendar_types_path
end
+ def update
+ calendar = CalendarType.find(params[:id]) rescue nil
+ if !calendar.nil?
+ calendar.update_attributes(calendar_type_params)
+ calendar.save
+ category = calendar.category
+ category.title_translations = calendar_type_params["title_translations"]
+ category.save
+ end
+ redirect_to admin_calendar_types_path
+
+ end
+
def list
@module_app_id = @module_app.id rescue nil
diff --git a/app/controllers/admin/calendars_controller.rb b/app/controllers/admin/calendars_controller.rb
index c65ee68..83514e9 100644
--- a/app/controllers/admin/calendars_controller.rb
+++ b/app/controllers/admin/calendars_controller.rb
@@ -3,17 +3,23 @@ class Admin::CalendarsController < OrbitAdminController
# GET /events.json
def index
-
+ @events = []
if params[:start].present? && params[:end].present?
sdt = Time.at(params[:start].to_i)
edt = Time.at(params[:end].to_i)
@monthly_events = Event.monthly_event(sdt,edt)
@re = Event.recurring_event(sdt,edt)
- events = @monthly_events.inject(@re, :<<)
+ allevents = @monthly_events.inject(@re, :<<)
+ events = allevents.to_json
+ events = JSON.parse(events)
+ events.each_with_index do |e,i|
+ e["can_edit"] = can_edit_or_delete_event?(allevents[i])
+ @events << e
+ end
end
respond_to do |format|
format.html # index.html.erb
- format.json { render json: events.to_json }
+ format.json { render json: @events.to_json }
end
end
@@ -88,7 +94,10 @@ class Admin::CalendarsController < OrbitAdminController
# POST /events
# POST /events.json
def create
- @event = Event.new(event_page_params)
+ p = event_page_params
+ p["create_user_id"] = current_user.id
+ p["update_user_id"] = current_user.id
+ @event = Event.new(p)
if @event.present? && @event.save
render json: @event.to_json
@@ -104,7 +113,9 @@ class Admin::CalendarsController < OrbitAdminController
# PUT /events/1.json
def update
@event = Event.find(params[:id])
- if @event.update_attributes(event_page_params)
+ p = event_page_params
+ p["update_user_id"] = current_user.id
+ if @event.update_attributes(p)
render json: @event.to_json
else
respond_to do |format|
diff --git a/app/models/event.rb b/app/models/event.rb
index 3476b36..05ea7f0 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -15,6 +15,8 @@ class Event
field :recurring, type: Boolean
field :frequency
field :period
+ field :create_user_id
+ field :update_user_id
belongs_to :calendar_type
attr_accessor :agenda_start, :agenda_end, :get_agenda_events
diff --git a/app/views/admin/calendar_types/_calendar_type.html.erb b/app/views/admin/calendar_types/_calendar_type.html.erb
index 06277f9..fbcb338 100644
--- a/app/views/admin/calendar_types/_calendar_type.html.erb
+++ b/app/views/admin/calendar_types/_calendar_type.html.erb
@@ -4,7 +4,7 @@
<% if is_admin?%>
- - <%= link_to t(:edit), '#', class: "open-slide", data: {title: t(:edit_category), id: calendar_type.id.to_s, form: calendar_type.title_translations.merge(color: calendar_type.color)} %>
+ - <%= link_to t(:edit),"#", class: "open-slide", onclick: "return false;", data: {title: t(:edit_category), id: calendar_type.id.to_s, form: calendar_type.title_translations.merge(color: calendar_type.color), href: admin_calendar_type_path(calendar_type)} %>
<% end %>
diff --git a/app/views/admin/calendar_types/index.html.erb b/app/views/admin/calendar_types/index.html.erb
index 5d20261..88fc321 100644
--- a/app/views/admin/calendar_types/index.html.erb
+++ b/app/views/admin/calendar_types/index.html.erb
@@ -1,6 +1,7 @@
<%= stylesheet_link_tag "jquery.miniColors" %>
<%= javascript_include_tag "jquery.miniColors.min" %>
+<%= javascript_include_tag "category_type" %>
diff --git a/app/views/admin/calendar_types/update.js.erb b/app/views/admin/calendar_types/update.js.erb
index 8875d21..bac3cb1 100644
--- a/app/views/admin/calendar_types/update.js.erb
+++ b/app/views/admin/calendar_types/update.js.erb
@@ -1,15 +1 @@
-$("#event_create").empty().hide();
-$("#create_event_btn").removeClass("active");
-$(".destroy").remove();
-$("#create_event_btn").show();
-switch (c.view){
- case "week":
- c.loadWeekView(c.cur_week,c.cur_year);
- break;
- case "month":
- c.loadMonthView(c.cur_month,c.cur_year);
- break;
- case "day":
- c.loadDayView(c.cur_date,c.cur_month,c.cur_year);
- break;
-}
+$.pageslide.close();
\ No newline at end of file