Minor: Format code

pull/5671/head
Angel Fernando Quiroz Campos 4 months ago
parent 81195b84c8
commit 2b4a0e60bd
No known key found for this signature in database
GPG Key ID: B284841AE3E562CD
  1. 35
      assets/vue/components/documents/Form.vue
  2. 34
      assets/vue/components/installer/Step1.vue
  3. 84
      assets/vue/components/installer/Step2.vue
  4. 124
      assets/vue/components/installer/Step3.vue
  5. 42
      assets/vue/components/installer/Step4.vue
  6. 36
      assets/vue/components/installer/Step5.vue
  7. 85
      assets/vue/components/installer/Step6.vue
  8. 24
      assets/vue/components/installer/Step7.vue

@ -35,26 +35,23 @@
</template>
<script setup>
import InputText from 'primevue/inputtext';
import Button from 'primevue/button';
import useVuelidate from '@vuelidate/core';
import { required } from '@vuelidate/validators';
import { useI18n } from 'vue-i18n';
import { computed } from 'vue';
import InputText from "primevue/inputtext"
import Button from "primevue/button"
import useVuelidate from "@vuelidate/core"
import { required } from "@vuelidate/validators"
import { useI18n } from "vue-i18n"
import { computed } from "vue"
const { t } = useI18n();
const { t } = useI18n()
const props = defineProps({
modelValue: {
type: Object,
default: () => {},
}
});
},
})
const emit = defineEmits([
'update:modelValue',
'submit',
]);
const emit = defineEmits(["update:modelValue", "submit"])
const v$ = useVuelidate(
{
@ -67,14 +64,14 @@ const v$ = useVuelidate(
},
{
item: computed(() => props.modelValue),
}
);
},
)
function btnSaveOnClick () {
const item = { ...props.modelValue, ...v$.value.item.$model };
function btnSaveOnClick() {
const item = { ...props.modelValue, ...v$.value.item.$model }
emit('update:modelValue', item);
emit("update:modelValue", item)
emit('submit', item);
emit("submit", item)
}
</script>

@ -4,7 +4,7 @@
:alt="t('Install step 1')"
class="install-icon w-36 mx-auto mb-4"
src="/main/install/chamilo-install.svg"
>
/>
<h2
class="install-title mb-8"
v-text="t('Step 1 - Installation Language')"
@ -25,25 +25,28 @@
for="language_list"
/>
</div>
<small v-text="t('Cannot find your language in the list? Contact us at info@chamilo.org to contribute as a translator.')" />
<small
v-text="
t('Cannot find your language in the list? Contact us at info@chamilo.org to contribute as a translator.')
"
/>
</div>
<input
v-model="installerData.langIso"
name="language_list"
type="hidden"
>
/>
<input
v-model="installerData.stepData.installationProfile"
type="hidden"
name="installationProfile"
>
/>
<hr>
<hr />
<div class="formgroup">
<Message
v-if="installerData.isUpdateAvailable"
id="pleasewait"
@ -51,7 +54,7 @@
severity="warn"
>
<p class="update-message-text">
{{ t('An update is available. Click the button below to proceed with the update.') }}
{{ t("An update is available. Click the button below to proceed with the update.") }}
</p>
<p>{{ installerData.checkMigrationStatus.message }}</p>
<p v-if="installerData.checkMigrationStatus.current_migration">
@ -60,7 +63,7 @@
<p v-if="installerData.checkMigrationStatus.progress_percentage">
Progress: {{ installerData.checkMigrationStatus.progress_percentage }}%
</p>
<hr>
<hr />
</Message>
<Button
:label="t('Next')"
@ -80,16 +83,17 @@
</template>
<script setup>
import { inject } from 'vue';
import { useI18n } from 'vue-i18n';
import { inject } from "vue"
import { useI18n } from "vue-i18n"
import Dropdown from "primevue/dropdown"
import Button from "primevue/button"
import Dropdown from 'primevue/dropdown';
import Button from 'primevue/button';
import languages from "../../utils/languages"
import languages from '../../utils/languages';
const availableLanguages = languages.filter((language) => ["en_US", "fr_FR"].includes(language.isocode))
const { t } = useI18n();
const { t } = useI18n()
const installerData = inject('installerData');
const installerData = inject("installerData")
</script>

@ -25,13 +25,13 @@
v-if="'update' === installerData.installType"
class="mb-4"
>
{{ t('If you plan to upgrade from an older version of Chamilo, you might want to') }}
{{ t("If you plan to upgrade from an older version of Chamilo, you might want to") }}
<a
href="/main/documentation/changelog.html"
target="_blank"
v-text="t('have a look at the changelog')"
/>
{{ t('to know what\'s new and what has been changed.') }}
{{ t("to know what's new and what has been changed.") }}
</p>
<h2
@ -44,7 +44,11 @@
:closable="false"
severity="warn"
>
{{ t('We have detected that your PHP installation does not define the date.timezone setting. This is a requirement of Chamilo. Please make sure it is configured by checking your php.ini configuration, otherwise you will run into problems. We warned you!') }}
{{
t(
"We have detected that your PHP installation does not define the date.timezone setting. This is a requirement of Chamilo. Please make sure it is configured by checking your php.ini configuration, otherwise you will run into problems. We warned you!",
)
}}
</Message>
<h3
@ -53,9 +57,7 @@
/>
<div class="text-center mb-4">
<p class="text-body-2 font-semibold mb-2">
{{ t('PHP version ') }} >= {{ installerData.phpRequiredVersion }}
</p>
<p class="text-body-2 font-semibold mb-2">{{ t("PHP version ") }} >= {{ installerData.phpRequiredVersion }}</p>
<p
v-if="installerData.stepData.isVersionPassed"
class="text-success text-body-1 font-semibold"
@ -64,13 +66,17 @@
class="mdi mdi-check"
aria-hidden="true"
/>
{{ t('Your PHP version matches the minimum requirement:') }}
{{ t("Your PHP version matches the minimum requirement:") }}
{{ installerData.stepData.phpVersion }}
</p>
<p
v-else
class="text-error text-body-1 font-semibold"
v-text="t('Your PHP version does not match the requirements for this software. Please check you have the latest version, then try again.')"
v-text="
t(
'Your PHP version does not match the requirements for this software. Please check you have the latest version, then try again.',
)
"
/>
</div>
@ -87,7 +93,11 @@
/>
<Tag
:icon="{ 'pi pi-check': 'success' === extension.status.severity, 'pi pi-exclamation-triangle': 'warning' === extension.status.severity, 'pi pi-times': 'danger' === extension.status.severity }"
:icon="{
'pi pi-check': 'success' === extension.status.severity,
'pi pi-exclamation-triangle': 'warning' === extension.status.severity,
'pi pi-times': 'danger' === extension.status.severity,
}"
:severity="extension.status.severity"
:value="extension.status.message"
/>
@ -100,7 +110,11 @@
/>
<p
class="install-requirement mb-4"
v-text="t('Recommended settings for your server configuration. These settings are set in the php.ini configuration file on your server.')"
v-text="
t(
'Recommended settings for your server configuration. These settings are set in the php.ini configuration file on your server.',
)
"
/>
<div class="table-responsive">
<table class="requirements-list">
@ -151,7 +165,9 @@
v-text="t('Directory and files permissions')"
/>
<p
v-t="'Some directories and the files they include must be writable by the web server in order for Chamilo to run (user uploaded files, homepage html files, ...). This might imply a manual change on your server (outside of this interface).'"
v-t="
'Some directories and the files they include must be writable by the web server in order for Chamilo to run (user uploaded files, homepage html files, ...). This might imply a manual change on your server (outside of this interface).'
"
class="mb-4"
/>
@ -159,7 +175,7 @@
<table class="requirements-list">
<tbody>
<tr
v-for="({item, status}, i) in installerData.stepData.pathPermissions"
v-for="({ item, status }, i) in installerData.stepData.pathPermissions"
:key="i"
>
<td v-text="item" />
@ -191,9 +207,9 @@
:closable="false"
severity="warning"
>
<strong v-text="t('Error')" /><br>
Chamilo {{ installerData.upgradeFromVersion.join('|') }}
{{ t('has not been found in that directory') }}
<strong v-text="t('Error')" /><br />
Chamilo {{ installerData.upgradeFromVersion.join("|") }}
{{ t("has not been found in that directory") }}
</Message>
<!-- form inputs for old version path -->
@ -231,7 +247,7 @@
name="is_executable"
type="hidden"
value="-"
>
/>
</div>
</div>
<div v-else>
@ -241,7 +257,11 @@
class="text-error"
/>
<p class="text-error">
{{ t('Some files or folders don\'t have writing permission. To be able to install Chamilo you should first change their permissions (using CHMOD). Please read the') }}
{{
t(
"Some files or folders don't have writing permission. To be able to install Chamilo you should first change their permissions (using CHMOD). Please read the",
)
}}
<a
href="/main/documentation/installation_guide.html"
target="_blank"
@ -264,14 +284,18 @@
:closable="false"
severity="warning"
>
{{ t('The installer has detected an existing Chamilo platform on your system.') }}
{{ t("The installer has detected an existing Chamilo platform on your system.") }}
</Message>
</div>
<div v-if="installerData.stepData.deprecatedToRemove.length > 0">
<p
class="text-error"
v-html="t('Because the <code>newscorm</code> and <code>exercice</code> directories were renamed to <code>lp</code> and <code>exercise</code> respectively, is necessary to delete or rename to <code>newscorm_old</code> and <code>exercice_old</code>.')"
v-html="
t(
'Because the <code>newscorm</code> and <code>exercice</code> directories were renamed to <code>lp</code> and <code>exercise</code> respectively, is necessary to delete or rename to <code>newscorm_old</code> and <code>exercice_old</code>.',
)
"
/>
<ul class="list-disc list-inside">
<li
@ -283,7 +307,7 @@
</ul>
</div>
<hr>
<hr />
<div class="formgroup-inline">
<!-- And now display the choice buttons (go back or install) -->
@ -320,26 +344,26 @@
name="is_executable"
type="hidden"
value="-"
>
/>
</div>
</div>
</div>
</template>
<script setup>
import { useI18n } from 'vue-i18n';
import { inject } from 'vue';
import { useI18n } from "vue-i18n"
import { inject } from "vue"
import Message from 'primevue/message';
import Tag from 'primevue/tag';
import InputText from 'primevue/inputtext';
import Button from 'primevue/button';
import Message from "primevue/message"
import Tag from "primevue/tag"
import InputText from "primevue/inputtext"
import Button from "primevue/button"
const { t } = useI18n();
const { t } = useI18n()
const installerData = inject('installerData');
const installerData = inject("installerData")
function goToIndex() {
window.location = 'index.php';
window.location = "index.php"
}
</script>

