- Provide translation readiness on the Kibana web-facing UI
- Delivered in a phased approach
Phase 1
[ | |
{ | |
"_id": "foo1", | |
"_type": "visualization", | |
"_source": { | |
"title": "foo1", | |
"visState": "{\"title\":\"New Visualization\",\"type\":\"histogram\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"scale\":\"linear\",\"mode\":\"stacked\",\"times\":[],\"addTimeMarker\":false,\"defaultYExtents\":false,\"setYExtents\":false,\"yAxis\":{}},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"auto\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}}],\"listeners\":{}}", | |
"uiStateJSON": "{}", | |
"description": "", | |
"version": 1, |
[ | |
{ | |
"_id": "foo", | |
"_type": "dashboard", | |
"_source": { | |
"title": "foo", | |
"hits": 0, | |
"description": "", | |
"panelsJSON": "[{\"col\":3,\"id\":\"foo1\",\"row\":1,\"size_x\":2,\"size_y\":2,\"type\":\"visualization\"},{\"col\":5,\"id\":\"foo2\",\"row\":1,\"size_x\":2,\"size_y\":2,\"type\":\"visualization\"},{\"col\":9,\"id\":\"foo3\",\"row\":1,\"size_x\":2,\"size_y\":2,\"type\":\"visualization\"},{\"col\":11,\"id\":\"foo4\",\"row\":1,\"size_x\":2,\"size_y\":2,\"type\":\"visualization\"},{\"col\":1,\"id\":\"foo5\",\"row\":1,\"size_x\":2,\"size_y\":2,\"type\":\"visualization\"},{\"col\":7,\"id\":\"foo6\",\"row\":1,\"size_x\":2,\"size_y\":2,\"type\":\"visualization\"},{\"col\":4,\"id\":\"foo7\",\"row\":6,\"size_x\":3,\"size_y\":2,\"type\":\"visualization\"},{\"col\":1,\"id\":\"foo8\",\"row\":6,\"size_x\":3,\"size_y\":2,\"type\":\"visualization\"},{\"col\":10,\"id\":\"foo9\",\"row\":8,\"size_x\":3,\"size_y\":2,\"type\":\"visualization\"},{\"col\":10,\"id\":\"foo10\",\"row\":6,\"size_x\": |
dev: { | |
options: { | |
directory: resolve(directory, 'dev'), | |
plugins: [{ | |
name: 'ingest-geoip', | |
path: 'file:///Users/matt/Code/elasticsearch/plugins/ingest-geoip/build/distributions/ingest-geoip-5.0.0-SNAPSHOT.zip' | |
}], | |
config: { | |
path: { | |
data: dataDir |
~>> esvm ingest | |
Mar 2, 2016 1:58 PM INFO cluster Installing plugins | |
Mar 2, 2016 1:58 PM INFO cluster Installing "ingest-geoip" plugin | |
Mar 2, 2016 1:58 PM INFO cluster Starting 1 nodes | |
Mar 2, 2016 1:58 PM INFO Berzerker node version[5.0.0-SNAPSHOT], pid[51523], build[517d1bd/2016-03-02T16:39:43.956Z] | |
Mar 2, 2016 1:58 PM INFO Berzerker node initializing ... | |
Mar 2, 2016 1:58 PM INFO Berzerker plugins modules [lang-mustache, lang-painless, ingest-grok, reindex, lang-expression, lang-groovy], plugins [ingest-geoip] | |
Mar 2, 2016 1:58 PM INFO Berzerker env using [1] data paths, mounts [[/ (/dev/disk1)]], net usable_space [396.5gb], net total_space [464.7gb], spins? [unknown], types [hfs] | |
Mar 2, 2016 1:58 PM INFO Berzerker env heap size [990.7mb], compressed ordinary object pointers [true] | |
Mar 2, 2016 1:58 PM WARN Berzerker plugins plugin ingest-geoip, failed to invoke custom onModule method |
INFO ? ? MapperParsingException[Failed to parse mapping [config]: The [string] type is removed in 5.0. You should now use either a [text] or [… | |
INFO ? ? at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService$1.execute(MetaDataCreateIndexService.java:334) | |
INFO ? ? at org.elasticsearch.cluster.ClusterStateUpdateTask.execute(ClusterStateUpdateTask.java:45) | |
INFO ? ? at org.elasticsearch.cluster.service.InternalClusterService.runTasksForExecutor(InternalClusterService.java:463) | |
INFO ? ? at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:774) | |
INFO ? ? at org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor$Fi |
kibana>> esvm --branch=master -f | |
Mar 21, 2016 2:57 PM INFO cluster Downloading & installing from "master" branch. | |
/Users/matt/.nvm/versions/node/v4.3.2/lib/node_modules/esvm/node_modules/progress/lib/node-progress.js:131 | |
complete = Array(completeLength + 1).join(this.chars.complete); | |
^ | |
RangeError: Invalid array length | |
at ProgressBar.render (/Users/matt/.nvm/versions/node/v4.3.2/lib/node_modules/esvm/node_modules/progress/lib/node-progress.js:131:14) | |
at ProgressBar.tick (/Users/matt/.nvm/versions/node/v4.3.2/lib/node_modules/esvm/node_modules/progress/lib/node-progress.js:86:8) | |
at EventEmitter.wrapper (/Users/matt/.nvm/versions/node/v4.3.2/lib/node_modules/esvm/node_modules/lodash/lodash.js:4405:19) |
import _ from 'lodash'; | |
import path from 'path'; | |
export default function transformer(file, api) { | |
const j = api.jscodeshift; | |
const {expression, statement, statements} = j.template; | |
let relativeToPublic = path.relative(path.dirname(file.path), '/Users/matt/Code/kibana/src/ui/public'); | |
if (relativeToPublic === '') { | |
relativeToPublic = '.'; |
{ | |
"management_title": "administración", | |
"management_version": "versión" | |
} |
function getFilesRecursivelyFromTopDir(topDir, translationFiles, languageList) { | |
return readdir(topDir) | |
.then((topDirectoryListing) => { | |
return Promise.map(topDirectoryListing, (listing) => { | |
const fullPath = path.join(topDir, listing); | |
return stat(fullPath).then((stats) => { | |
if (stats.isDirectory()) { | |
console.log('** FullPath **: ' + fullPath + ' is a directory'); | |
getTranslationDetailsFromDirectory(fullPath, translationFiles, languageList); | |
} else { |