зеркало из https://github.com/docker/kitematic.git
Folder widget and recommended images.
This commit is contained in:
Родитель
9845d86d15
Коммит
79b9cf3bc1
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 734 B |
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 1.6 KiB |
Двоичные данные
images/loading.png
Двоичные данные
images/loading.png
Двоичный файл не отображается.
До Ширина: | Высота: | Размер: 572 B После Ширина: | Высота: | Размер: 807 B |
Двоичные данные
images/loading@2x.png
Двоичные данные
images/loading@2x.png
Двоичный файл не отображается.
До Ширина: | Высота: | Размер: 1.4 KiB После Ширина: | Высота: | Размер: 1.7 KiB |
|
@ -425,7 +425,7 @@ var ContainerDetails = React.createClass({
|
||||||
} else {
|
} else {
|
||||||
if (this.state.page === this.PAGE_HOME) {
|
if (this.state.page === this.PAGE_HOME) {
|
||||||
body = (
|
body = (
|
||||||
<ContainerHome ports={this.state.ports} defaultPort={this.state.defaultPort} logs={logs} />
|
<ContainerHome ports={this.state.ports} defaultPort={this.state.defaultPort} logs={logs} container={this.props.container} />
|
||||||
);
|
);
|
||||||
} else if (this.state.page === this.PAGE_LOGS) {
|
} else if (this.state.page === this.PAGE_LOGS) {
|
||||||
body = (
|
body = (
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
|
var _ = require('underscore');
|
||||||
var $ = require('jquery');
|
var $ = require('jquery');
|
||||||
var React = require('react/addons');
|
var React = require('react/addons');
|
||||||
|
var RetinaImage = require('react-retina-image');
|
||||||
|
var path = require('path');
|
||||||
|
|
||||||
var ContainerHome = React.createClass({
|
var ContainerHome = React.createClass({
|
||||||
handleResize: function () {
|
handleResize: function () {
|
||||||
|
@ -42,6 +45,21 @@ var ContainerHome = React.createClass({
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
console.log(this.props.container.Volumes);
|
||||||
|
var folders = _.map(this.props.container.Volumes, function (val, key) {
|
||||||
|
var firstFolder = key.split(path.sep)[1];
|
||||||
|
if (!val || val.indexOf(process.env.HOME) === -1) {
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
return (
|
||||||
|
<div key={key} className="folder">
|
||||||
|
<RetinaImage src="folder.png" />
|
||||||
|
<div className="text">{firstFolder}</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
return (
|
return (
|
||||||
<div className="details-panel home">
|
<div className="details-panel home">
|
||||||
<div className="content">
|
<div className="content">
|
||||||
|
@ -58,7 +76,7 @@ var ContainerHome = React.createClass({
|
||||||
<div className="folders">
|
<div className="folders">
|
||||||
<h4>Edit Files</h4>
|
<h4>Edit Files</h4>
|
||||||
<div className="widget">
|
<div className="widget">
|
||||||
<p>Buncha folders</p>
|
{folders}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -316,18 +316,19 @@ var ContainerStore = assign(EventEmitter.prototype, {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: 'https://kitematic.com/recommended.json',
|
url: 'https://kitematic.com/recommended/recommended.json',
|
||||||
cache: false,
|
cache: false,
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function (res) {
|
success: function (res) {
|
||||||
var recommended = res.recommended;
|
var recommended = res.recommended;
|
||||||
async.map(recommended, function (repository, callback) {
|
async.map(recommended, function (rec, callback) {
|
||||||
$.get('https://registry.hub.docker.com/v1/search?q=' + repository, function (data) {
|
$.get('https://registry.hub.docker.com/v1/search?q=' + rec.repo, function (data) {
|
||||||
console.log(data);
|
console.log(data);
|
||||||
var results = data.results;
|
var results = data.results;
|
||||||
callback(null, _.find(results, function (r) {
|
var result = _.find(results, function (r) {
|
||||||
return r.name === repository;
|
return r.name === rec.repo;
|
||||||
}));
|
});
|
||||||
|
callback(null, _.extend(result, rec));
|
||||||
});
|
});
|
||||||
}, function (err, results) {
|
}, function (err, results) {
|
||||||
_recommended = results.filter(function(r) { return !!r; });
|
_recommended = results.filter(function(r) { return !!r; });
|
||||||
|
|
|
@ -118,6 +118,7 @@ var NewContainer = React.createClass({
|
||||||
return (
|
return (
|
||||||
<div key={r.name} className="image-item">
|
<div key={r.name} className="image-item">
|
||||||
<div className="logo">
|
<div className="logo">
|
||||||
|
<RetinaImage src={'https://kitematic.com/recommended/img/' + r.img}/>
|
||||||
</div>
|
</div>
|
||||||
<div className="card">
|
<div className="card">
|
||||||
<div className="name">
|
<div className="name">
|
||||||
|
|
|
@ -672,9 +672,21 @@
|
||||||
}
|
}
|
||||||
.folders {
|
.folders {
|
||||||
.widget {
|
.widget {
|
||||||
|
padding: 20px 10px;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
border: 1px solid @gray-lightest;
|
border: 1px solid @gray-lightest;
|
||||||
|
display: flex;
|
||||||
|
.folder {
|
||||||
|
width: 100px;
|
||||||
|
img {
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
.text {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче