@@ -83,7 +83,7 @@ def show
83
83
authorize @current_notification , :update? , policy_class : NotificationPolicy
84
84
end
85
85
86
- @services = @files . any? { |file | file [ : name] == '_service' }
86
+ @services = @files . any? { |file | file [ ' name' ] == '_service' }
87
87
88
88
@package . cache_revisions ( @revision )
89
89
@@ -305,14 +305,10 @@ def view_file
305
305
@expand = params [ :expand ]
306
306
@addeditlink = false
307
307
if User . possibly_nobody . can_modify? ( @package ) && @rev . blank? && @package . scmsync . blank?
308
- begin
309
- files = package_files ( @rev , @expand )
310
- rescue Backend ::Error
311
- files = [ ]
312
- end
308
+ files = @package . dir_hash ( { rev : @rev , expand : @expand } . compact ) . elements ( 'entry' )
313
309
files . each do |file |
314
- if file [ : name] == @filename
315
- @addeditlink = file [ :editable ]
310
+ if file [ ' name' ] == @filename
311
+ @addeditlink = editable_file? ( @filename , file [ 'size' ] . to_i )
316
312
break
317
313
end
318
314
end
@@ -499,27 +495,6 @@ def validate_xml
499
495
render layout : false , status : :bad_request , partial : 'layouts/webui/flash' , object : flash
500
496
end
501
497
502
- def package_files ( rev = nil , expand = nil )
503
- query = { }
504
- query [ :expand ] = expand if expand
505
- query [ :rev ] = rev if rev
506
-
507
- dir_xml = @package . source_file ( nil , query )
508
- return [ ] if dir_xml . blank?
509
-
510
- dir = Xmlhash . parse ( dir_xml )
511
- @serviceinfo = dir . elements ( 'serviceinfo' ) . first
512
- files = [ ]
513
- dir . elements ( 'entry' ) do |entry |
514
- file = Hash [ *%i[ name size mtime md5 ] . map! { |x | [ x , entry . value ( x . to_s ) ] } . flatten ]
515
- file [ :viewable ] = !binary_file? ( file [ :name ] ) && file [ :size ] . to_i < 2 **20 # max. 1 MB
516
- file [ :editable ] = file [ :viewable ] && !file [ :name ] . match? ( /^_service[_:]/ )
517
- file [ :srcmd5 ] = dir . value ( 'srcmd5' )
518
- files << file
519
- end
520
- files
521
- end
522
-
523
498
def require_architecture
524
499
@architecture = Architecture . archcache [ params [ :arch ] ]
525
500
return if @architecture
@@ -549,7 +524,8 @@ def set_file_details
549
524
@current_rev = @package . rev
550
525
@revision = @current_rev if !@revision && !@srcmd5 # on very first page load only
551
526
552
- @files = package_files ( @srcmd5 || @revision , @expand )
527
+ files_xml = @package . source_file ( nil , { rev : @srcmd5 || @revision , expand : @expand } . compact )
528
+ @files = Xmlhash . parse ( files_xml ) . elements ( 'entry' )
553
529
rescue Backend ::Error => e
554
530
# TODO: crudest hack ever!
555
531
if e . summary == 'service in progress' && @expand == 1
0 commit comments