@@ -77,30 +77,6 @@ def upload(file)
7777 return [ job_batch , file_id ]
7878end
7979
80-
81- def create_template ( template_info )
82- template_name = template_info [ "name" ] || "Unnamed Template #{ Time . now . to_s } "
83- template_id = Digest ::SHA1 . hexdigest ( Time . now . to_s + template_name ) # just SHA1 of time isn't unique with multiple uploads
84- template_filename = template_id + ".tabula-template.json"
85- file_path = File . join ( TabulaSettings ::DOCUMENTS_BASEPATH , ".." , "templates" )
86- # write to file
87- FileUtils . mkdir_p ( file_path )
88- open ( File . join ( file_path , template_filename ) , 'w' ) { |f | f << JSON . dump ( template_info [ "template" ] ) }
89- page_count = template_info . has_key? ( "page_count" ) ? template_info [ "page_count" ] : template_info [ "template" ] . map { |f | f [ "page" ] } . uniq . count
90- selection_count = template_info . has_key? ( "selection_count" ) ? template_info [ "selection_count" ] : template_info [ "template" ] . count
91- Tabula ::Workspace . instance . add_template ( {
92- "id" => template_id ,
93- "name" => template_name ,
94- "page_count" => page_count ,
95- "time" => Time . now . to_i ,
96- "selection_count" => selection_count ,
97- "template" => template_info [ "template" ]
98- } )
99- return template_id
100- end
101-
102-
103-
10480class InvalidTemplateError < StandardError ; end
10581TEMPLATE_REQUIRED_KEYS = [ "page" , "extraction_method" , "x1" , "x2" , "y1" , "y2" , "width" , "height" ]
10682def upload_template ( template_file )
@@ -163,7 +139,24 @@ def upload_template(template_file)
163139
164140 # create a template from the GUI
165141 on post do
166- template_id = create_template ( JSON . parse ( req . params [ "model" ] ) )
142+ template_info = JSON . parse ( req . params [ "model" ] )
143+ template_name = template_info [ "name" ] || "Unnamed Template #{ Time . now . to_s } "
144+ template_id = Digest ::SHA1 . hexdigest ( Time . now . to_s + template_name ) # just SHA1 of time isn't unique with multiple uploads
145+ template_filename = template_id + ".tabula-template.json"
146+ file_path = File . join ( TabulaSettings ::DOCUMENTS_BASEPATH , ".." , "templates" )
147+ # write to file
148+ FileUtils . mkdir_p ( file_path )
149+ open ( File . join ( file_path , template_filename ) , 'w' ) { |f | f << JSON . dump ( template_info [ "template" ] ) }
150+ page_count = template_info . has_key? ( "page_count" ) ? template_info [ "page_count" ] : template_info [ "template" ] . map { |f | f [ "page" ] } . uniq . count
151+ selection_count = template_info . has_key? ( "selection_count" ) ? template_info [ "selection_count" ] : template_info [ "template" ] . count
152+ Tabula ::Workspace . instance . add_template ( {
153+ "id" => template_id ,
154+ "name" => template_name ,
155+ "page_count" => page_count ,
156+ "time" => Time . now . to_i ,
157+ "selection_count" => selection_count ,
158+ "template" => template_info [ "template" ]
159+ } )
167160 res . status = 200
168161 res [ 'Content-Type' ] = 'application/json'
169162 res . write ( JSON . dump ( { template_id : template_id } ) )
0 commit comments