commit
98ff399ee6
@ -0,0 +1,9 @@
|
||||
node_modules/
|
||||
libs/
|
||||
site/
|
||||
.idea
|
||||
*.cer
|
||||
*.req
|
||||
*.key
|
||||
serial
|
||||
osconsole/config.js
|
@ -0,0 +1,22 @@
|
||||
FROM centos:centos7
|
||||
MAINTAINER Jimmi Dyson <jimmidyson@gmail.com>
|
||||
ENTRYPOINT ["/kuisp"]
|
||||
CMD [ "-p", "9090", \
|
||||
"-c", "/site/osconsole/config.js.tmpl=/site/osconsole/config.js", \
|
||||
"--default-page=/index.html", \
|
||||
"--max-age=24h", \
|
||||
"--compress" ]
|
||||
EXPOSE 9090
|
||||
|
||||
ENV KUISP_VERSION 0.10
|
||||
|
||||
RUN yum install -y tar && \
|
||||
yum clean all && \
|
||||
curl -L https://github.com/jimmidyson/kuisp/releases/download/v${KUISP_VERSION}/kuisp-${KUISP_VERSION}-linux-amd64.tar.gz | \
|
||||
tar xzv
|
||||
|
||||
COPY site /site/
|
||||
RUN chmod 777 /site/osconsole/
|
||||
|
||||
WORKDIR /site/
|
||||
USER nobody
|
@ -0,0 +1,202 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
@ -0,0 +1,61 @@
|
||||
## hawtio-kubernetes [![Circle CI](https://circleci.com/gh/hawtio/hawtio-kubernetes.svg?style=svg)](https://circleci.com/gh/hawtio/hawtio-kubernetes)
|
||||
|
||||
This plugin provides a [Kubernetes](http://kubernetes.io/) console for hawtio
|
||||
|
||||
![controllers tab screenshot](http://fabric8.io/v2/images/controllers.png)
|
||||
|
||||
### Running
|
||||
|
||||
#### Running a release
|
||||
|
||||
If you have a [Kubernetes](http://kubernetes.io/) or [OpenShift](http://www.openshift.org/) environment, the easiest way to try out this console is to just run the app directly in kubernetes via [these instructions](http://fabric8.io/v2/console.html#running-the-console-on-kubernetesopenshift)
|
||||
|
||||
Or you can try running the [fabric8/hawtio-kubernetes docker image](https://registry.hub.docker.com/u/fabric8/hawtio-kubernetes/):
|
||||
|
||||
docker pull fabric8/hawtio-kubernetes
|
||||
docker run -it -p 9090:9090 -e KUBERNETES_SERVICE_HOST=$DOCKER_IP fabric8/hawtio-kubernetes
|
||||
|
||||
Where **DOCKER_IP** is the IP address or host running the kubernetes master.
|
||||
|
||||
#### Running this plugin locally
|
||||
|
||||
First clone the source
|
||||
|
||||
git clone https://github.com/hawtio/hawtio-kubernetes.git
|
||||
cd hawtio-kubernetes
|
||||
|
||||
Next you'll need to [install NodeJS](http://nodejs.org/download/) and then install the default global npm dependencies:
|
||||
|
||||
npm install -g bower gulp slush slush-hawtio-javascript slush-hawtio-typescript typescript
|
||||
|
||||
Then install all local nodejs packages and update bower dependencies via:
|
||||
|
||||
npm install
|
||||
bower update
|
||||
|
||||
Next you need to setup the **KUBERNETES_MASTER** environment variable to point to the kubernetes master you want to run against. e.g.
|
||||
|
||||
export KUBERNETES_MASTER=https://$DOCKER_IP:8443
|
||||
|
||||
Where **DOCKER_IP** is the IP address or host running the kubernetes master.
|
||||
|
||||
If you need to disable OAUTH authentication in development try use **DISABLE_OAUTH**:
|
||||
|
||||
export DISABLE_OAUTH=true
|
||||
|
||||
Then to run the web application:
|
||||
|
||||
gulp
|
||||
|
||||
#### Install the bower package
|
||||
|
||||
`bower install --save hawtio-kubernetes`
|
||||
|
||||
#### Output build to a different directory
|
||||
|
||||
When developing this plugin in a dependent console you can change the output directory where the compiled .js and .css go. Just use the 'out' flag to set a different output directory, for example:
|
||||
|
||||
`gulp watch --out=../fabric8-console/libs/hawtio-kubernetes/dist/`
|
||||
|
||||
Whenever the build completes the compiled .js file will be put into the target directory. Don't forget to first do a `gulp build` without this flag before committing changes!
|
||||
|
@ -0,0 +1,37 @@
|
||||
function Recursion(node){
|
||||
var count=0;
|
||||
for (var key in node) {
|
||||
count++;
|
||||
var value = node[key];
|
||||
delete node[key];
|
||||
//如果node为叶子节点
|
||||
if (key.toString() == '$') {
|
||||
for (var attr in value)
|
||||
node[attr] = value[attr];
|
||||
} else {
|
||||
if (value instanceof Array) {
|
||||
if (value.length > 0) {
|
||||
node["children"] = value;
|
||||
for (var obj in value)
|
||||
Recursion(value[obj]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(count==1)
|
||||
node["children"]=[];
|
||||
}
|
||||
|
||||
function randomString(len) {
|
||||
len = len || 32;
|
||||
var $chars = 'abcdefhijkmnprstwxyz'; // 默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1
|
||||
var maxPos = $chars.length;
|
||||
var pwd = '';
|
||||
for (i = 0; i < len; i++) {
|
||||
pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
|
||||
}
|
||||
return pwd;
|
||||
}
|
||||
|
||||
exports.randomString=randomString;
|
||||
exports.Recursion=Recursion;
|
@ -0,0 +1,213 @@
|
||||
var fs = require('fs'), path = require('path'), util = require('util'), Stream = require('stream').Stream;
|
||||
|
||||
|
||||
|
||||
module.exports = resumable = function(temporaryFolder){
|
||||
var $ = this;
|
||||
$.temporaryFolder = temporaryFolder;
|
||||
$.maxFileSize = null;
|
||||
$.fileParameterName = 'file';
|
||||
|
||||
try {
|
||||
fs.mkdirSync($.temporaryFolder);
|
||||
}catch(e){}
|
||||
|
||||
|
||||
var cleanIdentifier = function(identifier){
|
||||
return identifier.replace(/^0-9A-Za-z_-/img, '');
|
||||
}
|
||||
|
||||
var getChunkFilename = function(chunkNumber, identifier){
|
||||
// Clean up the identifier
|
||||
identifier = cleanIdentifier(identifier);
|
||||
// What would the file name be?
|
||||
return path.join($.temporaryFolder, './resumable-'+identifier+'.'+chunkNumber);
|
||||
}
|
||||
|
||||
var validateRequest = function(chunkNumber, chunkSize, totalSize, identifier, filename, fileSize){
|
||||
// Clean up the identifier
|
||||
identifier = cleanIdentifier(identifier);
|
||||
|
||||
// Check if the request is sane
|
||||
if (chunkNumber==0 || chunkSize==0 || totalSize==0 || identifier.length==0 || filename.length==0) {
|
||||
return 'non_resumable_request';
|
||||
}
|
||||
var numberOfChunks = Math.max(Math.floor(totalSize/(chunkSize*1.0)), 1);
|
||||
if (chunkNumber>numberOfChunks) {
|
||||
return 'invalid_resumable_request1';
|
||||
}
|
||||
|
||||
// Is the file too big?
|
||||
if($.maxFileSize && totalSize>$.maxFileSize) {
|
||||
return 'invalid_resumable_request2';
|
||||
}
|
||||
|
||||
if(typeof(fileSize)!='undefined') {
|
||||
if(chunkNumber<numberOfChunks && fileSize!=chunkSize) {
|
||||
// The chunk in the POST request isn't the correct size
|
||||
return 'invalid_resumable_request3';
|
||||
}
|
||||
if(numberOfChunks>1 && chunkNumber==numberOfChunks && fileSize!=((totalSize%chunkSize)+chunkSize)) {
|
||||
// The chunks in the POST is the last one, and the fil is not the correct size
|
||||
return 'invalid_resumable_request4';
|
||||
}
|
||||
if(numberOfChunks==1 && fileSize!=totalSize) {
|
||||
// The file is only a single chunk, and the data size does not fit
|
||||
return 'invalid_resumable_request5';
|
||||
}
|
||||
}
|
||||
|
||||
return 'valid';
|
||||
}
|
||||
|
||||
//'found', filename, original_filename, identifier
|
||||
//'not_found', null, null, null
|
||||
$.get = function(req, callback){
|
||||
var chunkNumber = req.param('resumableChunkNumber', 0);
|
||||
var chunkSize = req.param('resumableChunkSize', 0);
|
||||
var totalSize = req.param('resumableTotalSize', 0);
|
||||
var identifier = req.param('resumableIdentifier', "");
|
||||
var filename = req.param('resumableFilename', "");
|
||||
|
||||
if(validateRequest(chunkNumber, chunkSize, totalSize, identifier, filename)=='valid') {
|
||||
var chunkFilename = getChunkFilename(chunkNumber, identifier);
|
||||
fs.exists(chunkFilename, function(exists){
|
||||
if(exists){
|
||||
callback('found', chunkFilename, filename, identifier);
|
||||
} else {
|
||||
callback('not_found', chunkFilename, filename, identifier);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
callback('not_found2', chunkFilename, filename, identifier);
|
||||
}
|
||||
}
|
||||
|
||||
//'partly_done', filename, original_filename, identifier
|
||||
//'done', filename, original_filename, identifier
|
||||
//'invalid_resumable_request', null, null, null
|
||||
//'non_resumable_request', null, null, null
|
||||
$.post = function(req, callback){
|
||||
|
||||
var fields = req.body;
|
||||
var files = req.files;
|
||||
|
||||
var chunkNumber = fields['resumableChunkNumber'];
|
||||
var chunkSize = fields['resumableChunkSize'];
|
||||
var totalSize = fields['resumableTotalSize'];
|
||||
var identifier = cleanIdentifier(fields['resumableIdentifier']);
|
||||
var filename = fields['resumableFilename'];
|
||||
|
||||
var original_filename = fields['resumableIdentifier'];
|
||||
|
||||
if(!files[$.fileParameterName] || !files[$.fileParameterName].size) {
|
||||
callback('invalid_resumable_request', null, null, null);
|
||||
return;
|
||||
}
|
||||
var validation = validateRequest(chunkNumber, chunkSize, totalSize, identifier, files[$.fileParameterName].size);
|
||||
if(validation=='valid') {
|
||||
var chunkFilename = getChunkFilename(chunkNumber, identifier);
|
||||
|
||||
// Save the chunk (TODO: OVERWRITE)
|
||||
fs.rename(files[$.fileParameterName].path, chunkFilename, function(){
|
||||
|
||||
// Do we have all the chunks?
|
||||
var currentTestChunk = 1;
|
||||
var numberOfChunks = Math.max(Math.floor(totalSize/(chunkSize*1.0)), 1);
|
||||
var testChunkExists = function(){
|
||||
fs.exists(getChunkFilename(currentTestChunk, identifier), function(exists){
|
||||
if(exists){
|
||||
currentTestChunk++;
|
||||
if(currentTestChunk>numberOfChunks) {
|
||||
callback('done', filename, original_filename, identifier);
|
||||
} else {
|
||||
// Recursion
|
||||
testChunkExists();
|
||||
}
|
||||
} else {
|
||||
callback('partly_done', filename, original_filename, identifier);
|
||||
}
|
||||
});
|
||||
}
|
||||
testChunkExists();
|
||||
});
|
||||
} else {
|
||||
callback(validation, filename, original_filename, identifier);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Pipe chunks directly in to an existsing WritableStream
|
||||
// r.write(identifier, response);
|
||||
// r.write(identifier, response, {end:false});
|
||||
//
|
||||
// var stream = fs.createWriteStream(filename);
|
||||
// r.write(identifier, stream);
|
||||
// stream.on('data', function(data){...});
|
||||
// stream.on('end', function(){...});
|
||||
$.write = function(identifier, writableStream, options) {
|
||||
options = options || {};
|
||||
options.end = (typeof options['end'] == 'undefined' ? true : options['end']);
|
||||
|
||||
// Iterate over each chunk
|
||||
var pipeChunk = function(number) {
|
||||
|
||||
var chunkFilename = getChunkFilename(number, identifier);
|
||||
|
||||
fs.exists(chunkFilename, function(exists) {
|
||||
|
||||
if (exists) {
|
||||
// If the chunk with the current number exists,
|
||||
// then create a ReadStream from the file
|
||||
// and pipe it to the specified writableStream.
|
||||
var sourceStream = fs.createReadStream(chunkFilename);
|
||||
sourceStream.pipe(writableStream, {
|
||||
end: false
|
||||
});
|
||||
sourceStream.on('end', function() {
|
||||
// When the chunk is fully streamed,
|
||||
// jump to the next one
|
||||
pipeChunk(number + 1);
|
||||
});
|
||||
} else {
|
||||
// When all the chunks have been piped, end the stream
|
||||
if (options.end) writableStream.end();
|
||||
if (options.onDone) options.onDone();
|
||||
}
|
||||
});
|
||||
}
|
||||
pipeChunk(1);
|
||||
}
|
||||
|
||||
|
||||
$.clean = function(identifier, options) {
|
||||
options = options || {};
|
||||
|
||||
// Iterate over each chunk
|
||||
var pipeChunkRm = function(number) {
|
||||
|
||||
var chunkFilename = getChunkFilename(number, identifier);
|
||||
|
||||
//console.log('removing pipeChunkRm ', number, 'chunkFilename', chunkFilename);
|
||||
fs.exists(chunkFilename, function(exists) {
|
||||
if (exists) {
|
||||
|
||||
console.log('exist removing ', chunkFilename);
|
||||
fs.unlink(chunkFilename, function(err) {
|
||||
if (err && options.onError) options.onError(err);
|
||||
});
|
||||
|
||||
pipeChunkRm(number + 1);
|
||||
|
||||
} else {
|
||||
|
||||
if (options.onDone) options.onDone();
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
pipeChunkRm(1);
|
||||
}
|
||||
|
||||
return $;
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,216 @@
|
||||
/* 样式重置 */
|
||||
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{ margin:0; padding:0;}
|
||||
body,table,input,textarea,select,button { font-family: "微软雅黑","宋体"; font-size:12px;line-height:1.5; background:#fff;}
|
||||
div,img,tr,td,table{ border:0;}
|
||||
table,tr,td{border:0;cellspacing:0; cellpadding:0;}
|
||||
ol,ul,li{ list-style-type:none}
|
||||
a:link,a:visited{color:#7f7f7f;text-decoration:none;}
|
||||
a:hover,a:active{color:#000;}
|
||||
.fl{ float:left;}
|
||||
.fr{ float:right;}
|
||||
.cl{ clear:both; overflow:hidden;}
|
||||
|
||||
/* 数据页面 */
|
||||
.data_container{
|
||||
width:100%;
|
||||
margin:0 auto;
|
||||
}
|
||||
.data_heaer{
|
||||
height:66px;
|
||||
width:100%;
|
||||
background-color:#3499db;
|
||||
text-align:center;
|
||||
}
|
||||
.data_heaer h2{
|
||||
font-size:30px;
|
||||
font-weight:300;
|
||||
color:#fff;
|
||||
line-height:66px;
|
||||
}
|
||||
.data_content{
|
||||
width:1280px;
|
||||
height:838px;
|
||||
margin:0 auto;
|
||||
background-color:#fff;
|
||||
border:1px solid #e0dede;
|
||||
border-top:none;
|
||||
}
|
||||
.data_leftside{
|
||||
width:612px;
|
||||
border-right:1px solid #e0dede;
|
||||
}
|
||||
.data_h3{
|
||||
width:100%;
|
||||
text-align:center;
|
||||
height:50px;
|
||||
font-size:18px;
|
||||
color:#444;
|
||||
line-height:50px;
|
||||
}
|
||||
.data_leftside_files{
|
||||
border-right:1px solid #e0dede;
|
||||
border-bottom:1px solid #e0dede;
|
||||
height:710px;
|
||||
overflow :auto;
|
||||
}
|
||||
.data_leftside_files input{
|
||||
margin-top:15px;
|
||||
width:15px;
|
||||
height:15px;
|
||||
}
|
||||
.data_leftside_files li{
|
||||
height:40px;
|
||||
line-height:40px;
|
||||
border-bottom:1px solid #e0dede;
|
||||
padding:0 10px;
|
||||
}
|
||||
.data_leftside_files li.data_title{
|
||||
width:210px; height:36px;
|
||||
line-height:36px;
|
||||
text-align:center;
|
||||
background-color:#e9f3fb;
|
||||
border:none;
|
||||
overflow:hidden;
|
||||
text-overflow:ellipsis;
|
||||
-o-text-overflow:ellipsis;
|
||||
white-space:nowrap;
|
||||
}
|
||||
.date_label{
|
||||
display:block;
|
||||
width:168px;
|
||||
overflow:hidden;
|
||||
text-overflow:ellipsis;
|
||||
-o-text-overflow:ellipsis;
|
||||
white-space:nowrap;
|
||||
}
|
||||
.data_leftside_shu{
|
||||
border-right:none;
|
||||
}
|
||||
.data_leftside_shu li{
|
||||
border-bottom:none;
|
||||
}
|
||||
.data_conbar{ width:149px;
|
||||
height:834px;
|
||||
border-right:1px solid #e0dede;
|
||||
border-left:1px solid #e0dede;
|
||||
}
|
||||
.date_btns{
|
||||
width:260px;
|
||||
margin:20px auto;
|
||||
}
|
||||
.date_btns_w{
|
||||
width:390px;
|
||||
}
|
||||
.date_btns button{
|
||||
margin:10px 20px;
|
||||
}
|
||||
.data_btn{
|
||||
border:none;
|
||||
width:108px;
|
||||
height:35px;
|
||||
line-height:35px;
|
||||
text-align:center;
|
||||
background-color:#3499db;
|
||||
color:#fff;
|
||||
font-size:14px;
|
||||
-webkit-border-radius:5px;
|
||||
-moz-border-radius:5px;
|
||||
-o-border-radius:5px;
|
||||
border-radius:5px;
|
||||
}
|
||||
.data_btn:hover{
|
||||
background-color:#2989da;
|
||||
}
|
||||
.data_rightside{
|
||||
width:667px;
|
||||
}
|
||||
.data_rightside_w{
|
||||
width:407px;
|
||||
}
|
||||
.data_leftside_files li.data_title_w{
|
||||
width:183px;
|
||||
}
|
||||
.date_label_w{
|
||||
width:150px;
|
||||
}
|
||||
.data_leftside_shu li{
|
||||
border-bottom:none;
|
||||
}
|
||||
|
||||
a.data_file_btn{ display:block; position:relative; width:108px; height:35px; margin:15px auto; line-height:35px; font-size:14px; color: #fff; text-align:center;
|
||||
background-color: #79b4e7;
|
||||
background-image: -webkit-linear-gradient(#79b4e7, #1377cf);
|
||||
background-image: linear-gradient(#79b4e7, #1377cf);
|
||||
border-color: #076bc2;
|
||||
-webkit-border-radius:5px;
|
||||
-moz-border-radius:5px;
|
||||
-o-border-radius:5px;
|
||||
border-radius:5px;
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
margin:0 10px;
|
||||
}
|
||||
a:hover.data_file_btn{
|
||||
background-color: #076bc2;
|
||||
background-image: -webkit-linear-gradient(#79b4e7, #076bc2);
|
||||
background-image: linear-gradient(#79b4e7, #076bc2);
|
||||
border-color: #076bc2;}
|
||||
.data_file_btn input{ position:absolute; left:0px;opacity:0; filter:alpha(opacity=0); width:108px; height:35px;}
|
||||
|
||||
|
||||
.data_conbox{
|
||||
width:407px;
|
||||
height:709px;
|
||||
border-top:1px solid #e0dede;
|
||||
border-bottom:1px solid #e0dede;
|
||||
overflow: auto;
|
||||
}
|
||||
.data_con_title{
|
||||
width:49.8%;
|
||||
height:36px;
|
||||
line-height:36px;
|
||||
text-align:center;
|
||||
background-color:#e9f3fb;
|
||||
overflow:hidden;
|
||||
text-overflow:ellipsis;
|
||||
-o-text-overflow:ellipsis;
|
||||
white-space:nowrap;
|
||||
}
|
||||
.data_con_line{
|
||||
border-right:1px solid #e0dede;
|
||||
|
||||
}
|
||||
.data_con_li{
|
||||
width:49.8%;
|
||||
height:36px;
|
||||
line-height:36px;
|
||||
overflow:hidden;
|
||||
text-overflow:ellipsis;
|
||||
-o-text-overflow:ellipsis;
|
||||
white-space:nowrap;
|
||||
border-bottom:1px solid #e0dede;
|
||||
}
|
||||
.mt15{ margin-top:15px;}
|
||||
|
||||
|
||||
/* 树形结构 */
|
||||
.data_rightside_tree{
|
||||
width:259px;
|
||||
height:709px;
|
||||
border-right:1px solid #e0dede;
|
||||
border-top:1px solid #e0dede;
|
||||
border-bottom:1px solid #e0dede;
|
||||
overflow: auto;
|
||||
}
|
||||
.tree { min-height:20px;padding:15px;padding-left:30px;border-bottom:1px dashed #ccc;}
|
||||
.tree li {list-style-type:none;margin:0; padding:10px 5px 0 20px; position:relative}
|
||||
.tree li::before, .tree li::after { content:'';left:-30px;position:absolute; right:auto}
|
||||
.tree li::before { border-left:1px solid #999; bottom:50px;height:100%; top:0; width:0px}
|
||||
.tree li::after {border-top:1px solid #999;height:20px; top:25px; width:35px}
|
||||
.tree li p {display:inline-block;padding:3px 10px;border:1px solid #fff; margin-left:-15px; width:150px; }
|
||||
.tree li.parent_li>p {cursor:pointer}
|
||||
.tree>ul>li::before, .tree>ul>li::after {border:0}
|
||||
.tree li:last-child::before { height:30px}
|
||||
.tree li.parent_li>p:hover, .tree li.parent_li>p:hover+ul li p { }
|
||||
.icon-plus-sign{ margin-left:-15px; background:url(../img/icons1.gif) -5px 10px no-repeat; }
|
||||
.icon-minus-sign{ margin-left:-15px; background:url(../img/icons2.gif) -6px 9px no-repeat;}
|
@ -0,0 +1,63 @@
|
||||
{
|
||||
"name": "hawtio-kubernetes",
|
||||
"version": "2.1.179",
|
||||
"keywords": [
|
||||
"hawtio"
|
||||
],
|
||||
"main": [
|
||||
"dist/hawtio-kubernetes.css",
|
||||
"dist/hawtio-kubernetes.js"
|
||||
],
|
||||
"ignore": [
|
||||
".*",
|
||||
"**/.*",
|
||||
"node_modules",
|
||||
"bower_components",
|
||||
"libs",
|
||||
"test",
|
||||
"tests",
|
||||
"plugins"
|
||||
],
|
||||
"dependencies": {
|
||||
"angular-nvd3": "~1.0.2",
|
||||
"angular": "~1.4.4",
|
||||
"angular-resource": "~1.4.7",
|
||||
"angular-ui-codemirror": "~0.3.0",
|
||||
"angular-ui-validate": "~1.2.1",
|
||||
"angularjs-scroll-glue": "~0.0.1",
|
||||
"hawtio-core": "~2.0.16",
|
||||
"hawtio-forms": "~2.0.15",
|
||||
"hawtio-oauth": "~2.0.21",
|
||||
"hawtio-template-cache": "*",
|
||||
"hawtio-ui": "~2.0.67",
|
||||
"hawtio-utilities": "~2.0.21",
|
||||
"kubernetes-container-terminal": "~0.0.3",
|
||||
"term.js": "~0.0.3",
|
||||
"urijs": "~1.17.0",
|
||||
"hawtio-kubernetes-api": "~2.0.0",
|
||||
"human-date": "^1.3.2",
|
||||
"js-yaml": "^3.5.4"
|
||||
},
|
||||
"overrides": {
|
||||
"term.js": {
|
||||
"main": [
|
||||
"./src/term.js"
|
||||
]
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"bootstrap": "~3.3.6",
|
||||
"patternfly": "~2.7.0",
|
||||
"hawtio-core-dts": "~2.0.0",
|
||||
"angular-mocks": "~1.3.7",
|
||||
"hawtio-preferences": "~2.0.1",
|
||||
"hawtio-extension-service": "~2.0.1"
|
||||
},
|
||||
"resolutions": {
|
||||
"codemirror": "^5.0",
|
||||
"angular": "~1.3.5",
|
||||
"angular-resource": "~1.3.9",
|
||||
"urijs": "~1.17.0",
|
||||
"lodash": "3.10.1"
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
machine:
|
||||
node:
|
||||
version: 0.10.33
|
||||
services:
|
||||
- docker
|
||||
|
||||
dependencies:
|
||||
pre:
|
||||
- npm install -g bower gulp slush slush-hawtio-javascript slush-hawtio-typescript typescript
|
||||
- npm install
|
||||
- bower update
|
||||
- bower prune
|
||||
override:
|
||||
- gulp site
|
||||
|
||||
test:
|
||||
override:
|
||||
- echo yes
|
||||
|
||||
##deployment:
|
||||
## hub:
|
||||
## branch: master
|
||||
## owner: hawtio
|
||||
## commands:
|
||||
## - docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS
|
||||
## - docker build -t fabric8/hawtio-kubernetes .
|
||||
## - docker push fabric8/hawtio-kubernetes
|
||||
|
||||
|
@ -0,0 +1,7 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="../../kubernetes/ts/kubernetesHelpers.d.ts" />
|
||||
/// <reference path="developerEnrichers.d.ts" />
|
||||
/// <reference path="developerHelpers.d.ts" />
|
||||
/// <reference path="developerNavigation.d.ts" />
|
||||
declare module Developer {
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
declare module Developer {
|
||||
class dataInfoModelService {
|
||||
serverData: {};
|
||||
serverData: Object;
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
declare module Developer {
|
||||
function enrichWorkspaces(projects: any): any;
|
||||
function enrichWorkspace(build: any): any;
|
||||
function asDate(value: any): Date;
|
||||
function enrichJenkinsJobs(jobsData: any, projectId: any, jobName: any): any;
|
||||
function enrichJenkinsJob(job: any, projectId: any, jobName: any): any;
|
||||
function createBuildStatusIconClass(result: any): string;
|
||||
function createBuildStatusBackgroundClass(result: any): string;
|
||||
function enrichJenkinsBuild(job: any, build: any): any;
|
||||
function jenkinsLink(): any;
|
||||
function forgeReadyLink(): any;
|
||||
function enrichJenkinsPipelineJob(job: any, projectId: any, jobId: any): void;
|
||||
function enrichJenkinsStages(build: any, projectId: any, jobName: any): any;
|
||||
function enrichJenkinsStage(stage: any, build?: any): void;
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
declare module Developer {
|
||||
var context: string;
|
||||
var hash: string;
|
||||
var pluginName: string;
|
||||
var pluginPath: string;
|
||||
var templatePath: string;
|
||||
var log: Logging.Logger;
|
||||
var jenkinsServiceName: string;
|
||||
var jenkinsServiceNameAndPort: string;
|
||||
var jenkinsHttpConfig: {
|
||||
headers: {
|
||||
Accept: string;
|
||||
};
|
||||
};
|
||||
/**
|
||||
* Returns true if the value hasn't changed from the last cached JSON version of this object
|
||||
*/
|
||||
function hasObjectChanged(value: any, state: any): boolean;
|
||||
function projectForScope($scope: any): any;
|
||||
/**
|
||||
* Lets load the project versions for the given namespace
|
||||
*/
|
||||
function loadProjectVersions($scope: any, $element: any, project: any, env: any, ns: any, answer: any, caches: any): void;
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
declare module Developer {
|
||||
function workspaceLink(): string;
|
||||
function projectLink(projectId: any): string;
|
||||
function createWorkspacesBreadcrumbs(developPerspective: any): any[];
|
||||
function createWorkspacesSubNavBars(developPerspective: any): any;
|
||||
function createWorkspaceBreadcrumbs(children?: any, workspaceName?: any): any;
|
||||
function createEnvironmentBreadcrumbs($scope: any, $location: any, $routeParams: any): any;
|
||||
function createProjectBreadcrumbs(projectName?: any, children?: any, workspaceName?: any): any;
|
||||
function createProjectSettingsBreadcrumbs(projectName: any, workspaceName?: any): any;
|
||||
function createWorkspaceSubNavBars(): any;
|
||||
function createProjectSubNavBars(projectName: any, jenkinsJobId?: any, $scope?: any): any;
|
||||
function createProjectSettingsSubNavBars(projectName: any, jenkinsJobId?: any): any;
|
||||
function forgeProjectHasBuilder(name: any): any;
|
||||
function forgeProjectHasPerspective(name: any): any;
|
||||
function editPipelineLinkScope($scope: any): string;
|
||||
function createProjectLink(workspaceName?: any): string;
|
||||
function editPipelineLink(workspaceName: any, projectName: any): string;
|
||||
function editMavenBuildLink(workspaceName: any, projectName: any): string;
|
||||
function projectSecretsLink(workspaceName: any, projectName: any): string;
|
||||
function secretsNamespaceLink(workspaceName: any, projectName: any, secretsNamespace: any): string;
|
||||
function projectWorkspaceLink(workspaceName: any, projectName: any, path: any, ignoreBlankProject?: boolean): string;
|
||||
var customProjectSubTabFactories: any[];
|
||||
function createJenkinsBreadcrumbs(projectName: any, jobId: any, buildId: any): any;
|
||||
function createJenkinsSubNavBars(projectName: any, jenkinsJobId: any, buildId: any, extraOption?: any): any;
|
||||
function createEnvironmentSubNavBars($scope: any, $location: any, $routeParams: any): any;
|
||||
function namespaceLink($scope: any, $routeParams: any, path?: any): string;
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="developerHelpers.d.ts" />
|
||||
declare module Developer {
|
||||
var _module: ng.IModule;
|
||||
var controller: (name: string, inlineAnnotatedConstructor: any[]) => ng.IModule;
|
||||
var route: (templateName: string, reloadOnSearch?: boolean) => {
|
||||
templateUrl: string;
|
||||
reloadOnSearch: boolean;
|
||||
};
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
/// <reference path="developerPlugin.d.ts" />
|
||||
declare module Developer {
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="../../kubernetes/ts/kubernetesHelpers.d.ts" />
|
||||
/// <reference path="developerEnrichers.d.ts" />
|
||||
/// <reference path="developerHelpers.d.ts" />
|
||||
/// <reference path="developerNavigation.d.ts" />
|
||||
declare module Developer {
|
||||
var HomeController: ng.IModule;
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="../../kubernetes/ts/kubernetesHelpers.d.ts" />
|
||||
/// <reference path="developerEnrichers.d.ts" />
|
||||
/// <reference path="developerHelpers.d.ts" />
|
||||
/// <reference path="developerNavigation.d.ts" />
|
||||
declare module Developer {
|
||||
var JenkinsJobController: ng.IModule;
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="../../kubernetes/ts/kubernetesHelpers.d.ts" />
|
||||
/// <reference path="developerEnrichers.d.ts" />
|
||||
/// <reference path="developerHelpers.d.ts" />
|
||||
/// <reference path="developerNavigation.d.ts" />
|
||||
declare module Developer {
|
||||
var JenkinsJobsController: ng.IModule;
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="../../kubernetes/ts/kubernetesHelpers.d.ts" />
|
||||
/// <reference path="../../kubernetes/ts/kubernetesInterfaces.d.ts" />
|
||||
/// <reference path="../../kubernetes/ts/kubernetesModel.d.ts" />
|
||||
/// <reference path="developerPlugin.d.ts" />
|
||||
/// <reference path="developerEnrichers.d.ts" />
|
||||
/// <reference path="developerHelpers.d.ts" />
|
||||
/// <reference path="developerNavigation.d.ts" />
|
||||
declare module Developer {
|
||||
function clickApprove(element: any, url: any): void;
|
||||
var JenkinsLogController: ng.IModule;
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="../../kubernetes/ts/kubernetesHelpers.d.ts" />
|
||||
/// <reference path="developerEnrichers.d.ts" />
|
||||
/// <reference path="developerHelpers.d.ts" />
|
||||
/// <reference path="developerNavigation.d.ts" />
|
||||
declare module Developer {
|
||||
var JenkinsMetricsController: ng.IModule;
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="../../kubernetes/ts/kubernetesHelpers.d.ts" />
|
||||
/// <reference path="developerEnrichers.d.ts" />
|
||||
/// <reference path="developerHelpers.d.ts" />
|
||||
/// <reference path="developerNavigation.d.ts" />
|
||||
declare module Developer {
|
||||
var NavBarController: ng.IModule;
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="../../kubernetes/ts/kubernetesHelpers.d.ts" />
|
||||
/// <reference path="developerEnrichers.d.ts" />
|
||||
/// <reference path="developerHelpers.d.ts" />
|
||||
/// <reference path="developerNavigation.d.ts" />
|
||||
declare module Developer {
|
||||
var PipelineController: ng.IModule;
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="../../kubernetes/ts/kubernetesHelpers.d.ts" />
|
||||
/// <reference path="developerEnrichers.d.ts" />
|
||||
/// <reference path="developerHelpers.d.ts" />
|
||||
/// <reference path="developerNavigation.d.ts" />
|
||||
declare module Developer {
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="../../kubernetes/ts/kubernetesHelpers.d.ts" />
|
||||
/// <reference path="developerPlugin.d.ts" />
|
||||
/// <reference path="developerEnrichers.d.ts" />
|
||||
/// <reference path="developerHelpers.d.ts" />
|
||||
/// <reference path="developerNavigation.d.ts" />
|
||||
declare module Developer {
|
||||
var PipelinesController: ng.IModule;
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="../../kubernetes/ts/kubernetesHelpers.d.ts" />
|
||||
/// <reference path="developerEnrichers.d.ts" />
|
||||
/// <reference path="developerHelpers.d.ts" />
|
||||
/// <reference path="developerNavigation.d.ts" />
|
||||
declare module Developer {
|
||||
var ProjectController: ng.IModule;
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
/// <reference path="developerPlugin.d.ts" />
|
||||
declare module Developer {
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="../../kubernetes/ts/kubernetesHelpers.d.ts" />
|
||||
/// <reference path="developerEnrichers.d.ts" />
|
||||
/// <reference path="developerHelpers.d.ts" />
|
||||
/// <reference path="developerNavigation.d.ts" />
|
||||
declare module Developer {
|
||||
var ProjectsController: ng.IModule;
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="../../kubernetes/ts/kubernetesHelpers.d.ts" />
|
||||
/// <reference path="developerEnrichers.d.ts" />
|
||||
/// <reference path="developerHelpers.d.ts" />
|
||||
/// <reference path="developerNavigation.d.ts" />
|
||||
declare module Developer {
|
||||
var WorkspaceController: ng.IModule;
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="../../kubernetes/ts/kubernetesHelpers.d.ts" />
|
||||
/// <reference path="developerEnrichers.d.ts" />
|
||||
/// <reference path="developerHelpers.d.ts" />
|
||||
/// <reference path="developerNavigation.d.ts" />
|
||||
declare module Developer {
|
||||
var WorkspacesController: ng.IModule;
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
/// <reference path="../libs/hawtio-forms/defs.d.ts" />
|
||||
/// <reference path="../libs/hawtio-kubernetes-api/defs.d.ts" />
|
||||
/// <reference path="../libs/hawtio-oauth/defs.d.ts" />
|
||||
/// <reference path="../libs/hawtio-ui/defs.d.ts" />
|
||||
/// <reference path="../libs/hawtio-utilities/defs.d.ts" />
|
||||
declare var humandate: any;
|
||||
declare var jsyaml: any;
|
@ -0,0 +1,5 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var Apps: ng.IModule;
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var BuildController: ng.IModule;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var BuildConfigController: ng.IModule;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var BuildConfigEditController: ng.IModule;
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var BuildConfigsController: ng.IModule;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var BuildLogsController: ng.IModule;
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var BuildsController: ng.IModule;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var ConnectController: ng.IModule;
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
class dataInfoModelService {
|
||||
serverdata: {};
|
||||
promiseobject: {};
|
||||
localdata: {};
|
||||
selectednodes: any[];
|
||||
resumablejs: any[];
|
||||
selecteditems: any[];
|
||||
serveritems: any[];
|
||||
uploadprocess: {};
|
||||
uploadedStatus: string;
|
||||
uploadProcess: Object;
|
||||
folderList: {
|
||||
length: number;
|
||||
};
|
||||
serverItems: Array<any>;
|
||||
resumableJs: Array<any>;
|
||||
selectedItems: Array<any>;
|
||||
selectedNodes: Array<any>;
|
||||
isContainsNodes(node: Object): boolean;
|
||||
findNodes(node: any): string;
|
||||
findItemIndex(item: any): number | string;
|
||||
createFolderList(files: Object, rootPath: string): void;
|
||||
updateNodeById(nodeId: any, key: any, value: any): void;
|
||||
serverData: Object;
|
||||
promiseObject: Object;
|
||||
promise: Object;
|
||||
localData: Object;
|
||||
updataDataModel(): void;
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var BuildConfigsController: ng.IModule;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var DeploymentConfigController: ng.IModule;
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var DeploymentConfigsController: ng.IModule;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var PodController: ng.IModule;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var EventsController: ng.IModule;
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
/// <reference path="kubernetesModel.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var HostController: ng.IModule;
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
/// <reference path="kubernetesModel.d.ts" />
|
||||
/// <reference path="utilHelpers.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var HostsController: ng.IModule;
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var ImageRepositoriesController: ng.IModule;
|
||||
}
|
@ -0,0 +1,208 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesInterfaces.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var context: string;
|
||||
var hash: string;
|
||||
var defaultRoute: string;
|
||||
var pluginName: string;
|
||||
var pluginPath: string;
|
||||
var templatePath: string;
|
||||
var log: Logging.Logger;
|
||||
var keepPollingModel: boolean;
|
||||
var defaultIconUrl: string;
|
||||
var hostIconUrl: string;
|
||||
var osConfig: KubernetesConfig;
|
||||
var masterUrl: string;
|
||||
var defaultApiVersion: string;
|
||||
var defaultOSApiVersion: string;
|
||||
var labelFilterTextSeparator: string;
|
||||
var defaultNamespace: string;
|
||||
var appSuffix: string;
|
||||
var kibanaServiceName: string;
|
||||
var fabric8ForgeServiceName: string;
|
||||
var gogsServiceName: string;
|
||||
var jenkinsServiceName: string;
|
||||
var apimanServiceName: string;
|
||||
var isOpenShift: boolean;
|
||||
var sshSecretDataKeys: string[];
|
||||
var httpsSecretDataKeys: string[];
|
||||
function kubernetesNamespacePath(): string;
|
||||
function apiPrefix(): string;
|
||||
function osApiPrefix(): string;
|
||||
function masterApiUrl(): string;
|
||||
/** WARNING - this excludes the host name - you probably want to use: kubernetesApiUrl() instead!! */
|
||||
function kubernetesApiPrefix(): string;
|
||||
function openshiftApiPrefix(): string;
|
||||
function prefixForType(type: string): string;
|
||||
function kubernetesApiUrl(): string;
|
||||
function openshiftApiUrl(): string;
|
||||
function resourcesUriForKind(type: any, ns?: any): string;
|
||||
function uriTemplateForKubernetesKind(type: any): string;
|
||||
function namespacePathForKind(type: any, ns: any): string;
|
||||
/**
|
||||
* Returns thevalue from the injector if its available or null
|
||||
*/
|
||||
function inject<T>(name: any): T;
|
||||
function createResource(thing: string, urlTemplate: string, $resource: ng.resource.IResourceService, KubernetesModel: any): ng.resource.IResourceClass<ng.resource.IResource<any>>;
|
||||
function imageRepositoriesRestURL(): string;
|
||||
function deploymentConfigsRestURL(): string;
|
||||
function buildsRestURL(): string;
|
||||
function buildConfigHooksRestURL(): string;
|
||||
function buildConfigsRestURL(): string;
|
||||
function routesRestURL(): string;
|
||||
function templatesRestURL(): string;
|
||||
function getNamespace(entity: any): any;
|
||||
function getLabels(entity: any): any;
|
||||
function getName(entity: any): any;
|
||||
function getKind(entity: any): any;
|
||||
function getSelector(entity: any): any;
|
||||
function getHost(pod: any): any;
|
||||
function getStatus(pod: any): any;
|
||||
function getPorts(service: any): any;
|
||||
function getCreationTimestamp(entity: any): any;
|
||||
var mbean: string;
|
||||
var managerMBean: string;
|
||||
var appViewMBean: string;
|
||||
function isKubernetes(workspace?: any): boolean;
|
||||
function isKubernetesTemplateManager(workspace?: any): boolean;
|
||||
function isAppView(workspace?: any): boolean;
|
||||
function getStrippedPathName(): string;
|
||||
function linkContains(...words: String[]): boolean;
|
||||
/**
|
||||
* Returns true if the given link is active. The link can omit the leading # or / if necessary.
|
||||
* The query parameters of the URL are ignored in the comparison.
|
||||
* @method isLinkActive
|
||||
* @param {String} href
|
||||
* @return {Boolean} true if the given link is active
|
||||
*/
|
||||
function isLinkActive(href: string): boolean;
|
||||
function setJson($scope: any, id: any, collection: any): void;
|
||||
/**
|
||||
* Returns the labels text string using the <code>key1=value1,key2=value2,....</code> format
|
||||
*/
|
||||
function labelsToString(labels: any, seperatorText?: string): string;
|
||||
function initShared($scope: any, $location: any, $http: any, $timeout: any, $routeParams: any, KubernetesModel: any, KubernetesState: any, KubernetesApiURL: any): void;
|
||||
/**
|
||||
* Returns the number of pods that are ready
|
||||
*/
|
||||
function readyPodCount(service: any): number;
|
||||
/**
|
||||
* Returns the service link URL for either the service name or the service object
|
||||
*/
|
||||
function serviceLinkUrl(service: any, httpOnly?: boolean): any;
|
||||
/**
|
||||
* Returns the total number of counters for the podCounters object
|
||||
*/
|
||||
function podCounterTotal($podCounters: any): number;
|
||||
/**
|
||||
* Given the list of pods lets iterate through them and find all pods matching the selector
|
||||
* and return counters based on the status of the pod
|
||||
*/
|
||||
function createPodCounters(selector: any, pods: any, outputPods?: any[], podLinkQuery?: any, podLinkUrl?: any): {
|
||||
podsLink: string;
|
||||
ready: number;
|
||||
valid: number;
|
||||
waiting: number;
|
||||
error: number;
|
||||
};
|
||||
/**
|
||||
* Converts the given json into an array of items. If the json contains a nested set of items then that is sorted; so that services
|
||||
* are processed first; then turned into an array. Otherwise the json is put into an array so it can be processed polymorphically
|
||||
*/
|
||||
function convertKubernetesJsonToItems(json: any): any[];
|
||||
function isV1beta1Or2(): boolean;
|
||||
/**
|
||||
* Returns a link to the detail page for the given entity
|
||||
*/
|
||||
function entityPageLink(obj: any): any;
|
||||
function resourceKindToUriPath(kind: any): string;
|
||||
/**
|
||||
* Returns the root URL for the kind
|
||||
*/
|
||||
function kubernetesUrlForKind(KubernetesApiURL: any, kind: any, namespace?: any, path?: any): string;
|
||||
/**
|
||||
* Returns the base URL for the kind of kubernetes resource or null if it cannot be found
|
||||
*/
|
||||
function kubernetesUrlForItemKind(KubernetesApiURL: any, json: any): string;
|
||||
function kubernetesProxyUrlForService(KubernetesApiURL: any, service: any, path?: any): string;
|
||||
function kubernetesProxyUrlForServiceCurrentNamespace(service: any, path?: any): string;
|
||||
function buildConfigRestUrl(id: any): string;
|
||||
function deploymentConfigRestUrl(id: any): string;
|
||||
function imageRepositoryRestUrl(id: any): string;
|
||||
function buildRestUrl(id: any): string;
|
||||
function buildLogsRestUrl(id: any): string;
|
||||
/**
|
||||
* Runs the given application JSON
|
||||
*/
|
||||
function runApp($location: any, $scope: any, $http: any, KubernetesApiURL: any, json: any, name?: string, onSuccessFn?: any, namespace?: any, onCompleteFn?: any): void;
|
||||
/**
|
||||
* Returns true if the current status of the pod is running
|
||||
*/
|
||||
function isRunning(podCurrentState: any): any;
|
||||
/**
|
||||
* Returns true if the labels object has all of the key/value pairs from the selector
|
||||
*/
|
||||
function selectorMatches(selector: any, labels: any): boolean;
|
||||
/**
|
||||
* Returns the service registry
|
||||
*/
|
||||
function getServiceRegistry(): any;
|
||||
/**
|
||||
* Returns a link to the kibana logs web application
|
||||
*/
|
||||
function kibanaLogsLink(ServiceRegistry: any): string;
|
||||
function openLogsForPods(ServiceRegistry: any, $window: any, namespace: any, pods: any): void;
|
||||
function resizeController($http: any, KubernetesApiURL: any, replicationController: any, newReplicas: any, onCompleteFn?: any): void;
|
||||
function statusTextToCssClass(text: any, ready?: boolean): string;
|
||||
function podStatus(pod: any): any;
|
||||
function isReady(pod: any): boolean;
|
||||
function createAppViewPodCounters(appView: any): any[];
|
||||
function createAppViewServiceViews(appView: any): any[];
|
||||
/**
|
||||
* converts a git path into an accessible URL for the browser
|
||||
*/
|
||||
function gitPathToUrl(iconPath: any, branch?: string): string;
|
||||
function enrichBuildConfig(buildConfig: any, sortedBuilds: any): void;
|
||||
function enrichBuildConfigs(buildConfigs: any, sortedBuilds?: any): any;
|
||||
function enrichBuilds(builds: any): {}[];
|
||||
function enrichBuild(build: any): any;
|
||||
function enrichDeploymentConfig(deploymentConfig: any): void;
|
||||
function enrichDeploymentConfigs(deploymentConfigs: any): any;
|
||||
function enrichEvent(event: any): void;
|
||||
function enrichEvents(events: any, model?: any): any;
|
||||
function enrichImageRepository(imageRepository: any): void;
|
||||
function enrichImageRepositories(imageRepositories: any): any;
|
||||
function containerLabelClass(labelType: string): string;
|
||||
/**
|
||||
* Returns true if the fabric8 forge plugin is enabled
|
||||
*/
|
||||
function isForgeEnabled(): boolean;
|
||||
/**
|
||||
* Returns the current kubernetes selected namespace or the default one
|
||||
*/
|
||||
function currentKubernetesNamespace(): any;
|
||||
function setCurrentKubernetesNamespace(ns: any): void;
|
||||
/**
|
||||
* Configures the json schema
|
||||
*/
|
||||
function configureSchema(): void;
|
||||
/**
|
||||
* Lets remove any enriched data to leave the original json intact
|
||||
*/
|
||||
function unenrich(item: any): any;
|
||||
/**
|
||||
* Returns the unenriched JSON representation of an object
|
||||
*/
|
||||
function toRawJson(item: any): string;
|
||||
/**
|
||||
* Returns the unenriched YAML representation of an object
|
||||
*/
|
||||
function toRawYaml(item: any): any;
|
||||
function watch($scope: any, $element: any, kind: any, ns: any, fn: any, labelSelector?: any): void;
|
||||
function createKubernetesClient(kind: any, ns?: any): any;
|
||||
function currentUserName(): any;
|
||||
function createNamespace(ns: any, client?: any): void;
|
||||
function createRC(obj: any, onCompleteFn?: any): void;
|
||||
function updateReplicationControllerLabels($http: any, KubernetesApiURL: any, replicationController: any, newLabels: any, onCompleteFn?: any): void;
|
||||
function connectOracle($http: any, $timeout: any, url: any, connectParam: any, rcName: any, delayTime: any): void;
|
||||
}
|
@ -0,0 +1,98 @@
|
||||
declare module Kubernetes {
|
||||
class consts {
|
||||
NAMESPACE_STORAGE_KEY: string;
|
||||
}
|
||||
var Constants: consts;
|
||||
interface ApiLocation {
|
||||
proto?: string;
|
||||
hostPort: string;
|
||||
prefix: string;
|
||||
}
|
||||
interface ApiLocations {
|
||||
openshift?: ApiLocation;
|
||||
k8s?: ApiLocation;
|
||||
}
|
||||
interface KubernetesConfig {
|
||||
master_uri?: string;
|
||||
api?: ApiLocations;
|
||||
openshift?: OpenShiftOAuthConfig;
|
||||
google?: GoogleOAuthConfig;
|
||||
keycloak?: KeyCloakAuthConfig;
|
||||
}
|
||||
interface OpenShiftOAuthConfig {
|
||||
oauth_authorize_uri: string;
|
||||
oauth_client_id: string;
|
||||
}
|
||||
interface GoogleOAuthConfig {
|
||||
authenticationURI: string;
|
||||
authorizationURI: string;
|
||||
clientId: string;
|
||||
clientSecret: string;
|
||||
redirectURI: string;
|
||||
scope: string;
|
||||
tokenURI?: string;
|
||||
}
|
||||
interface KeyCloakAuthConfig {
|
||||
oauth_authorize_uri: string;
|
||||
oauth_client_id: string;
|
||||
}
|
||||
interface KubernetesState {
|
||||
namespaces: Array<string>;
|
||||
selectedNamespace: string;
|
||||
}
|
||||
class WatchTypes {
|
||||
static ENDPOINTS: string;
|
||||
static EVENTS: string;
|
||||
static NAMESPACES: string;
|
||||
static NODES: string;
|
||||
static PERSISTENT_VOLUMES: string;
|
||||
static PERSISTENT_VOLUME_CLAIMS: string;
|
||||
static PODS: string;
|
||||
static REPLICATION_CONTROLLERS: string;
|
||||
static RESOURCE_QUOTAS: string;
|
||||
static OAUTH_CLIENTS: string;
|
||||
static SECRETS: string;
|
||||
static SERVICES: string;
|
||||
static SERVICE_ACCOUNTS: string;
|
||||
static TEMPLATES: string;
|
||||
static ROUTES: string;
|
||||
static BUILD_CONFIGS: string;
|
||||
static BUILDS: string;
|
||||
static DEPLOYMENT_CONFIGS: string;
|
||||
static IMAGE_STREAMS: string;
|
||||
static POLICIES: string;
|
||||
static POLICY_BINDINGS: string;
|
||||
static PROJECTS: string;
|
||||
static ROLE_BINDINGS: string;
|
||||
static ROLES: string;
|
||||
}
|
||||
class NamespacedTypes {
|
||||
static k8sTypes: Array<string>;
|
||||
static osTypes: Array<string>;
|
||||
}
|
||||
class WatchActions {
|
||||
static ANY: string;
|
||||
static ADDED: string;
|
||||
static MODIFIED: string;
|
||||
static DELETED: string;
|
||||
}
|
||||
interface ObjectMap {
|
||||
[uid: string]: any;
|
||||
}
|
||||
interface WatcherService {
|
||||
hasWebSocket: boolean;
|
||||
addCustomizer: (type: string, customizer: (obj: any) => void) => void;
|
||||
getTypes: () => Array<string>;
|
||||
getNamespace: () => string;
|
||||
setNamespace: (namespace: string) => void;
|
||||
getObjects: (type: string) => Array<any>;
|
||||
getObjectMap: (type: string) => ObjectMap;
|
||||
addAction: (type: string, action: string, fn: (obj: any) => void) => void;
|
||||
registerListener: (fn: (objects: ObjectMap) => void) => void;
|
||||
registerCustomUrlFunction: (kind: string, url: (kind: string) => string) => void;
|
||||
}
|
||||
interface KubePod {
|
||||
id: string;
|
||||
namespace: string;
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var KubernetesJsonDirective: ng.IModule;
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var FABRIC8_PROJECT_JSON: string;
|
||||
/**
|
||||
* The object which keeps track of all the pods, replication controllers, services and their associations
|
||||
*/
|
||||
class KubernetesModelService {
|
||||
kubernetes: KubernetesState;
|
||||
apps: any[];
|
||||
services: any[];
|
||||
replicationcontrollers: any[];
|
||||
replicationControllers: Array<any>;
|
||||
pods: any[];
|
||||
hosts: any[];
|
||||
namespaces: Array<string>;
|
||||
routes: any[];
|
||||
templates: any[];
|
||||
redraw: boolean;
|
||||
resourceVersions: {};
|
||||
podsByHost: {};
|
||||
servicesByKey: {};
|
||||
replicationControllersByKey: {};
|
||||
podsByKey: {};
|
||||
appInfos: any[];
|
||||
appViews: any[];
|
||||
appFolders: any[];
|
||||
fetched: boolean;
|
||||
showRunButton: boolean;
|
||||
buildconfigs: any[];
|
||||
events: any[];
|
||||
workspaces: any[];
|
||||
projects: any[];
|
||||
project: any;
|
||||
serviceApps: Array<any>;
|
||||
$keepPolling(): boolean;
|
||||
orRedraw(flag: any): void;
|
||||
getService(namespace: any, id: any): any;
|
||||
getReplicationController(namespace: any, id: any): any;
|
||||
getPod(namespace: any, id: any): any;
|
||||
podsForNamespace(namespace?: any): any[];
|
||||
getBuildConfig(name: any): any;
|
||||
getProject(name: any, ns?: any): any;
|
||||
setProject(buildConfig: any): void;
|
||||
/**
|
||||
* Returns the current selected namespace or the default namespace
|
||||
*/
|
||||
currentNamespace(): any;
|
||||
protected updateIconUrlAndAppInfo(entity: any, nameField: string): void;
|
||||
maybeInit(): void;
|
||||
protected updateApps(): void;
|
||||
protected discoverPodConnections(entity: any): void;
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
declare module Kubernetes {
|
||||
function selectSubNavBar($scope: any, tabName: any, newSubTabLabel: any): void;
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
declare var OSOAuthConfig: any;
|
||||
declare var GoogleOAuthConfig: any;
|
||||
declare var KeycloakConfig: any;
|
||||
declare module Kubernetes {
|
||||
var _module: ng.IModule;
|
||||
var controller: (name: string, inlineAnnotatedConstructor: any[]) => ng.IModule;
|
||||
var route: (templateName: string, reloadOnSearch?: boolean) => {
|
||||
templateUrl: string;
|
||||
reloadOnSearch: boolean;
|
||||
};
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
/// <reference path="schema.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
/// <reference path="kubernetesModel.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var FileDropController: ng.IModule;
|
||||
var NamespaceController: ng.IModule;
|
||||
var TopLevel: ng.IModule;
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var NamespaceController: ng.IModule;
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
class oracleModelService {
|
||||
oraclecontrollers: any[];
|
||||
oracleControllers: Array<any>;
|
||||
findIndexOfOracleControllers(oracleControllers: Array<any>, name: string): number;
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var PipelinesController: ng.IModule;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var PodController: ng.IModule;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var PodEditController: ng.IModule;
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
/// <reference path="term.d.ts" />
|
||||
declare module Kubernetes {
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
/// <reference path="utilHelpers.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var EnvItem: ng.IModule;
|
||||
var Pods: ng.IModule;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var ReplicationControllerController: ng.IModule;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var ReplicationControllerEditController: ng.IModule;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var ReplicationControllers: ng.IModule;
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesInterfaces.d.ts" />
|
||||
declare module Kubernetes {
|
||||
function schemaSetRequired(schema: any, propertyName: any, isRequired?: boolean): void;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var SecretController: ng.IModule;
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
/// <reference path="kubernetesModel.d.ts" />
|
||||
/// <reference path="utilHelpers.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var SecretsController: ng.IModule;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var ServiceController: ng.IModule;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var ServiceEditController: ng.IModule;
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
/// <reference path="kubernetesModel.d.ts" />
|
||||
declare module Kubernetes {
|
||||
/**
|
||||
* Represents a simple interface to service discovery that can be used early on in the application lifecycle before the
|
||||
* underlying model has been created via dependency injection
|
||||
*/
|
||||
class ServiceRegistryService {
|
||||
private model;
|
||||
/**
|
||||
* Returns true if there is a service available for the given ID or false
|
||||
*/
|
||||
hasService(serviceName: string): boolean;
|
||||
/**
|
||||
* Returns the service for the given service name (ID) or null if it cannot be found
|
||||
*
|
||||
* @param serviceName the name of the service to look for
|
||||
* @return {null}
|
||||
*/
|
||||
findService(serviceName: string): any;
|
||||
/**
|
||||
* Returns the service link for the given service name
|
||||
*
|
||||
* @param serviceName the name of the service
|
||||
* @return {null}
|
||||
*/
|
||||
serviceLink(serviceName: string): string;
|
||||
/**
|
||||
* Returns the service link for the given service name if its ready (has at least one ready pod)
|
||||
*
|
||||
* @param serviceName the name of the service
|
||||
* @return {null}
|
||||
*/
|
||||
serviceReadyLink(serviceName: string): string;
|
||||
private getModel();
|
||||
}
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var ServiceApps: ng.IModule;
|
||||
var Services: ng.IModule;
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var PodStatus: ng.IModule;
|
||||
var Labels: ng.IModule;
|
||||
var Status: ng.IModule;
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
/// <reference path="kubernetesHelpers.d.ts" />
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var TemplateController: ng.IModule;
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
/// <reference path="watcher.d.ts" />
|
||||
declare module Kubernetes {
|
||||
function addWindowActions(scope: any, element: any, TerminalService: any): void;
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
declare module Kubernetes {
|
||||
var hostPorts: any[];
|
||||
/**
|
||||
* Sorts the the ip field
|
||||
*
|
||||
* @param ip the ip such as '10.1.2.13'
|
||||
* @returns {any}
|
||||
*/
|
||||
function sortByPodIp(ip: any): any;
|
||||
function ramdomPort(): number;
|
||||
function getRandomString(len: number): string;
|
||||
class resourceRCTemplate {
|
||||
image: string;
|
||||
names: string[];
|
||||
createRC(Obj: any): {
|
||||
"apiVersion": string;
|
||||
"kind": string;
|
||||
"metadata": {
|
||||
"name": any;
|
||||
"labels": {
|
||||
"style": string;
|
||||
"status": string;
|
||||
};
|
||||
};
|
||||
"spec": {
|
||||
replicas: any;
|
||||
"template": {
|
||||
"metadata": {
|
||||
"labels": any;
|
||||
};
|
||||
"spec": {
|
||||
"terminationGracePeriodSeconds": number;
|
||||
"containers": any[];
|
||||
"volumes": any[];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
createVolumeMounts(): any[];
|
||||
createVolumes(rootPath: string): any[];
|
||||
createContainers(Obj: any): any[];
|
||||
createTemplate(Obj: any): {
|
||||
"metadata": {
|
||||
"labels": any;
|
||||
};
|
||||
"spec": {
|
||||
"terminationGracePeriodSeconds": number;
|
||||
"containers": any[];
|
||||
"volumes": any[];
|
||||
};
|
||||
};
|
||||
}
|
||||
function findLabelValue(value: string, key: string): string;
|
||||
function labelToChinese(labels: any): {};
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
/// <reference path="kubernetesPlugin.d.ts" />
|
||||
declare module Kubernetes {
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
declare module Navigation {
|
||||
var pluginName: string;
|
||||
var log: Logging.Logger;
|
||||
var _module: ng.IModule;
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
declare module Service {
|
||||
var pluginName: string;
|
||||
var log: Logging.Logger;
|
||||
/**
|
||||
* Used to specify whether the "service" URL should be polled for services using kubernetes or kubernetes-like service discover.
|
||||
* For more details see: https://github.com/hawtio/hawtio/blob/master/docs/Services.md
|
||||
*/
|
||||
var pollServices: boolean;
|
||||
/**
|
||||
* Returns true if there is a service available for the given ID or false
|
||||
*/
|
||||
function hasService(ServiceRegistry: any, serviceName: string): boolean;
|
||||
/**
|
||||
* Returns the service for the given service name (ID) or null if it cannot be found
|
||||
*
|
||||
* @param ServiceRegistry
|
||||
* @param serviceName
|
||||
* @return {null}
|
||||
*/
|
||||
function findService(ServiceRegistry: any, serviceName: string): any;
|
||||
/**
|
||||
* Returns the service link for the given service name
|
||||
*
|
||||
* @param ServiceRegistry
|
||||
* @param serviceName
|
||||
* @return {null}
|
||||
*/
|
||||
function serviceLink(ServiceRegistry: any, serviceName: string): string;
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
/// <reference path="serviceHelpers.d.ts" />
|
||||
/// <reference path="../../includes.d.ts" />
|
||||
declare module Service {
|
||||
interface SelectorMap {
|
||||
[name: string]: string;
|
||||
}
|
||||
interface Service {
|
||||
kind: string;
|
||||
id: string;
|
||||
portalIP: string;
|
||||
selector?: SelectorMap;
|
||||
port: number;
|
||||
containerPort: number;
|
||||
}
|
||||
interface ServiceResponse {
|
||||
items: Array<Service>;
|
||||
}
|
||||
var _module: ng.IModule;
|
||||
}
|
@ -0,0 +1,71 @@
|
||||
/// <reference path="d.ts/includes.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/kubernetesInterfaces.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/kubernetesHelpers.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/developerEnrichers.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/developerHelpers.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/developerNavigation.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/FileMode.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/developerPlugin.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/environmentPanel.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/home.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/jenkinsJob.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/jenkinsJobs.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/kubernetesPlugin.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/kubernetesModel.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/jenkinsLog.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/jenkinsMetrics.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/navbar.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/pipeline.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/pipelineDirective.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/pipelines.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/project.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/projectSelector.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/projects.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/workspace.d.ts"/>
|
||||
/// <reference path="d.ts/developer/ts/workspaces.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/apps.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/breadcrumbs.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/build.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/buildConfig.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/buildConfigEdit.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/buildConfigs.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/buildLogs.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/builds.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/connect.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/dataInfnModel.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/deploymentConfig.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/deploymentConfigs.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/events.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/host.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/utilHelpers.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/hosts.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/imageRepositories.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/kubernetesNavigation.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/schema.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/kubernetesSchema.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/kubernetesServices.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/kubernetesTopLevel.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/namespace.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/oracleStatusModel.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/overview.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/pipelines.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/pod.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/podEdit.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/watcher.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/term.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/podLogs.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/pods.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/replicationController.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/replicationControllerEdit.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/replicationControllers.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/schemaHelpers.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/secret.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/secrets.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/service.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/serviceEdit.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/serviceRegistry.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/services.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/sharedControllers.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/tabs.d.ts"/>
|
||||
/// <reference path="d.ts/kubernetes/ts/templates.d.ts"/>
|
||||
/// <reference path="d.ts/navigation/ts/navigationPlugin.d.ts"/>
|
@ -0,0 +1,108 @@
|
||||
/* console specific stuff here */
|
||||
body {
|
||||
padding-top: 110px;
|
||||
}
|
||||
.pane {
|
||||
top: 110px;
|
||||
}
|
||||
.navbar-brand > img {
|
||||
height: 20px;
|
||||
margin-top: -5px;
|
||||
margin-bottom: -5px;
|
||||
}
|
||||
|
||||
.navbar-persistent {
|
||||
background: #f6f6f6;
|
||||
border-bottom: 1px solid #cecdcd;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.navbar-persistent > li.active:before,
|
||||
.navbar-persistent > li.active:hover:before {
|
||||
background: #0099d3;
|
||||
bottom: -1px;
|
||||
content: '';
|
||||
display: block;
|
||||
height: 2px;
|
||||
left: 20px;
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
}
|
||||
.navbar-persistent > li.active > a,
|
||||
.navbar-persistent > li.active > a:hover,
|
||||
.navbar-persistent > li.active:hover > a {
|
||||
background: transparent !important;
|
||||
color: #0099d3 !important;
|
||||
}
|
||||
.navbar-persistent > li.active .active > a {
|
||||
color: #f1f1f1;
|
||||
}
|
||||
.navbar-persistent > li.dropdown-submenu:hover > .dropdown-menu {
|
||||
display: none;
|
||||
}
|
||||
.navbar-persistent > li.dropdown-submenu.open > .dropdown-menu {
|
||||
display: block;
|
||||
left: 20px;
|
||||
margin-top: 1px;
|
||||
top: 100%;
|
||||
}
|
||||
.navbar-persistent > li.dropdown-submenu.open > .dropdown-toggle {
|
||||
color: #222222;
|
||||
}
|
||||
.navbar-persistent > li.dropdown-submenu.open > .dropdown-toggle:after {
|
||||
border-top-color: #222222;
|
||||
}
|
||||
.navbar-persistent > li.dropdown-submenu > .dropdown-toggle {
|
||||
padding-right: 35px !important;
|
||||
}
|
||||
.navbar-persistent > li.dropdown-submenu > .dropdown-toggle:after {
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
top: 10px;
|
||||
}
|
||||
.navbar-persistent > li:hover:before,
|
||||
.navbar-persistent > li.open:before {
|
||||
background: #aaaaaa;
|
||||
bottom: -1px;
|
||||
content: '';
|
||||
display: block;
|
||||
height: 2px;
|
||||
left: 20px;
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
}
|
||||
.navbar-persistent > li:hover > a,
|
||||
.navbar-persistent > li.open > a {
|
||||
color: #222222;
|
||||
}
|
||||
.navbar-persistent > li:hover > a:after,
|
||||
.navbar-persistent > li.open > a:after {
|
||||
border-top-color: #222222;
|
||||
}
|
||||
.navbar-persistent > li > a {
|
||||
background-color: transparent;
|
||||
display: block;
|
||||
line-height: 1;
|
||||
padding: 9px 20px !important;
|
||||
}
|
||||
.navbar-persistent > li > a.dropdown-toggle {
|
||||
padding-right: 35px;
|
||||
}
|
||||
.navbar-persistent > li > a.dropdown-toggle:after {
|
||||
font-size: 15px;
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
top: 9px;
|
||||
}
|
||||
.navbar-persistent > li > a:hover {
|
||||
color: #222222 !important;
|
||||
}
|
||||
.navbar-persistent > li a {
|
||||
color: #4d5258 !important;
|
||||
}
|
||||
.navbar-pf .navbar-primary > li > a {
|
||||
border-bottom: 1px solid transparent;
|
||||
border-top: 1px solid transparent;
|
||||
position: relative;
|
||||
margin: -1px 0 0;
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 8.5 KiB |
After Width: | Height: | Size: 36 KiB |
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
After Width: | Height: | Size: 8.5 KiB |
After Width: | Height: | Size: 62 B |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue