Jack Foltz 2 лет назад
Родитель
Сommit
0a69781891
26 измененных файлов: 143 добавлений и 105 удалений
  1. +1
    -1
      CONTRIBUTING.md
  2. +4
    -4
      app/public/panel/controllers/KeyCtrl.js
  3. +1
    -1
      app/public/panel/shrimpa-panel.js
  4. +0
    -52
      app/public/shimapan/components/UploadComp.js
  5. +1
    -1
      app/public/shrimpa/components/LoginComp.js
  6. +1
    -1
      app/public/shrimpa/components/RegisterComp.js
  7. +55
    -0
      app/public/shrimpa/components/UploadComp.js
  8. +1
    -1
      app/public/shrimpa/shrimpa.js
  9. +2
    -2
      config/default.json
  10. +1
    -1
      config/dev.json
  11. +1
    -1
      config/test.json
  12. +47
    -19
      package-lock.json
  13. +4
    -3
      package.json
  14. +1
    -0
      public/css/form.min.css
  15. +1
    -0
      public/css/home.min.css
  16. +1
    -0
      public/css/index.min.css
  17. +1
    -0
      public/css/panel.min.css
  18. +10
    -8
      public/views/home.html
  19. +2
    -2
      public/views/login.html
  20. +3
    -3
      public/views/panel.html
  21. +2
    -2
      public/views/panel/keys.html
  22. +2
    -2
      public/views/register.html
  23. +0
    -0
      public/views/shrimpa/login-form.html
  24. +0
    -0
      public/views/shrimpa/register-form.html
  25. +0
    -0
      public/views/shrimpa/upload-form.html
  26. +1
    -1
      server.js

+ 1
- 1
CONTRIBUTING.md Просмотреть файл

@@ -1,6 +1,6 @@
# Contributing
### Objectives
Head over to the [projects page](https://github.com/Foltik/Shimapan/projects/). Here you'll find all the current
Head over to the [projects page](https://github.com/Foltik/shrimpa/projects/). Here you'll find all the current
and upcoming objectives of the current project. If you have any ideas or suggestions, add it to the relevant
column in the project page and create an issue to discuss.
### Finding Work


+ 4
- 4
app/public/panel/controllers/KeyCtrl.js Просмотреть файл

@@ -91,20 +91,20 @@ angular.module('KeyCtrl', ['KeySvc', 'AuthSvc']).controller('KeyController', ['$
'curl \\\n' +
' -F key=' + $scope.currKey.key + ' \\\n' +
' -F "file=@$1" \\\n' +
' https://shimapan.rocks/api/upload \\\n' +
' https://shrimpa.rocks/api/upload \\\n' +
' | grep -Po \'"\'"url"\'"\\s*:\\s*"\\K([^"]*)\'\n';
downloadData('text/x-shellscript', 'shimapan.rocks.sh', data);
downloadData('text/x-shellscript', 'shrimpa.rocks.sh', data);
};

$scope.downloadSharex = () => {
const data = {
RequestURL: 'https://shimapan.rocks/api/upload',
RequestURL: 'https://shrimpa.rocks/api/upload',
FileFormName: 'file',
Arguments: {
key: $scope.currKey.key
},
URL: '$json:url$'
};
downloadData('text/json', 'shimapan.rocks.sxcu', JSON.stringify(data));
downloadData('text/json', 'shrimpa.rocks.sxcu', JSON.stringify(data));
};
}]);

app/public/panel/shimapan-panel.js → app/public/panel/shrimpa-panel.js Просмотреть файл

@@ -1,7 +1,7 @@
var angular = require('angular');
var uirouter = require('angular-ui-router');
var chart = require('angular-chart.js');
var app = angular.module('shimapan-panel', ['ui.router', 'AuthSvc', 'KeySvc', 'InviteSvc', 'UserSvc', 'StatSvc', 'KeyCtrl', 'InviteCtrl', 'UserCtrl', 'NavCtrl', 'DashCtrl', 'PanelRoutes']);
var app = angular.module('shrimpa-panel', ['ui.router', 'AuthSvc', 'KeySvc', 'InviteSvc', 'UserSvc', 'StatSvc', 'KeyCtrl', 'InviteCtrl', 'UserCtrl', 'NavCtrl', 'DashCtrl', 'PanelRoutes']);

