mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"/>
</Context>
+
+jrebel
+generate files: mvn org.zeroturnaround:jrebel-maven-plugin:1.1.3:generate -Pjs
+
fileupload.packaging=Packaging
fileupload.generatePom=Generate Maven POM
fileupload.repositoryId=Repository Id
+fileupload.save=Save Files
String repositoryId =
IOUtils.toString( multipartBody.getAttachment( "repositoryId" ).getDataHandler().getInputStream() );
- boolean generatePom = BooleanUtils.toBoolean(
- IOUtils.toString( multipartBody.getAttachment( "generatePom" ).getDataHandler().getInputStream() ) );
+ Attachment generatePomAttachment = multipartBody.getAttachment( "generatePom" );
+ boolean generatePom = BooleanUtils.toBoolean( generatePomAttachment == null
+ ? Boolean.FALSE.toString()
+ : IOUtils.toString(
+ generatePomAttachment.getDataHandler().getInputStream() ) );
String classifier =
IOUtils.toString( multipartBody.getAttachment( "classifier" ).getDataHandler().getInputStream() );
- boolean pomFile = BooleanUtils.toBoolean(
- IOUtils.toString( multipartBody.getAttachment( "pomFile" ).getDataHandler().getInputStream() ) );
+ Attachment pomFileAttachment = multipartBody.getAttachment( "pomFile" );
+
+ boolean pomFile = BooleanUtils.toBoolean( pomFileAttachment == null
+ ? Boolean.FALSE.toString()
+ : IOUtils.toString(
+ pomFileAttachment.getDataHandler().getInputStream() ) );
log.info( "uploading file:" + groupId + ":" + artifactId + ":" + version );
Attachment file = multipartBody.getAttachment( "files[]" );
define("archiva.artifacts-management",["jquery","i18n","order!utils","order!jquery.tmpl","order!knockout",
"order!knockout.simpleGrid","jquery.validate","bootstrap","jquery.fileupload","jquery.fileupload.ui"]
, function() {
+
+ ArtifactUpload=function(classifier,pomFile){
+ this.classifier=classifier;
+ this.pomFile=pomFile;
+ }
+
+ ArtifactUploadViewModel=function(managedRepositories){
+ this.managedRepositories=ko.observableArray(managedRepositories);
+ this.repositoryId=ko.observable();
+ this.groupId=ko.observable();
+ this.artifactId=ko.observable();
+ this.version=ko.observable();
+ this.packaging=ko.observable();
+ this.generatePom=ko.observable();
+
+ }
+
displayUploadArtifact=function(){
var mainContent=$("#main-content");
mainContent.html(mediumSpinnerImg());
dataType: 'json',
success: function(data) {
mainContent.html($("#file-upload-tmpl" ).tmpl({managedRepositories: data}));
+ var artifactUploadViewModel=new ArtifactUploadViewModel(data);
+ ko.applyBindings(artifactUploadViewModel,mainContent.find("#file-upload-main" ).get(0));
+ mainContent.find("#fileupload-save-files" ).on("click",function(){
+ $.log("fileupload-save-files click");
+ });
+
$('#fileupload').fileupload({
add: function (e, data) {
data.timeStamp = $.now();
- $.blueimpUI.fileupload.prototype
- .options.add.call(this, e, data);
+ $.log("fileupload add file");
+ $.blueimpUI.fileupload.prototype.options.add.call(this, e, data);
}
}
);
+<script id="file-upload-screen" type="text/html">
+ <div id="file-upload-main" ddata-bind='template:{name:"file-upload-tmpl"}'></div>
+</script>
+
<script id="file-upload-tmpl" type="text/html">
<div class="page-header">
<h3>${$.i18n.prop('fileupload.header')}</h3>
<div class="control-group">
<label class="control-label" for="repositoryId">${$.i18n.prop('fileupload.repositoryId')}</label>
<div class="controls">
- <select id="repositoryId" name="repositoryId">
- {{each(i,repository) managedRepositories}}
- <option value="${repository.id}">${repository.name}</option>
- {{/each}}
- </select>
+ <select id="repositoryId"
+ data-bind="options: managedRepositories, optionsText: 'name',optionsValue:'id',
+ value: repositoryId"></select>
</div>
</div>
<div class="control-group">
<label class="control-label" for="groupId">${$.i18n.prop('fileupload.groupId')}</label>
<div class="controls">
- <input type="text" class="xlarge required" id="groupId" name="groupId" size="10" />
+ <input type="text" class="xlarge required" data-bind="value: groupId" id="groupId" name="groupId" size="10" />
</div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="artifactId">${$.i18n.prop('fileupload.artifactId')}</label>
<div class="controls">
- <input type="text" class="xlarge required" id="artifactId" name="artifactId" size="10" />
+ <input type="text" class="xlarge required" data-bind="value: artifactId" id="artifactId" name="artifactId" size="10" />
</div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="artifactId">${$.i18n.prop('fileupload.version')}</label>
<div class="controls">
- <input type="text" class="xlarge required" id="version" name="version" size="10" />
+ <input type="text" class="xlarge required" data-bind="value: version" id="version" name="version" size="10" />
</div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="artifactId">${$.i18n.prop('fileupload.packaging')}</label>
<div class="controls">
- <input type="text" class="xlarge required" id="packaging" name="packaging" size="10" />
+ <input type="text" class="xlarge required" data-bind="value: packaging" id="packaging" name="packaging" size="10" />
</div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="generatePom">${$.i18n.prop('fileupload.generatePom')}</label>
<div class="controls">
- <input type="checkbox" class="xlarge required" id="generatePom" name="generatePom" />
+ <input type="checkbox" class="xlarge required" data-bind="value: generatePom" id="generatePom" name="generatePom" />
</div>
</div>
</div>
</div>
</div>
</div>
+ <div>
+ <a href="#" id="fileupload-save-files">
+ <span class="btn btn-info">
+ <i class="icon-file icon-white"></i>
+ <span>${$.i18n.prop('fileupload.save')}</span>
+ </span>
+ </a>
+ </div>
<div class="fileupload-loading"></div>
<br>
<table class="table table-striped">