per domain uploads
This commit is contained in:
		
							parent
							
								
									723a22439f
								
							
						
					
					
						commit
						b5195b1a14
					
				@ -2,6 +2,13 @@
 | 
				
			|||||||
// Angular file upload hack
 | 
					// Angular file upload hack
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
// TODO modularize for reuse
 | 
					// TODO modularize for reuse
 | 
				
			||||||
 | 
					function analyzeFile(file, vm) {
 | 
				
			||||||
 | 
					  vm.isZip = /\.zip$/.test(file.name);
 | 
				
			||||||
 | 
					  vm.unzip = vm.isZip;
 | 
				
			||||||
 | 
					  vm.stripZip = vm.isZip;
 | 
				
			||||||
 | 
					  return vm;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function handleFiles(ev) {
 | 
					function handleFiles(ev) {
 | 
				
			||||||
  var selector = 'js-file-upload';
 | 
					  var selector = 'js-file-upload';
 | 
				
			||||||
  var $scope;
 | 
					  var $scope;
 | 
				
			||||||
@ -15,10 +22,8 @@ function handleFiles(ev) {
 | 
				
			|||||||
  // 'vm' is the Controller As name.
 | 
					  // 'vm' is the Controller As name.
 | 
				
			||||||
  vm = $scope.vm;
 | 
					  vm = $scope.vm;
 | 
				
			||||||
  vm.currentFiles = ev.target.files;
 | 
					  vm.currentFiles = ev.target.files;
 | 
				
			||||||
  var file = vm.currentFiles[0];
 | 
					  analyzeFile(vm.currentFiles[0], vm);
 | 
				
			||||||
  vm.isZip = /\.zip$/.test(file.name);
 | 
					
 | 
				
			||||||
  vm.unzip = vm.isZip;
 | 
					 | 
				
			||||||
  vm.stripZip = vm.isZip;
 | 
					 | 
				
			||||||
  $scope.$digest();
 | 
					  $scope.$digest();
 | 
				
			||||||
  console.log('[handleFiles] vm.currentFiles:');
 | 
					  console.log('[handleFiles] vm.currentFiles:');
 | 
				
			||||||
  console.log(vm.currentFiles);
 | 
					  console.log(vm.currentFiles);
 | 
				
			||||||
@ -46,7 +51,7 @@ app.controller('websiteCtrl', [
 | 
				
			|||||||
  var vm = this;
 | 
					  var vm = this;
 | 
				
			||||||
  vm.domains = [];
 | 
					  vm.domains = [];
 | 
				
			||||||
  //vm.unzipPath = '/';
 | 
					  //vm.unzipPath = '/';
 | 
				
			||||||
  vm.webPath = '/';
 | 
					  vm.uploadPath = '/';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Auth.api = function (apiname, opts) {
 | 
					  Auth.api = function (apiname, opts) {
 | 
				
			||||||
    var els = [];
 | 
					    var els = [];
 | 
				
			||||||
@ -154,26 +159,38 @@ app.controller('websiteCtrl', [
 | 
				
			|||||||
    vm.currentHost = record.host; // .replace(new RegExp('\\.' + vm.domain.domain.replace(/\./g, '\\.') + '$', ''));
 | 
					    vm.currentHost = record.host; // .replace(new RegExp('\\.' + vm.domain.domain.replace(/\./g, '\\.') + '$', ''));
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  vm._uploadFileVm = function (pkg, opts) {
 | 
				
			||||||
 | 
					    return vm._uploadFile(pkg, {
 | 
				
			||||||
 | 
					      domain: vm.currentHost
 | 
				
			||||||
 | 
					    , tld: vm.domain.tld
 | 
				
			||||||
 | 
					    , sld: vm.domain.sld
 | 
				
			||||||
 | 
					    , sub: vm.domain.sub
 | 
				
			||||||
 | 
					    , newFile: vm.currentFiles[0]
 | 
				
			||||||
 | 
					    , uploadPath: vm.uploadPath
 | 
				
			||||||
 | 
					    , progress: vm
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
  vm._uploadFile = function (pkg, opts) {
 | 
					  vm._uploadFile = function (pkg, opts) {
 | 
				
			||||||
 | 
					    opts.progress = opts.progress || opts;
 | 
				
			||||||
    return pkg.add({
 | 
					    return pkg.add({
 | 
				
			||||||
      hostname: opts.currentHost
 | 
					      hostname: opts.domain
 | 
				
			||||||
    , domain: opts.currentHost
 | 
					    , domain: opts.domain
 | 
				
			||||||
    , tld: opts.domain.tld
 | 
					    , tld: opts.tld
 | 
				
			||||||
    , sld: opts.domain.sld
 | 
					    , sld: opts.sld
 | 
				
			||||||
    //, sub: opts.record.sub
 | 
					    //, sub: opts.record.sub
 | 
				
			||||||
    , multipart: { site: opts.currentFiles[0] }
 | 
					    , multipart: { site: opts.newFile }
 | 
				
			||||||
    , progress: function (ev) {
 | 
					    , progress: function (ev) {
 | 
				
			||||||
        // TODO must digest
 | 
					        // TODO must digest
 | 
				
			||||||
        opts.uploadPercent = Math.round((ev.loaded / ev.total) * 100);
 | 
					        opts.progress.uploadPercent = Math.round((ev.loaded / ev.total) * 100);
 | 
				
			||||||
        // TODO GiB, MiB, KiB, etc
 | 
					        // TODO GiB, MiB, KiB, etc
 | 
				
			||||||
        opts.uploadTotal = (ev.total / (1024 * 1024)).toFixed(2);
 | 
					        opts.progress.uploadTotal = (ev.total / (1024 * 1024)).toFixed(2);
 | 
				
			||||||
        opts.uploadProgress = (ev.loaded / (1024 * 1024)).toFixed(2);
 | 
					        opts.progress.uploadProgress = (ev.loaded / (1024 * 1024)).toFixed(2);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    , unzip: opts.unzip
 | 
					    , unzip: opts.unzip
 | 
				
			||||||
    , strip: opts.stripZip
 | 
					    , strip: opts.stripZip
 | 
				
			||||||
    , path: opts.webPath
 | 
					    , path: opts.uploadPath
 | 
				
			||||||
    }).then(function (result) {
 | 
					    }).then(function (result) {
 | 
				
			||||||
      opts.uploadTotal = 0;
 | 
					      opts.progress.uploadTotal = 0;
 | 
				
			||||||
      window.alert(JSON.stringify(result));
 | 
					      window.alert(JSON.stringify(result));
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
@ -225,7 +242,7 @@ app.controller('websiteCtrl', [
 | 
				
			|||||||
    if (vm.sites.some(function (r) {
 | 
					    if (vm.sites.some(function (r) {
 | 
				
			||||||
      return -1 !== ('.' + vm.currentHost).indexOf(('.' + r.domain));
 | 
					      return -1 !== ('.' + vm.currentHost).indexOf(('.' + r.domain));
 | 
				
			||||||
    })) {
 | 
					    })) {
 | 
				
			||||||
      vm._uploadFile(pkg, vm);
 | 
					      vm._uploadFileVm(pkg, vm);
 | 
				
			||||||
      return;
 | 
					      return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -270,7 +287,7 @@ app.controller('websiteCtrl', [
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      return prom.then(function () {
 | 
					      return prom.then(function () {
 | 
				
			||||||
        return pkg.claim(domainReq).then(function (result) {
 | 
					        return pkg.claim(domainReq).then(function (result) {
 | 
				
			||||||
          return vm._uploadFile(pkg, vm);
 | 
					          return vm._uploadFileVm(pkg, vm);
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -278,10 +295,12 @@ app.controller('websiteCtrl', [
 | 
				
			|||||||
  };
 | 
					  };
 | 
				
			||||||
  vm.Sites.setUpload = function (r) {
 | 
					  vm.Sites.setUpload = function (r) {
 | 
				
			||||||
    console.log("Hey! At least it can tell if there's a change!");
 | 
					    console.log("Hey! At least it can tell if there's a change!");
 | 
				
			||||||
 | 
					    analyzeFile(r.newFile, r);
 | 
				
			||||||
    console.log(r);
 | 
					    console.log(r);
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  vm.Sites.upload = function (r) {
 | 
					  vm.Sites.upload = function (r) {
 | 
				
			||||||
    var pkg = Auth.oauth3.pkg('www@daplie.com');
 | 
					    var pkg = Auth.oauth3.pkg('www@daplie.com');
 | 
				
			||||||
 | 
					    //analyzeFile(r.newFile, r);
 | 
				
			||||||
    vm._uploadFile(pkg, r);
 | 
					    vm._uploadFile(pkg, r);
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  vm.Sites.archive = function (r) {
 | 
					  vm.Sites.archive = function (r) {
 | 
				
			||||||
@ -293,7 +312,7 @@ app.controller('websiteCtrl', [
 | 
				
			|||||||
    , tld: r.tld
 | 
					    , tld: r.tld
 | 
				
			||||||
    , sld: r.sld
 | 
					    , sld: r.sld
 | 
				
			||||||
    //, sub: vm.record.sub
 | 
					    //, sub: vm.record.sub
 | 
				
			||||||
    //, path: vm.webPath
 | 
					    //, path: vm.uploadPath
 | 
				
			||||||
    }).then(function (result) {
 | 
					    }).then(function (result) {
 | 
				
			||||||
      window.alert(JSON.stringify(result));
 | 
					      window.alert(JSON.stringify(result));
 | 
				
			||||||
      // TODO use iframe to initiate download?
 | 
					      // TODO use iframe to initiate download?
 | 
				
			||||||
@ -312,7 +331,7 @@ app.controller('websiteCtrl', [
 | 
				
			|||||||
    , tld: r.tld
 | 
					    , tld: r.tld
 | 
				
			||||||
    , sld: r.sld
 | 
					    , sld: r.sld
 | 
				
			||||||
    //, sub: vm.record.sub
 | 
					    //, sub: vm.record.sub
 | 
				
			||||||
    //, path: vm.webPath
 | 
					    //, path: vm.uploadPath
 | 
				
			||||||
    }).then(function (result) {
 | 
					    }).then(function (result) {
 | 
				
			||||||
      window.alert(JSON.stringify(result));
 | 
					      window.alert(JSON.stringify(result));
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
				
			|||||||
@ -62,7 +62,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
          <div ng-if="vm.uploadTotal"><span ng-bind="vm.uploadPercent">99</span>% | <span ng-bind="vm.uploadProgress">1</span> MiB / <span ng-bind="vm.uploadTotal">100</span> MiB</div>
 | 
					          <div ng-if="vm.uploadTotal"><span ng-bind="vm.uploadPercent">99</span>% | <span ng-bind="vm.uploadProgress">1</span> MiB / <span ng-bind="vm.uploadTotal">100</span> MiB</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          <div><label>Web path</label> <input type="text" ng-model="vm.webPath" /></div>
 | 
					          <div><label>Web path</label> <input type="text" ng-model="vm.uploadPath" /></div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
@ -119,7 +119,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        <div ng-if="r.uploadTotal"><span ng-bind="r.uploadPercent">99</span>% | <span ng-bind="r.uploadProgress">1</span> MiB / <span ng-bind="r.uploadTotal">100</span> MiB</div>
 | 
					        <div ng-if="r.uploadTotal"><span ng-bind="r.uploadPercent">99</span>% | <span ng-bind="r.uploadProgress">1</span> MiB / <span ng-bind="r.uploadTotal">100</span> MiB</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <div><label>Web path</label> <input type="text" ng-model="r.webPath" /></div>
 | 
					        <div><label>Web path</label> <input type="text" ng-model="r.uploadPath" /></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <button ng-click="vm.Sites.upload(r)" type="button" name="button" class="btn btn-default">Add File</button>
 | 
					        <button ng-click="vm.Sites.upload(r)" type="button" name="button" class="btn btn-default">Add File</button>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user