WIP upload per-domain
This commit is contained in:
		
							parent
							
								
									3a36bd1f61
								
							
						
					
					
						commit
						723a22439f
					
				@ -25,6 +25,20 @@ function handleFiles(ev) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
window.document.body.addEventListener('change', handleFiles);
 | 
					window.document.body.addEventListener('change', handleFiles);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					app.directive('daplieFileChange', function () {
 | 
				
			||||||
 | 
					  return {
 | 
				
			||||||
 | 
					    restrict: 'A',
 | 
				
			||||||
 | 
					    require:"ngModel",
 | 
				
			||||||
 | 
					    link: function (scope, element, attrs, ngModel) {
 | 
				
			||||||
 | 
					      element.bind('change', function (event) {
 | 
				
			||||||
 | 
					        var files = event.target.files;
 | 
				
			||||||
 | 
					        ngModel.$setViewValue(files[0]);
 | 
				
			||||||
 | 
					        scope.$eval(attrs.daplieFileChange);
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
app.controller('websiteCtrl', [
 | 
					app.controller('websiteCtrl', [
 | 
				
			||||||
  '$scope', '$q', 'Auth', 'azp@oauth3.org', '$timeout'
 | 
					  '$scope', '$q', 'Auth', 'azp@oauth3.org', '$timeout'
 | 
				
			||||||
, function ($scope, $q, Auth, Oauth3, $timeout) {
 | 
					, function ($scope, $q, Auth, Oauth3, $timeout) {
 | 
				
			||||||
@ -140,26 +154,26 @@ 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._createWebsite = function (pkg) {
 | 
					  vm._uploadFile = function (pkg, opts) {
 | 
				
			||||||
    return pkg.add({
 | 
					    return pkg.add({
 | 
				
			||||||
      hostname: vm.currentHost
 | 
					      hostname: opts.currentHost
 | 
				
			||||||
    , domain: vm.currentHost
 | 
					    , domain: opts.currentHost
 | 
				
			||||||
    , tld: vm.domain.tld
 | 
					    , tld: opts.domain.tld
 | 
				
			||||||
    , sld: vm.domain.sld
 | 
					    , sld: opts.domain.sld
 | 
				
			||||||
    //, sub: vm.record.sub
 | 
					    //, sub: opts.record.sub
 | 
				
			||||||
    , multipart: { site: vm.currentFiles[0] }
 | 
					    , multipart: { site: opts.currentFiles[0] }
 | 
				
			||||||
    , progress: function (ev) {
 | 
					    , progress: function (ev) {
 | 
				
			||||||
        // TODO must digest
 | 
					        // TODO must digest
 | 
				
			||||||
        vm.uploadPercent = Math.round((ev.loaded / ev.total) * 100);
 | 
					        opts.uploadPercent = Math.round((ev.loaded / ev.total) * 100);
 | 
				
			||||||
        // TODO GiB, MiB, KiB, etc
 | 
					        // TODO GiB, MiB, KiB, etc
 | 
				
			||||||
        vm.uploadTotal = (ev.total / (1024 * 1024)).toFixed(2);
 | 
					        opts.uploadTotal = (ev.total / (1024 * 1024)).toFixed(2);
 | 
				
			||||||
        vm.uploadProgress = (ev.loaded / (1024 * 1024)).toFixed(2);
 | 
					        opts.uploadProgress = (ev.loaded / (1024 * 1024)).toFixed(2);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    , unzip: vm.unzip
 | 
					    , unzip: opts.unzip
 | 
				
			||||||
    , strip: vm.stripZip
 | 
					    , strip: opts.stripZip
 | 
				
			||||||
    , path: vm.webPath
 | 
					    , path: opts.webPath
 | 
				
			||||||
    }).then(function (result) {
 | 
					    }).then(function (result) {
 | 
				
			||||||
      vm.uploadTotal = 0;
 | 
					      opts.uploadTotal = 0;
 | 
				
			||||||
      window.alert(JSON.stringify(result));
 | 
					      window.alert(JSON.stringify(result));
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
@ -211,7 +225,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._createWebsite(pkg);
 | 
					      vm._uploadFile(pkg, vm);
 | 
				
			||||||
      return;
 | 
					      return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -256,13 +270,20 @@ 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._createWebsite(pkg);
 | 
					          return vm._uploadFile(pkg, vm);
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  vm.createWebsite = vm.Sites.create;
 | 
					  vm.Sites.setUpload = function (r) {
 | 
				
			||||||
 | 
					    console.log("Hey! At least it can tell if there's a change!");
 | 
				
			||||||
 | 
					    console.log(r);
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  vm.Sites.upload = function (r) {
 | 
				
			||||||
 | 
					    var pkg = Auth.oauth3.pkg('www@daplie.com');
 | 
				
			||||||
 | 
					    vm._uploadFile(pkg, r);
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
  vm.Sites.archive = function (r) {
 | 
					  vm.Sites.archive = function (r) {
 | 
				
			||||||
    var pkg = Auth.oauth3.pkg('www@daplie.com');
 | 
					    var pkg = Auth.oauth3.pkg('www@daplie.com');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -75,7 +75,7 @@
 | 
				
			|||||||
    -->
 | 
					    -->
 | 
				
			||||||
    <!-- <div class="form-group">
 | 
					    <!-- <div class="form-group">
 | 
				
			||||||
      <div class="pull-right"> -->
 | 
					      <div class="pull-right"> -->
 | 
				
			||||||
            <button ng-click="vm.createWebsite()" type="button" name="button" class="btn btn-default">Create Website</button>
 | 
					            <button ng-click="vm.Sites.create()" type="button" name="button" class="btn btn-default">Create Website</button>
 | 
				
			||||||
        <!-- </div>
 | 
					        <!-- </div>
 | 
				
			||||||
    </div> -->
 | 
					    </div> -->
 | 
				
			||||||
        <div class="input-group">
 | 
					        <div class="input-group">
 | 
				
			||||||
@ -85,27 +85,44 @@
 | 
				
			|||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
  <div class="white-well">
 | 
					  <div class="white-well">
 | 
				
			||||||
    <h1>Your Websites</h1>
 | 
					    <h1>Your Websites</h1>
 | 
				
			||||||
    <table class="table">
 | 
					    <div ng-repeat="r in vm.sites">
 | 
				
			||||||
      <tbody>
 | 
					      <table class="table">
 | 
				
			||||||
        <tr ng-repeat="r in vm.sites">
 | 
					        <tbody>
 | 
				
			||||||
          <td><a ng-href="https://{{r.domain}}" target="_blank" ng-bind="r.domain">example.com</a>
 | 
					          <tr>
 | 
				
			||||||
            <a ng-href="{{r.download}}" target="_blank">Download</a>
 | 
					            <td><a ng-href="https://{{r.domain}}" target="_blank" ng-bind="r.domain">example.com</a>
 | 
				
			||||||
            <!-- button class="btn btn-link" ng-click="vm.Sites.archive(r)">download</button -->
 | 
					              <a ng-href="{{r.download}}" target="_blank">Download</a>
 | 
				
			||||||
            <button class="btn btn-link" ng-click="vm.Sites.remove(r)">Clear</button></td>
 | 
					              <!-- button class="btn btn-link" ng-click="vm.Sites.archive(r)">download</button -->
 | 
				
			||||||
          <td>
 | 
					              <button class="btn btn-link" ng-click="vm.Sites.remove(r)">Clear</button></td>
 | 
				
			||||||
            <input type="text" ng-model="r.newPath" placeholder="/" />
 | 
					            <td>
 | 
				
			||||||
            <button class="btn btn-default" ng-click="vm.Sites.contents(r)">List Files</button>
 | 
					              <input type="text" ng-model="r.newPath" placeholder="/" />
 | 
				
			||||||
          </td>
 | 
					              <button class="btn btn-default" ng-click="vm.Sites.contents(r)">List Files</button>
 | 
				
			||||||
          <td ng-bind="r.path">Sites > blogs > blog.jane.smith.net</td>
 | 
					            </td>
 | 
				
			||||||
          <td ng-bind="r.users">jane@smith.net, jack@smith.net, friend@gmail.com</td>
 | 
					            <td ng-bind="r.path">Sites > blogs > blog.jane.smith.net</td>
 | 
				
			||||||
          <td>
 | 
					            <td ng-bind="r.users">jane@smith.net, jack@smith.net, friend@gmail.com</td>
 | 
				
			||||||
            <input type="text" ng-model="r.shareEmail" placeholder="ex: john@example.com" />
 | 
					            <td>
 | 
				
			||||||
            <input type="text" ng-model="r.sharePath" placeholder="/" />
 | 
					              <input type="text" ng-model="r.shareEmail" placeholder="ex: john@example.com" />
 | 
				
			||||||
            <input type="text" ng-model="r.shareMode" placeholder="rwx (read, write, invite)" />
 | 
					              <input type="text" ng-model="r.sharePath" placeholder="/" />
 | 
				
			||||||
            <button class="btn btn-default" ng-click="vm.Shares.invite(r)">Invite</button>
 | 
					              <input type="text" ng-model="r.shareMode" placeholder="rwx (read, write, invite)" />
 | 
				
			||||||
          </td>
 | 
					              <button class="btn btn-default" ng-click="vm.Shares.invite(r)">Invite</button>
 | 
				
			||||||
        </tr>
 | 
					            </td>
 | 
				
			||||||
      </tbody>
 | 
					          </tr>
 | 
				
			||||||
    </table>
 | 
					        </tbody>
 | 
				
			||||||
 | 
					      </table>
 | 
				
			||||||
 | 
					      <div class="input-group">
 | 
				
			||||||
 | 
					        <div><label>Select upload</label> <input type="file" ng-model="r.newFile" daplie-file-change="vm.Sites.setUpload(r)" /></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <div ng-if="r.isZip" ><label><input type="checkbox" ng-model="r.unzip" /> Unpack .zip</label></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <div ng-if="r.unzip" ><label><input type="checkbox" ng-model="r.stripZip" /> Strip zip directory root</label></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- div ng-if="vm.isZip" ><label>Unzip directory</label> <input type="text" ng-model="vm.unzipPath" /></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>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <button ng-click="vm.Sites.upload(r)" type="button" name="button" class="btn btn-default">Add File</button>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user