diff --git a/app/controllers/documents_controller.rb b/app/controllers/documents_controller.rb index 07b59cf..a20db8f 100644 --- a/app/controllers/documents_controller.rb +++ b/app/controllers/documents_controller.rb @@ -8,7 +8,10 @@ class DocumentsController < ApplicationController end def new @document=Document.new - @document.parent=params[:parent_typ].constantize.find(params[:parent_id]) + @parent=params[:parent_type].constantize.find(params[:parent_id]) + + @document.parent=@parent + @document.typ = 1 respond_to do |format| format.js @@ -16,6 +19,7 @@ class DocumentsController < ApplicationController end def edit @document = Document.find(params[:id]) + @parent=@document.parent respond_to do |format| format.js end @@ -24,7 +28,7 @@ class DocumentsController < ApplicationController def create @document = Document.new(params[:document]) - + @parent=@document.parent respond_to do |format| if @document.save # format.html { redirect_to @document, notice: 'Document was successfully created.' } @@ -38,9 +42,9 @@ class DocumentsController < ApplicationController end end -def update + def update @document = Document.find(params[:id]) - + @parent=@document.parent respond_to do |format| if @document.update_attributes(params[:document]) format.html { redirect_to @document, notice: 'Document was successfully updated.' } @@ -56,6 +60,7 @@ def update def destroy logger.info("-------------delete------------------") @document = Document.find(params[:id]) + @parent=@document.parent @document_id = params[:id] @document.destroy diff --git a/app/controllers/meetings_controller.rb b/app/controllers/meetings_controller.rb index 1592388..247cf4c 100644 --- a/app/controllers/meetings_controller.rb +++ b/app/controllers/meetings_controller.rb @@ -10,8 +10,10 @@ class MeetingsController < ApplicationController end def new @meeting=Meeting.new - @meeting.parent=params[:parent_typ].constantize.find(params[:parent_id]) - @meeting.typ = 1 + @meeting.parent=params[:parent_type].constantize.find(params[:parent_id]) + @parent=@meeting.parent + @meeting.calentry=Calentry.new +# @meeting.typ = 1 respond_to do |format| format.js end @@ -35,7 +37,8 @@ class MeetingsController < ApplicationController end def edit @meeting = Meeting.find(params[:id]) - respond_to do |format| +@parent=@meeting.parent +respond_to do |format| format.js end @@ -43,7 +46,9 @@ class MeetingsController < ApplicationController def create @meeting = Meeting.new(params[:meeting]) - + @parent=@meeting.parent + #@meeting.assign_attributes(params[:meeting]) + respond_to do |format| if @meeting.save # format.html { redirect_to @meeting, notice: 'Meeting was successfully created.' } @@ -58,25 +63,25 @@ class MeetingsController < ApplicationController end def update - @meeting = Meeting.find(params[:id]) - + @meeting = Meeting.find(params[:id]) + @parent=@meeting.parent respond_to do |format| - if @meeting.update_attributes(params[:meeting]) + if @meeting.update_attributes(params[:meeting]) format.html { redirect_to @meeting, notice: 'Meeting was successfully updated.' } format.json { head :no_content } format.js else - # format.html { render action: "edit" } + # format.html # format.json { render json: @meeting.errors, status: :unprocessable_entity } - format.js { render action: "edit"} + format.js { render action: "edit" } end end end def destroy logger.info("-------------delete------------------") @meeting = Meeting.find(params[:id]) + @parent=@meeting.parent @meeting_id = params[:id] - @object=@meeting.object @meeting.destroy respond_to do |format| diff --git a/app/models/document.rb b/app/models/document.rb index f0fa762..4dd430f 100644 --- a/app/models/document.rb +++ b/app/models/document.rb @@ -1,9 +1,14 @@ class Document < ActiveRecord::Base - attr_accessible :etherpadkey, :name, :parent, :text, :typ + attr_accessible :etherpadkey, :name, :parent, :text, :typ, :parent_id, :parent_type belongs_to :parent, :polymorphic => true validate :name, :length=>{minimum:3} validate :text, :presence=>true validate :typ, :presence=>true validate :parent, :presence=>true - + def self.new_divid_for(parent) + "document_new_parent_" + parent.class.to_s + "_" + parent.id.to_s + end + def divid + "document_"+self.id.to_s + end end diff --git a/app/models/meeting.rb b/app/models/meeting.rb index ccab3c0..f786a81 100644 --- a/app/models/meeting.rb +++ b/app/models/meeting.rb @@ -1,12 +1,21 @@ class Meeting < ActiveRecord::Base belongs_to :parent, :polymorphic=>true belongs_to :meetingtyp - attr_accessible :desc, :intern, :name + attr_accessible :desc, :intern, :name, :parent_id, :parent_type, :calentry,:calentry_attributes + + has_one :protocol, :class_name=>'Document', :conditions=>{:typ=>10}, :as=>:parent has_one :agenda , :as=>:parent,:conditions=>{:typ=>11}, :class_name=>'Document' - validate :agenda, :presence=>true - validate :protocol, :presence=>true - has_one :calentry, :as=>:object + has_one :calentry, as: :object + accepts_nested_attributes_for :calentry +# validate :agenda, :presence=>true +# validate :protocol, :presence=>true + validate :parent, :presence=>true + validate :calentry, :presence=>true +before_validation :fix_calentry + def fix_calentry + self.calentry.object=self unless self.calentry.nil? + end def public? ! (self.intern) end @@ -29,4 +38,12 @@ class Meeting < ActiveRecord::Base self.agenda=d end end + def self.new_divid_for(parent) + "meeting_new_parent_" + parent.class.to_s + "_" + parent.id.to_s + end + def divid + "meeting_"+self.id.to_s + end + + end diff --git a/app/views/calentries/_nested_fields.html.erb b/app/views/calentries/_nested_fields.html.erb index 6f1f97d..92d0b55 100644 --- a/app/views/calentries/_nested_fields.html.erb +++ b/app/views/calentries/_nested_fields.html.erb @@ -1,10 +1,15 @@
-
-<%= fa_icon("calendar 2x") %> - +
+
+ <%= fa_icon("calendar 2x") %> +
+
+ <%= f.input :start, :as => :datetimepicker %>
+ <%= f.input :dauer , :as => :string, :append=>"h" %>
+ <% f.input :typ %> +
+
+ <%= f.check_box :_destroy %> + <%= I18n.t 'common.delete' %> +
-
- <%= f.input :start, :as => :datetimepicker %>
- <%= f.input :dauer , :as => :string, :append=>"h" %>
- <% f.input :typ %>
<%= f.check_box :_destroy %> <%= I18n.t 'common.delete' %>
-
diff --git a/app/views/documents/_document.html.erb b/app/views/documents/_document.html.erb index c92c245..088ea15 100644 --- a/app/views/documents/_document.html.erb +++ b/app/views/documents/_document.html.erb @@ -1,8 +1,7 @@
<% image_tag("/iconnavy/time.png") %> - <%= fa_icon("file-text 2x") %> - - <%= document.name %> + <%= fa_icon("file-text") %> +<%= link_to document.name, document %> <%= link_to "edit", edit_document_path(document),:remote=>true if can? :edit, document %> <%= link_to 'Delete', document, method: :delete, data: { confirm: 'Are you sure?' } , remote: true if can? :delete, document %>
diff --git a/app/views/documents/_nested_form.html.erb b/app/views/documents/_nested_form.html.erb index 6e045f3..47d3033 100644 --- a/app/views/documents/_nested_form.html.erb +++ b/app/views/documents/_nested_form.html.erb @@ -4,6 +4,8 @@ <%= semantic_form_for @document, :remote=>true, :html=>{:class=>""} do |f| %> <%= f.input :name %> +<%= f.input :parent_id, :as=>:hidden %> +<%= f.input :parent_type, :as=>:hidden %> <%= f.action :submit, :as => :input_ %> <% end %> diff --git a/app/views/documents/create.js.erb b/app/views/documents/create.js.erb new file mode 100644 index 0000000..97b82dc --- /dev/null +++ b/app/views/documents/create.js.erb @@ -0,0 +1 @@ +$("#<%= Document.new_divid_for(@parent) %>").replaceWith("
\">
<%=escape_javascript( render :partial=>"document", :object=>@document)%>"); diff --git a/app/views/documents/edit.html.erb b/app/views/documents/edit.html.erb new file mode 100755 index 0000000..e3ab18b --- /dev/null +++ b/app/views/documents/edit.html.erb @@ -0,0 +1,6 @@ +

Editing Dokument

+ +<%= render 'form' %> + +<%= link_to 'Show', @document %> | + diff --git a/app/views/documents/edit.js.erb b/app/views/documents/edit.js.erb index a63cb2c..241ca43 100644 --- a/app/views/documents/edit.js.erb +++ b/app/views/documents/edit.js.erb @@ -1,5 +1,4 @@ - -$("#document_<%= @document.id %>").html("<%=escape_javascript( render :partial=>"nested_form" ,:object=>@document)%>"); +$("#<%= @document.divid %>").html("<%=escape_javascript( render :partial=>"nested_form" ,:object=>@document)%>"); diff --git a/app/views/documents/new.js.erb b/app/views/documents/new.js.erb index 28248bb..9ca6a5f 100644 --- a/app/views/documents/new.js.erb +++ b/app/views/documents/new.js.erb @@ -1,3 +1,3 @@ -$("#document_new").replaceWith("
<%=escape_javascript( render :partial=>"nested_form" ,:object=>@document) %>
"); +$("#<%= Document.new_divid_for(@parent) %>").replaceWith("
\"><%=escape_javascript( render :partial=>"nested_form" ,:object=>@document) %>
"); \ No newline at end of file diff --git a/app/views/documents/show.html.erb b/app/views/documents/show.html.erb new file mode 100644 index 0000000..1cbc4c0 --- /dev/null +++ b/app/views/documents/show.html.erb @@ -0,0 +1,8 @@ +

<%= @document.name %>

+<%= raw(@document.text) %> +<%= semantic_form_for @document, :html=>{:class=>""} do |f| %> + <%= f.input :text, :as=>:tinymce_text %> +<%= f.action :submit, :as => :input_ %> + +<% end %> +<%= tinymce %> diff --git a/app/views/meetings/_meeting.html.erb b/app/views/meetings/_meeting.html.erb index 93d6943..afba5c6 100644 --- a/app/views/meetings/_meeting.html.erb +++ b/app/views/meetings/_meeting.html.erb @@ -1,8 +1,11 @@

Meeting: <%= meeting.name %>

-<%= render meeting.calentry %> -<%= link_to "Agenda" , create_agenda_meeting_path(meeting), :remote=>true %> -<%= link_to "Protokoll" , create_protocol_meeting_path(meeting),:remote=>true %> +<%= link_to "edit", edit_meeting_path(meeting), remote: true %> +<%= link_to 'Delete', meeting, method: :delete, data: { confirm: 'Are you sure?' } , remote: true if can? :delete, meeting %> +<%= render meeting.calentry unless meeting.calentry.nil? %> +<%= link_to "Agenda" , create_agenda_meeting_path(meeting), :remote=>true if meeting.agenda.nil? %> +<%= link_to "Protokoll" , create_protocol_meeting_path(meeting),:remote=>true if meeting.protocol.nil? %> <%= render meeting.agenda unless meeting.agenda.nil? %> <%= render meeting.protocol unless meeting.protocol.nil? %>
+ diff --git a/app/views/meetings/_nested_form.html.erb b/app/views/meetings/_nested_form.html.erb new file mode 100644 index 0000000..ca312f8 --- /dev/null +++ b/app/views/meetings/_nested_form.html.erb @@ -0,0 +1,21 @@ +<%= fa_icon("calendar 2x") %> +

<%= notice %>

+ +<%= semantic_form_for @meeting, :remote=>true, :html=>{:class=>""} do |f| %> + + <%= f.input :name %> + <%= f.semantic_fields_for :calentry, @meeting.calentry do |ff| %> + <%= ff.input :start, :as => :datetimepicker %> + <%= ff.input :dauer , :as => :string, :append=>"h" %> + <%= ff.input :typ %> + <% ff.input :object_id %> + <% ff.input :object_type %> + + <% end %> + +<%= f.input :parent_id, :as=>:hidden %> +<%= f.input :parent_type, :as=>:hidden %> + <%= f.action :submit, :as => :input_ %> + +<% end %> +<%= @meeting.calentry.to_yaml %> diff --git a/app/views/meetings/create.js.erb b/app/views/meetings/create.js.erb new file mode 100644 index 0000000..6e6be25 --- /dev/null +++ b/app/views/meetings/create.js.erb @@ -0,0 +1 @@ +$("#<%= Meeting.new_divid_for(@parent) %>").replaceWith("
\">
<%=escape_javascript( render :partial=>"meeting", :object=>@meeting)%>"); diff --git a/app/views/meetings/destroy.js.erb b/app/views/meetings/destroy.js.erb new file mode 100644 index 0000000..363a5a5 --- /dev/null +++ b/app/views/meetings/destroy.js.erb @@ -0,0 +1 @@ +$("#meeting_<%= @meeting_id %>").remove(); diff --git a/app/views/meetings/edit.js.erb b/app/views/meetings/edit.js.erb new file mode 100644 index 0000000..773307c --- /dev/null +++ b/app/views/meetings/edit.js.erb @@ -0,0 +1,5 @@ +$("#<%= @meeting.divid %>").html("<%=escape_javascript( render :partial=>"nested_form" ,:object=>@meeting)%>"); + + + + \ No newline at end of file diff --git a/app/views/meetings/new.js.erb b/app/views/meetings/new.js.erb new file mode 100644 index 0000000..a580664 --- /dev/null +++ b/app/views/meetings/new.js.erb @@ -0,0 +1,3 @@ +$("#<%= Meeting.new_divid_for(@parent) %>").replaceWith("
\"><%=escape_javascript( render :partial=>"nested_form" ,:object=>@meeting) %>
"); + + \ No newline at end of file diff --git a/app/views/meetings/update.js.erb b/app/views/meetings/update.js.erb new file mode 100644 index 0000000..24d02dc --- /dev/null +++ b/app/views/meetings/update.js.erb @@ -0,0 +1 @@ +$("#meeting_<%= @meeting.id %>").replaceWith("<%=escape_javascript( render :partial=>"meeting", :object=>@meeting)%>"); diff --git a/app/views/themen/_small.html.erb b/app/views/themen/_small.html.erb index ef43568..9fcb36a 100644 --- a/app/views/themen/_small.html.erb +++ b/app/views/themen/_small.html.erb @@ -22,6 +22,9 @@ <% end %> <% unless small.meetings.empty? %> Treffen/Sitzungen +<%= link_to "Neues Meeting", new_meeting_path(:parent_id=>small.id, :parent_type=>"Thema"), :remote=>true %> +
+ <% small.meetings.each do |m| %> <%= render m %> @@ -31,6 +34,8 @@ <% unless small.documents.empty? %> Dokumente +<%= link_to "Neues Dokument", new_document_path(:parent_id=>small.id, :parent_type=>"Thema"), :remote=>true %> +
<% small.documents.each do |d| %> <%= render d %>