All frontend related files are gone, since we have a separate frontend engine now.

このコミットが含まれているのは:
テクニカル諏訪子 2018-02-02 18:30:54 +09:00
コミット e907e57ab8
33個のファイルの変更0行の追加1388行の削除

ファイルの表示

@ -17,24 +17,6 @@ window.Vue = require('vue');
// Vue.component('example', require('./components/Example.vue'));
// Global.
Vue.component('global-menu', require('./components/Global/Menu.vue'));
// Homepage.
Vue.component('new-items', require('./components/Home/New.vue'));
Vue.component('hot-items', require('./components/Home/Hot.vue'));
// Entry page.
Vue.component('entry-title', require('./components/Entry/Title.vue'));
Vue.component('entry-screenshots', require('./components/Entry/Screenshots.vue'));
Vue.component('entry-description', require('./components/Entry/Description.vue'));
Vue.component('entry-changelog', require('./components/Entry/Changelog.vue'));
// Category page.
Vue.component('category-entry', require('./components/Category/All.vue'));
Vue.component('category-entry-downloads', require('./components/Category/Downloads.vue'));
Vue.component('category-entry-views', require('./components/Category/Views.vue'));
new Vue({
el: '#app'
});

ファイルの表示

@ -1,131 +0,0 @@
<template>
<div>
<div v-for="e in entries">
<div class="panel panel-default">
<div class="panel-heading">
<a :href="'/entry/' + e.fid">{{ e.title }} {{ e.version }}</a> by
<span v-for="o in owners">
<span v-if="o.fid === e.fid">
<a :href="'/profile/' + o.uid"><span :style="o.name_colour">{{ o.showname }}</span></a>&nbsp;
</span>
</span>
</div>
<div class="panel-body">
<div class="container">
<div class="row">
<img :src="'/assets/store/' + e.fid + '/screens/1.png'" height="100px" />
<br /><br />
Submitted on {{ e.submit_date }}
<span v-if="e.ld !== 0">
, last updated on {{ e.last_date }}
</span>
<br />
{{ e.downloads }} downloads
<br />
{{ e.views }} views
<br /><br />
{{ e.description }}
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import moment from 'moment';
export default {
name: 'category-entry',
props: [
'cid',
'page',
'limit',
],
data: function () {
return {
id: this.cid,
from: this.page,
to: this.limit,
entries: [],
owners: [],
groupCol: [],
}
},
created: function () {
// TODO: show all to users with approval permissions only.
// For other users, use /api/rpc/file/getfilespageapproved instead.
axios.get('/api/rpc/user/getgroupcolours').then(res => {
res.data.forEach(cb => {
this.groupCol.push({
'id': cb.id,
'name': cb.name,
'male': cb.colour_m,
'female': cb.colour_f,
'unknown': cb.colour_u,
});
});
});
axios.get('/api/rpc/file/getfilespageall/' + this.id + '/' + this.from + '/' + this.to).then(res => {
res.data.forEach(cb => {
axios.get('/api/rpc/owner/getownersoffile/' + cb.id).then(res => {
res.data.forEach(db => {
var showName = '';
var showCol = '';
if (db.display_name !== '') {
showName = db.display_name;
}
else {
showName = db.username;
}
if (db.name_colour !== '') {
showCol = db.name_colour;
}
else {
this.groupCol.forEach(re => {
if (re.id === db.perm_id) {
if (db.gender === 1) {
showCol = re.male;
}
else if (db.gender === 2) {
showCol = re.female;
}
else {
showCol = re.unknown;
}
}
});
}
this.owners.push({
'fid': cb.id,
'uid': db.user_id,
'showname': showName,
'username': db.username,
'display_name': db.display_name,
'avatar': db.avatar,
'gender': db.gender,
'name_colour': showCol,
});
});
});
this.entries.push({
'fid': cb.id,
'title': cb.title,
'version': cb.version,
'description': cb.description,
'submit_date': moment.unix(cb.submit_date).format("YYYY/MM/DD"),
'ld': cb.last_date,
'last_date': moment.unix(cb.last_date).format("YYYY/MM/DD"),
'views': cb.views,
'downloads': cb.downloads,
});
});
});
}
}
</script>

ファイルの表示

@ -1,129 +0,0 @@
<template>
<div>
<div v-for="e in entries">
<div class="panel panel-default">
<div class="panel-heading">
<a :href="'/entry/' + e.fid">{{ e.title }} {{ e.version }}</a> by
<span v-for="o in owners">
<span v-if="o.fid === e.fid">
<a :href="'/profile/' + o.uid"><span :style="o.name_colour">{{ o.showname }}</span></a>&nbsp;
</span>
</span>
</div>
<div class="panel-body">
<div class="container">
<div class="row">
<img :src="'/assets/store/' + e.fid + '/screens/1.png'" height="100px" />
<br /><br />
Submitted on {{ e.submit_date }}
<span v-if="e.ld !== 0">
, last updated on {{ e.last_date }}
</span>
<br />
{{ e.downloads }} downloads
<br />
{{ e.views }} views
<br /><br />
{{ e.description }}
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import moment from 'moment';
export default {
name: 'category-entry-downloads',
props: [
'cid',
'page',
'limit',
],
data: function () {
return {
id: this.cid,
from: this.page,
to: this.limit,
entries: [],
owners: [],
groupCol: [],
}
},
created: function () {
axios.get('/api/rpc/user/getgroupcolours').then(res => {
res.data.forEach(cb => {
this.groupCol.push({
'id': cb.id,
'name': cb.name,
'male': cb.colour_m,
'female': cb.colour_f,
'unknown': cb.colour_u,
});
});
});
axios.get('/api/rpc/file/getfilespagepopulardownload/' + this.id + '/' + this.from + '/' + this.to).then(res => {
res.data.forEach(cb => {
axios.get('/api/rpc/owner/getownersoffile/' + cb.id).then(res => {
res.data.forEach(db => {
var showName = '';
var showCol = '';
if (db.display_name !== '') {
showName = db.display_name;
}
else {
showName = db.username;
}
if (db.name_colour !== '') {
showCol = db.name_colour;
}
else {
this.groupCol.forEach(re => {
if (re.id === db.perm_id) {
if (db.gender === 1) {
showCol = re.male;
}
else if (db.gender === 2) {
showCol = re.female;
}
else {
showCol = re.unknown;
}
}
});
}
this.owners.push({
'fid': cb.id,
'uid': db.user_id,
'showname': showName,
'username': db.username,
'display_name': db.display_name,
'avatar': db.avatar,
'gender': db.gender,
'name_colour': showCol,
});
});
});
this.entries.push({
'fid': cb.id,
'title': cb.title,
'version': cb.version,
'description': cb.description,
'submit_date': moment.unix(cb.submit_date).format("YYYY/MM/DD"),
'ld': cb.last_date,
'last_date': moment.unix(cb.last_date).format("YYYY/MM/DD"),
'views': cb.views,
'downloads': cb.downloads,
});
});
});
}
}
</script>

ファイルの表示

@ -1,129 +0,0 @@
<template>
<div>
<div v-for="e in entries">
<div class="panel panel-default">
<div class="panel-heading">
<a :href="'/entry/' + e.fid">{{ e.title }} {{ e.version }}</a> by
<span v-for="o in owners">
<span v-if="o.fid === e.fid">
<a :href="'/profile/' + o.uid"><span :style="o.name_colour">{{ o.showname }}</span></a>&nbsp;
</span>
</span>
</div>
<div class="panel-body">
<div class="container">
<div class="row">
<img :src="'/assets/store/' + e.fid + '/screens/1.png'" height="100px" />
<br /><br />
Submitted on {{ e.submit_date }}
<span v-if="e.ld !== 0">
, last updated on {{ e.last_date }}
</span>
<br />
{{ e.downloads }} downloads
<br />
{{ e.views }} views
<br /><br />
{{ e.description }}
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import moment from 'moment';
export default {
name: 'category-entry-views',
props: [
'cid',
'page',
'limit',
],
data: function () {
return {
id: this.cid,
from: this.page,
to: this.limit,
entries: [],
owners: [],
groupCol: [],
}
},
created: function () {
axios.get('/api/rpc/user/getgroupcolours').then(res => {
res.data.forEach(cb => {
this.groupCol.push({
'id': cb.id,
'name': cb.name,
'male': cb.colour_m,
'female': cb.colour_f,
'unknown': cb.colour_u,
});
});
});
axios.get('/api/rpc/file/getfilespagepopularview/' + this.id + '/' + this.from + '/' + this.to).then(res => {
res.data.forEach(cb => {
axios.get('/api/rpc/owner/getownersoffile/' + cb.id).then(res => {
res.data.forEach(db => {
var showName = '';
var showCol = '';
if (db.display_name !== '') {
showName = db.display_name;
}
else {
showName = db.username;
}
if (db.name_colour !== '') {
showCol = db.name_colour;
}
else {
this.groupCol.forEach(re => {
if (re.id === db.perm_id) {
if (db.gender === 1) {
showCol = re.male;
}
else if (db.gender === 2) {
showCol = re.female;
}
else {
showCol = re.unknown;
}
}
});
}
this.owners.push({
'fid': cb.id,
'uid': db.user_id,
'showname': showName,
'username': db.username,
'display_name': db.display_name,
'avatar': db.avatar,
'gender': db.gender,
'name_colour': showCol,
});
});
});
this.entries.push({
'fid': cb.id,
'title': cb.title,
'version': cb.version,
'description': cb.description,
'submit_date': moment.unix(cb.submit_date).format("YYYY/MM/DD"),
'ld': cb.last_date,
'last_date': moment.unix(cb.last_date).format("YYYY/MM/DD"),
'views': cb.views,
'downloads': cb.downloads,
});
});
});
}
}
</script>

ファイルの表示

@ -1,44 +0,0 @@
<template>
<div class="panel panel-default">
<div class="panel-heading">
<!--@lang('entry.changelog', ['version' => '2.0'])-->
Changes in {{ version }}
</div>
<div class="panel-body">
<div class="container">
<div class="row">
<div class="col-md-12">
{{ changelog }}
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'entry-changelog',
props: ['fid'],
data: function () {
return {
id: this.fid,
changelog: '',
version: ''
}
},
created: function () {
axios.get('/api/rpc/file/getfilechangelog/' + this.id).then(data => {
this.changelog = data.data[0].changelog;
this.version = data.data[0].version;
});
}
}
</script>
<style>
.col {
text-align: center;
}
</style>

ファイルの表示

@ -1,45 +0,0 @@
<template>
<div class="panel panel-default">
<div class="panel-heading">
@lang('entry.description')
Description
</div>
<div class="panel-body">
<div class="container">
<div class="row">
<div class="col-md-12">
{{ description }}
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'entry-description',
props: [
'fid',
'translations'
],
data: function () {
return {
id: this.fid,
description: ''
}
},
created: function () {
axios.get('/api/rpc/file/getfiledescription/' + this.id).then(data => {
this.description = data.data[0].description;
})
}
}
</script>
<style>
.col {
text-align: center;
}
</style>

ファイルの表示

@ -1,73 +0,0 @@
<template>
<div class="panel panel-default">
<div class="panel-heading">
<!--@lang('entry.changelog', ['version' => '2.0'])-->
Changes in {{ version }}
</div>
<div class="panel-body">
<div class="container">
<div class="row">
<div class="col-md-12">
{{ changelog }}
</div>
</div>
</div>
</div>
</div>
</template>
<script>
// https://adamwathan.me/2016/01/04/composing-reusable-modal-dialogs-with-vuejs/
export default {
name: 'entry-changelog',
props: [
'fid',
'show'
],
data: function () {
return {
id: this.fid,
title: '',
version: '',
notice: '',
files: []
}
},
created: function () {
axios.get('/api/rpc/file/getfile/' + this.id).then(res => {
this.title = res.data[0].title;
this.version = res.data[0].version;
if (res.data[0].warningnote !== '') this.notice = res.data[0].warningnote;
});
this.files.push(
{
'filename': 'test1.carc',
'filesize': '1000 TiB'
},
{
'filename': 'test2.carc',
'filesize': '20 GiB'
}
);
},
methods: {
close: function () {
this.$emit('close');
}
},
mounted: function () {
document.addEventListener("keydown", e => {
if (this.show && e.keyCode == 27) { // TODO: keyCode is deprecated; use alternative!
this.close();
}
});
}
}
</script>
<style>
.col {
text-align: center;
}
</style>

ファイルの表示

@ -1,27 +0,0 @@
<template>
<div class="panel panel-default">
<div class="panel-heading">
<!--@lang('entry.screenshots')-->
Screenshots
</div>
<div class="panel-body">
<div class="container">
<div class="row">
<div class="col-md-12">
(IMG)
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'entry-screenshots',
data: function () {
return {}
}
}
</script>

ファイルの表示

@ -1,176 +0,0 @@
<template>
<div class="panel panel-default">
<div class="panel-heading">
<!--@lang('entry.title', ['name' => 'Some Mod 2.0', 'user' => 'Someuser'])-->
{{ title }} {{ version }} by
<span v-for="(o, i) in owners">
<a :href="'/profile/' + o.uid"><span :style="o.name_colour">{{ o.showname }}</span></a>
<span v-if="i == owners.length - 2">
, and
</span>
<span v-else-if="i == owners.length - 1">
</span>
<span v-else>
,
</span>
</span>
</div>
<div class="panel-body">
<div class="container">
<div class="row">
<div class="col-md-2">
<button type="button" class="btn btn-primary btn-lg">
<!--@lang('entry.download')-->
Download
</button>
</div>
<div class="col-md-2">
<button type="button" class="btn btn-primary">
<!--@lang('entry.update')-->
Update
</button>
</div>
<div class="col-md-2">
<button type="button" class="btn btn-danger">
<!--@lang('entry.remove')-->
Remove/Restore
</button>
</div>
<div class="col-md-2">
<button type="button" class="btn btn-warning">
<!--@lang('entry.report')-->
Report
</button>
</div>
</div>
<div class="row">
<div class="col-md-2">
<!--@lang('entry.views', ['count' => '1000'])-->
Views: {{ views }}
</div>
<div class="col-md-2">
<!--@lang('entry.downloads', ['count' => '1000'])-->
Downloads: {{ downloads }}
</div>
<div class="col-md-2">
<!--@lang('entry.submitted', ['datetime' => '1945/05/05'])-->
Submitted: {{ submit_date }}
</div>
<div v-if="last_date !== 0" class="col-md-2">
<!--@lang('entry.updated', ['datetime' => '2050/12/01'])-->
Updated: {{ last_date }}
</div>
<div class="col-md-2">
<!--@lang('entry.filesize', ['size' => '1 TB'])-->
Filesize: 1 TB
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import moment from 'moment';
export default {
name: 'entry-title',
props: ['fid'],
data: function () {
return {
owners: [],
id: this.fid,
uid: 0,
title: '',
version: '',
username: '',
avatar: '',
gender: '',
perm_id: '',
display_name: '',
name_colour: '',
views: 0,
downloads: 0,
submit_date: 0,
last_date: 0,
showName: '',
showCol: '',
groupCol: [],
}
},
created: function () {
axios.get('/api/rpc/user/getgroupcolours').then(res => {
res.data.forEach(cb => {
this.groupCol.push({
'id': cb.id,
'name': cb.name,
'male': cb.colour_m,
'female': cb.colour_f,
'unknown': cb.colour_u,
});
});
})
axios.get('/api/rpc/file/getfiletitle/' + this.id).then(data => {
this.uid = data.data[0].user_id;
this.title = data.data[0].title;
this.version = data.data[0].version;
this.views = data.data[0].views;
this.downloads = data.data[0].downloads;
this.submit_date = moment.unix(data.data[0].submit_date).format("YYYY/MM/DD");
if (data.data[0].last_date !== 0) {
this.last_date = moment.unix(data.data[0].last_date).format("YYYY/MM/DD");
}
data.data.forEach(cb => {
if (cb.display_name !== '') {
this.showName = cb.display_name;
}
else {
this.showName = cb.username;
}
if (cb.name_colour !== '') {
this.showCol = cb.name_colour;
}
else {
this.groupCol.forEach(re => {
if (re.id === cb.perm_id) {
if (cb.gender === 1) {
this.showCol = re.male;
}
else if (cb.gender === 2) {
this.showCol = re.female;
}
else {
this.showCol = re.unknown;
}
}
});
}
this.owners.push({
'uid': cb.user_id,
'showname': this.showName,
'username': cb.username,
'display_name': cb.display_name,
'avatar': cb.avatar,
'gender': cb.gender,
'name_colour': this.showCol,
});
});
this.username = data.data[0].username;
this.display_name = data.data[0].display_name;
this.gender = data.data[0].gender;
this.avatar = data.data[0].avatar;
this.name_colour = data.data[0].name_colour;
});
}
}
</script>
<style>
.col {
text-align: center;
}
</style>

ファイルの表示

