%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/985914/root/data/old/home/stash/stash/atlassian-stash/
Upload File :
Create Path :
Current File : //proc/985914/root/data/old/home/stash/stash/atlassian-stash/startup.jsp

<%@ page import="com.atlassian.stash.Product" %>
<%@ page import="com.atlassian.stash.util.Progress" %>
<%@ page import="com.atlassian.stash.internal.lifecycle.StartupUtils" %>
<%@ page import="com.atlassian.stash.internal.lifecycle.StartupManager" %>
<!DOCTYPE html>
<html>
<%
    ServletContext servletContext = pageContext.getServletContext();
    StartupManager startupManager = StartupUtils.getStartupManager(servletContext);
    Progress progress = startupManager.getProgress();
%>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=EDGE">
    <title><%= Product.FULL_NAME %> - Starting</title>
    <style>
        * {
            box-sizing: border-box;
        }

        body {
            background-color: #F0F0F0;
            color: #666666;
            text-align: center;
            margin-top: 90px;
            font-family: sans-serif;
            font-size: 18px;
            line-height: 1.3;
        }

        h1 {
            color: #333333;
            font-weight:normal;
            font-size: 32px;
            margin: 0;
        }

        .stash-logo {
            width: 60px;
            height: 60px;
            margin: 20px auto 30px;
        }

        .header {
            border-bottom: 2px solid #e9e9e9;
            padding: 0 0 30px;
            margin: 0 0 30px;
        }

        .message {
            font-size: 20px;
            overflow: hidden;
            text-overflow: ellipsis;
            width: 100%;
            white-space: nowrap;
            text-align: left;
        }

        .section {
            width: 600px;
            margin: 0 auto;
            background-color: #FFFFFF;
            border: 1px solid #ccc;
            border-radius: 4px;
            padding: 30px 40px;
            text-align: center;
        }

        .progress-bar {
            width: 100%;
            background-color: #e9e9e9;
            height: 6px;
            border-radius: 3px;
            overflow: hidden;
            margin: 0 0 20px;
            position: relative;
        }

        .progress-indicator {
            display: block;
            background-color: #3b7fc4;
            height: 100%;
            color: #fff;
            transition:width 0.2s ease-in-out;
        }

        .progress-indicator.unknown {
            width: 100%;
            -webkit-animation: progressSlide 1s infinite linear;
            animation: progressSlide 1s infinite linear;
            background: 0 0;
            background-color: transparent;
            background-size: 20px 5px;
            background-image: linear-gradient(90deg, #ccc 50%, transparent 50%, transparent 100%);
            border-radius: 3px;
            display: block;
            height: 5px;
            -webkit-transform: skewX(45deg);
            transform: skewX(45deg);
            position: absolute;
            width: 100%
        }
        @-webkit-keyframes progressSlide {
            0% { background-position: 20px }
            100% { background-position: 0 }
        }

        @keyframes progressSlide {
            0% { background-position: 20px }
            100% { background-position: 0 }
        }

        footer {
            width: 600px;
            margin: 30px auto;
        }

        footer .logo {
            display: block;
            height: 24px; /* match image height */
            margin: 30px auto;
            text-align: left;
            text-indent: -9999em;
            width: 114px; /* match image width */
            background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHIAAAAYCAYAAAAmsqlBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMzc2N0JGOUI1REUxMUUyOEZFQ0ZDMEVGMzc4MTU2MyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMzc2N0JGQUI1REUxMUUyOEZFQ0ZDMEVGMzc4MTU2MyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAzNzY3QkY3QjVERTExRTI4RkVDRkMwRUYzNzgxNTYzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAzNzY3QkY4QjVERTExRTI4RkVDRkMwRUYzNzgxNTYzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+i9QGbgAABxlJREFUeNrsWgtM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) center bottom no-repeat;
            background-size: 114px 24px;
        }

        footer .logo:hover,
        footer .logo:active,
        footer .logo:focus {
            background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHIAAAAYCAYAAAAmsqlBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDNTgwNjJGOUI2ODQxMUUyOUVGQ0Q4Qzg0RUU4NDAzMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDNTgwNjJGQUI2ODQxMUUyOUVGQ0Q4Qzg0RUU4NDAzMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkM1ODA2MkY3QjY4NDExRTI5RUZDRDhDODRFRTg0MDMzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkM1ODA2MkY4QjY4NDExRTI5RUZDRDhDODRFRTg0MDMzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+xRRg6wAAB+xJREFUeNrsWglsVkUQ/lsKUqAgiBQsUCiKoJwilxyeoCBHy2HFIFDQAMGIELAxUUzFAyVEsPEIFNSAFhJSwKIQjggVBFqpBKsCIoJIsELLoXL18pv4vWTY7HuvLf1bNJ3ky/779njz9tudmZ02ZNnuPqcDgcAOYO7EXjv3BipQMHczFNOBacADmD8rUC1BkTBgEpACfIOF34lyObAai55XTvJqoxgIPAkMB0KA14Ds6uUOnoRw8W9C8QowGagBlAixwFeAnNIDwHGQe8ogLQJFc6At0AXoDfQHwtllCzAD43Kql7oSiFTEtEIxCxgLNHAZc55E1yPpphQCXwDzQeCO6iWuAiIVoXKiBgOPAv2AW33myQX2kMB1IPD36qWtYiLj0461R3F01Yjoi4pYOZ2taUbr0LdeAISwYyDupBofiqIzsA9zlART+ageT9WkOQ+llcg8kZlysaoXFXrVRdFdWajd0Ksw2MGOKeuBSBCyAeUmIHVir+hzQgxhFfSPRTEIGApItBoD/GL5yO0ooo3HU/GhG8qh/8NAuqpLgLXiOjggo4CPVL0/441KJTKHJIwibgOeJ1npPJGyu2oJATh1B/B8AH6vUXP8BfxqIbErP8oU8ckbLP3bsq0N0EJUAOEnPfQPu04tXY1gvzDU8mytUX8GRLXm7yK5D/J60U7IQpuYtzeNMekguMgy9wgXPYaAtFqW5+KnXwKeoK+O/I+4rMtG/UJVELmSvs8RCXxSSdizQD6fTwNZF3hH7GrMscDlfbEuz+tzg/xfRNawIdEAViSzMhICV4kEOSAtET8/Vo97AkuABPrBtuiXhn4T8Hu2McVytO11MZMdjGtMfeO0bmRfuZ92s0TLd6PtRpTFwC6fIKg9g64mQASbxCzvwsLut4xpjOJBvlPGFwCSFDkEZGHMn2ru+4GOal7Z3Mck6YF+x/ldXdhWgjFf43kBx3YgInmFEzkBSJ/vlT5invuQo1y0/chnHRlIRVHHdLTluPmU5VzY4erZeOAUSBLiMkHiMJSLjXHyETNc5jTNqmyIhSq6i4WiU6CUkBRnbCRHlqjfXTw2qARp93kQLe2j8a7zrEsi5B36fZu8BSSiXyeUn1mCNUd+YnIk1gh27gUyuPm6eei1nnGAWLqWKkDKQ5us9TgSqCUJbYNspjXAa0MCMzpaZoHAeSRxNXeuIxL2j8TYvFKY1Tx173TkZu5AN5Nfqjsw5bTPWPHx87l4Qsq7HiQ6J1kkxYPEgHJJIS4uLNdHryHAq5Y5JPP2goXEADlIco3yQMgZECanZocxQaJLNiceY7JcdloUzbMjn2PXFXEHvqyex3EXiulbx2hVm+NtwDkGXbK4rVzU38zI+zAXT055U9loyp2MwfunouxrRJVbeXIiaP7kHXvQt46yHiJHZZk4thHv2Vt8iNrMOeXknqJezfndDtljgJlldJHdPcN1EHMUZEoQIsn0xi7dRJkJ6JvuMVWc5a4qks2FjlTmdyZIzqapfQ7l22rcDLTtUxvE+jL0WWwx+9JfTtQkViNoBeoZ3WZj/LcuPvQq94N+c8qy2ui/kO7EnDsVxeOsNkW9nmW4+OFldHs5vF0MZVstXxMGgg4xonQzV+PQ5xOfaeKM07uJH1bsBDiUaHzEXUEM7n4z6uEqCnfkAzmpQEvj+VmjPhl9xD/1YBByLZJbivtwMtZLNtl+rlt+mS/QIOo7nEzJonxpRJolNBNe6apGdPaOZECRc3gui3gDsJ2BlCb9mv7kxYUdDTxCs+dIO0v3LJpqx7z2IGQe0eM96LtUUmyoZzptjIbnECfRJleOJPk2D71CaTrFR+s/SnQMxj3Sln4bz8BnIIMaHXCsQnuEx/Bhhg9K5+VffNwZmgsvM1weSab/SmDk7eB2i7kTXzeBupgi1iEF+k5Xkft+S79mjNbTffRayhTiOEOvmKATCZIGM5SW4EN8RzxPoiMSDCR5TDHC4h/7Btz/THYn75zlPY3i96aW0XetYNAxkpGpaeoeY78DvPbcA8y1kNoP72/ioldLbphKy+xoEkNU+u0hCSAY1LxuSeNFWZQXpz1APTqIxTjsdcfzSeWVRtoZ3yXZqDC8N8Rrw8ndDUgDnmYEelA1R6p+JYAkFeYAnXn/1HKL2wY16hPFUlGvRRWe2TGkvxH+jwVhU7gg8SrzUpOn4EVjvPio2tqsshTF04yF2mjcOedZ9OmMzSF30Po6C+Jzv/ybV50WNJXmZqtLE/wD3Uc+g6BiM3eKvhJZXuFJzLXkVAOG6/HTqxhzxlSEj/QjcrhRT8OJvMTT+gZtvvaFJpEjbdcOfEAekwJ6QXPUpumJenNLpOxkSwpJgE0OGXXxcYss1wyddUn2WQdJj9WgPw/36HeJ98veljYzubIScy710KtCfaSZBtOnyPwryR1MrDvESEQ62Ajfd3q8a60l6FnvEoSEBVz+awGbRLIra4yT4LVYnXzWoJjmM8aHxAAj3Msueh1xrl2l1KtCT+Q+RXYR84XOlSQfxKUqn3CF0WmBSitlK5Oy1eev5J8yCHL6h6L/WWwISWQvYJtslD8C//5jmORJf2a2J8TY9QncAGL+6/JkZzCQmcYFLOTmkiCuIdODbZj4CKOJ3S0xAvTIoAVIZL9OdAfhNK9iTT4E3uf7j/Ba5VzRjqusTTI3aTjN8zbmlafTDRUo87xVcWT+A1umymxd/EeAAQDh8qBwpKQqfgAAAABJRU5ErkJggg==);
            background-size: 114px 24px;
        }
    </style>