@ -38,7 +38,7 @@
/>
</div>
<hr>
<hr />
<InlineMessage severity="info">
<i18n-t
@ -61,20 +61,30 @@
class="mb-3"
/>
<p
v-t="'You are about to start using one of the best open-source e-learning platform on the market. Like many other open-source project, this project is backed up by a large community of students, teachers, developers and content creators who would like to promote the project better.'"
v-t="
'You are about to start using one of the best open-source e-learning platform on the market. Like many other open-source project, this project is backed up by a large community of students, teachers, developers and content creators who would like to promote the project better.'
"
class="mb-3"
/>
<p
v-t="'By knowing a little bit more about you, one of our most important users, who will manage this e-learning system, we will be able to let people know that our software is used and let you know when we organize events that might be relevant to you.'"
v-t="
'By knowing a little bit more about you, one of our most important users, who will manage this e-learning system, we will be able to let people know that our software is used and let you know when we organize events that might be relevant to you.'
"
class="mb-3"
/>
<p
v-t="'By filling this form, you accept that the Chamilo association or its members might send you information by e-mail about important events or updates in the Chamilo software or community. This will help the community grow as an organized entity where information flow, with a permanent respect of your time and your privacy.'"
v-t="
'By filling this form, you accept that the Chamilo association or its members might send you information by e-mail about important events or updates in the Chamilo software or community. This will help the community grow as an organized entity where information flow, with a permanent respect of your time and your privacy.'
"
class="mb-3"
/>
<p
class="mb-3"
v-html="t('Please note that you are <b>not required</b> to fill this form. If you want to remain anonymous, we will loose the opportunity to offer you all the privileges of being a registered portal administrator, but we will respect your decision. Simply leave this form empty and click Next')"
v-html="
t(
'Please note that you are <b>not required</b> to fill this form. If you want to remain anonymous, we will loose the opportunity to offer you all the privileges of being a registered portal administrator, but we will respect your decision. Simply leave this form empty and click Next',
)
"
/>
<div class="field">
@ -240,7 +250,7 @@
</div>
</Fieldset>
<hr>
<hr />
<div class="formgroup-inline">
<div class="field">
@ -267,29 +277,29 @@
name="is_executable"
type="hidden"
value="-"
>
/>
</div>
</div>
</template>
<script setup>
import { useI18n } from 'vue-i18n';
import { inject, reactive, ref } from 'vue';
import axios from 'axios';
import { useI18n } from "vue-i18n"
import { inject, reactive, ref } from "vue"
import axios from "axios"
import Checkbox from 'primevue/checkbox';
import InlineMessage from 'primevue/inlinemessage';
import Fieldset from 'primevue/fieldset';
import Dropdown from 'primevue/dropdown';
import InputText from 'primevue/inputtext';
import RadioButton from 'primevue/radiobutton';
import Button from 'primevue/button';
import Checkbox from "primevue/checkbox"
import InlineMessage from "primevue/inlinemessage"
import Fieldset from "primevue/fieldset"
import Dropdown from "primevue/dropdown"
import InputText from "primevue/inputtext"
import RadioButton from "primevue/radiobutton"
import Button from "primevue/button"
const { t } = useI18n();
const { t } = useI18n()
const installerData = inject('installerData');
const installerData = inject("installerData")
const acceptLicence = ref(false);
const acceptLicence = ref(false)
const contact = reactive({
personName: null,
@ -301,58 +311,52 @@ const contact = reactive({
companyCity: null,
contactLanguage: null,
financialDecision: true,
});
})
const sendingContactInformation = ref(false);
const sendingContactInformation = ref(false)
const btnNext = ref(null);
const btnNext = ref(null)
async function sendContactInformation () {
async function sendContactInformation() {
if (!acceptLicence.value) {
alert(t('You must accept the licence'));
alert(t("You must accept the licence"))
return;
return
}
sendingContactInformation.value = true;
const formData = new FormData();
formData.append('person_name', contact.personName);
formData.append('person_email', contact.personEmail);
formData.append('company_name', contact.companyName);
formData.append('company_activity', contact.companyActivity);
formData.append('person_role', contact.jobRole);
formData.append('company_country', contact.companyCountry);
formData.append('company_city', contact.companyCity);
formData.append('language', contact.contactLanguage);
formData.append('financial_decision', contact.financialDecision * 1 + '');
const { data } = await axios.post(
'/main/inc/ajax/install.ajax.php?a=send_contact_information',
formData,
{
headers: { 'content-type': 'application/x-www-form-urlencoded' }
}
);
if ('1' === data + '') {
alert(
t('Contact information has been sent')
);
sendingContactInformation.value = true
btnNext.value.$el.click();
const formData = new FormData()
formData.append("person_name", contact.personName)
formData.append("person_email", contact.personEmail)
formData.append("company_name", contact.companyName)
formData.append("company_activity", contact.companyActivity)
formData.append("person_role", contact.jobRole)
formData.append("company_country", contact.companyCountry)
formData.append("company_city", contact.companyCity)
formData.append("language", contact.contactLanguage)
formData.append("financial_decision", contact.financialDecision * 1 + "")
return;
} else if ('required_field_error' === data) {
alert(
t('The form contains incorrect or incomplete data. Please check your input.')
);
const { data } = await axios.post("/main/inc/ajax/install.ajax.php?a=send_contact_information", formData, {
headers: { "content-type": "application/x-www-form-urlencoded" },
})
if ("1" === data + "") {
alert(t("Contact information has been sent"))
btnNext.value.$el.click()
return
} else if ("required_field_error" === data) {
alert(t("The form contains incorrect or incomplete data. Please check your input."))
} else {
alert(
t('Your contact information could not be sent. This is probably due to a temporary network problem. Please try again in a few seconds. If the problem remains, ignore this registration process and simply click the button to go to the next step.')
);
t(
"Your contact information could not be sent. This is probably due to a temporary network problem. Please try again in a few seconds. If the problem remains, ignore this registration process and simply click the button to go to the next step.",
),
)
}
sendingContactInformation.value = false;
sendingContactInformation.value = false
}
</script>

@ -7,12 +7,16 @@
<p
v-if="'update' === installerData.installType"
v-t="'The upgrade script will recover and update the Chamilo database(s). In order to do this, this script will use the databases and settings defined below. Because our software runs on a wide range of systems and because all of them might not have been tested, we strongly recommend you do a full backup of your databases before you proceed with the upgrade!'"
v-t="
'The upgrade script will recover and update the Chamilo database(s). In order to do this, this script will use the databases and settings defined below. Because our software runs on a wide range of systems and because all of them might not have been tested, we strongly recommend you do a full backup of your databases before you proceed with the upgrade!'
"
class="RequirementContent mb-4"
/>
<p
v-else
v-t="'The install script will create (or use) the Chamilo database using the database name given here. Please make sure the user you give has the right to create the database by the name given here. If a database with this name exists, it will be overwritten. Please do not use the root user as the Chamilo database user. This can lead to serious security issues.'"
v-t="
'The install script will create (or use) the Chamilo database using the database name given here. Please make sure the user you give has the right to create the database by the name given here. If a database with this name exists, it will be overwritten. Please do not use the root user as the Chamilo database user. This can lead to serious security issues.'
"
class="RequirementContent mb-4"
/>
@ -85,7 +89,9 @@
for="dbPassForm"
/>
</div>
<small v-t="{ path: 'ex. {examplePassword}', args: { examplePassword: installerData.stepData.examplePassword } }" />
<small
v-t="{ path: 'ex. {examplePassword}', args: { examplePassword: installerData.stepData.examplePassword } }"
/>
</div>
<div class="field">
@ -173,11 +179,15 @@
:closable="false"
severity="error"
>
{{ t('The database connection has failed. This is generally due to the wrong user, the wrong password or the wrong database prefix being set above. Please review these settings and try again.') }}
{{
t(
"The database connection has failed. This is generally due to the wrong user, the wrong password or the wrong database prefix being set above. Please review these settings and try again.",
)
}}
<code v-t="installerData.stepData.dbConnError" />
</Message>
<hr>
<hr />
<div class="formgroup-inline">
<div class="field">
@ -202,26 +212,26 @@
name="is_executable"
type="hidden"
value="-"
>
/>
</div>
</div>
</template>
<script setup>
import { inject } from 'vue';
import { useI18n } from 'vue-i18n';
import { inject } from "vue"
import { useI18n } from "vue-i18n"
import InputText from 'primevue/inputtext';
import Password from 'primevue/password';
import Button from 'primevue/button';
import Message from 'primevue/message';
import InputText from "primevue/inputtext"
import Password from "primevue/password"
import Button from "primevue/button"
import Message from "primevue/message"
const { t } = useI18n();
const { t } = useI18n()
const installerData = inject('installerData');
const installerData = inject("installerData")
// Database Name fix replace weird chars
if ('update' !== installerData.value.installType) {
installerData.value.dbNameForm = installerData.value.dbNameForm.replace(/[-*$ .]/g, '');
if ("update" !== installerData.value.installType) {
installerData.value.dbNameForm = installerData.value.dbNameForm.replace(/[-*$ .]/g, "")
}
</script>

@ -93,7 +93,7 @@
v-model="installerData.stepData.loginForm"
type="hidden"
name="loginForm"
>
/>
{{ installerData.stepData.loginForm }}
</div>
@ -221,7 +221,7 @@
v-model="installerData.stepData.languageForm"
name="languageForm"
type="hidden"
>
/>
</div>
</div>
@ -358,7 +358,7 @@
v-model="installerData.stepData.encryptPassForm"
type="hidden"
name="encryptPassForm"
>
/>
{{ installerData.stepData.encryptPassForm }}
</div>
@ -409,7 +409,7 @@
v-model="installerData.stepData.allowSelfReg"
type="hidden"
name="allowSelfReg"
>
/>
<span
v-if="'true' === installerData.stepData.allowSelfReg"
v-t="'Yes'"
@ -459,7 +459,7 @@
v-model="installerData.stepData.allowSelfRegProf"
type="hidden"
name="allowSelfRegProf"
>
/>
<span
v-if="1 === installerData.stepData.allowSelfRegProf"
v-t="'Yes'"
@ -471,7 +471,7 @@
</div>
</div>
<hr>
<hr />
<div class="formgroup-inline">
<div class="field">
@ -491,30 +491,30 @@
name="step5"
type="submit"
/>
<input
id="is_executable"
name="is_executable"
type="hidden"
value="-"
>
/>
</div>
</div>
</template>
<script setup>
import { inject, } from 'vue';
import { useI18n } from 'vue-i18n';
import { inject } from "vue"
import { useI18n } from "vue-i18n"
import InputText from 'primevue/inputtext';
import Password from 'primevue/password';
import Dropdown from 'primevue/dropdown';
import Button from 'primevue/button';
import RadioButton from 'primevue/radiobutton';
import InputText from "primevue/inputtext"
import Password from "primevue/password"
import Dropdown from "primevue/dropdown"
import Button from "primevue/button"
import RadioButton from "primevue/radiobutton"
import languages from '../../utils/languages';
import languages from "../../utils/languages"
const { t } = useI18n();
const { t } = useI18n()
const installerData = inject('installerData');
const installerData = inject("installerData")
</script>

@ -229,11 +229,15 @@
:closable="false"
severity="warn"
>
{{ t('The install script will erase all tables of the selected database. We heavily recommend you do a full backup of them before confirming this last install step.') }}
{{
t(
"The install script will erase all tables of the selected database. We heavily recommend you do a full backup of them before confirming this last install step.",
)
}}
</Message>
</div>
<hr>
<hr />
<div class="formgroup-inline">
<div class="field">
@ -245,8 +249,17 @@
name="step4"
type="submit"
/>
<input id="is_executable" v-model="isExecutable" name="is_executable" type="hidden" />
<input type="hidden" name="step6" value="1" />
<input
id="is_executable"
v-model="isExecutable"
name="is_executable"
type="hidden"
/>
<input
type="hidden"
name="step6"
value="1"
/>
</div>
<Button
id="button_step6"
@ -295,7 +308,12 @@
/>
<ProgressBar mode="indeterminate" />
</Message>
<ProgressBar :value="progressPercentage" style="height: 22px"> {{ progressPercentage }}/100 </ProgressBar>
<ProgressBar
:value="progressPercentage"
style="height: 22px"
>
{{ progressPercentage }}/100</ProgressBar
>
<div class="log-container">
<div v-html="logTerminalContent"></div>
</div>
@ -303,51 +321,50 @@
</template>
<script setup>
import { inject, ref} from 'vue';
import { useI18n } from 'vue-i18n';
import Message from 'primevue/message';
import Button from 'primevue/button';
import ProgressBar from 'primevue/progressbar';
import { inject, ref } from "vue"
import { useI18n } from "vue-i18n"
const { t } = useI18n();
import Message from "primevue/message"
import Button from "primevue/button"
import ProgressBar from "primevue/progressbar"
const installerData = inject('installerData');
const { t } = useI18n()
const loading = ref(false);
const isButtonDisabled = ref(installerData.value.isUpdateAvailable);
const isExecutable = ref('');
const installerData = inject("installerData")
const loading = ref(false)
const isButtonDisabled = ref(installerData.value.isUpdateAvailable)
const isExecutable = ref("")
const logTerminalContent = ref('');
const progressPercentage = ref(0);
const logTerminalContent = ref("")
const progressPercentage = ref(0)
function updateLog() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
var xhr = new XMLHttpRequest()
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
const response = JSON.parse(xhr.responseText);
logTerminalContent.value = response.log_terminal;
progressPercentage.value = response.progress_percentage;
scrollToBottom();
const response = JSON.parse(xhr.responseText)
logTerminalContent.value = response.log_terminal
progressPercentage.value = response.progress_percentage
scrollToBottom()
isButtonDisabled.value = false;
isButtonDisabled.value = false
}
};
xhr.open('GET', installerData.value.logUrl, true);
xhr.send();
}
xhr.open("GET", installerData.value.logUrl, true)
xhr.send()
}
function btnStep6OnClick() {
loading.value = true;
isExecutable.value = 'step6';
document.getElementById('install_form').submit();
loading.value = true
isExecutable.value = "step6"
document.getElementById("install_form").submit()
}
function scrollToBottom() {
const logContainer = document.querySelector('.log-container');
logContainer.scrollTop = logContainer.scrollHeight;
const logContainer = document.querySelector(".log-container")
logContainer.scrollTop = logContainer.scrollHeight
}
setInterval(updateLog, 2000);
setInterval(updateLog, 2000)
</script>

@ -10,7 +10,7 @@
v-t="'Step 7 - Update process execution'"
class="RequirementHeading mb-8"
/>
<p
v-if="installerData.installationProfile"
class="mb-4"
@ -19,10 +19,12 @@
<div class="RequirementContent">
<p
v-t="'When you enter your portal for the first time, the best way to understand it is to create a course with the \'Create course\' link in the menu and play around a little.'"
v-t="
'When you enter your portal for the first time, the best way to understand it is to create a course with the \'Create course\' link in the menu and play around a little.'
"
class="mb-3"
/>
<Message
:closable="false"
severity="warn"
@ -53,17 +55,17 @@
</template>
<script setup>
import { inject } from 'vue';
import { useI18n } from 'vue-i18n';
import { inject } from "vue"
import { useI18n } from "vue-i18n"
import Message from 'primevue/message';
import Button from 'primevue/button';
import Message from "primevue/message"
import Button from "primevue/button"
const { t } = useI18n();
const { t } = useI18n()
const installerData = inject('installerData');
const installerData = inject("installerData")
function btnFinishOnClick () {
window.location = '../../';
function btnFinishOnClick() {
window.location = "../../"
}
</script>

Loading…
Cancel
Save