@ -1,67 +0,0 @@
<template>
<span>
<nav class="navbar navbar-default navbar-static-top">
<div class="container">
<div class="navbar-header">
<!-- Collapsed Hamburger -->
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#app-navbar-collapse" aria-expanded="false">
<span class="sr-only">Toggle Navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!-- Branding Image -->
<a class="navbar-brand" href="/">
Hack Store
</a>
</div>
<div class="collapse navbar-collapse" id="app-navbar-collapse">
<!-- Left Side Of Navbar -->
<ul class="nav navbar-nav">
&nbsp;
</ul>
<!-- Right Side Of Navbar -->
<ul class="nav navbar-nav navbar-right">
<!-- Authentication Links -->
<!-- If logged out -->
<li><a href="/login">Login</a></li>
<li><a href="/register">Register</a></li>
<!-- Else -->
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true">
Username <span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="/upload">Upload</a></li>
<li>
<a href="/logout"
onclick="event.preventDefault();
document.getElementById('logout-form').submit();">
Logout
</a>
<form id="logout-form" action="/logout" method="POST" style="display: none;">
<!--{{ csrf_field() }}-->
</form>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
</span>
</template>
<script>
export default {
name: 'global-menu',
mounted() {
console.log('Component mounted.')
}
}
</script>

ファイルの表示

@ -1,23 +0,0 @@
<template>
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Example Component</div>
<div class="panel-body">
I'm an example component!
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
mounted() {
console.log('Component mounted.')
}
}
</script>

ファイルの表示

@ -1,49 +0,0 @@
<template>
<div class="container">
<div class="row">
<span v-for="item in items">
<div class="col-md-2">
<a :href="'/entry/' + item.id">
<img :src="'/assets/store/' + item.id + '/screens/1.png'" width="100px" height="100px" />
<br />
{{ item.title }}
</a>
<br />
<a href="/profile/0">
Name
</a>
<br />
Downloads: {{ item.downloads }}
</div>
</span>
</div>
</div>
</template>
<script>
export default {
name: 'hot-items',
data: function () {
return {
items: []
}
},
created: function () {
axios.get('/api/rpc/file/gethotfiles').then(data => {
data.data.forEach(cb => {
this.items.push({
'id': cb.id,
'title': cb.title,
'downloads': cb.downloads
});
});
})
}
}
</script>
<style>
.col {
text-align: center;
}
</style>

ファイルの表示

@ -1,50 +0,0 @@
<template>
<div class="container">
<div class="row">
<span v-for="item in items">
<div class="col-md-2">
<a :href="'/entry/' + item.id">
<img :src="'/assets/store/' + item.id + '/screens/1.png'" width="100px" height="100px" />
<br />
{{ item.title }}
</a>
<br />
<a href="/profile/0">
Name
</a>
<br />
{{ item.submit_date }}
</div>
</span>
</div>
</div>
</template>
<script>
import moment from 'moment';
export default {
name: 'new-items',
data: function () {
return {
items: []
}
},
created: function () {
axios.get('/api/rpc/file/getnewfiles').then(data => {
data.data.forEach(cb => {
this.items.push({
'id': cb.id,
'title': cb.title,
'submit_date': moment.unix(cb.submit_date).format("YYYY/MM/DD")
});
});
})
}
}
</script>
<style>
.col {
text-align: center;
}
</style>

ファイルの表示

@ -1,23 +0,0 @@
<template>
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Example Component</div>
<div class="panel-body">
I'm an example component!
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
mounted() {
console.log('Component mounted.')
}
}
</script>

ファイルの表示

@ -1,19 +0,0 @@
<?php
return [
'title' => ":name by :user",
'screenshots' => "Screenshots",
'download' => "Download",
'update' => "Update",
'remove' => "Remove",
'approve' => "Approve",
'disaprove' => "Disapprove",
'report' => "Report",
'views' => "Views: :count",
'downloads' => "Downloads: :count",
'submitted' => "Submitted :datetime",
'updated' => "Updated :datetime",
'filesize' => "Filesize: :size",
'description' => "Description",
'changelog' => "Changes in :version",
];

ファイルの表示

@ -1,7 +0,0 @@
<?php
return [
'newitems' => "Latest uploads",
'hotitems' => "Most popular",
'downloads' => "Downloads:",
];

ファイルの表示