</head>
<body>
    <div class="section">
        <div class="header">
            <div class="stash-logo">
                <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 18 18">
                    <g transform="scale( 0.98 ) translate(0.2, 0.2)" >
                        <ellipse fill="#205081" cx="9" cy="8.935" rx="2.106" ry="2.121">
                        </ellipse>
                        <g class="rotating" fill="#205081">
                            <path d="M10.088,14.207c0.026,0,0.053-0.003,0.079-0.009c2.428-0.545,4.189-2.76,4.189-5.264               c0-0.55-0.083-1.094-0.244-1.615c-0.034-0.106-0.114-0.193-0.218-0.233c-0.102-0.041-0.218-0.031-0.315,0.024l-0.652,0.38               c-0.144,0.083-0.214,0.255-0.17,0.416c0.092,0.336,0.137,0.682,0.137,1.029c0,1.778-1.193,3.336-2.899,3.79               c-0.162,0.042-0.273,0.189-0.273,0.356v0.758c0,0.112,0.05,0.218,0.137,0.288C9.924,14.178,10.005,14.207,10.088,14.207z"/>
                            <path d="M9,3.537c-1.49,0-2.926,0.636-3.939,1.747C4.985,5.366,4.95,5.479,4.968,5.589               C4.985,5.7,5.051,5.796,5.147,5.852l0.651,0.379c0.056,0.034,0.119,0.051,0.183,0.051c0.095,0,0.189-0.038,0.259-0.109               C6.978,5.425,7.958,5.012,9,5.012c1.043,0,2.024,0.412,2.762,1.16c0.116,0.118,0.297,0.143,0.441,0.06l0.653-0.379               c0.094-0.056,0.16-0.153,0.177-0.263c0.018-0.112-0.018-0.224-0.092-0.306C11.929,4.173,10.492,3.537,9,3.537z"/>
                            <path d="M5.074,7.49L4.422,7.11C4.326,7.054,4.209,7.044,4.106,7.085C4.002,7.126,3.923,7.212,3.89,7.318               C3.727,7.84,3.644,8.384,3.644,8.934c0,2.506,1.761,4.719,4.189,5.264c0.026,0.006,0.053,0.009,0.079,0.009               c0.083,0,0.164-0.028,0.229-0.082c0.087-0.07,0.137-0.175,0.137-0.288V13.08c0-0.167-0.112-0.314-0.273-0.356               C6.3,12.27,5.107,10.711,5.107,8.934c0-0.346,0.046-0.693,0.137-1.029C5.289,7.744,5.218,7.573,5.074,7.49z"/>

                            <animateTransform type="rotate" fill="remove" to="360 9 8.935" begin="0s" dur="10s" calcMode="linear" accumulate="none" from="0 9 8.935" attributeName="transform" additive="replace" restart="whenNotActive" repeatCount="indefinite" end="indefinite"/>
                        </g>
                        <g class="rotating" fill="#205081">
                            <path d="M15.809,14.238l-1.093-0.637c-0.139-0.08-0.313-0.051-0.42,0.068c-1.346,1.525-3.276,2.403-5.296,2.404               c-2.019,0-3.948-0.877-5.296-2.404c-0.105-0.119-0.281-0.147-0.417-0.068L2.19,14.238c-0.086,0.05-0.145,0.135-0.162,0.234               c-0.018,0.097,0.009,0.199,0.073,0.276C3.82,16.814,6.334,18,8.999,18l0,0c2.665-0.001,5.18-1.186,6.9-3.251               c0.063-0.078,0.092-0.178,0.074-0.276C15.956,14.373,15.896,14.288,15.809,14.238z"/>
                            <path d="M10.549,0.005c-0.097-0.017-0.199,0.01-0.273,0.075c-0.078,0.064-0.12,0.159-0.12,0.258v1.271               c0,0.161,0.111,0.299,0.267,0.332c3.281,0.676,5.664,3.619,5.664,6.995c0,0.767-0.124,1.523-0.363,2.253               c-0.051,0.152,0.012,0.319,0.149,0.398l1.097,0.639c0.052,0.03,0.111,0.045,0.169,0.045c0.039,0,0.077-0.007,0.112-0.02               c0.095-0.033,0.169-0.108,0.203-0.202C17.817,11.053,18,10.004,18,8.935C18,4.519,14.868,0.763,10.549,0.005z"/>
                            <path d="M2.277,11.188c-0.241-0.73-0.362-1.487-0.362-2.252c0-3.376,2.381-6.319,5.663-6.995               C7.733,1.907,7.846,1.77,7.846,1.609V0.337c0-0.099-0.043-0.194-0.12-0.258C7.65,0.015,7.549-0.012,7.452,0.006               C3.135,0.763,0.001,4.519,0,8.935c0,1.069,0.185,2.119,0.547,3.114c0.034,0.094,0.108,0.168,0.201,0.202               c0.037,0.013,0.076,0.021,0.113,0.021c0.059,0,0.116-0.017,0.168-0.046l1.096-0.639C2.265,11.507,2.328,11.34,2.277,11.188z"/>

                            <animateTransform type="rotate" fill="remove" to="0 9 8.935" begin="0s" dur="5s" calcMode="linear" accumulate="none" from="360 9 8.935" attributeName="transform" additive="replace" restart="whenNotActive" repeatCount="indefinite" end="indefinite"/>
                        </g>
                    </g>
                </svg>
            </div>
            <h1><%= Product.FULL_NAME %> is starting up</h1>
        </div>

        <p class="message"><span id="message"><%= progress.getMessage()%></span></p>

        <div class="progress-bar"><span id="progress" class="progress-indicator" style="width:<%= progress.getPercentage()%>%"></span></div>
    </div>
    <footer>
        <a href="http://www.atlassian.com" target="_blank" class="logo">Atlassian</a>
    </footer>
    <script>
        (function(){
            var contextPath = '<%= servletContext.getContextPath() %>';
            var messageEl = document.querySelector('#message');
            var progressEl = document.querySelector('#progress');

            function setMessage(msg) {
                messageEl.setAttribute('title', msg);
                messageEl.textContent = msg;
            }

            function setProgress(pct) {
                var val = pct != null ? pct + '%' : null;
                progressEl.style.width = val;
            }

            setTimeout(function poll() {
                var request = new XMLHttpRequest();

                request.onload = function() {
                    var serviceUnavailable = request.status === 503;
                    var json;
                    var message = 'Starting up Stash';
                    var percentage = null;

                    if (this.responseText) {
                        json = JSON.parse(this.responseText);
                        var progress = json.progress;

                        message = progress.message;
                        percentage = progress.percentage;
                    }

                    progressEl.className = 'progress-indicator' + (serviceUnavailable ? ' unknown' : '');
                    setMessage(message);
                    setProgress(percentage);

                    // If the server is starting, or we're waiting to contact the service, continue to poll.
                    if (json && json.state === 'STARTING' || serviceUnavailable) {
                        setTimeout(poll, 500);
                    } else {
                        // When the server's state moves from STARTING to anything else, reload the page.
                        // This is better than checking progress because it handles startup failure
                        location.reload()
                    }
                };

                request.open('get', contextPath + '/system/startup', true);
                request.setRequestHeader('Accept', 'application/json');
                // Set the if-modified-since header to the current time to prevent
                // some browsers from caching the request results.
                request.setRequestHeader("If-Modified-Since", new Date().toUTCString());
                request.send();
            }, 500);
        }());
    </script>
</body>
</html>

Zerion Mini Shell 1.0