Browse Source

fixed shares, fixed breadcrumbs search

master
Jon Lambson 7 years ago
parent
commit
2ad1d1b96b
  1. 13
      css/styles.css
  2. 18
      js/app.js
  3. 141
      js/controllers/website-controller.js
  4. 2
      templates/applications.html
  5. 2
      templates/devices.html
  6. 17
      templates/partials/menu.html
  7. 6
      templates/website.html
  8. 6
      templates/widgets/filetree.html

13
css/styles.css

@ -369,7 +369,6 @@ label.tree_label:before {
line-height: .9em;
}
:checked ~ label.tree_label:before { content: '–'; }
/*
Tree branches
@ -434,21 +433,11 @@ label.tree_label:after { border-bottom: 0; }
ul.tree.files-only.ls-none {
margin-left: 30px;
}
:checked ~ label.tree_label:after {
border-radius: 0 .3em 0 0;
border-top: 1px solid #777;
border-right: 1px solid #777;
border-bottom: 0;
border-left: 0;
bottom: 0;
top: 0.5em;
height: auto;
}
.tree li:last-child:before {
height: 1em;
bottom: auto;
}
}
.tree > li:last-child:before { display: none; }

18
js/app.js

@ -121,6 +121,24 @@ app.config(['$stateProvider', '$urlRouterProvider', 'localStorageServiceProvider
}
}
})
.state('app.applications', {
url: 'apps',
views: {
'content@': {
templateUrl: 'templates/applications.html',
controller: '',
}
}
})
.state('app.devices', {
url: 'devices',
views: {
'content@': {
templateUrl: 'templates/devices.html',
controller: '',
}
}
})
.state('app.account-settings', {
url: 'account-settings',
views: {

141
js/controllers/website-controller.js

@ -83,7 +83,6 @@ app.controller('websiteCtrl', [
//vm.unzipPath = '/';
vm.uploadPath = '/';
// already validated
function domainIsVerified(r) {
return r.verifiedAt || r.mode;
@ -360,15 +359,15 @@ app.controller('websiteCtrl', [
vm.siteFiles = [];
vm.Sites.allContents = function (r) {
vm.copyR = r;
vm.strictPath = r.shareAccess.path.replace(/\//, '');
vm.strictPath = r.shareAccess.path;
var pkg = Auth.oauth3.pkg('www@daplie.com');
return pkg.contents({
hostname: r.domain
, domain: r.domain
, tld: r.tld
, sld: r.sld
//, sub: r.sub
, path: r.shareAccess.path
hostname: r.domain,
domain: r.domain,
tld: r.tld,
sld: r.sld,
// sub: r.sub,
path: r.shareAccess.path
}).then(function (result) {
if (r.shareAccess.path !== '/') {
var strictPathName = r.shareAccess.path.split('/');
@ -387,25 +386,30 @@ app.controller('websiteCtrl', [
}
});
vm.displaySpinner = 'hidden';
// window.alert(JSON.stringify(result));
});
};
var cleanPathQuery = function (path) {
vm.cleanedPath = path.replace(/\/+/g, '/');
return vm.cleanedPath;
};
vm.Sites.contents = function (r, dir) {
console.log("SEARCHING DIRECTORY ->", dir);
vm.siteFiles = [];
vm.siteDirectories = [];
cleanPathQuery(dir);
dir = vm.cleanedPath;
vm.displaySpinner = '';
var pkg = Auth.oauth3.pkg('www@daplie.com');
return pkg.contents({
hostname: r.domain
, domain: r.domain
, tld: r.tld
, sld: r.sld
//, sub: r.sub
, path: dir
hostname: r.domain,
domain: r.domain,
tld: r.tld,
sld: r.sld,
// sub: r.sub,
path: dir
}).then(function (result) {
vm.displaySpinner = 'hidden';
vm.siteFiles = [];
vm.siteDirectories = [];
vm.folderStructure = result;
result.data.forEach(function(data){
if (data.file) {
@ -415,31 +419,48 @@ app.controller('websiteCtrl', [
vm.siteDirectories.push(data.name);
}
});
// window.alert(JSON.stringify(result));
});
};
var crumbsCleanUp = function (crumb) {
var str2arryQuery = cleanPathQuery(vm.breadcrumbsPath.join('/'));
var str2arry = vm.breadcrumbs;
str2arryQuery = str2arryQuery.split('/');
var removeFromBreadcrumbsQuery = str2arryQuery.indexOf(crumb) + 1;
var removeFromBreadcrumbs = str2arry.indexOf(crumb) + 1;
vm.breadcrumbsPath = str2arryQuery.splice(0,removeFromBreadcrumbsQuery);
vm.breadcrumbs = str2arry.splice(0,removeFromBreadcrumbs);
};
vm.getDirectoriesFromBreadcrumbs = function (dir) {
if (vm.copyR.shareAccess.path !== '/') {
var arry = vm.breadcrumbsPath.split('/');
arry.pop();
var removeFromBreadcrumbs = arry.indexOf(dir) + 1;
var newArry = vm.breadcrumbs;
newArry.pop();
vm.breadcrumbsPath = arry.splice(0,removeFromBreadcrumbs);
vm.breadcrumbs = vm.breadcrumbs.splice(0,removeFromBreadcrumbs);
crumbsCleanUp(dir);
vm.Sites.contents(vm.copyR, vm.breadcrumbsPath.join('/'));
} else {
vm.breadcrumbsPath.unshift('');
var removeFromBreadcrumbs = vm.breadcrumbsPath.indexOf(dir) + 1;
vm.breadcrumbsPath = vm.breadcrumbsPath.splice(0,removeFromBreadcrumbs);
vm.breadcrumbs = vm.breadcrumbs.splice(0,removeFromBreadcrumbs);
crumbsCleanUp(dir);
vm.Sites.contents(vm.copyR, vm.breadcrumbsPath.join('/'));
if (dir === 'root') {
vm.breadcrumbs = ['root'];
vm.breadcrumbsPath = [];
}
}
// var removeFromBreadcrumbs;
// if (vm.copyR.shareAccess.path !== '/') {
// var arry = vm.breadcrumbsPath.split('/');
// arry.pop();
// removeFromBreadcrumbs = arry.indexOf(dir) + 1;
// var newArry = vm.breadcrumbs;
// newArry.pop();
// vm.breadcrumbsPath = arry.splice(0,removeFromBreadcrumbs);
// vm.breadcrumbs = vm.breadcrumbs.splice(0,removeFromBreadcrumbs);
// vm.Sites.contents(vm.copyR, vm.breadcrumbsPath.join('/'));
// } else {
// vm.breadcrumbsPath.unshift('');
// removeFromBreadcrumbs = vm.breadcrumbsPath.indexOf(dir) + 1;
// vm.breadcrumbsPath = vm.breadcrumbsPath.splice(0,removeFromBreadcrumbs);
// vm.breadcrumbs = vm.breadcrumbs.splice(0,removeFromBreadcrumbs);
// vm.Sites.contents(vm.copyR, vm.breadcrumbsPath.join('/'));
// if (dir === 'root') {
// vm.breadcrumbs = ['root'];
// vm.breadcrumbsPath = [];
// }
// }
};
vm.getDirectories = function (dir) {
@ -455,13 +476,12 @@ app.controller('websiteCtrl', [
} else {
vm.breadcrumbs.push(dir);
vm.breadcrumbsPath.push(dir);
vm.breadcrumbsPath.unshift('');
vm.Sites.contents(vm.copyR, vm.breadcrumbsPath.join('/'));
}
};
vm.removeAllFiles = function (r, opts) {
console.log(r);
console.log(opts);
opts = {
path: '/',
confirm: true
@ -523,26 +543,26 @@ app.controller('websiteCtrl', [
if (vm.breadcrumbsPath.join('/') === '' && vm.breadcrumbs.join('/') === '') {
sharePath = '/';
} else {
sharePath = vm.breadcrumbsPath.join('/');
sharePath = cleanPathQuery(vm.breadcrumbsPath.join('/'));
sharePath = sharePath + '/';
}
// FIXME: shareMode may be broken
opts = {
sharePath: sharePath,
shareMode: ''
shareMode: vm.copiedShareMode
};
vm.Shares.invite(r, opts);
};
vm.createNewFolder = function (r) {
if (r.shareAccess.path !== '/') {
vm.breadcrumbsPath;
vm.breadcrumbs;
if (vm.breadcrumbsPath.length === 0) {
vm.breadcrumbsPath = vm.strictPath.split('/');
vm.breadcrumbsPath.pop();
vm.breadcrumbsPath.push(vm.folderName);
} else {
r.folderName = vm.breadcrumbsPath + vm.folderName;
vm.breadcrumbsPath.push(vm.folderName);
r.folderName = vm.breadcrumbsPath.join('/');
r.folderName = r.folderName + '/';
}
} else {
if (vm.breadcrumbsPath.join('/') === '') {
@ -557,8 +577,8 @@ app.controller('websiteCtrl', [
var pkg = Auth.oauth3.pkg('www@daplie.com');
//analyzeFile(r.newFile, r);
if (r.folderName !== '' && r.folderName !== undefined) {
r.uploadPath = r.folderName;
debugger;
cleanPathQuery(r.folderName);
r.uploadPath = vm.cleanedPath;
} else {
if (!Array.isArray(vm.breadcrumbsPath)) {
debugger;
@ -572,7 +592,7 @@ app.controller('websiteCtrl', [
}
if (vm.breadcrumbsPath.join('/') === '') {
if (vm.breadcrumbsPath.length === 0) {
debugger
debugger;
} else {
r.uploadPath = '/';
}
@ -624,9 +644,6 @@ debugger
//, sub: r.sub
, path: r.sharePath
}).then(function (result) {
if (result.data.length === 0) {
vm.notSharedMessage = "Currently not shared...";
}
vm.displaySpinner = 'hidden';
console.log('list shares result:');
console.log(result);
@ -640,7 +657,7 @@ debugger
return;
}
vm.Shares.remove(r, s);
}
};
vm.Shares.remove = function (r, s) {
console.log('Shares.remove');
@ -674,15 +691,11 @@ debugger
vm.listSites = function () {
var sites = [];
return $q.all(Auth.sessions.map(function (session) {
return Auth.get(session).then(function (oauth3) {
var pkg = oauth3.pkg('www@daplie.com');
return pkg.list().then(function (result) {
var _sites = result.data;
if (Array.isArray(_sites)) {
sites = _sites.concat(sites);
return;
@ -758,18 +771,16 @@ debugger
}
});
$scope.$watch('selectedAccess', function (selectedAccess) {
if (selectedAccess.length !== 0) {
vm.accessLevelArry = [];
vm.prettyAccessArray = [];
selectedAccess.forEach(function(letter) {
vm.prettyAccessArray.push(letter.name);
vm.accessLevelArry.push(letter.value);
});
vm.prettyShareMode = vm.prettyAccessArray.join(", ");
vm.copiedShareMode = vm.accessLevelArry.join(",");
}
});
vm.getSharedAccess = function (access) {
vm.accessLevelArry = [];
vm.prettyAccessArray = [];
access.forEach(function(letter) {
vm.prettyAccessArray.push(letter.name);
vm.accessLevelArry.push(letter.value);
});
vm.prettyShareMode = vm.prettyAccessArray.join(", ");
vm.copiedShareMode = vm.accessLevelArry.join(",");
};
$scope.selectedAccess = [];
$scope.accessLevel = [{ name: 'Read', value: 'r' }, { name: 'Write', value: 'w' }, { name: 'Invite', value: 'x' }];

2
templates/applications.html

@ -0,0 +1,2 @@
<h1>applications</h1>
<span class="text-danger">ps... you need a controller, nothing is hooked up.</span>

2
templates/devices.html

@ -0,0 +1,2 @@
<h1>DEVICES</h1>
<span class="text-danger">ps... you need a controller, nothing is hooked up.</span>

17
templates/partials/menu.html

@ -1,10 +1,23 @@
<div class="side-menu">
<!-- <div class="button-container" ui-sref-active="active">
<div class="button-container" ui-sref-active="active">
<a ui-sref=".home">
<button type="button" name="button" class="btn btn-default side-menu-button"><i class="fa fa-home fa-2x" aria-hidden="true"></i></button>
<p class="button-title">Home</p>
</a>
</div>
<div class="button-container" ui-sref-active="active">
<a ui-sref=".devices">
<button type="button" name="button" class="btn btn-default side-menu-button"><i class="fa fa-desktop fa-2x" aria-hidden="true"></i></button>
<p class="button-title">devices</p>
</a>
</div>
<div class="button-container" ui-sref-active="active">
<a ui-sref=".applications">
<button type="button" name="button" class="btn btn-default side-menu-button"><i class="fa fa-th-large fa-2x" aria-hidden="true"></i></button>
<p class="button-title">apps</p>
</a>
</div>
<!--
<div class="button-container" ui-sref-active="active">
<a ui-sref=".bolt">
<button type="button" name="button" class="btn btn-default side-menu-button"><i class="fa fa-bolt fa-2x" aria-hidden="true"></i></button>
@ -37,7 +50,7 @@
</div> -->
<div class="button-container" ui-sref-active="active">
<a ui-sref=".website">
<button type="button" name="button" class="btn btn-default side-menu-button"><i class="fa fa-globe fa-2x" aria-hidden="true"></i></button>
<button type="button" name="button" class="btn btn-default side-menu-button"><i class="fa fa-folder fa-2x" aria-hidden="true"></i></button>
<p class="button-title">Shares</p>
</a>
</div>

6
templates/website.html

@ -1,9 +1,9 @@
<div class="container">
<div class="row">
<h1>Verify Website</h1>
<h1>Create Share</h1>
<button class="btn btn-primary btn-lg" title="..." data-toggle="modal" data-target=".create-website-modal">
Create Website
Create Share
</button>
<hr>
@ -207,7 +207,7 @@
ng-model="selectedAccess"
options="c.name for c in accessLevel"
change="selected()"
ng-change="showShareBtn = true">
ng-change="showShareBtn = true; vm.getSharedAccess(selectedAccess)">
</multiselect>
</div>
</div>

6
templates/widgets/filetree.html

@ -25,11 +25,11 @@
<div class="folder-actions">
<hr>
<div class="">
<button ng-if="r.shareAccess.write" type="button" name="button" class="btn btn-block btn-primary" ng-click="vm.showUploadFilesContainer = true; vm.autoPopulateFolderName(); vm.showUploadFolderContainer = false">Upload files</button>
<button type="button" name="button" class="btn btn-block btn-primary" ng-click="vm.showUploadFilesContainer = true; vm.autoPopulateFolderName(); vm.showUploadFolderContainer = false">Upload files</button>
<button ng-if="r.shareAccess.invite" type="button" name="button" class="btn btn-block btn-primary" ng-click="vm.showAction('invite');">Share folder</button>
<ul class="ls-none folder-actions-list">
<li ng-if="r.shareAccess.write" ng-hide="vm.showFolderAction"><span><i class="fa fa-upload cp"></i> <a ng-click="vm.showUploadFilesContainer = true; vm.autoPopulateFolderName(); vm.showUploadFolderContainer = false;" class="cp">Upload files</a></span></li>
<li ng-if="r.shareAccess.write"><span><i class="fa fa-folder cp"></i> <a ng-click="vm.cleanPath(); vm.showUploadFolderContainer = true; vm.showFileUploadBtn = false;" class="cp">New folder</a></span></li>
<li ng-hide="vm.showFolderAction"><span><i class="fa fa-upload cp"></i> <a ng-click="vm.showUploadFilesContainer = true; vm.autoPopulateFolderName(); vm.showUploadFolderContainer = false;" class="cp">Upload files</a></span></li>
<li><span><i class="fa fa-folder cp"></i> <a ng-click="vm.cleanPath(); vm.showUploadFolderContainer = true; vm.showFileUploadBtn = false;" class="cp">New folder</a></span></li>
<li ng-hide="vm.showUploadButton" ng-if="r.shareAccess.write"><span><i class="fa fa-trash cp"></i> <a ng-click="vm.triggerDeleteFolder(vm.currentFolder, r)" data="{{ vm.currentFolder }}" class="cp">Delete {{ vm.currentFolder | capitalize }} Folder</a></span></li>
</ul>
</div>

Loading…
Cancel
Save