diff --git a/docker-compose.yml b/docker-compose.yml index eb52879f..110d0afc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ version: '2.1' services: svn: - image: solsson/rweb-httpd:1.6.4@sha256:ea15cc8e7826af8e81fd675707381cc2148524d839fbcda2376a452361cc942d + image: solsson/rweb-httpd:1.7.1@sha256:1c7e5aeac975444d1f04dc4b973fa3ec022e4090771cdfd6f9dfd933d4ae5f81 expose: - "80" ports: @@ -20,7 +20,7 @@ services: volumes: - .:/opt/rweb rweb: - image: solsson/rweb:1.6.4@sha256:fe32cc82f675d447ffb4f4a7a03fe9a62a83097eda5097dded6134c6ecba46b9 + image: solsson/rweb:1.7.1@sha256:ba81308d841f1cc62409b77afd9f178c16c10c450aa3f863ac828350c7bdd28e expose: - "9000" links: diff --git a/repos-plugins/thumbnails/convert/index.php b/repos-plugins/thumbnails/convert/index.php index 43c01b9e..e97052fb 100644 --- a/repos-plugins/thumbnails/convert/index.php +++ b/repos-plugins/thumbnails/convert/index.php @@ -74,6 +74,21 @@ function getThumbnailCommand($transform, $format='', $target='-') { // handleError(412, "Revision number required ".$r->getValue()); //} +if (isset($_REQUEST['accept'])) { + $extensions = preg_split('/[,\s]+/', $_REQUEST['accept'], -1, PREG_SPLIT_NO_EMPTY); + $targetUrl = getTargetUrl(); + $probe = ''; + do { + $s = new ServiceRequest($targetUrl.$probe); + $s->setSkipBody(); + $s->exec(); + if ($s->getStatus() == 200) { + $_REQUEST['target'] .= $probe; + break; + } + } while ($probe = array_shift($extensions)); +} + // First get the data about the repository image // Consider this an implementation of ReposGraphicsTransformSource // We only use SvnOpenFile to check existence, and the operation could maybe be made faster as we don't need the info diff --git a/repos-plugins/uploadform/uploadform.load.js b/repos-plugins/uploadform/uploadform.load.js index 1c49457f..735adff1 100644 --- a/repos-plugins/uploadform/uploadform.load.js +++ b/repos-plugins/uploadform/uploadform.load.js @@ -21,6 +21,14 @@ function autoFillFilename(path) { $(document).say(); var pos = Math.max(path.lastIndexOf('/'), path.lastIndexOf('\\')); var filename = path.substring(pos + 1); + + var fileext = (/\.(\w{1,4})$/.exec(filename) || [])[1]; + var qs = $.deparam.querystring(); + + if (fileext && qs.accept && /^[^\.]+$/.test(suggested)) { + suggested = suggested + '.' + fileext.toLowerCase(); + $('#name').val(suggested); + } if (!v) { suggested = suggested && !!$('#name').val(); diff --git a/repos-web/edit/upload/index.php b/repos-web/edit/upload/index.php index 1e5d2697..d0ce6bfb 100755 --- a/repos-web/edit/upload/index.php +++ b/repos-web/edit/upload/index.php @@ -64,18 +64,6 @@ } } -function fileInputAccept($suggestname) { - if (!$suggestname) return; - - //preg_match('/\((?:([a-z0-9]+)[|)])+$/', $suggestname, $matches); - - preg_match('/\(((?:[a-z0-9]+\|?)+)\)$/', $suggestname, $matches); - if (!count($matches)) return; - $extensions = explode('|', $matches[1]); - - return 'accept=".' . implode(',.', $extensions) . '" '; -} - function showUploadForm() { header("Cache-Control: no-cache, must-revalidate"); // the history part of the form must be updated after successful upload to avoid strange conflicts - disable caching until we have a better solution $template = Presentation::getInstance(); @@ -93,6 +81,7 @@ function showUploadForm() { } else { $template->assign('folderurl', $file->getUrl()); $template->assign('suggestname', isset($_GET['suggestname']) ? $_GET['suggestname'] : ''); + $template->assign('accept', isset($_GET['accept']) ? $_GET['accept'] : ''); } $template->assign('maxfilesize',MAX_FILE_SIZE); $template->assign('isfile',$file->isFile()); diff --git a/repos-web/edit/upload/index_en.html b/repos-web/edit/upload/index_en.html index f69069ee..f90c02f9 100644 --- a/repos-web/edit/upload/index_en.html +++ b/repos-web/edit/upload/index_en.html @@ -41,7 +41,7 @@

Upload file

- + Maximum file size {=$maxfilesize|formatSize}

diff --git a/repos-web/scripts/head.js b/repos-web/scripts/head.js index f538da99..e512f1ee 100644 --- a/repos-web/scripts/head.js +++ b/repos-web/scripts/head.js @@ -74,10 +74,10 @@ $hash$$,$history_hash$$),$$$$($window$$).trigger("hashchange")):$history_hash$$! (function($$$$){function $getViewportSize$$(){var $domObject_mode$$,$size$$={height:$w$$.innerHeight,width:$w$$.innerWidth};$size$$.height||!($domObject_mode$$=$d$$.compatMode)&&$$$$.support.boxModel||($domObject_mode$$="CSS1Compat"===$domObject_mode$$?$documentElement$$:$d$$.body,$size$$={height:$domObject_mode$$.clientHeight,width:$domObject_mode$$.clientWidth});return $size$$}var $inviewObjects$$={},$viewportSize$$,$viewportOffset$$,$d$$=document,$w$$=window,$documentElement$$=$d$$.documentElement, $expando$$=$$$$.expando;$$$$.event.special.inview={add:function $$$$$$event$special$inview$add$($data$$){$inviewObjects$$[$data$$.guid+"-"+this[$expando$$]]={data:$data$$,$element:$$$$(this)}},remove:function $$$$$$event$special$inview$remove$($data$$){try{delete $inviewObjects$$[$data$$.guid+"-"+this[$expando$$]]}catch($e$$){}}};$$$$($w$$).bind("scroll resize",function(){$viewportSize$$=$viewportOffset$$=null});!$documentElement$$.addEventListener&&$documentElement$$.attachEvent&&$documentElement$$.attachEvent("onfocusin", function(){$viewportOffset$$=null});setInterval(function checkInView(){var $$elements$$=$$$$(),$elementsLength$$,$i$jscomp$0$$=0;$$$$.each($inviewObjects$$,function($i$$,$inviewObject$$){var $selector$$=$inviewObject$$.data.selector,$$element$$=$inviewObject$$.$element;$$elements$$=$$elements$$.add($selector$$?$$element$$.find($selector$$):$$element$$)});if($elementsLength$$=$$elements$$.length)for($viewportSize$$=$viewportSize$$||$getViewportSize$$(),$viewportOffset$$=$viewportOffset$$||{top:$w$$.pageYOffset|| -$documentElement$$.scrollTop||$d$$.body.scrollTop,left:$w$$.pageXOffset||$documentElement$$.scrollLeft||$d$$.body.scrollLeft};$i$jscomp$0$$<$elementsLength$$;$i$jscomp$0$$++)if($$$$.contains($documentElement$$,$$elements$$[$i$jscomp$0$$])){var $$element$$=$$$$($$elements$$[$i$jscomp$0$$]),$JSCompiler_object_inline_height_39_visiblePartY$$=$$element$$.height(),$JSCompiler_object_inline_width_40_visiblePartX$$=$$element$$.width(),$elementOffset_visiblePartsMerged$$=$$element$$.offset(),$inView$$=$$element$$.data("inview"); -if(!$viewportOffset$$||!$viewportSize$$)break;$elementOffset_visiblePartsMerged$$.top+$JSCompiler_object_inline_height_39_visiblePartY$$>$viewportOffset$$.top&&$elementOffset_visiblePartsMerged$$.top<$viewportOffset$$.top+$viewportSize$$.height&&$elementOffset_visiblePartsMerged$$.left+$JSCompiler_object_inline_width_40_visiblePartX$$>$viewportOffset$$.left&&$elementOffset_visiblePartsMerged$$.left<$viewportOffset$$.left+$viewportSize$$.width?($JSCompiler_object_inline_width_40_visiblePartX$$=$viewportOffset$$.left> -$elementOffset_visiblePartsMerged$$.left?"right":$viewportOffset$$.left+$viewportSize$$.width<$elementOffset_visiblePartsMerged$$.left+$JSCompiler_object_inline_width_40_visiblePartX$$?"left":"both",$JSCompiler_object_inline_height_39_visiblePartY$$=$viewportOffset$$.top>$elementOffset_visiblePartsMerged$$.top?"bottom":$viewportOffset$$.top+$viewportSize$$.height<$elementOffset_visiblePartsMerged$$.top+$JSCompiler_object_inline_height_39_visiblePartY$$?"top":"both",$elementOffset_visiblePartsMerged$$= -$JSCompiler_object_inline_width_40_visiblePartX$$+"-"+$JSCompiler_object_inline_height_39_visiblePartY$$,$inView$$&&$inView$$===$elementOffset_visiblePartsMerged$$||$$element$$.data("inview",$elementOffset_visiblePartsMerged$$).trigger("inview",[!0,$JSCompiler_object_inline_width_40_visiblePartX$$,$JSCompiler_object_inline_height_39_visiblePartY$$])):$inView$$&&$$element$$.data("inview",!1).trigger("inview",[!1])}},250)})(jQuery);var Repos={};jQuery.browser.sucks=jQuery.browser.msie&&"6.0"==jQuery.browser.version; +$documentElement$$.scrollTop||$d$$.body.scrollTop,left:$w$$.pageXOffset||$documentElement$$.scrollLeft||$d$$.body.scrollLeft};$i$jscomp$0$$<$elementsLength$$;$i$jscomp$0$$++)if($$$$.contains($documentElement$$,$$elements$$[$i$jscomp$0$$])){var $$element$$=$$$$($$elements$$[$i$jscomp$0$$]),$JSCompiler_object_inline_height_41_visiblePartY$$=$$element$$.height(),$JSCompiler_object_inline_width_42_visiblePartX$$=$$element$$.width(),$elementOffset_visiblePartsMerged$$=$$element$$.offset(),$inView$$=$$element$$.data("inview"); +if(!$viewportOffset$$||!$viewportSize$$)break;$elementOffset_visiblePartsMerged$$.top+$JSCompiler_object_inline_height_41_visiblePartY$$>$viewportOffset$$.top&&$elementOffset_visiblePartsMerged$$.top<$viewportOffset$$.top+$viewportSize$$.height&&$elementOffset_visiblePartsMerged$$.left+$JSCompiler_object_inline_width_42_visiblePartX$$>$viewportOffset$$.left&&$elementOffset_visiblePartsMerged$$.left<$viewportOffset$$.left+$viewportSize$$.width?($JSCompiler_object_inline_width_42_visiblePartX$$=$viewportOffset$$.left> +$elementOffset_visiblePartsMerged$$.left?"right":$viewportOffset$$.left+$viewportSize$$.width<$elementOffset_visiblePartsMerged$$.left+$JSCompiler_object_inline_width_42_visiblePartX$$?"left":"both",$JSCompiler_object_inline_height_41_visiblePartY$$=$viewportOffset$$.top>$elementOffset_visiblePartsMerged$$.top?"bottom":$viewportOffset$$.top+$viewportSize$$.height<$elementOffset_visiblePartsMerged$$.top+$JSCompiler_object_inline_height_41_visiblePartY$$?"top":"both",$elementOffset_visiblePartsMerged$$= +$JSCompiler_object_inline_width_42_visiblePartX$$+"-"+$JSCompiler_object_inline_height_41_visiblePartY$$,$inView$$&&$inView$$===$elementOffset_visiblePartsMerged$$||$$element$$.data("inview",$elementOffset_visiblePartsMerged$$).trigger("inview",[!0,$JSCompiler_object_inline_width_42_visiblePartX$$,$JSCompiler_object_inline_height_41_visiblePartY$$])):$inView$$&&$$element$$.data("inview",!1).trigger("inview",[!1])}},250)})(jQuery);var Repos={};jQuery.browser.sucks=jQuery.browser.msie&&"6.0"==jQuery.browser.version; jQuery.browser.sucksless=jQuery.browser.msie&&!jQuery.browser.sucks;Array.prototype.indexOf||(Array.prototype.indexOf=function $Array$$indexOf$($obj$$,$start$$){for(var $i$$=$start$$||0;$i$$"),$helper$$.body.append($part$$);$helper$$.body.hideWhenEmpty()}else $helper$$.title.html($title$$).show(),$helper$$.body.hide();$settings$jscomp$0$$(this).showURL&&$$$$(this).url()?$helper$$.url.html($$$$(this).url().replace("http://","")).show():$helper$$.url.hide();$helper$$.parent.addClass($settings$jscomp$0$$(this).extraClass);$settings$jscomp$0$$(this).fixPNG&&$helper$$.parent.fixPNG();$handle$$.apply(this, -arguments)}}function $show$$(){$tID$$=null;$IE$$&&$$$$.fn.bgiframe||!$settings$jscomp$0$$($current$$).fade?$helper$$.parent.show():$helper$$.parent.is(":animated")?$helper$$.parent.stop().show().fadeTo($settings$jscomp$0$$($current$$).fade,$current$$.tOpacity):$helper$$.parent.is(":visible")?$helper$$.parent.fadeTo($settings$jscomp$0$$($current$$).fade,$current$$.tOpacity):$helper$$.parent.fadeIn($settings$jscomp$0$$($current$$).fade);$update$$()}function $update$$($JSCompiler_object_inline_x_41_event$jscomp$7_right$$){if(!($$$$.tooltip.blocked|| -$JSCompiler_object_inline_x_41_event$jscomp$7_right$$&&"OPTION"==$JSCompiler_object_inline_x_41_event$jscomp$7_right$$.target.tagName))if(!$track$$&&$helper$$.parent.is(":visible")&&$$$$(document.body).unbind("mousemove",$update$$),null==$current$$)$$$$(document.body).unbind("mousemove",$update$$);else{$helper$$.parent.removeClass("viewport-right").removeClass("viewport-bottom");var $left$$=$helper$$.parent[0].offsetLeft,$top$$=$helper$$.parent[0].offsetTop;$JSCompiler_object_inline_x_41_event$jscomp$7_right$$&& -($left$$=$JSCompiler_object_inline_x_41_event$jscomp$7_right$$.pageX+$settings$jscomp$0$$($current$$).left,$top$$=$JSCompiler_object_inline_x_41_event$jscomp$7_right$$.pageY+$settings$jscomp$0$$($current$$).top,$JSCompiler_object_inline_x_41_event$jscomp$7_right$$="auto",$settings$jscomp$0$$($current$$).positionLeft&&($JSCompiler_object_inline_x_41_event$jscomp$7_right$$=$$$$(window).width()-$left$$,$left$$="auto"),$helper$$.parent.css({left:$left$$,right:$JSCompiler_object_inline_x_41_event$jscomp$7_right$$, -top:$top$$}));$JSCompiler_object_inline_x_41_event$jscomp$7_right$$=$$$$(window).scrollLeft();var $JSCompiler_object_inline_y_42$$=$$$$(window).scrollTop(),$JSCompiler_object_inline_cx_43$$=$$$$(window).width(),$JSCompiler_object_inline_cy_44$$=$$$$(window).height(),$h$$=$helper$$.parent[0];$JSCompiler_object_inline_x_41_event$jscomp$7_right$$+$JSCompiler_object_inline_cx_43$$<$h$$.offsetLeft+$h$$.offsetWidth&&($left$$-=$h$$.offsetWidth+20+$settings$jscomp$0$$($current$$).left,$helper$$.parent.css({left:$left$$+ -"px"}).addClass("viewport-right"));$JSCompiler_object_inline_y_42$$+$JSCompiler_object_inline_cy_44$$<$h$$.offsetTop+$h$$.offsetHeight&&($top$$=Math.max($top$$-$h$$.offsetHeight+20+$settings$jscomp$0$$($current$$).top,$JSCompiler_object_inline_y_42$$+$JSCompiler_object_inline_cy_44$$-$h$$.offsetHeight-5),$helper$$.parent.css({top:$top$$+"px"}).addClass("viewport-bottom"))}}function $hide$$($event$$){function $complete$$(){$helper$$.parent.removeClass($tsettings$$.extraClass).hide().css("opacity", +arguments)}}function $show$$(){$tID$$=null;$IE$$&&$$$$.fn.bgiframe||!$settings$jscomp$0$$($current$$).fade?$helper$$.parent.show():$helper$$.parent.is(":animated")?$helper$$.parent.stop().show().fadeTo($settings$jscomp$0$$($current$$).fade,$current$$.tOpacity):$helper$$.parent.is(":visible")?$helper$$.parent.fadeTo($settings$jscomp$0$$($current$$).fade,$current$$.tOpacity):$helper$$.parent.fadeIn($settings$jscomp$0$$($current$$).fade);$update$$()}function $update$$($JSCompiler_object_inline_x_43_event$jscomp$7_right$$){if(!($$$$.tooltip.blocked|| +$JSCompiler_object_inline_x_43_event$jscomp$7_right$$&&"OPTION"==$JSCompiler_object_inline_x_43_event$jscomp$7_right$$.target.tagName))if(!$track$$&&$helper$$.parent.is(":visible")&&$$$$(document.body).unbind("mousemove",$update$$),null==$current$$)$$$$(document.body).unbind("mousemove",$update$$);else{$helper$$.parent.removeClass("viewport-right").removeClass("viewport-bottom");var $left$$=$helper$$.parent[0].offsetLeft,$top$$=$helper$$.parent[0].offsetTop;$JSCompiler_object_inline_x_43_event$jscomp$7_right$$&& +($left$$=$JSCompiler_object_inline_x_43_event$jscomp$7_right$$.pageX+$settings$jscomp$0$$($current$$).left,$top$$=$JSCompiler_object_inline_x_43_event$jscomp$7_right$$.pageY+$settings$jscomp$0$$($current$$).top,$JSCompiler_object_inline_x_43_event$jscomp$7_right$$="auto",$settings$jscomp$0$$($current$$).positionLeft&&($JSCompiler_object_inline_x_43_event$jscomp$7_right$$=$$$$(window).width()-$left$$,$left$$="auto"),$helper$$.parent.css({left:$left$$,right:$JSCompiler_object_inline_x_43_event$jscomp$7_right$$, +top:$top$$}));$JSCompiler_object_inline_x_43_event$jscomp$7_right$$=$$$$(window).scrollLeft();var $JSCompiler_object_inline_y_44$$=$$$$(window).scrollTop(),$JSCompiler_object_inline_cx_45$$=$$$$(window).width(),$JSCompiler_object_inline_cy_46$$=$$$$(window).height(),$h$$=$helper$$.parent[0];$JSCompiler_object_inline_x_43_event$jscomp$7_right$$+$JSCompiler_object_inline_cx_45$$<$h$$.offsetLeft+$h$$.offsetWidth&&($left$$-=$h$$.offsetWidth+20+$settings$jscomp$0$$($current$$).left,$helper$$.parent.css({left:$left$$+ +"px"}).addClass("viewport-right"));$JSCompiler_object_inline_y_44$$+$JSCompiler_object_inline_cy_46$$<$h$$.offsetTop+$h$$.offsetHeight&&($top$$=Math.max($top$$-$h$$.offsetHeight+20+$settings$jscomp$0$$($current$$).top,$JSCompiler_object_inline_y_44$$+$JSCompiler_object_inline_cy_46$$-$h$$.offsetHeight-5),$helper$$.parent.css({top:$top$$+"px"}).addClass("viewport-bottom"))}}function $hide$$($event$$){function $complete$$(){$helper$$.parent.removeClass($tsettings$$.extraClass).hide().css("opacity", "")}if(!$$$$.tooltip.blocked){$tID$$&&clearTimeout($tID$$);$current$$=null;var $tsettings$$=$settings$jscomp$0$$(this);$IE$$&&$$$$.fn.bgiframe||!$tsettings$$.fade?$complete$$():$helper$$.parent.is(":animated")?$helper$$.parent.stop().fadeTo($tsettings$$.fade,0,$complete$$):$helper$$.parent.stop().fadeOut($tsettings$$.fade,$complete$$);$settings$jscomp$0$$(this).fixPNG&&$helper$$.parent.unfixPNG()}}var $helper$$={},$current$$,$title$$,$tID$$,$IE$$=$$$$.browser.msie&&/MSIE\s(5\.5|6\.)/.test(navigator.userAgent), $track$$=!1;$$$$.tooltip={blocked:!1,defaults:{delay:200,fade:!1,showURL:!0,extraClass:"",top:15,left:15,id:"tooltip"},block:function $$$$$$tooltip$block$(){$$$$.tooltip.blocked=!$$$$.tooltip.blocked}};$$$$.fn.extend({tooltip:function($settings$$){$settings$$=$$$$.extend({},$$$$.tooltip.defaults,$settings$$);$helper$$.parent||($helper$$.parent=$$$$('

').appendTo(document.body).hide(),$$$$.fn.bgiframe&&$helper$$.parent.bgiframe(), $helper$$.title=$$$$("h3",$helper$$.parent),$helper$$.body=$$$$("div.body",$helper$$.parent),$helper$$.url=$$$$("div.url",$helper$$.parent));return this.each(function(){$$$$.data(this,"tooltip",$settings$$);this.tOpacity=$helper$$.parent.css("opacity");this.tooltipText=this.title;$$$$(this).removeAttr("title");this.alt=""}).mouseover($save$$).mouseout($hide$$).click($hide$$)},fixPNG:$IE$$?function(){return this.each(function(){var $image$$=$$$$(this).css("backgroundImage");$image$$.match(/^url\(["']?(.*\.png)["']?\)$/i)&& @@ -200,8 +200,9 @@ Repos.service("edit/copy/",function(){var $section_tree$$=$('
*").hide();$ev$jscomp$12_o$$=$('
').appendTo("body");var $w$$=$('Uploading file...').appendTo($ev$jscomp$12_o$$),$p$$=window.setInterval(function(){$w$$.append(".")},1E3);$(window).unload(function(){window.clearInterval($p$$);$w$$.remove()});return!0})}function $hideBased$$(){var $org$$=$("#based-on-revision"),$check$$=$(''), $simple_val$$=$("

").append("").append($check$$).append(" check for conflicts based on when the file was downloaded");$simple_val$$.attr("title","leave unchecked to simply overwrite the latest version");$simple_val$$.insertBefore($org$$.hide());$simple_val$$.css("margin-bottom",".2em");($simple_val$$=$("input[name='fromrev']:checked",$org$$).val())&&"HEAD"!=$simple_val$$&&$enableBased$$();$simple_val$$||$("#fromrevHEAD").prop("checked",!0);$check$$.change(function(){$(this).is(":checked")? $enableBased$$():$org$$.hide()});$.browser.sucks&&$check$$.click(function(){$(this).trigger("change")})}function $enableBased$$(){$("#based-on-revision").show();$("input[name='fromrev']").change(function(){var $c$$=$(this);$c$$.is(":checked")&&("HEAD"==$c$$.val()?$("input[name='tempcheckbox']").removeAttr("disabled"):$("input[name='tempcheckbox']").attr("disabled","disabled"))}).click(function(){$.browser.sucks&&$(this).trigger("change")});$("input[name='tempcheckbox']").prop("checked",!0)}var $v$$, -$suggested$$;Repos.service("edit/upload/",function(){$v$$=$("#name").is(":disabled");$suggested$$=$("#name").val()||!1;$("#userfile").change(function(){var $filename$jscomp$inline_34_m$jscomp$inline_35_path$jscomp$inline_32_rev$$=$(this).val();$(document).say();var $button$jscomp$inline_37_pos$$=Math.max($filename$jscomp$inline_34_m$jscomp$inline_35_path$jscomp$inline_32_rev$$.lastIndexOf("/"),$filename$jscomp$inline_34_m$jscomp$inline_35_path$jscomp$inline_32_rev$$.lastIndexOf("\\")),$filename$jscomp$inline_34_m$jscomp$inline_35_path$jscomp$inline_32_rev$$= -$filename$jscomp$inline_34_m$jscomp$inline_35_path$jscomp$inline_32_rev$$.substring($button$jscomp$inline_37_pos$$+1);$v$$?$filename$jscomp$inline_34_m$jscomp$inline_35_path$jscomp$inline_32_rev$$!=$("#name").val()&&(!($filename$jscomp$inline_34_m$jscomp$inline_35_path$jscomp$inline_32_rev$$=$filename$jscomp$inline_34_m$jscomp$inline_35_path$jscomp$inline_32_rev$$.match(/\(r(\d+)\)\.?\w*$/))||2>$filename$jscomp$inline_34_m$jscomp$inline_35_path$jscomp$inline_32_rev$$.length||($filename$jscomp$inline_34_m$jscomp$inline_35_path$jscomp$inline_32_rev$$= -$filename$jscomp$inline_34_m$jscomp$inline_35_path$jscomp$inline_32_rev$$[1],($button$jscomp$inline_37_pos$$=document.getElementById("fromrev"+$filename$jscomp$inline_34_m$jscomp$inline_35_path$jscomp$inline_32_rev$$))?($enableBased$$(),$($button$jscomp$inline_37_pos$$).prop("checked",!0).trigger("change"),$("body").say({title:"autodetect file revision",text:"Automatically selected "based on version" "+$filename$jscomp$inline_34_m$jscomp$inline_35_path$jscomp$inline_32_rev$$+", because your filename ends with (r"+ -$filename$jscomp$inline_34_m$jscomp$inline_35_path$jscomp$inline_32_rev$$+"). This is now a true versioning operation, as it will check for conflicts with any changes made by others since you downloaded the file."})):$("body").say({title:"autodetect file revision",level:"warning",text:"From the filename it looks like changes are based on revision "+$filename$jscomp$inline_34_m$jscomp$inline_35_path$jscomp$inline_32_rev$$+". But there is no such revision. Please check that it is the correct file."}))): -($suggested$$=$suggested$$&&!!$("#name").val())||$("#name").val($filename$jscomp$inline_34_m$jscomp$inline_35_path$jscomp$inline_32_rev$$)});$v$$&&$hideBased$$();$enableSubmitOverlay$$()})})();Repos.content(null, null, function(){$(document).trigger('repos-content-end').trigger('repos-content-end-internal');}); +$suggested$$;Repos.service("edit/upload/",function(){$v$$=$("#name").is(":disabled");$suggested$$=$("#name").val()||!1;$("#userfile").change(function(){var $filename$jscomp$inline_34_m$jscomp$inline_37_path$jscomp$inline_32_rev$$=$(this).val();$(document).say();var $button$jscomp$inline_39_fileext$jscomp$inline_35_pos$$=Math.max($filename$jscomp$inline_34_m$jscomp$inline_37_path$jscomp$inline_32_rev$$.lastIndexOf("/"),$filename$jscomp$inline_34_m$jscomp$inline_37_path$jscomp$inline_32_rev$$.lastIndexOf("\\")), +$filename$jscomp$inline_34_m$jscomp$inline_37_path$jscomp$inline_32_rev$$=$filename$jscomp$inline_34_m$jscomp$inline_37_path$jscomp$inline_32_rev$$.substring($button$jscomp$inline_39_fileext$jscomp$inline_35_pos$$+1),$button$jscomp$inline_39_fileext$jscomp$inline_35_pos$$=(/\.(\w{1,4})$/.exec($filename$jscomp$inline_34_m$jscomp$inline_37_path$jscomp$inline_32_rev$$)||[])[1],$qs$$=$.deparam.querystring();$button$jscomp$inline_39_fileext$jscomp$inline_35_pos$$&&$qs$$.accept&&/^[^\.]+$/.test($suggested$$)&& +($suggested$$=$suggested$$+"."+$button$jscomp$inline_39_fileext$jscomp$inline_35_pos$$.toLowerCase(),$("#name").val($suggested$$));$v$$?$filename$jscomp$inline_34_m$jscomp$inline_37_path$jscomp$inline_32_rev$$!=$("#name").val()&&(!($filename$jscomp$inline_34_m$jscomp$inline_37_path$jscomp$inline_32_rev$$=$filename$jscomp$inline_34_m$jscomp$inline_37_path$jscomp$inline_32_rev$$.match(/\(r(\d+)\)\.?\w*$/))||2>$filename$jscomp$inline_34_m$jscomp$inline_37_path$jscomp$inline_32_rev$$.length||($filename$jscomp$inline_34_m$jscomp$inline_37_path$jscomp$inline_32_rev$$= +$filename$jscomp$inline_34_m$jscomp$inline_37_path$jscomp$inline_32_rev$$[1],($button$jscomp$inline_39_fileext$jscomp$inline_35_pos$$=document.getElementById("fromrev"+$filename$jscomp$inline_34_m$jscomp$inline_37_path$jscomp$inline_32_rev$$))?($enableBased$$(),$($button$jscomp$inline_39_fileext$jscomp$inline_35_pos$$).prop("checked",!0).trigger("change"),$("body").say({title:"autodetect file revision",text:"Automatically selected "based on version" "+$filename$jscomp$inline_34_m$jscomp$inline_37_path$jscomp$inline_32_rev$$+ +", because your filename ends with (r"+$filename$jscomp$inline_34_m$jscomp$inline_37_path$jscomp$inline_32_rev$$+"). This is now a true versioning operation, as it will check for conflicts with any changes made by others since you downloaded the file."})):$("body").say({title:"autodetect file revision",level:"warning",text:"From the filename it looks like changes are based on revision "+$filename$jscomp$inline_34_m$jscomp$inline_37_path$jscomp$inline_32_rev$$+". But there is no such revision. Please check that it is the correct file."}))): +($suggested$$=$suggested$$&&!!$("#name").val())||$("#name").val($filename$jscomp$inline_34_m$jscomp$inline_37_path$jscomp$inline_32_rev$$)});$v$$&&$hideBased$$();$enableSubmitOverlay$$()})})();Repos.content(null, null, function(){$(document).trigger('repos-content-end').trigger('repos-content-end-internal');});