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…
Reference in New Issue