{namespace JIRA.Templates.ConfirmNewInstallationWithOldLicense}

/**
 * Renders page allowing to provide new license or continue under evaluation terms
 *
 * @param serverId
 * @param licenseDescLinkContent
 * @param radioOption
 * @param? loginErrorMessageContent
 * @param? loginErrorMessageTitle
 * @param? radioOptionErrorMessageContent
 * @param? errors
 * @param licenseStatusMessage1Content
 * @param licenseStatusMessage2Content
 * @param radioOptionLicense
 * @param radioOptionEvaluation
 * @param radioRemoveExpired
 * @param userNameValue
 * @param licenseValue
 * @param jiraTitle
 * @param jiraLogoUrl
 * @param resourcesContent
 * @param evaluationOptionDisplayable
 * @param expired
 * @param thereAreValidLicenses
 * @param clustered
 * @param? licenseDescLinkTimebombContent
 * @param atlToken
 */
{template .confirmNewInstallationWithOldLicenseInputOrError}
    {let $idPrefix: 'confirm-new-installation-' /}
    {call JIRA.Templates.FakeDecorators.fakeDecorator}
        {param completePageTitle: getText('system.error.confirm.new.installation') + ' - ' + $jiraTitle /}
        {param logoText: $jiraTitle /}
        {param logoUrl: $jiraLogoUrl /}
        {param headContent : $resourcesContent /}
        {param extraClasses: 'new-installation-old-license' /}
        {param contentExtraClasses: 'margin-fix' /}
        {param content}
            /* Cached forms */
            <div id="{$idPrefix}license-area" class="hidden">
                <h3>{getText('admin.license.enter.license.key')}</h3>
                {call .loginArea data="all"}
                    {param idPrefix: $idPrefix /}
                {/call}
                {call .licenseKeyForm data="all" /}
            </div>
            <div id="{$idPrefix}evaluation-area" class="hidden">
                <h3>{getText('admin.license.confirm.new.evaluation.period')}</h3>
                <p class="{$idPrefix}no-margin">{getText('admin.license.evaluation.will.be.generated')}</p>
                {call .loginArea data="all"}
                    {param idPrefix: $idPrefix /}
                {/call}
                {call .newEvaluationForm data="all" /}
            </div>
            <div id="{$idPrefix}remove-expired-area" class="hidden">
                <h3>{getText('admin.license.confirm.remove.expired')}</h3>
                <p class="{$idPrefix}no-margin">{getText('admin.license.remove.expired.text')}</p>
                {call .loginArea data="all"}
                    {param idPrefix: $idPrefix /}
                {/call}
                {call .removeExpiredForm data="all" /}
            </div>

            /* Page form */
            {call aui.form.form}
                {param id: $idPrefix + 'form' /}
                {param action: 'ConfirmNewInstallationWithOldLicense.jspa' /}
                {param content}
                    <h2>{getText('system.error.confirm.new.installation')}</h2>
                    <img class="setup-banner" src="{contextPath()}/images/renewal-banner.png" />

                    {if $expired}
                        {call aui.message.info}
                            {param titleContent: getText('admin.license.confirmation.expired') /}
                            {param content: $licenseStatusMessage1Content /}
                        {/call}
                    {else}
                        {if $licenseStatusMessage1Content}
                            {call aui.message.info}
                                {param titleContent: getText('admin.license.confirmation.status') /}
                                {param content: $licenseStatusMessage1Content /}
                            {/call}
                        {/if}
                    {/if}
                    {if $licenseStatusMessage2Content}
                        <p>{$licenseStatusMessage2Content|noAutoescape}</p>
                    {/if}

                    {if $evaluationOptionDisplayable or $thereAreValidLicenses}
                        <p>{getText('system.error.proceed.under.evaluation.terms', '<strong>', '</strong>')|noAutoescape}</p>
                        <p class="{$idPrefix}no-margin">{getText('admin.license.please.choose.an.option')}</p>
                        {if $radioOptionErrorMessageContent}
                            {call aui.message.error}
                                {param content: $radioOptionErrorMessageContent /}
                            {/call}
                        {/if}
                        <div id="{$idPrefix}radio-options" class="inline-radio-options" data-option="{$radioOption}">
                            <fieldset>
                                <p class="radio">
                                    {call aui.form.input}
                                        {param id: $idPrefix+'radio-license-key' /}
                                        {param name: 'radioOption' /}
                                        {param type: 'radio' /}
                                        {param value: $radioOptionLicense /}
                                    {/call}
                                    {call aui.form.label}
                                        {param forField: $idPrefix+'radio-license-key' /}
                                        {param content: getText('setupLicense.type.existingLicense') /}
                                    {/call}
                                </p>
                                {if $evaluationOptionDisplayable}
                                    <p class="radio">
                                        {call aui.form.input}
                                            {param id: $idPrefix+'radio-new-evaluation' /}
                                            {param name: 'radioOption' /}
                                            {param type: 'radio' /}
                                            {param value: $radioOptionEvaluation /}
                                        {/call}
                                        {call aui.form.label}
                                            {param forField: $idPrefix+'radio-new-evaluation' /}
                                            {param content: getText('admin.license.proceed.under.evaluation.terms') /}
                                        {/call}
                                    </p>
                                {/if}
                                {if $thereAreValidLicenses}
                                    <p class="radio">
                                        {call aui.form.input}
                                            {param id: $idPrefix+'radio-remove-expired' /}
                                            {param name: 'radioOption' /}
                                            {param type: 'radio' /}
                                            {param value: $radioRemoveExpired /}
                                        {/call}
                                        {call aui.form.label}
                                            {param forField: $idPrefix+'radio-delete-license' /}
                                            {param content: getText('setupLicense.delete.expired') /}
                                        {/call}
                                    </p>
                                {/if}
                            </fieldset>
                        </div>
                        <div id="{$idPrefix}form-area" class="hidden"></div>
                    {else}
                        <input type='hidden' value="{$radioOptionLicense}" name='radioOption' id='default-option'/>
                        <div id="{$idPrefix}form-area">
                            <div id="{$idPrefix}license-area">
                                <h3>{getText('admin.license.enter.license.key')}</h3>
                                {call .loginArea data="all"}
                                    {param idPrefix: $idPrefix /}
                                {/call}
                                {call .licenseKeyForm data="all" /}
                            </div>
                        </div>
                    {/if}
                    {call aui.form.input}
                        {param name: 'atl_token'/}
                        {param type: 'hidden' /}
                        {param value}{$atlToken}{/param}
                    {/call}
                {/param}
            {/call}
        {/param}
    {/call}
{/template}

/**
 * Renders page about license updated successfully
 *
 * @param licenseUpdated
 * @param installationConfirmed
 * @param jiraTitle
 * @param jiraLogoUrl
 * @param resourcesContent
*/
{template .confirmNewInstallationWithOldLicenseSuccess}
    {call JIRA.Templates.FakeDecorators.fakeDecorator}
        {param completePageTitle: getText('admin.license.update.license') + ' - ' + $jiraTitle /}
        {param logoText: $jiraTitle /}
        {param logoUrl: $jiraLogoUrl /}
        {param headContent : $resourcesContent /}
        {param extraClasses: 'new-installation-old-license' /}
        {param contentExtraClasses: 'margin-fix' /}
        {param content}
            <h2>{getText('admin.license.update.license')}</h2>
            <img class="setup-banner" src="{contextPath()}/images/renewal-banner.png" />

            {call aui.message.info}
                {param titleContent: getText('admin.license.update.license') /}
                {param content}
                    {if $licenseUpdated}
                        {getText('system.error.license.updated.please.restart')}
                    {/if}
                    {if $installationConfirmed}
                        {getText('system.error.installation.complete.please.restart')}
                    {/if}
                {/param}
            {/call}
        {/param}
    {/call}
{/template}

/**
 * Renders part of form (login area)
 *
 * @param? loginErrorMessageContent
 * @param? loginErrorMessageTitle
 * @param errors
 * @param idPrefix
 * @param userNameValue
 */
{template .loginArea private="true"}
    {let $userNameName: 'userName' /}
    {let $passwordName: 'password' /}

    {if $loginErrorMessageContent}
        {if $loginErrorMessageTitle}
            {call aui.message.error}
                {param content: $loginErrorMessageContent /}
                {param titleContent: $loginErrorMessageTitle /}
            {/call}
        {else}
            {call aui.message.error}
                {param content: $loginErrorMessageContent /}
            {/call}
        {/if}
    {/if}
    {call aui.form.fieldGroup}
        {param extraClasses: [$idPrefix+'with-margin'] /}
        {param content}
            {call aui.form.label}
                {param forField: 'confirm-'+$userNameName /}
                {param content: getText('system.error.admin.username') /}
            {/call}
            {call aui.form.input}
                {param id: 'confirm-'+$userNameName /}
                {param name: $userNameName /}
                {param type: 'text' /}
                {param value: $userNameValue /}
            {/call}
            {if $errors[$userNameName]}
                {call aui.form.fieldError}
                    {param message: $errors[$userNameName] /}
                {/call}
            {/if}
        {/param}
    {/call}
    {call aui.form.fieldGroup}
        {param content}
            {call aui.form.label}
                {param forField: 'confirm-'+$passwordName /}
                {param content: getText('common.words.password') /}
            {/call}
            {call aui.form.input}
                {param id: 'confirm-'+$passwordName /}
                {param name: $passwordName /}
                {param type: 'password' /}
                {param value: '' /}
            {/call}
            {call aui.form.fieldDescription}
                {param message: getText('system.error.admin.username.password.desc') /}
            {/call}
        {/param}
    {/call}
{/template}

