@@ -27,33 +27,33 @@ class DocumentsController < ApplicationController
27
27
28
28
before_action :authenticate_user! , except : %i[ index show ]
29
29
before_action :set_document , only : %i[ show edit update crawl restore_points ]
30
- before_action :set_services , only : %i[ new edit ]
31
- before_action :set_document_names , only : %i[ new edit ]
32
- before_action :set_crawlers , only : %i[ new edit ]
30
+ before_action :set_services , only : %i[ new edit create update ]
31
+ before_action :set_document_names , only : %i[ new edit create update ]
32
+ before_action :set_crawlers , only : %i[ new edit create update ]
33
33
34
34
rescue_from Pundit ::NotAuthorizedError , with : :user_not_authorized
35
35
36
36
def index
37
37
authorize Document
38
- @q = Document . includes ( :service ) . ransack ( params [ :q ] )
38
+ @q = Document . includes ( :service , :document_type ) . ransack ( params [ :q ] )
39
39
@documents = @q . result ( distinct : true ) . page ( params [ :page ] || 1 )
40
40
end
41
41
42
42
def new
43
43
authorize Document
44
44
45
45
@document = Document . new
46
- service = params [ :service ]
47
- return unless service
46
+ service = params [ :service_id ]
48
47
49
- @document . service = Service . find ( service )
48
+ @document . service = Service . find ( service ) if service
50
49
end
51
50
52
51
def create
53
52
authorize Document
54
53
55
54
@document = Document . new ( document_params )
56
55
@document . user = current_user
56
+ @document . name = @document . document_type . name if @document . document_type
57
57
58
58
if @document . save
59
59
crawl_result = perform_crawl
@@ -67,7 +67,7 @@ def create
67
67
end
68
68
redirect_to document_path ( @document )
69
69
else
70
- render ' new'
70
+ render : new
71
71
end
72
72
end
73
73
@@ -76,6 +76,12 @@ def update
76
76
77
77
@document . update ( document_params )
78
78
79
+ if document_params [ :document_type_id ]
80
+ id = document_params [ :document_type_id ]
81
+ document_type = DocumentType . find ( id )
82
+ @document . name = document_type . name unless @document . name == document_type . name
83
+ end
84
+
79
85
# we should probably only be running the crawler if the URL or XPath have changed
80
86
run_crawler = @document . saved_changes . keys . any? { |attribute | %w[ url xpath crawler_server ] . include? attribute }
81
87
crawl_result = perform_crawl if run_crawler
@@ -115,6 +121,8 @@ def destroy
115
121
116
122
def show
117
123
authorize @document
124
+
125
+ @name = @document . document_type ? @document . document_type . name : @document . name
118
126
end
119
127
120
128
def crawl
@@ -157,15 +165,15 @@ def set_services
157
165
end
158
166
159
167
def set_document_names
160
- @document_names = Document :: VALID_NAMES
168
+ @document_names = DocumentType . order ( 'name ASC' )
161
169
end
162
170
163
171
def set_crawlers
164
172
@crawlers = Rails . env . development? ? DEV_CRAWLERS : PROD_CRAWLERS
165
173
end
166
174
167
175
def document_params
168
- params . require ( :document ) . permit ( :service , :service_id , :user_id , :name , :url , :xpath , :crawler_server )
176
+ params . require ( :document ) . permit ( :service , :service_id , :user_id , :document_type_id , : name, :url , :xpath , :crawler_server )
169
177
end
170
178
171
179
def crawler_error_message ( result )
0 commit comments