app.run(['$rootScope', '$state', '$stateParams', function($rootScope, $state, $stateParams) {
$rootScope.$state = $state;

+ 0
- 52
app/public/shimapan/components/UploadComp.js Просмотреть файл

@@ -1,52 +0,0 @@
var angular = require('angular');

angular.module('UploadComp', ['ngFileUpload', 'AuthSvc']).component('uploadComponent', {
templateUrl: '/views/shimapan/upload-form.html',
controller: ['$scope', 'Upload', '$timeout', function ($scope, Upload, $timeout) {
$scope.errToString = function (err) {
if (err === 'maxSize')
return "File too large.";
else
return err;
};

$scope.uploadFiles = function (files, errorFiles) {
$scope.files = $scope.files ? $scope.files.concat(files) : files;
$scope.errorFiles = $scope.errorFiles ? $scope.errorFiles.concat(errorFiles) : errorFiles;

angular.forEach(files, function (file) {
file.upload = Upload.upload({
url: '/api/upload',
method: 'POST',
file: file
});

file.upload.then(
function (response) {
$timeout(function () {
file.result = response.data;
});
},
function (response) {
if (response.status !== 200) {
if (response.status === 401) {
file.$error = "Unauthorized.";
} else if (response.status === 403) {
file.$error = "Forbidden.";
} else {
file.$error = "Unknown error " + response.status;
}
var index = $scope.files.indexOf(file);
$scope.errorFiles.push(file);
$scope.files.splice(index, 1);
}
},
function (evt) {
file.progress = Math.floor(Math.min(100.0, 100 * evt.loaded / evt.total));
}
);
});
};
}],
controllerAs: 'vm'
});

app/public/shimapan/components/LoginComp.js → app/public/shrimpa/components/LoginComp.js Просмотреть файл

@@ -23,4 +23,4 @@ angular.module('LoginComp', ['AuthSvc']).component('loginComponent', {
}
};
}]
});
});

app/public/shimapan/components/RegisterComp.js → app/public/shrimpa/components/RegisterComp.js Просмотреть файл

@@ -1,7 +1,7 @@
var angular = require('angular');

