Feature request from brideo, posted on GitHub Nov 13, 2015
http://php.net/manual/en/language.oop5.late-static-bindings.php
Rather than this:
/**
* @return bool
*/
protected function _isAllowed()
{
return $this->_authorization->isAllowed(self::ADMIN_RESOURCE);
}
We should have this:
/**
* @return bool
*/
protected function _isAllowed()
{
return $this->_authorization->isAllowed(static::ADMIN_RESOURCE);
}
By using a static binding, we don't have to completely re-write the _isAllowed method in our controller action, instead we can simply define our ADMIN_RESOURCE constant, we then can let the AbstractAction handle our logic.
This would be a completely backwards compatible change.
... View more
Feature request from miguelbalparda, posted on GitHub Feb 15, 2016
While trying to use the new performance tool on a Magento 2.0.2 with Sample data I can only get a couple of admin requests and the test ends. Below is the command I'm using and the output and logs.
michael@michael-HP-Pavilion-15-Notebook-PC:~/Downloads/apache-jmeter-2.13$ ./bin/jmeter -n -t bench.jmx -Jhost=xxxx.net -Jbase_path=/ -Jramp_period=3000 -Jreport_save_path=./ -Jguest_checkout_percent=4 -Jview_catalog_percent=62 -Jview_product_add_to_cart_percent=10 -Jorders=2000 -Jadmin_path=admin_41207x -Jadmin_user=admin -Jadmin_password=admin123 -Jloops=10
Creating summariser
Created the tree successfully using bench.jmx
Starting the test @ Mon Feb 15 09:52:54 ART 2016 (1455540774295)
Waiting for possible shutdown message on port 4445
summary + 4 in 6s = 0.7/s Avg: 1457 Min: 8 Max: 3027 Err: 0 (0.00%) Active: 1 Started: 1 Finished: 0
summary + 3 in 8.3s = 0.4/s Avg: 2698 Min: 2205 Max: 2983 Err: 1 (33.33%) Active: 0 Started: 0 Finished: 0
summary = 7 in 14.2s = 0.5/s Avg: 1989 Min: 8 Max: 3027 Err: 1 (14.29%)
Tidying up ... @ Mon Feb 15 09:53:08 ART 2016 (1455540788693)
... end of run
... View more
Feature request from brendanmckeown, posted on GitHub Jan 20, 2016
Both of the API routes in module-integration/etc/webapi.xml to get an authentication token work over http. These routes should be secure and only acceptable over https, because you are passing sensitive account information in the request body. This can be achieved by adding secure="true" to each <route> node:
<route url="/V1/integration/admin/token" method="POST" secure="true">
<service class="Magento\Integration\Api\AdminTokenServiceInterface" method="createAdminAccessToken"/>
<resources>
<resource ref="anonymous"/>
</resources>
</route>
<route url="/V1/integration/customer/token" method="POST" secure="true">
<service class="Magento\Integration\Api\CustomerTokenServiceInterface" method="createCustomerAccessToken"/>
<resources>
<resource ref="anonymous"/>
</resources>
</route>
If this was an intentional decision, is there a way I can override this route in a custom module and enforce this behavior?
... View more
Feature request from ovdev1, posted on GitHub Jan 30, 2016
Just noticed when trying to load table rates that the directory_country_region table contains the wrong state code for Queensland Australia, should be QLD not QSD
... View more
Feature request from hostep, posted on GitHub Nov 15, 2015
Hi
Using Magento 2.0.0-rc2.
I currently find it hard to edit a static block or cms page. We are now obligated to click at least twice on a tiny target, or even more then that if you make the mistake of clicking into a column which isn't the action column, due to the inline editing feature opening up.
I can see the usefulness of inline editing when clicking on a row, but now it's becoming a bit harder to actually edit the contents of the page/block.
I think in 80% of the cases when someone goes to the blocks/pages grid, it is to edit the contents of that block/page, not to change the title or the status or something like that.
Here are some ideas to make it a bit more practical while keeping the inline editing feature:
Split the actions into multiple columns, so you can click directly on 'Edit'
Clicking on a column in a row which you can't edit inline (ID, created/modified dates, ...) should open up the static block/page immediately
Add a configuration option above the grid to enable/disable the inline editing feature
...
If anybody has other ideas to make this a less frustrating experience, please tune in :)
Thanks!
... View more
Feature request from mikebranderhorst, posted on GitHub Feb 22, 2016
In .gitignore:
/vendor
!/vendor/.htaccess
Should be:
/vendor/*
!/vendor/.htaccess
This way /vendor/.htaccess is added to (private) repository (and with deployment the folder is created).
Maybe also add the third line (to make adding commercial packages possible by artifact)
https://getcomposer.org/doc/05-repositories.md#artifact
/vendor/*
!/vendor/.htaccess
!/vendor/artifacts/.htaccess
# uncomment when using a private repository and want to
# add artifact (commercial) packages to the repository
#!/vendor/artifacts/
Combined with an addition in composer.json
(composer config repositories.artifacts artifact vendor/artifacts)
"repositories": {
"artifacts": {
"type": "artifact",
"url": "vendor/artifacts"
}
},
And to keep the folder adding the file /vendor/artifacts/.htaccess
... View more
Feature request from avoking100, posted on GitHub Feb 05, 2016
Hello guys. New to Github, New to M2, New to bugs.
When I add a new "Configurable product" I need to choose "weight". Now, since I dont have weight for this product, I choose "Weight" = No.
When I create configurations for this product, i see it generates VIRTUAL products instead of SIMPLE products. The problem is I want SIMPLE products, even I do not have a weight (!).
After I load the product again I See "Weight" =" yes", I try to save it as "NO" but it always keep showing "yes".
Now, the problem with Virtual products that are generated, is: when I go to checkout selection these products it does not offer me to enter shipping address. So this issue is critical for me. I can not make SIMPLE products using a "Configurable product" because I do not have a weight?
I hope anyone can help me and confirm it is a bug.
Thank you!
... View more
Feature request from Yonn-Trimoreau, posted on GitHub Feb 17, 2016
When I observe page_block_html_topmenu_gethtml_before event, just like Magento\Catalog\ObserverAddCatalogToTopmenuItemsObserver does, and add some items to the top.menu , I can't order the items I add (whether it should be displayed before or after category listing, for example).
I think it should be possible, since the "top menu" must be one of the first and most modified element on any website.
Maybe by adding a special \Magento\Framework\DataObject attribute "order" which will be used inside or before Magento\Theme\Block\Html 's _getHtml method, in a way to reorder the \Magento\Framework\Data\Tree\Node before rendering it ?
Or even clearer : adding a $_position property to the Node class, and a non-mandatory variable to the Node class constructor, which could be used in a similar way I expressed before ?
Simple, non-breaking, no performance issue, really useful. Right ?
I can try to make a pull request if you accept this issue.
... View more
Feature request from ravbetsky, posted on GitHub Mar 01, 2016
Each change in requirers-config.js of our module doesn't take any effect. After we had removed pub/static/_requirejs/frontend/Magento/luma/en_US/requirejs-config.js our changes applied.
... View more
Feature request from damien-synolia, posted on GitHub Feb 24, 2016
Hello all,
I just launched the standard PHPUnit test (without the dev:tests:run command) :
php <magentodir>/vendor/phpunit/phpunit/phpunit --debug
I am in <magentodir>/dev/tests/unit directory.
There is a fatal error on Magento\DownloadableImportExport\Model\Import\Product\Type\Downloadable file. On function fillDataLink , there is a fillExistOptions call where $existingOptions is null. It should be an array. It's the same in fillDataTitleLink method.
I just add an ugly fix with a is_null check for $existingOptions and set it to an empty array and it works.
I think the best way should be to change the fetchAll method to always return an empty array, if no data is retrieved in database.
Is there something I did wrong ?
Damien.
... View more
Feature request from wojtekn, posted on GitHub Feb 24, 2016
I created module using "vendor/foobar" name in composer.json and used Vendor_FooBar namespace. The I run static tests and I get following error:
For the module 'Vendor_FooBar', the expected package name is 'vendor/foobar'
This error message is confusing because it says it expects package name I already used. As far as I understand it should say following:
For the module 'Vendor_FooBar', the expected package name is 'vendor/module-foo-bar'
If my assumption is correct, value of $this->convertModuleToPackageName($moduleName) should be used instead of $packageName in message returned in \Magento\Test\Integrity\ComposerTest::assertConsistentModuleName method.
I can do PR if it's helpful.
... View more
Feature request from davidverholen, posted on GitHub Mar 20, 2016
this is more of a minor design issue. I recently needed a method to normalize a file system path.
Looking at the core, I found the method(s) for this, but implemented directly in the classes where they are used:
https://github.com/magento/magento2/blob/2d82d19010a2deee42ab67e62627b84169f0ab8a/lib/internal/Magento/Framework/View/FileSystem.php#L169
https://github.com/magento/magento2/blob/2d82d19010a2deee42ab67e62627b84169f0ab8a/lib/internal/Magento/Framework/Setup/SampleData/FixtureManager.php#L62
As I did not really need any of the classes, I implemented this method (a third time) in my own class.
A good place would be maybe the Frameworks File System Class: https://github.com/magento/magento2/blob/2d82d19010a2deee42ab67e62627b84169f0ab8a/lib/internal/Magento/Framework/Filesystem.php
What do you think about it? I could start a small pull request for that
... View more
Feature request from wojtekn, posted on GitHub Mar 03, 2016
This isn't something big, but I think it may be worth to improve both phpunit.xml.dist files to make them working in similar way by default. For now the biggest difference is that integration tests don't include whole app/code but limit code coverage only to Magento code:
<directory suffix=".php">../../../app/code/Magento</directory>
Unit tests enable everything from app/code by default:
<directory suffix=".php">../../../app/code/*</directory>
Another improvements may include adding logging configuration example in integration tests and adjusting nodes order.
... View more
Feature request from katesuykovskaya, posted on GitHub Mar 26, 2016
Steps to reproduce
M 2.0.2
go to admin panel -> Products -> Catalog -> edit product
open Images and Videos tab, click on image - dialog is shown
open source of page
Actual result
each time, when modal dialog is created, the old one isn't removed from DOM => when I choose images a lot of time, I got this
which makes using current / active dialog inconvenient using JS.
Expected Result
I should get one dialog, or at least one dialog per chosen image - it should not be duplicated.
... View more
Feature request from erikhansen, posted on GitHub Mar 08, 2016
I'm using Capistrano to deploy Magento 2 to production and stage environments. As a part of the deployment process, I'm running the bin/magento setup:static-content:deploy command. However since Capistrano streams all output to screen, I see this:
So I've resorted to passing in the -q flag to silence all output: bin/magento setup:static-content:deploy -q . However this doesn't allow me to see progress as each theme is compiled. I'd like to see a flag added like --no-progress that would result in output like this:
php -f bin/magento -- setup:static-content:deploy --no-progress
Requested languages: en_US
=== frontend -> Magento/blank -> en_US ===
=== frontend -> Magento/luma -> en_US ===
=== frontend -> Customvendor/customtheme -> en_US ===
... View more
Feature request from rkhoury82, posted on GitHub Mar 31, 2016
Steps to reproduce
Install Magento 2.0.3
Migrate or create a Configurable Product with 300 variations, save.
Go back into that product, press the "add products manually"
Expected result
With products with smaller variation sets the functionality works
I have increased the LimitRequestLine to work around 414 (Request-URI Too Large) error (per issue #3495)
I have not been able determine the size limit yet.
Actual result
Error Message Pops: Attention Something went wrong.
No browser messages in console.
Error in Apache Logs:
[Thu Mar 31 18:34:14.139835 2016] [proxy_fcgi:warn] [pid 4968] [client 60.225.85.XXX:37893] AH02536: couldn't encode envvar 'QUERY_STRING' in 16384 bytes, referer: http://EXAMPLE/admin/catalog/product/edit/id/3/key/81f78988e9908f8d89115a62f01eacdd8611886ce257a56bd9ec6c22d83930e6/
[Thu Mar 31 18:34:14.139840 2016] [proxy_fcgi:warn] [pid 4968] [client 60.225.85.XXX:37893] AH02536: couldn't encode envvar 'REQUEST_URI' in 16384 bytes, referer: http://EXAMPLE/admin/catalog/product/edit/id/3/key/81f78988e9908f8d89115a62f01eacdd8611886ce257a56bd9ec6c22d83930e6/
Environment
PHP 7.0.4 run as FPM not MOD_PHP (unable to test with 7.0.2 or 7.0.3 to see if it is a PHP error)
Apache 2.4.18
MYSQL 5.6
... View more
Feature request from 11mb, posted on GitHub Jun 30, 2016
Steps to reproduce
Install Magento 2.1
Login to admin
Goto Content >> Pages
Click Edit button for homepage
Edit content
Select text and click insert link
Click browse
Expected result
A list of links to cms pages, categories and products
Actual result
The mediabrowser opens
... View more
Feature request from pantaoran, posted on GitHub Mar 23, 2016
I observe that in app/code/Magento/Store/Model/ScopeInterface.php there are 5 different scope type constants which are ambiguous and probably should be unified.
interface ScopeInterface
{
/**#@+
* Scope types
*/
const SCOPE_STORES = 'stores';
const SCOPE_WEBSITES = 'websites';
const SCOPE_STORE = 'store';
const SCOPE_GROUP = 'group';
const SCOPE_WEBSITE = 'website';
/**#@-*/
}
Both "store/stores" and "website/websites" exist once in singular and once in plural. It is not clear to the developer in any way which one should be used.
We ran into this problem today in our team, where I wrote code to set some config values, and another team member wrote code to read them, but I used the plural constants and he used the singular ones. We didn't notice the problem for weeks because we always tested with the default config values and didn't bother to set storeview-specific ones, and even when we did, I guess they must use a fall-back to default scope values when the store specific ones are not found.
I searched through the core code for use, and both versions seem to be used, although the singular versions are used much more often. Can we please simplify this important interface to only use one spelling per type?
Or is there a compelling reason to keep both singular and plural for these that I'm not understanding? I feel strange for bringing this up here because I can't possibly be the first person to notice this...
... View more
Feature request from omdeshpande, posted on GitHub Jul 03, 2016
AOP implemented by the Plugins in Magento2 a good framework feature.
Currently, these AOP overrides work on the basis of one class at a time. What could be a great addition to this, is to have Spring (Java) like 'Pointcut patterns'. Pointcut patterns will make it possible to inject 'before', 'after' and 'around' to multiple functions and classes through a single statement. It will make plugin definitions more powerful and efficient. Would be great for something like logging.
Sample - http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html
If this makes sense to you guys, I'm open to contributing. Will be great to hear your thoughts!
... View more
Feature request from bartek9007, posted on GitHub Jul 01, 2016
Steps to reproduce
Install Magento from develop branch.
Adding products programatically
Trying to edit added product and save it.
One of required attribute is null
Expected result
If I try to save product with required attribute Magento should abort it and point out which attribute is empty.
If it is not visible on menu it should automatically scroll down to its group.
Actual result
Button 'save' freezes out.
Attribute is pointed out with red triangle but if its group is out of current scope of view Magento doesn't scroll down to its group.
I have to scroll down in search of the group and attribute with error.
So it's quite uncomfortable and not intuituive if there is an error in very low sort order group becauce button 'save' just freeze and in the begining you don't know why it's not saving results.
... View more