? ? Pending

User tests: Successful: Unsuccessful:

avatar dgt41
dgt41
15 Sep 2017

CREDITS

Design: @coolcat-creations and @svom
Accessibility testing: @armenos
HTML + CSS: @ciar4n
PHP + JS: @dgt41
PHP namespacing: @laoneo

Summary of Changes

New installer for Joomla 4 with less steps, less questions. Should be a nice step forward from the current (J3.x).

Preview

Error page if your PHP version doesn't meet the minimum requirements of Joomla:
screen shot 2017-09-03 at 22 17 46

Error page if any of the required PHP packages isn't installed in your server:
screen shot 2017-09-03 at 22 23 14

First page (if your server meets Joomla's requirements, that should be the entry point for most users):
screen shot 2017-09-03 at 22 18 48

Second page:
screen shot 2017-09-03 at 22 19 37

Third screen (clicking on the button will install your Joomla copy):
screen shot 2017-09-03 at 22 20 09

Forth page (option to install sample data and more languages or finalise installation) :
screen shot 2017-09-03 at 22 20 56

Extra languages:
screen shot 2017-09-03 at 22 21 12

Sample data:
screen shot 2017-09-03 at 22 21 34

Finallise installation:
screen shot 2017-09-03 at 22 21 46

THIS IS ALPHA [WIP]

  • The remove installation folder is not implemented yet (on purpose)
avatar joomla-cms-bot joomla-cms-bot - change - 15 Sep 2017
Category JavaScript Repository Administration Templates (admin) Installation Language & Strings
avatar dgt41 dgt41 - open - 15 Sep 2017
avatar dgt41 dgt41 - change - 15 Sep 2017
Status New Pending
avatar mbabker
mbabker - comment - 15 Sep 2017
  1. You can leave the non-English translations alone for now.
  2. There are two things I see missing from the screenshots that probably should be there: the "backup/restore database" option and the database table prefix field (I do a lot of installs against the git repo and would find it somewhat irritating if I had to manually clear the database each time I reset or end up with a database with 1000 tables because I didn't reset after 15 times)
4069a03 15 Sep 2017 avatar dgt41 fixes
avatar brianteeman
brianteeman - comment - 15 Sep 2017

The language strings need updating to reflect the changes made in 3.8 for the word installation

avatar dgt41 dgt41 - change - 15 Sep 2017
Labels Added: ? ?
avatar dgt41
dgt41 - comment - 15 Sep 2017

@mbabker

  1. all the languages need a total rewrite, there's no point to try to clean them out, we're using a small fraction of all the strings that 3.x is got there.
  2. The backup/restore is now always Backup!
  3. The table prefix is randomly generated in the client side, I don't see a reason to have that as an option, as it's something that most less experienced will be always confused with it, also the advanced users can do whatever they want, they don't need a GUI for that.

@brianteeman the language file needs a very good clean up, most strings should be deleted

avatar brianteeman
brianteeman - comment - 15 Sep 2017

I dont understand the reasoning in the final screenshot for the words "Complete and ..."
We already know it is complete as the page title says so

avatar dgt41 dgt41 - change - 15 Sep 2017
The description was changed
avatar dgt41 dgt41 - edited - 15 Sep 2017
avatar alikon
alikon - comment - 15 Sep 2017

The table prefix is randomly generated in the client side, I don't see a reason to have that as an option, as it's something that most less experienced will be always confused with it, also the advanced users can do whatever they want, they don't need a GUI for that.

let me disagree, even for non advanced users should be usefull to have a chance to change it

avatar mbabker
mbabker - comment - 15 Sep 2017

Even if the backup/rename and prefix things are hidden under an "advanced settings" area, they're power tools that I feel like flat out removing would be more annoying to myself and contributors working from git.

Another possible option is we use the Joomla\CMS\Version::DEV_STATUS constant and do a check to show these only for development state (so only nightly builds and when running from git would see it, packages at tagged milestones wouldn't). Because to an extent for absolute new installations those options have less meaning.

avatar dgt41
dgt41 - comment - 15 Sep 2017

show these only for development state (so only nightly builds and when running from git would see it, packages at tagged milestones wouldn't). Because to an extent for absolute new installations those options have less meaning.

That makes sense

avatar berserkerx
berserkerx - comment - 15 Sep 2017

let me disagree, even for non advanced users should be usefull to have a chance to change it

I agree. Sometimes concrete prefix is necessary, it's really useful to have ability to change it during installation.

avatar brianteeman
brianteeman - comment - 15 Sep 2017

The backup/restore is now always Backup!

If the prefix is always random then is there even any needed for the backup. That only serves a purpose if you choose to install in the same db with the same prefix

avatar dgt41 dgt41 - change - 15 Sep 2017
The description was changed
avatar dgt41 dgt41 - edited - 15 Sep 2017
avatar dgt41
dgt41 - comment - 15 Sep 2017

Sometimes concrete prefix is necessary, it's really useful to have ability to change it during installation.

Let's clear up something here, the more options the worse the UX. You cannot have both, either the installer will be nice and easy or it will be something like the old one with plethora of options but not really attractive to new users. Obviously I'm not the one that will decide that, but the people worked on this believe on the few options, easy part...

avatar mbabker
mbabker - comment - 15 Sep 2017

Less options is user friendly as long as it's not crippling the system. In my case though, I've shown where dropping those options from at least development environments has disruptive consequences. I can get on board with hiding them both for milestoned releases (but then IMO it becomes more important to either make the DB prefix readonly in the backend or implement code to handle prefix changes if you change it in the UI), but I'm personally not 100% sold on removing them at all times.

avatar dgt41
dgt41 - comment - 15 Sep 2017

but I'm personally not 100% sold on removing them at all times.

I guess that's the purpose of this PR, highlight the cases the we're overseeing and handle them appropriately.

avatar alikon
alikon - comment - 15 Sep 2017

i suggest to put more effort on the usabilty for the multilaguage install side
maybe adding some kind of autosuggest/search field instaed of scrolling the whole list of languages avaible
my 0.02 €

avatar dgt41
dgt41 - comment - 15 Sep 2017

@alikon on the roadmap is http://choices.dev but neither me or @ciaran have much spare time at the moment to do the needed changes, but you're right the long list is not really helping anyone!

EDIT: also I started this for the tags: https://codepen.io/dgt41/pen/KvbbdE (check it with Chrome!) which is based on web components/custom elements but it's not there yet (no autocomplete functionality ATM), which can also cover this case

avatar zwiastunsw
zwiastunsw - comment - 16 Sep 2017
  1. A great advantage of the project - everything can only be done with the keyboard!
  2. Problem: Use the fieldset tag to mark each group of controls instead of the div tag. Then use the legend tag to mark the heading of a group of controls instead of the div tag.
    This is important for screen reader users. The screen reader will inform you about the change of context, announce that there is a new group of fields and announce its name. The blind person will be informed accurately.
  3. Note on language keys. The name Joomla in all the language sequences should be without an exclamation mark. Screen readers treat the exclamation mark as the end of the sentence. This confuses screen reader users.
  4. I support @brianteeman proposal] (#17019)

if the installer is in greek then the greek language is automatically installed (with english) without any user input and then you can optionally install more languages as you do now

  1. Consider: don't you abandon the installation of sample data in the installer? They could be offered after logging into the backend.
    The result would be a very simple installer. And accessible.
avatar infograf768
infograf768 - comment - 16 Sep 2017

I can't even test this to comment...

Error displaying the error page

avatar zwiastunsw
zwiastunsw - comment - 16 Sep 2017

@infograf768 Error when wrong access data are given to the database. Unfortunately, you must reload the installation package (or only files in the root directory and tmp folder).

avatar infograf768
infograf768 - comment - 16 Sep 2017

@zwiastunsw
Hello Stefan

What do you mean, this is a clean install.
4.0 patched with this PR
Exported to htdocs in MAMP.

Without this PR I can install although there are errors for multilang (including for installing some languages (I have to think what is different between fr-FR, de-DE, fa-IR which can be installed, and not others.)

avatar zwiastunsw
zwiastunsw - comment - 16 Sep 2017

This error occurred in me after the wrong login details to BD were given. The first time I removed the entire installation package and loaded it again. The second time I deleted only files from the main folder and tmp folder.

avatar infograf768
infograf768 - comment - 16 Sep 2017

@zwiastunsw
This happens to me when I first load installation/index.php. I mean I did not enter anything yet as the first page of installation does not show.
PHP 7.1.0

avatar zwiastunsw
zwiastunsw - comment - 16 Sep 2017

@infograf768 : Hmm. I don't know what I could advise.

avatar wilsonge
wilsonge - comment - 17 Sep 2017

image

I'm still getting the following error stopping me from installing when i go to install the database (are you missing the commits from this fix? because we discussed this before in skype)

image

This text needs to be put in white or something? Because even for me it's not very visible

image

Some of the validation strings aren't quite right either

Let's get the merge conflicts sorted, remove the word crap like @brianteeman said and get my issues sorted :)

avatar dgt41
dgt41 - comment - 17 Sep 2017

I guess @laneo pushed some code and reverted some stuff, will sort it later on

avatar infograf768
infograf768 - comment - 17 Sep 2017

Would that explain the error I get?

74db086 17 Sep 2017 avatar dgt41 fixes
avatar dgt41
dgt41 - comment - 17 Sep 2017

Fixes:

  • language selector lost it's style
  • validation message was inline

screen shot 2017-09-17 at 10 04 19

  • db option undefined
    @wilsonge should be ok now, again
avatar dgt41
dgt41 - comment - 17 Sep 2017

@infograf768 the error message you're getting is weird, it means that the class InstallationModelSetup doesn't exist, which shouldn't be the case: https://github.com/joomla/joomla-cms/pull/17964/files#diff-01b99bd659cdb05e7e11892ccb1f4e49R90

avatar coolcat-creations
coolcat-creations - comment - 17 Sep 2017

Thanks for credits, but i just leaded @svom made all the nice things :)

avatar wilsonge
wilsonge - comment - 17 Sep 2017

image

Is it intended that the language selection shows on every page, and doesn't disappear after the first set of options?

Also with the validation message thing - I was more pointing out if there was a reason it shows "Field value cannot be empty" when you have an invalid email?

avatar wilsonge
wilsonge - comment - 17 Sep 2017

image

We are missing a language string too

avatar wilsonge
wilsonge - comment - 17 Sep 2017

Finally I can't install a language OR sample data because I'm failing the CSRF checks :( I'll try and find some time to look at this later

avatar Fedik
Fedik - comment - 17 Sep 2017

The table prefix is randomly generated in the client side, I don't see a reason to have that as an option, as it's something that most less experienced will be always confused with it, also the advanced users can do whatever they want, they don't need a GUI for that.

I should be able to change the prefix.
Random prefix is fine for less experienced user, but advanced user will hate us for it 😄

And, advanced user also like to have GUI 😋

avatar infograf768
infograf768 - comment - 17 Sep 2017

@dgt41
If I download your branch, then I do not have the error displaying the error page.
I really wonder what's going on with applying the .diff
(I also remarked you delete most installation languages and that there are errors for 2 of them (Khmer and Esperanto) when applying the patch.)

avatar infograf768
infograf768 - comment - 17 Sep 2017

I did not understand how I can
Set the password for your Super User account and confirm it in the field below.
There is only one field. How does one confirm?

Then I get to database creation:
Some hosts allow only a certain DB name per site. Use table prefix in this case for distinct Joomla! sites. *

I remarked that this is the name of the db and not the prefix of the tables anymore as that one is indeed randomly created.
I installed using jos_db because it failed using jos_
When I usedjos_ next page gave this error
An error has occurred while processing your request. 1045 Access denied for user 'root'@'localhost' (using password: NO)

But, no more tip to explain people what can be entered in that field. and no validation to prevent going to next page.

Why this change?

We MUST be able decide a table name and modify a table prefix.
It should not be limited to -dev- version as we need to also test with the released versions to be able to help people in the forums and anywhere else.
Losing the ability to delete the existing tables in a db when choosing the same database name is also lost in this PR.

Also I get this error from start
JLIB_UPDATER_ERROR_OPEN_UPDATE_SITE
And obvioulsy I can't either install languages.

avatar C-Lodder
C-Lodder - comment - 18 Sep 2017

That string need to be changed. We do not use password confirm fields in J4 as the user can now see their password by clicking the 'eye' icon

avatar Bakual
Bakual - comment - 18 Sep 2017

You should be able to drop the whole code for sample data now that we have the ability to install sample data from within the installed CMS. It's the whole point of mod_sampledata 😄
Just thinking loud, one could also drop the additional language part and add a sample data set which sets up a basic multilanguage site (including home menuitems and stuff).

avatar C-Lodder
C-Lodder - comment - 18 Sep 2017

@Bakual and that will happen but does not need to go into this PR.

Lets just make sure this allows us to actually install Joomla without any drastic error and get it merged. We're not in stable so it doesnt need to be perfect

avatar zwiastunsw
zwiastunsw - comment - 18 Sep 2017

Using fieldset and legend elements

Once again, I would like to call for the following:
(a) designation of the sets of fields (conttrols) by means of a fieldset mark
(b) each set has a legend marker field added to it.
This will not change the code too much, it will not cause problems with the appearance, and will significantly improve accessibility for people using screen readers.
For example instead:

	<form action="index.php" method="post" id="adminForm" class="form-validate">
		<div id="installStep1" class="j-install-step active">
			<div class="j-install-step-header">
				<span class="fa fa-cog" aria-hidden="true"></span> <?php echo JText::_('INSTL_SETUP_LOGIN_DATA'); ?>
			</div>
...
              </div>

write:

	<form action="index.php" method="post" id="adminForm" class="form-validate">
		<fieldset id="installStep1" class="j-install-step active">
			<legend class="j-install-step-header">
				<span class="fa fa-cog" aria-hidden="true"></span> <?php echo JText::_('INSTL_SETUP_LOGIN_DATA'); ?>
			</legend>
...
              </fieldset>

The result I wrote earlier about it. The reference to WCAG:

Label and instruction

Replacing the label with an instruction manual is not always a sensible solution. For example:

  • This is probably "MySQLi". * does not explain at all what should be entered in the field. Similarly:
  • This is usually "localhost" or a name provided by your host. * and:
  • Some hosts allow only a certain DB name per site. Use table prefix in this case for distinct Joomla! sites. *
    Clear labels are needed here.

Table with list of languages for installation

A person who does not use the mouse must press more than 50 times the Tab key to reach the SKIP or NEXT button. This is unacceptable!

avatar infograf768
infograf768 - comment - 19 Sep 2017

one could also drop the additional language part and add a sample data set which sets up a basic multilanguage site (including home menuitems and stuff).

This is only possible if some specific languages have been installed first and without any error.

avatar zwiastunsw
zwiastunsw - comment - 19 Sep 2017

What is the purpose of the installation process?
Install the system.
Can you do more during installation?
You can!

  • additional languages could be installed.
  • multilingualism could be configured.
  • example data could be installed.
  • selected extensions could be installed.
  • selected templates could be installed.
  • and more more more...

But all these things can be done later, after installation.
They are not part of the system installation process. They are additional operations.
They complicate what should be simple.
I believe that the installation process needs to be simplified as much as possible. It should cover only what is necessary. Everything that can be done after installation should be done after installation.

avatar brianteeman
brianteeman - comment - 19 Sep 2017

@zwiastunsw That is exactly the concept that @dgt41 and others were trying to achieve here

avatar zwiastunsw
zwiastunsw - comment - 19 Sep 2017

@brianteeman : I know. But there is a tendency to expand functions. And that is why my commentary.

avatar infograf768
infograf768 - comment - 19 Sep 2017

@C-Lodder and others

Lets just make sure this allows us to actually install Joomla without any drastic error and get it merged. We're not in stable so it doesnt need to be perfect

I think it has been made clear by many of us that the way this PR deals with database is not only imperfect but has to be modified.
I guess this could be done by having an advanced button when getting to that page:

Newbies could just chose the database name (They would get automatic table prefix).
Some instructions should be given or a validation to prevent entering a name that would not work (as it did above with jos_)
Advanced users would also be able to define a table prefix AND the possibility to delete the database, as we have now.

Merging as it is now would be an error imho

avatar C-Lodder
C-Lodder - comment - 19 Sep 2017

The table prefix is the only concern? Cmon, if people want that added back in, it can be added back in.

avatar zwiastunsw
zwiastunsw - comment - 19 Sep 2017

In my opinion: The installer can check on the fly that tables with random prefixes are available. If so, it can automatically archive them. If not, there is no problem.
When is it necessary to archive or delete existing tables? The only logical case: only if the installation of table names in the same database was unsuccessful for a moment before. Otherwise, you simply need to prepare the database for installing a new application, e. g. delete or archived old tables. This is safer.

avatar alikon
alikon - comment - 19 Sep 2017

why should be archived if already exists??
maybe are related to a different application or another joomla site, who knows ??
in the same database can coexists a lot of applications, the probabilty of prefix conflict is not so negligible imo
i like semplicity but this way is a little bit too much

avatar wilsonge
wilsonge - comment - 19 Sep 2017

OK Chill. We get that there is something to be revisited on table prefixes. Let's now focus on other issues for now, because I'm convinced that's not going to be the only one :)

avatar infograf768
infograf768 - comment - 6 Oct 2017

Patching with eclipse does not create the includes folder

[06-Oct-2017 09:21:53 Europe/Berlin] PHP Fatal error: require_once(): Failed opening required '/Applications/MAMP/htdocs/joomla40/installation/includes/app.php' (include_path='.:/Applications/MAMP/bin/php/php7.1.6/lib/php') in /Applications/MAMP/htdocs/joomla40/installation/index.php on line 30

avatar laoneo
laoneo - comment - 21 Oct 2017

Before I start fixing the sample data task. Should it even be included in the new installer as we have a module which does the job? Any opinions?

avatar brianteeman
brianteeman - comment - 21 Oct 2017

My 2c is that is should not be in the new installer

avatar Bakual
Bakual - comment - 21 Oct 2017

Imho, it shouldn't be part of the installer. With the new Sample Data Module it can already be done after installation from the Control Panel and I don't see a reason to have it in installer anymore in J4.

avatar wilsonge
wilsonge - comment - 21 Oct 2017

There's discussions to be had with the theme provider community about that (Ref: #7680 (comment)) - we almost certainly will still remove it - but I'd rather keep it working as part of this redesign and remove it in a subsequent Pull Request with discussion with relevant parties

avatar rdeutz
rdeutz - comment - 21 Oct 2017

Looks nice good work! About the sample data, I will not miss it when it isn't part of the installation process.

avatar laoneo
laoneo - comment - 21 Oct 2017

@wilsonge the problem is that it needs some hours to migrate it to be inline with the sample module. So when it will be thrown away anyway later on, then It makes no sense to fix it now. Thats my main issue here.

avatar ciar4n
ciar4n - comment - 21 Oct 2017

The sample data option in the installer is a convenient solution for template providers regarding template demo content. Without this option then what is the alternative? Create a sample data plugin, have users upload all demo images with the same folder structure and install all related modules/components?

avatar Bakual
Bakual - comment - 21 Oct 2017

The sample data option in the installer is a convenient solution for template providers regarding template demo content. Without this option then what is the alternative? Create a sample data plugin, have users upload all demo images with the same folder structure and install all related modules/components?

Yep, template providers can now create a sampledata plugin which can be installed by the users and lets them install the sample data also in an already installed Joomla. There is no need for a customised installer package anymore. Of course it's still possible to create such a package with an already installed sampledata plugin, but I think it's a bit pointless. Better just make it part of the regular template package.
The plugin is able to install the demo images as well. You're free to do whatever you want in that plugin, unlike the old sample data solution. In theory, you would even be able to copy the media files directly from your site to the customers site so the plugin doesn't necessary have to contain it. It would also possible to install other extensions from that plugin. The possibilities are there..

avatar ciar4n
ciar4n - comment - 21 Oct 2017

In that case, as long as creating the sample data plugin is a relatively easy task, I'd say remove it from the installer.

avatar laoneo
laoneo - comment - 21 Oct 2017

I'm also in favor to remove it. Sample data can be made as an option of the guided tour or whatever.

avatar infograf768
infograf768 - comment - 21 Oct 2017

I still can't update via eclipse.
I have to download the .zip from this branch and install.
I tried to install the fr-FR language (as we have only 3 languages that can be installed — fr, de, fa — (voluntary limitations of the update languages xml)

Many errors

[21-Oct-2017 18:08:11 Europe/Berlin] PHP Warning:  mysqli::real_escape_string(): invalid object or resource mysqli
 in /Applications/MAMP/htdocs/joomla-cms-4.0-dev-installation-PR/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php on line 330
[21-Oct-2017 18:08:11 Europe/Berlin] PHP Warning:  mysqli::real_escape_string(): invalid object or resource mysqli
 in /Applications/MAMP/htdocs/joomla-cms-4.0-dev-installation-PR/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php on line 330
[21-Oct-2017 18:08:11 Europe/Berlin] PHP Warning:  mysqli::prepare(): invalid object or resource mysqli
 in /Applications/MAMP/htdocs/joomla-cms-4.0-dev-installation-PR/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php on line 841
[21-Oct-2017 18:08:11 Europe/Berlin] PHP Warning:  mysqli::ping(): invalid object or resource mysqli
 in /Applications/MAMP/htdocs/joomla-cms-4.0-dev-installation-PR/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php on line 364
[21-Oct-2017 18:08:41 Europe/Berlin] PHP Notice:  Trying to get property of non-object in /Applications/MAMP/htdocs/joomla-cms-4.0-dev-installation-PR/installation/src/Model/LanguagesModel.php on line 253

[21-Oct-2017 18:09:11 Europe/Berlin] PHP Warning:  file_put_contents(/fr-FR_joomla_lang_full_3.8.1v1.zip): failed to open stream: Permission denied in /Applications/MAMP/htdocs/joomla-cms-4.0-dev-installation-PR/libraries/joomla/filesystem/file.php on line 440
[21-Oct-2017 18:09:20 Europe/Berlin] PHP Warning:  file_put_contents(/de-DE_joomla_lang_full_3.8.1v1.zip): failed to open stream: Permission denied in /Applications/MAMP/htdocs/joomla-cms-4.0-dev-installation-PR/libraries/joomla/filesystem/file.php on line 440
[21-Oct-2017 18:09:42 Europe/Berlin] PHP Warning:  file_put_contents(/fa-IR_joomla_lang_full_3.8.1v1.zip): failed to open stream: Permission denied in /Applications/MAMP/htdocs/joomla-cms-4.0-dev-installation-PR/libraries/joomla/filesystem/file.php on line 440

Language was not installed.
Therefore I could not test install as multilang with simple multilang sample data.
THAT sample data one at least has to be installable as a choice after installing languages as it looks like the sample data plugin would not do the job correctly in its present state (admin language only atm).

I still can't chose a table prefix and decide to delete db and reuse again.

avatar Bakual
Bakual - comment - 21 Oct 2017

THAT sample data one at least has to be installable as a choice after installing languages as it looks like the sample data plugin would not do the job correctly in its present state

Personally, I would go for a multilanguage sampledata plugin which sets up a correct multilanguage site (eg creating/enabling content languages, creating home menuitems, publishing language switcher and creating a sample article and category per language. Menuitems, categories and articles associated.).

avatar brianteeman
brianteeman - comment - 21 Oct 2017

There is no reason for multilingual to be handled any differenyptly

avatar wilsonge
wilsonge - comment - 21 Oct 2017

Guys - let's invest the time in getting the sample data fixed for now

avatar brianteeman
brianteeman - comment - 21 Oct 2017

We know the plugin works. That's what we should use. Once j4 is nearer we can easily create the sample data. Doing it now would be a waste of energy.

avatar laoneo
laoneo - comment - 21 Oct 2017

@wilsonge do you mean sample data in the installer? If yes then it is not a fast fix as the code is still the old one which runs the SQL scripts and not the one which uses the same logic as the module.

avatar wilsonge
wilsonge - comment - 21 Oct 2017

Just keep it with sql as it is for now

avatar dgt41
dgt41 - comment - 21 Oct 2017

So what about the extra languages? Keep or remove?

avatar dgt41
dgt41 - comment - 21 Oct 2017

@zwiastunsw I think I patched all your requests

EDIT Most of your requests...

avatar brianteeman
brianteeman - comment - 21 Oct 2017

please follow the code style for the xml files https://developer.joomla.org/coding-standards/xml.html

avatar rdeutz
rdeutz - comment - 22 Oct 2017

please follow the code style for the xml files https://developer.joomla.org/coding-standards/xml.html

there are a lot of other code style issues

avatar wilsonge
wilsonge - comment - 22 Oct 2017

Extra languages definitely has to stay at least until we have a backend alternative

avatar zwiastunsw
zwiastunsw - comment - 23 Oct 2017
  1. I tested with Chrome+NVDA, Chrome+ChomeVox, Firefox+NVDA. Keyboard support - perfect. Screen reader - annotates labels of fieldset and fields. Minor problems occur in Chrome+NVDA, but these are errors Chrome, not code.
  2. The installation of such a language is unacceptable. The keyboard user must use the tab key more than 50 times to install the language.
avatar dgt41
dgt41 - comment - 23 Oct 2017

@zwiastunsw thanks!

About 2: As I stated before this is not what the final design for the languages page. We will either use the choices.js or a custom element (similar to tags, I've already shared some code in codpen.io). Again this is temporary and also we might end up totally removing the sample data an extra languages from the installer, so it makes no sense spending a great amount of time to fix it right now. Let's wait and see what the decision will be for those two grey areas.

Thanks again!

avatar zwiastunsw
zwiastunsw - comment - 23 Oct 2017

About 2: I agree :)
3. If I make a mistake (e. g. I enter an existing database prefix), the error page appears only for a short while and then the installer returns to step 1 (Select installation language)

avatar dgt41
dgt41 - comment - 23 Oct 2017

@zwiastunsw the first version of the code is very close to the existing codebase for couple reasons:

  • easier to review
  • easier to debug

Once this workflow, design, approach is accepted the next steps is to modularise even further the whole procedure, so it becomes more maintainable and less error prone. That mean every action will have an ajax call, right now is like one call for all actions, which is really bad

avatar zwiastunsw
zwiastunsw - comment - 23 Oct 2017

@dgt41: I understand. It only indicates what I noticed. He knows that the project is being created (in statu nascendi).

avatar dgt41
dgt41 - comment - 23 Oct 2017

@wilsone the languages part is working again thanks to @laoneo

avatar wilsonge
wilsonge - comment - 26 Oct 2017

Can you fix conflicts please and I'll give another quick test :)

avatar infograf768
infograf768 - comment - 27 Oct 2017

I still have the same issue here. I can, via eclipse, update the local 4.0 branch, but if I do that, I just can't install J anymore. I get a blank page.
Also, Eclipse tells me some of the "deleted" installation language files have errors in the patch.

In any case please, DO keep the 3 languages that can be used in multilanguage, i.e. de-DE, fa-IR and fr-FR, languages packs that, if it works, can be can installed during J installation.

avatar dgt41
dgt41 - comment - 27 Oct 2017

@infograf768 well one solution is to not use Eclipse, just git fetch, pull should do the trick. I have no clue why Eclipse is messing up here...

The en-UK needs clean up, which obviously is not a task that I can do. Once this is done (probably in another PR) then we can figure out what's the best course of action for the rest languages (I need to state that the way this is handled currently in J3 is really bad, from maintenance point of view).
Anyways you can still check the multilingual part by copying some languages for the 3.x repo

avatar brianteeman
brianteeman - comment - 27 Oct 2017

@dgt41 en-GB - we are not in the Ukraine ;)

avatar dgt41
dgt41 - comment - 27 Oct 2017

@brianteeman oops, sorry en-GB is the right one. But you never know with this Brexit where you will end up at the end 😂

avatar brianteeman
brianteeman - comment - 27 Oct 2017

UK is an EU thing ;)

avatar infograf768
infograf768 - comment - 28 Oct 2017

@dgt41
I tested again by downloading your branch.
Before even getting to install languages I get

[28-Oct-2017 08:01:15 Europe/Berlin] PHP Warning:  mysqli::real_escape_string(): invalid object or resource mysqli
 in /Applications/MAMP/htdocs/joomla-cms-4.0-dev-installation-PR/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php on line 330
[28-Oct-2017 08:01:15 Europe/Berlin] PHP Warning:  mysqli::real_escape_string(): invalid object or resource mysqli
 in /Applications/MAMP/htdocs/joomla-cms-4.0-dev-installation-PR/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php on line 330
[28-Oct-2017 08:01:15 Europe/Berlin] PHP Warning:  mysqli::prepare(): invalid object or resource mysqli
 in /Applications/MAMP/htdocs/joomla-cms-4.0-dev-installation-PR/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php on line 841
[28-Oct-2017 08:01:15 Europe/Berlin] PHP Warning:  mysqli::ping(): invalid object or resource mysqli
 in /Applications/MAMP/htdocs/joomla-cms-4.0-dev-installation-PR/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php on line 364

The configuration.php file is created OK.

Then after choosing a language to download/install I get in a loop (Remember: de-DE, fr-FR and fa-IR CAN be installed in j4 and do install fine when J4 is installed and we use Install Languages from Installation)
dgtinstallation

Then if I delete configuration.php AND the db created and start again installing, I get this.
dgtinstallation_3
hard to read, but the text is

An error has occurred while processing your request.

    1045 Access denied for user 'root'@'localhost' (using password: NO) 

Hmm, session issue maybe?
Now trying to install with Safari.
Can't switch language.
dgtinstallation_4_safari

Going on and using a different database name and prefix, I get again
1045 Access denied for user 'root'@'localhost' (using password: NO)

and this error

[28-Oct-2017 08:27:30 Europe/Berlin] PHP Notice:  Undefined variable: return in /Applications/MAMP/htdocs/joomla-cms-4.0-dev-installation-PR/installation/src/Controller/LanguageController.php on line 54
[28-Oct-2017 08:27:30 Europe/Berlin] PHP Notice:  Undefined variable: return in /Applications/MAMP/htdocs/joomla-cms-4.0-dev-installation-PR/installation/src/Controller/LanguageController.php on line 65
[28-Oct-2017 08:27:30 Europe/Berlin] PHP Notice:  Undefined variable: return in /Applications/MAMP/htdocs/joomla-cms-4.0-dev-installation-PR/installation/src/Controller/LanguageController.php on line 68
avatar infograf768
infograf768 - comment - 28 Oct 2017

Concerning the Undefined variable: return Notice, it looks like is missing the validate.
i.e. we should have

		// Must load after serving service-requests
		$form = $model->getForm();

		// Get the posted values from the request and validate them.
		$data   = $this->input->post->get('jform', [], 'array');
		
		// Validate the posted data.
		$return = $model->validate($form, $data);

But it will not change the results I got.

avatar dgt41
dgt41 - comment - 28 Oct 2017

Then if I delete configuration.php AND the db created and start again installing, I get this.

That's not enough, you need to clean also the session in installation/cache (or session I don't remember this on top of my head)

Now trying to install with Safari

Well my dev browser is safari...

avatar infograf768
infograf768 - comment - 28 Oct 2017

@dgt41
deleted all and started from scratch
On Safari OR Firefox, I can't change installation language.
Included in this screenshot is the session which was empty before starting installation.
testchangelang2

Let's talk on glip please.

avatar wilsonge
wilsonge - comment - 2 Nov 2017

I've done a quick test. I've done a nasty hack for en-US

Occasionally I got this 1045 - but never reproducibly - I could force it with incorrect authentication information to the database - and we need to improve the styling of the error page. But I couldn't reliably do it otherwise.

I'm going to merge this so we have a base to work with. Please feel free to create further issues so we can improve further

avatar wilsonge wilsonge - change - 2 Nov 2017
Status Pending Fixed in Code Base
Closed_Date 0000-00-00 00:00:00 2017-11-02 21:16:52
Closed_By wilsonge
avatar wilsonge wilsonge - close - 2 Nov 2017
avatar wilsonge wilsonge - merge - 2 Nov 2017
avatar PhocaCz
PhocaCz - comment - 13 Nov 2017

@dgt41

Hi,

The table prefix is randomly generated in the client side, I don't see a reason to have that as an option, as it's something that most less experienced will be always confused with it, also the advanced users can do whatever they want, they don't need a GUI for that.

Maybe I don't understand it correctly, but what will be the way for advanced users to change the prefix while installing Joomla!?

Thank you.

avatar infograf768
infograf768 - comment - 13 Nov 2017

Agree with @PhocaCz AND in any case, as I reported to @dgt41 I CAN'T INSTALL anymore locally.

URL:
http://localhost:8888/joomla40/installation/index.php?view=setup

Result
install40

It is not a minor bug...

avatar dgt41
dgt41 - comment - 13 Nov 2017

but what will be the way for advanced users to change the prefix while installing Joomla!?

Ehm, we already change that. Now that field exists in the form (pre filled with a random prefix, but users can change it to whatever they like)

I CAN'T INSTALL anymore locally.

Please make sure that you delete all all the session files in your installation/sessions folder and clear your browser's cookies!

avatar infograf768
infograf768 - comment - 13 Nov 2017

I DID, as I already told you privately the other day!!
And this is a totally clean install. So I did clear again all sessions cookies.
This thing is just badly broken here.
You were wondering if it was related to the use of the port. Time to look where is the real problem.

avatar dgt41
dgt41 - comment - 13 Nov 2017

@infograf768 can you provide some info (phpinfo, and your actual installation URL) maybe in glip

avatar infograf768
infograf768 - comment - 13 Nov 2017

See #18560

avatar wilsonge wilsonge - change - 21 Nov 2017
The description was changed
avatar wilsonge wilsonge - edited - 21 Nov 2017

Add a Comment

Login with GitHub to post a comment