@ -1,8 +0,0 @@
<?php
return [
'login' => "Login",
'logout' => "Logout",
'register' => "Register",
'upload' => "Upload",
];

ファイルの表示

@ -1,5 +0,0 @@
<?php
return [
'upload' => "Upload",
];

ファイルの表示

@ -1,19 +0,0 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Authentication Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used during authentication for various
| messages that we need to display to the user. You are free to modify
| these language lines according to your application's requirements.
|
*/
'failed' => 'These credentials do not match our records.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
];

ファイルの表示

@ -1,19 +0,0 @@
<?php
return [
'title' => ":user の :name",
'screenshots' => "スクリーンショット",
'download' => "ダウンロード",
'update' => "アップデート",
'remove' => "削除",
'approve' => "認可",
'disaprove' => "不認可",
'report' => "報告",
'views' => "現職回数: :count 回",
'downloads' => "ダウンロード: :count 回",
'submitted' => ":datetime に公開",
'updated' => ":datetime に編集",
'filesize' => "ファイルの大きさ: :size",
'description' => "説明",
'changelog' => ":version の改正",
];

ファイルの表示

@ -1,7 +0,0 @@
<?php
return [
'newitems' => "最近のアップロード",
'hotitems' => "一番人気なファイル",
'downloads' => "ダウンロード",
];

ファイルの表示

@ -1,8 +0,0 @@
<?php
return [
'login' => "ログイン",
'logout' => "ログアウト",
'register' => "登録",
'upload' => "アップロード",
];

ファイルの表示

@ -1,19 +0,0 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Pagination Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the paginator library to build
| the simple pagination links. You are free to change them to anything
| you want to customize your views to better match your application.
|
*/
'previous' => '&laquo; 戻り',
'next' => '次 &raquo;',
];

ファイルの表示

@ -1,22 +0,0 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Password Reset Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are the default lines which match reasons
| that are given by the password broker for a password update attempt
| has failed, such as for an invalid token or invalid new password.
|
*/
'password' => 'Passwords must be at least six characters and match the confirmation.',
'reset' => 'Your password has been reset!',
'sent' => 'We have e-mailed your password reset link!',
'token' => 'This password reset token is invalid.',
'user' => "We can't find a user with that e-mail address.",
];

ファイルの表示

@ -1,5 +0,0 @@
<?php
return [
'upload' => "アップロード",
];

ファイルの表示

@ -1,121 +0,0 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Validation Language Lines
|--------------------------------------------------------------------------
|
| The following language lines contain the default error messages used by
| the validator class. Some of these rules have multiple versions such
| as the size rules. Feel free to tweak each of these messages here.
|
*/
'accepted' => 'The :attribute must be accepted.',
'active_url' => 'The :attribute is not a valid URL.',
'after' => 'The :attribute must be a date after :date.',
'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
'alpha' => 'The :attribute may only contain letters.',
'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.',
'alpha_num' => 'The :attribute may only contain letters and numbers.',
'array' => 'The :attribute must be an array.',
'before' => 'The :attribute must be a date before :date.',
'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
'between' => [
'numeric' => 'The :attribute must be between :min and :max.',
'file' => 'The :attribute must be between :min and :max kilobytes.',
'string' => 'The :attribute must be between :min and :max characters.',
'array' => 'The :attribute must have between :min and :max items.',
],
'boolean' => 'The :attribute field must be true or false.',
'confirmed' => 'The :attribute confirmation does not match.',
'date' => 'The :attribute is not a valid date.',
'date_format' => 'The :attribute does not match the format :format.',
'different' => 'The :attribute and :other must be different.',
'digits' => 'The :attribute must be :digits digits.',
'digits_between' => 'The :attribute must be between :min and :max digits.',
'dimensions' => 'The :attribute has invalid image dimensions.',
'distinct' => 'The :attribute field has a duplicate value.',
'email' => 'The :attribute must be a valid email address.',
'exists' => 'The selected :attribute is invalid.',
'file' => 'The :attribute must be a file.',
'filled' => 'The :attribute field must have a value.',
'image' => 'The :attribute must be an image.',
'in' => 'The selected :attribute is invalid.',
'in_array' => 'The :attribute field does not exist in :other.',
'integer' => 'The :attribute must be an integer.',
'ip' => 'The :attribute must be a valid IP address.',
'ipv4' => 'The :attribute must be a valid IPv4 address.',
'ipv6' => 'The :attribute must be a valid IPv6 address.',
'json' => 'The :attribute must be a valid JSON string.',
'max' => [
'numeric' => 'The :attribute may not be greater than :max.',
'file' => 'The :attribute may not be greater than :max kilobytes.',
'string' => 'The :attribute may not be greater than :max characters.',
'array' => 'The :attribute may not have more than :max items.',
],
'mimes' => 'The :attribute must be a file of type: :values.',
'mimetypes' => 'The :attribute must be a file of type: :values.',
'min' => [
'numeric' => 'The :attribute must be at least :min.',
'file' => 'The :attribute must be at least :min kilobytes.',
'string' => 'The :attribute must be at least :min characters.',
'array' => 'The :attribute must have at least :min items.',
],
'not_in' => 'The selected :attribute is invalid.',
'numeric' => 'The :attribute must be a number.',
'present' => 'The :attribute field must be present.',
'regex' => 'The :attribute format is invalid.',
'required' => 'The :attribute field is required.',
'required_if' => 'The :attribute field is required when :other is :value.',
'required_unless' => 'The :attribute field is required unless :other is in :values.',
'required_with' => 'The :attribute field is required when :values is present.',
'required_with_all' => 'The :attribute field is required when :values is present.',
'required_without' => 'The :attribute field is required when :values is not present.',
'required_without_all' => 'The :attribute field is required when none of :values are present.',
'same' => 'The :attribute and :other must match.',
'size' => [
'numeric' => 'The :attribute must be :size.',
'file' => 'The :attribute must be :size kilobytes.',
'string' => 'The :attribute must be :size characters.',
'array' => 'The :attribute must contain :size items.',
],
'string' => 'The :attribute must be a string.',
'timezone' => 'The :attribute must be a valid zone.',
'unique' => 'The :attribute has already been taken.',
'uploaded' => 'The :attribute failed to upload.',
'url' => 'The :attribute format is invalid.',
/*
|--------------------------------------------------------------------------
| Custom Validation Language Lines
|--------------------------------------------------------------------------
|
| Here you may specify custom validation messages for attributes using the
| convention "attribute.rule" to name the lines. This makes it quick to
| specify a specific custom language line for a given attribute rule.
|
*/
'custom' => [
'attribute-name' => [
'rule-name' => 'custom-message',
],
],
/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap attribute place-holders
| with something more reader friendly such as E-Mail Address instead
| of "email". This simply helps us make messages a little cleaner.
|
*/
'attributes' => [],
];

ファイルの表示

@ -1,11 +0,0 @@
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-12">
<div><category-entry cid="{{ $cat_id }}" page="0" limit="15" /></div>
</div>
</div>
</div>
@endsection

ファイルの表示

@ -1,14 +0,0 @@
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-12">
<div><entry-title fid="{{ $file_id }}" /></div>
<div><entry-screenshots fid="{{ $file_id }}" /></div>
<div><entry-description fid="{{ $file_id }}" /></div>
<div><entry-changelog fid="{{ $file_id }}" /></div>
</div>
</div>
</div>
@endsection

ファイルの表示

@ -1,24 +0,0 @@
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">@lang('homepage.newitems')</div>
<div class="panel-body">
<new-items />
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">@lang('homepage.hotitems')</div>
<div class="panel-body">
<hot-items />
</div>
</div>
</div>
</div>
</div>
@endsection

ファイルの表示

@ -1,28 +0,0 @@
<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<!-- Styles -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body>
<div id="app">
<div><global-menu /></div>
@yield('content')
</div>
<!-- Scripts -->
<script src="/js/lang.js"></script>
<script src="{{ asset('js/app.js') }}"></script>
<script>console.log(i18n.entry)</script>
</body>
</html>

ファイルの表示

@ -1,23 +0,0 @@
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Dashboard</div>
<div class="panel-body">
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
You are logged in!
</div>
</div>
</div>
</div>
</div>
@endsection

ファイルの表示

@ -1,23 +0,0 @@
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Dashboard</div>
<div class="panel-body">
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
You are logged in!
</div>
</div>
</div>
</div>
</div>
@endsection

ファイルの表示

@ -1,22 +0,0 @@
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">@lang('upload.upload')</div>
<div class="panel-body">
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
Uploader.
</div>
</div>
</div>
</div>
</div>
@endsection