angular.module('RegisterComp', ['AuthSvc']).component('registerComponent', {
templateUrl: '/views/shimapan/register-form.html',
templateUrl: '/views/shrimpa/register-form.html',
controller: ['$scope', '$timeout', 'AuthService', function($scope, $timeout, AuthService) {
$scope.register = function() {
AuthService.register($scope.username, $scope.password, $scope.invite).catch(function() {

+ 55
- 0
app/public/shrimpa/components/UploadComp.js Просмотреть файл

@@ -0,0 +1,55 @@
var angular = require('angular');

angular.module('UploadComp', ['ngFileUpload', 'AuthSvc']).component('uploadComponent', {
templateUrl: '/views/shrimpa/upload-form.html',
controller: ['$scope', 'Upload', '$timeout', function ($scope, Upload, $timeout) {
$scope.errToString = function (err) {
if (err === 'maxSize')
return "File too large.";
else
return err;
};

$scope.uploadFiles = function (files, errorFiles) {
$scope.files = $scope.files ? $scope.files.concat(files) : files;
$scope.errorFiles = $scope.errorFiles ? $scope.errorFiles.concat(errorFiles) : errorFiles;

files.reduce((promise, file) => {
return promise.then(() => new Promise((resolve, reject) => {
file.upload = Upload.upload({
url: '/api/upload',
method: 'POST',
file: file
});

file.upload.then(
function (response) {
resolve();
$timeout(function () {
file.result = response.data;
});
},
function (response) {
if (response.status !== 200) {
if (response.status === 401) {
file.$error = "Unauthorized.";
} else if (response.status === 403) {
file.$error = "Forbidden.";
} else {
file.$error = "Unknown error " + response.status;
}
var index = $scope.files.indexOf(file);
$scope.errorFiles.push(file);
$scope.files.splice(index, 1);
}
},
function (evt) {
file.progress = Math.floor(Math.min(100.0, 100 * evt.loaded / evt.total));
}
);
}));
}, Promise.resolve());
};
}],
controllerAs: 'vm'
});

app/public/shimapan/shimapan.js → app/public/shrimpa/shrimpa.js Просмотреть файл

@@ -1,4 +1,4 @@
var angular = require('angular');
var ngFileUpload = require('ng-file-upload');
var ngclipboard = require('ngclipboard');
var app = angular.module('shimapan', ['ngFileUpload', 'ngclipboard', 'UploadComp', 'RegisterComp', 'LoginComp']);
var app = angular.module('shrimpa', ['ngFileUpload', 'ngclipboard', 'UploadComp', 'RegisterComp', 'LoginComp']);

+ 2
- 2
config/default.json Просмотреть файл

@@ -1,12 +1,12 @@
{
"Server": {
"port": 4433,
"hostname": "https://shimapan.rocks",
"hostname": "https://shrimpa.rocks",
"tls": true,
"trustProxy": []
},
"Database": {
"host": "mongodb://localhost:27017/shimapan"
"host": "mongodb://localhost:27017/shrimpa"
},
"Upload": {
"path": "uploads",


+ 1
- 1
config/dev.json Просмотреть файл

@@ -6,7 +6,7 @@
"trustProxy": []
},
"Database": {
"host": "mongodb://localhost:27017/shimapan-dev"
"host": "mongodb://localhost:27017/shrimpa-dev"
},
"Upload": {
"path": "uploads-dev"


+ 1
- 1
config/test.json Просмотреть файл

@@ -6,7 +6,7 @@
"trustProxy": []
},
"Database": {
"host": "mongodb://localhost:27017/shimapan-test"
"host": "mongodb://localhost:27017/shrimpa-test"
},
"Upload": {
"path": "uploads-test"


+ 47
- 19
package-lock.json Просмотреть файл

@@ -1,5 +1,5 @@
{
"name": "shimapan",
"name": "shrimpa",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
@@ -310,6 +310,7 @@
"resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
"integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
"dev": true,
"optional": true,
"requires": {
"kind-of": "^3.0.2",
"longest": "^1.0.1",
@@ -2574,7 +2575,7 @@
},
"duplexer": {
"version": "0.1.1",
"resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
"integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
"dev": true
},
@@ -3635,7 +3636,8 @@
},
"ansi-regex": {
"version": "2.1.1",
"bundled": true
"bundled": true,
"optional": true
},
"aproba": {
"version": "1.2.0",
@@ -3653,11 +3655,13 @@
},
"balanced-match": {
"version": "1.0.0",
"bundled": true
"bundled": true,
"optional": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -3670,15 +3674,18 @@
},
"code-point-at": {
"version": "1.1.0",
"bundled": true
"bundled": true,
"optional": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true
"bundled": true,
"optional": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true
"bundled": true,
"optional": true
},
"core-util-is": {
"version": "1.0.2",
@@ -3781,7 +3788,8 @@
},
"inherits": {
"version": "2.0.3",
"bundled": true
"bundled": true,
"optional": true
},
"ini": {
"version": "1.3.5",
@@ -3791,6 +3799,7 @@
"is-fullwidth-code-point": {
"version": "1.0.0",
"bundled": true,
"optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@@ -3803,17 +3812,20 @@
"minimatch": {
"version": "3.0.4",
"bundled": true,
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minimist": {
"version": "0.0.8",
"bundled": true
"bundled": true,
"optional": true
},
"minipass": {
"version": "2.2.4",
"bundled": true,
"optional": true,
"requires": {
"safe-buffer": "^5.1.1",
"yallist": "^3.0.0"
@@ -3830,6 +3842,7 @@
"mkdirp": {
"version": "0.5.1",
"bundled": true,
"optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -3902,7 +3915,8 @@
},
"number-is-nan": {
"version": "1.0.1",
"bundled": true
"bundled": true,
"optional": true
},
"object-assign": {
"version": "4.1.1",
@@ -3912,6 +3926,7 @@
"once": {
"version": "1.4.0",
"bundled": true,
"optional": true,
"requires": {
"wrappy": "1"
}
@@ -3987,7 +4002,8 @@
},
"safe-buffer": {
"version": "5.1.1",
"bundled": true
"bundled": true,
"optional": true
},
"safer-buffer": {
"version": "2.1.2",
@@ -4017,6 +4033,7 @@
"string-width": {
"version": "1.0.2",
"bundled": true,
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -4034,6 +4051,7 @@
"strip-ansi": {
"version": "3.0.1",
"bundled": true,
"optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@@ -4072,11 +4090,13 @@
},
"wrappy": {
"version": "1.0.2",
"bundled": true
"bundled": true,
"optional": true
},
"yallist": {
"version": "3.0.2",
"bundled": true
"bundled": true,
"optional": true
}
}
},
@@ -6020,7 +6040,8 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
"integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
"dev": true
"dev": true,
"optional": true
},
"loose-envify": {
"version": "1.4.0",
@@ -6105,7 +6126,7 @@
},
"map-stream": {
"version": "0.1.0",
"resolved": "http://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
"resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
"integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=",
"dev": true
},
@@ -6903,6 +6924,11 @@
}
}
},
"natives": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz",
"integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA=="
},
"negotiator": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
@@ -10935,6 +10961,7 @@
"version": "0.1.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"kind-of": "^3.0.2",
"longest": "^1.0.1",
@@ -11877,7 +11904,8 @@
"longest": {
"version": "1.0.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"lru-cache": {
"version": "4.1.3",
@@ -13445,7 +13473,7 @@
},
"pause-stream": {
"version": "0.0.11",
"resolved": "http://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
"resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
"integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
"dev": true,
"requires": {
@@ -14434,7 +14462,7 @@
},
"split": {
"version": "0.3.3",
"resolved": "http://registry.npmjs.org/split/-/split-0.3.3.tgz",
"resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
"integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=",
"dev": true,
"requires": {
@@ -14534,7 +14562,7 @@
},
"stream-combiner": {
"version": "0.0.4",
"resolved": "http://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
"resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
"integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
"dev": true,
"requires": {


+ 4
- 3
package.json Просмотреть файл

@@ -1,5 +1,5 @@
{
"name": "shimapan",
"name": "shrimpa",
"version": "1.0.0",
"dependencies": {
"angular": "^1.7.5",
@@ -31,7 +31,8 @@
"passport-local-mongoose": "^5.0.1",
"sanitizer": "^0.1.3",
"type-is": "^1.6.16",
"vinyl-source-stream": "^2.0.0"
"vinyl-source-stream": "^2.0.0",
"natives": "^1.1.6"
},
"description": "A simple file sharing website.",
"main": "index.js",
@@ -69,6 +70,6 @@
},
"repository": {
"type": "git",
"url": "https://github.com/Foltik/shimapan"
"url": "https://github.com/Foltik/shrimpa"
}
}

+ 1
- 0
public/css/form.min.css Просмотреть файл

@@ -0,0 +1 @@
body{background-color:#000;margin:0;color:#d3d3d3;font-family:Roboto,sans-serif}::-moz-focus-inner{border:0}.form{margin:50px auto;width:300px}.form h3{background-color:#000;border:2px solid #2a9fd6;border-radius:5px 5px 0 0;color:#eee;font-size:18px;padding:20px;margin:0;text-align:center;text-transform:uppercase}fieldset{border:2px solid #2a9fd6;border-top:none;margin:0;background:#000;border-radius:0 0 5px 5px;padding:20px;position:relative}fieldset:before{border-bottom:2px solid #2a9fd6;border-right:2px solid #2a9fd6;background-color:#000;content:"";width:8px;height:8px;left:50%;margin:-4px 0 0 -4px;position:absolute;top:0;transform:rotate(45deg) translateY(-2px)}.form input{display:block;font-size:14px;background:#000;color:#d3d3d3;border:1px solid #999;width:226px;padding:12px 12px;margin:auto auto 5px}button{background:#000;border:2px solid #2a9fd6;border-radius:4px;color:#d3d3d3;cursor:pointer;display:block;padding:10px 30px;margin:20px auto auto;transition:background .25s,border-color .25s}button:hover{background:#2a9fd6;color:#fff;text-decoration:none;outline:0}button.shake{background:#f66;border-color:#f66;color:#fff;animation:shake .82s cubic-bezier(.36,.07,.19,.97) both;transform:translate3d(0,0,0);backface-visibility:hidden;perspective:1000px}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}

+ 1
- 0
public/css/home.min.css Просмотреть файл

@@ -0,0 +1 @@
body{background-color:#060606;color:#d3d3d3;font-family:Roboto,sans-serif;font-size:14px;height:100%;line-height:20px;margin:0;padding-top:20px;padding-bottom:40px}#container{max-width:700px;text-align:center;display:flex;flex-direction:column;margin:auto}a{color:#0078b4;text-decoration:none;transition:color .25s}a:active,a:focus,a:hover{color:#005580}h1{font-size:72px;font-weight:700}.upload{margin:60px 0}.btn{font-family:Roboto,sans-serif;background:#000;border:2px solid #2a9fd6;border-radius:4px;color:#d3d3d3;cursor:pointer;display:inline-block;font-size:24px;padding:28px 48px;transition:background-color .25s,width .5s,height .5s}.btn:hover{background-color:#2a9fd6;color:#fff;text-decoration:none;outline:0}:focus{outline:0}::-moz-focus-inner{border:0}#upload-filelist{list-style-type:none;margin:20px 50px;padding:0;text-align:left}#upload-filelist>li{margin-top:5px;overflow:hidden;display:flex}.list-name{margin-top:6px;overflow:hidden;max-width:70%;text-overflow:ellipsis;white-space:nowrap}.list-url{font-family:'Roboto Mono',monospace;margin-left:auto}.list-progress{margin:10px 30px 10px 30px;flex-grow:2}.list-url a{vertical-align:super;color:#5c5c5c}.list-url a:hover{color:#d3d3d3}.list-url-clipboard-btn{border:2px solid #222;height:32px;margin-left:5px;border-radius:3px;cursor:pointer;background-color:#5c5c5c;transition:background-color .25s}.list-url-clipboard-btn:focus,.list-url-clipboard-btn:hover{background-color:#ababab;outline:0}.list-err{font-family:'Roboto Mono',monospace;margin-left:auto;color:#f66;vertical-align:super}nav a,nav>ul{color:#32809f;list-style:none;margin:0;padding:0;text-align:center}nav>ul>li{display:inline-block;margin:0;padding:0;cursor:default}nav>ul>li:after{content:"|";margin:0 8px;opacity:.3}nav>ul>li:last-child:after{content:"";margin:0}

+ 1
- 0
public/css/index.min.css Просмотреть файл

@@ -0,0 +1 @@
*{margin:0}body{background:#000}a{position:absolute;top:40px;left:48%;opacity:.1;height:30px;width:30px;z-index:100;cursor:default}a img{width:30px;height:30px}canvas{position:absolute;top:0;left:0}video{position:fixed;top:50%;left:50%;min-width:100%;min-height:100%;z-index:-100;transform:translateX(-50%) translateY(-50%);background-size:cover;transition:1s opacity}#buffer{display:none}

+ 1
- 0
public/css/panel.min.css Просмотреть файл

@@ -0,0 +1 @@
@import url(https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css);@import url(https://fonts.googleapis.com/css?family=Roboto);@import url(https://fonts.googleapis.com/css?family=Roboto+Mono);.sidebar-title{grid-row-start:1;grid-row-end:1;place-self:center;cursor:pointer;display:flex;justify-content:center;align-items:center;width:200px;height:60px}.sidebar-title span{color:#2a9fd6;font-size:20px;text-transform:uppercase;letter-spacing:6px}.sidebar{grid-row-start:2;grid-row-end:2}.nav li{cursor:pointer;display:flex;align-items:center}.nav li a{flex:1;outline:0;padding:20px 0 20px;margin-left:20px;font-size:14px;color:#666;text-decoration:none}.nav li span{background:#0d0d0d;width:35px;height:35px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-left:20px}.nav-icon{font:14px fontawesome;color:#fff}.nav li a:hover{color:#fff}.nav li a.active{color:#fff}::-moz-focus-inner{border:0}.dash-row{display:flex;flex-wrap:nowrap;align-items:center}.dash-card{background:#020202;border-radius:4px;padding:30px;margin:5px;flex-grow:1;display:flex;align-items:center;justify-content:center;border:1px solid #2a9fd6}#dash-singlestats{flex-grow:1}.dash-card.dash-card-singlestat{justify-content:space-between}.dash-stat{align-self:flex-start;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start}.dash-stat-title{font-size:18px}.dash-stat-value{font-size:48px}.dash-stat-icon{color:#2a9fd6}.dash-card.dash-card-graph{width:100px}.keys{display:flex;flex-direction:row;flex-wrap:wrap}.key{background:#000;border:3px solid #2a9fd6;border-radius:5px;box-shadow:5px 5px 10px #000;margin:20px;width:300px;height:100px;cursor:pointer;display:flex;justify-content:flex-start;flex-direction:row;transition:box-shadow .2s;overflow:hidden}.key:hover{box-shadow:0 0 10px #eee}.key i{font-size:48px;margin:auto 0 auto 20px}.key span{font-size:16px;vertical-align:center;margin:auto;-moz-user-select:none;user-select:none}.key-name{color:#2a9fd6;font-family:'Roboto Mono',monospace}pre{overflow:auto;line-height:1.7em;font-family:'Roboto Mono',monospace;border:1px solid #666;border-radius:4px;display:block;padding:10px;font-size:14px;margin:10px 0;background:#222;color:#2a9fd6}#createKey{max-width:920px}.btn-del{text-transform:uppercase;border:2px solid #f66;color:#ccc}.btn-del:hover{background-color:#f66}#identifier{font-size:14px;background:#222;color:#d3d3d3;border:1px solid #666;border-radius:4px;padding:10px;margin:10px 0}th{text-transform:uppercase;font-weight:700;padding:10px}td{padding:10px}td input{vertical-align:middle}td label{margin-bottom:2px;padding-left:3px}em{text-transform:uppercase;font-weight:700}*,:after,:before{margin:0;padding:0;box-sizing:border-box}body{font:12px Roboto,sans-serif;color:#eee;background:#020202}.container{display:grid;grid-template-columns:240px auto;grid-template-rows:60px auto;width:100vw;height:100vh}.view{grid-row-start:2;grid-column-start:2;background:#121212;padding:20px;border-left:1px solid #2a9fd6;border-top:1px solid #2a9fd6}.inner{display:flex;flex-direction:column}.modal,.modal-box{z-index:900}.modal-sandbox{position:fixed;width:100%;height:100%;top:0;left:0;background:0 0}.modal{display:none;position:fixed;width:100%;height:100%;left:0;top:0;background:#000;background:rgba(0,0,0,.8);overflow:auto}.modal-box{position:relative;width:80%;max-width:700px;margin:60px auto;animation-name:modalbox;animation-duration:.3s;animation-timing-function:ease}.modal-header{border:2px solid #2a9fd6;border-radius:8px 8px 0 0;display:flex;flex-direction:row;justify-content:space-between;padding:20px 40px;background:#000;color:#fff;overflow:hidden}.modal-body{border:2px solid #2a9fd6;border-top:none;background:#000;padding:30px}.modal-footer{display:flex;justify-content:flex-end;border:2px solid #2a9fd6;border-radius:0 0 8px 8px;border-top:none;background:#000;padding:20px}.close-modal{text-align:right;font-size:24px;cursor:pointer}@keyframes modalbox{0%{top:-250px;opacity:0}100%{top:0;opacity:1}}button{margin-left:20px;color:#d3d3d3;background:#000;border:2px solid #2a9fd6;border-radius:5px;padding:10px;cursor:pointer;transition:background-color .25s}button:hover{color:#fff;background-color:#2a9fd6;text-decoration:none;outline:0}::-moz-focus-inner{outline:0}

+ 10
- 8
public/views/home.html Просмотреть файл

@@ -1,21 +1,23 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>Shimapan</title>
<meta charset="utf-8"/>
<base href="/"/>
<link rel="stylesheet" href="/css/home.css"/>
<title>Shrimpa</title>

<link rel="stylesheet" href="/css/home.min.css"/>
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet"/>
<link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet"/>
<script src="/js/shimapan.bundle.js"></script>

<script src="/js/shrimpa.bundle.js"></script>
</head>
<body ng-app="shimapan">
<body ng-app="shrimpa">
<div id="container">
<h1>Shimapan~</h1>
<h1>Shrimpa~</h1>
<upload-component></upload-component>
<nav>
<ul>
<li><a href="/">Shimapan</a></li>
<li><a href="/">Shrimpa</a></li>
<li><a href="/panel">Panel</a></li>
<li><a href="">Tools</a></li>
<li><a href="https://github.com/Foltik/shimapan">GitHub</a></li>
@@ -24,4 +26,4 @@
</nav>
</div>
</body>
</html>
</html>

+ 2
- 2
public/views/login.html Просмотреть файл

@@ -6,9 +6,9 @@

<link href="/css/form.css" type="text/css" rel="stylesheet"/>

<script src="/js/shimapan.bundle.js"></script>
<script src="/js/shrimpa.bundle.js"></script>
</head>
<body ng-app="shimapan">
<body ng-app="shrimpa">
<div id="container">
<login-component></login-component>
</div>


+ 3
- 3
public/views/panel.html Просмотреть файл

@@ -9,9 +9,9 @@
integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
<script src="/js/shimapan.bundle.js"></script>
</head>
<body ng-app="shimapan-panel">
<body ng-app="shrimpa-panel">
<div class="container">
<div class="sidebar-title" ng-click="$state.go('home')"><span>Shimapan</span></div>
<div class="sidebar-title" ng-click="$state.go('home')"><span>Shrimpa</span></div>
<div class="sidebar" ng-controller="NavController">
<ul class="nav">
<li>
@@ -48,4 +48,4 @@
</div>
</div>
</body>
</html>
</html>

+ 2
- 2
public/views/panel/keys.html Просмотреть файл

@@ -21,7 +21,7 @@
<pre>{{currKey.key}}</pre>
<br/>
<p>This key can be used with any 3rd party program or service to upload to and manage your account
with Shimapan.</p>
with Shrimpa.</p>
<br/>
<p>Download the <a href="" ng-click="downloadBash()">bash script</a> to upload files from the command line.</p>
<br/>
@@ -75,4 +75,4 @@
</div>
</div>
</div>
</div>
</div>

+ 2
- 2
public/views/register.html Просмотреть файл

@@ -6,9 +6,9 @@

<link href="/css/form.css" type="text/css" rel="stylesheet"/>

<script src="/js/shimapan.bundle.js"></script>
<script src="/js/shrimpa.bundle.js"></script>
</head>
<body ng-app="shimapan">
<body ng-app="shrimpa">
<div id="container">
<register-component></register-component>
</div>


public/views/shimapan/login-form.html → public/views/shrimpa/login-form.html Просмотреть файл


public/views/shimapan/register-form.html → public/views/shrimpa/register-form.html Просмотреть файл


public/views/shimapan/upload-form.html → public/views/shrimpa/upload-form.html Просмотреть файл


+ 1
- 1
server.js Просмотреть файл

@@ -42,7 +42,7 @@ app.use(session({
cookie: {
//secure: true,
httpOnly: true,
//domain: 'shimapan.rocks',
//domain: 'shrimpa.rocks',
maxAge: 1000 * 60 * 60
}
}));


Загрузка…
Отмена
Сохранить