/**
 * Renders part of form (entering a license key)
 *
 * @param serverId
 * @param licenseDescLinkContent
 * @param errors
 * @param licenseValue
 * @param clustered
 * @param? licenseDescLinkTimebombContent
 */
{template .licenseKeyForm private="true"}
    {let $serverIdName: 'serverId' /}
    {let $licenseName: 'license' /}

    {call aui.form.fieldGroup}
        {param content}
            {call aui.form.label}
                {param forField: 'confirm-'+$serverIdName /}
                {param content: getText('admin.server.id') /}
            {/call}
            {call aui.form.value}
                {param id: 'confirm-'+$serverIdName /}
                {param content: $serverId /}
            {/call}
        {/param}
    {/call}
    {call aui.form.fieldGroup}
        {param content}
            {call aui.form.label}
                {param forField: 'confirm-'+$licenseName /}
                {param content: getText('admin.license') /}
            {/call}
            {call aui.form.textarea}
                {param id: 'confirm-'+$licenseName /}
                {param name: $licenseName /}
                {param rows: 7 /}
                {param extraClasses: ['license-key', 'full-width-field'] /}
                {param value: $licenseValue /}
            {/call}
            {if $errors[$licenseName]}
                {call aui.form.fieldError}
                    {param message: $errors[$licenseName] /}
                {/call}
            {/if}
            <div class="description">
                {getText('system.error.license.line0.desc')}
                <br>
                {if $clustered}
                    {getText('system.error.license.line2.desc.clustered', $licenseDescLinkContent, '</a>', $licenseDescLinkTimebombContent, '</a>')|noAutoescape}
                {else}
                    {getText('system.error.license.line2.desc', $licenseDescLinkContent, '</a>')|noAutoescape}
                {/if}
            </div>
        {/param}
    {/call}
    {call .buttonContainer /}
{/template}

/**
 * Renders part of form (proceeding under evaluation terms)
 */
{template .newEvaluationForm private="true"}
    {call .buttonContainer /}
{/template}

/**
  * Renders part of form (remove out of maintenance licenses)
  *
  * @param errors
  */
{template .removeExpiredForm private="true"}
    {let $licenseremoval: 'license-removal'/}
    {if $errors[$licenseremoval]}
        {call aui.message.error}
            {param content: $errors[$licenseremoval] /}
        {/call}
    {/if}
    {call .buttonContainer /}
{/template}

/**
 * Renders container with button for submitting form
 */
{template .buttonContainer private="true"}
    {let $accesskey: getText('AUI.form.submit.button.accesskey') /}

    {call aui.form.buttons}
        {param content}
            {call aui.form.submit}
                {param id: 'proceed-submit' /}
                {param name: 'Proceed' /}
                {param text: getText('common.words.proceed') /}
                {param extraAttributes: [
                    'accesskey': $accesskey,
                    'title': getText('AUI.form.submit.button.tooltip', $accesskey, 'Alt')] /}
            {/call}
        {/param}
    {/call}
{/template}
