Ingo Schommer
8eac22c628
Separate CSS bundling in Webpack
...
Multiple entry points can't result in a single bundle.css with a fixed filename, see
https://github.com/webpack/extract-text-webpack-plugin/issues/179
Until that's resolved, it's easier to keep the 'css' task separate in Webpack,
and have a single entry point for all CSS (bundle.scss).
Also partially reverting "Moved frontend assets into admin/ "module"",
which moved too many files: debug.css and install.css need to remain
as framework (not admin) deps. Split out into a separate `framework-css` Webpack
task in preparation for splitting off the module.
2016-09-16 13:46:09 +12:00
Ingo Schommer
ee10dbb680
API Moved frontend assets into admin/ "module"
...
We've removed the ability to directly reference JS and CSS files
for form fields and other SilverStripe features in favour of a common bundle built by Webpack.
The logical next step is to make the framework module free of frontend dependencies,
which should simplify its operation, and avoid another time intensive "npm install" on a module.
2016-09-16 13:46:06 +12:00
Ingo Schommer
25f4741142
Removed ModelAdmin/SecurityAdmin Webpack entry points
...
There's not a lot of benefit in packaging these separately in terms of initial CMS load size,
so let's simplify the setup. They'll eventually become lazy loaded chunks in a React-based setup
2016-09-16 13:44:12 +12:00
Sam Minnee
2e577ddb1d
API Use Webpack
...
The bundle is generated by running “webpack” directly - gulp is no
longer needed as an intermediary. The resulting config is a lot shorter,
although more configuration is pushed into lib.js.
Modules are shared between javascript files as global variables.
Although this global state pollution is a bit messy, I don’t think it’s
practically any worse than the previous state, and it highlights the
heavy coupling between the different packages we have in place.
Reducing the width of the coupling between the core javascript and
add-on modules would probably be a better way of dealing with this than
replacing global variables with some other kind of global state.
The web pack execution seems roughly twice as fast - if I clear out my
framework/client/dist/js folder, it takes 13.3s to rebuild. However,
it’s not rebuilding other files inside dist, only the bundle files.
CSS files are now included from javascript and incorporated into
bundle.css by the webpack. Although the style-loader is helpful in some
dev workflows (it allows live reload), it introduces a flash of
unstyled content which makes it inappropriate for production.
Instead ExtractTextPlugin is used to write all the aggregated CSS
into a single bundle.css file. A style-loader-based configuration could
be introduced for dev environments, if we make use of the webpack live
reloader in the future.
Note that the following features have been removed as they don't appear to be
necessary when using Webpack:
- UMD module generation
- thirdparty dist file copying
LeftAndMain.js deps: Without it, ssui.core.js gets loaded too late,
which leads e.g. to buttons being initialised without this added behaviour.
2016-09-15 22:19:05 +12:00
Damian Mooyman
9b1c24cf4c
API Move preview panel to CMS module
...
BUG Fix preview area flashing on section navigation
Fix source file issue
2016-09-13 13:20:17 +12:00
Ingo Schommer
79b9bb6f18
React for "Add to campaign" on pages
...
Reuse existing functionality rather than creating "new legacy code" through writing more Entwine
2016-08-28 13:07:32 +12:00
Christopher Joe
b9624994ac
AddToCampaign save message, Submitting indicator on FormAction button
2016-08-28 13:07:31 +12:00
Christopher Joe
6a4b29d703
Add to campaign modal
2016-08-28 13:07:30 +12:00
Christopher Joe
7448fb7bae
Fix batch action permissions not applied to new nodes loaded
2016-08-11 11:41:07 +12:00
Paul Clarke
b9445511b7
Bootstrap GridField
2016-08-03 18:35:18 +12:00
Christopher Joe
d93d9bc3c4
Disable datepicker for disabled or readonly fields, they were still editable through the picker
2016-08-01 11:47:48 +12:00
Damian Mooyman
06ae50e4f5
BUG Fix hash link navigation in CMS
2016-07-29 15:58:23 +12:00
Damian Mooyman
a809e80d01
API Convert CMS forms to bootstrap
...
NEW Add cms-forms microtheme to cater to bootstrap's needs.
Note that the old SS3 assets section is buggy as a result of this change.
2016-07-25 17:24:26 +12:00
Daniel Hensby
ac17e12464
Merge pull request #3274 from colymba/custom-admin-url
2016-07-19 14:42:25 +01:00
Daniel Hensby
a8c0c0fc6a
Merge pull request #3614 from chillu/pulls/switch-states
2016-07-17 12:39:20 +01:00
Loz Calver
0a7e4cf7c3
Merge branch '3'
2016-07-15 16:01:48 +01:00
Damian Mooyman
6e68f38efb
API Update react sections to use react-router instead of page.js ( #5796 )
...
Fixes #5711
2016-07-14 17:51:01 +12:00
Damian Mooyman
7d82304bb0
BUG Fix route invoking multiple handleStateChanges on single navigation actions
...
BUG Fix reference to non-existant window.history.state.url property
2016-07-13 14:42:57 +12:00
Damian Mooyman
d54f4dc9c6
Convert tabs to spaces in legacy script files
2016-07-13 14:33:19 +12:00
Christopher Joe
b8d634166f
remove adding "original classes"
2016-07-06 21:44:11 +12:00
David Craig
83308689d5
API Initialise React controllers via routes ( #5436 )
2016-06-16 15:04:14 +12:00
Chris Joe
b4c5c71a0b
ActionTabSet, Change position absolute to bottom instead of top ( #5602 )
...
* change position absolute to bottom instead of top
* Fixed bottom position to 100% to uncover the tabset title
2016-05-31 09:48:59 +01:00
Paul
f4037fe319
Swap out .Actions class for bootstrap .btn-toolbar ( #5581 )
...
* Swap out .Actions class for bootstrap .btn-toolbar
* Converted all south toolbars to use new toolbar component styles, content and preview styles for scrollbars adjusted where required
2016-05-27 13:39:10 +12:00
Damian Mooyman
66ef857cdf
Manual merge of #5412 into master
2016-05-18 17:42:13 +12:00
Damian Mooyman
f13e44a265
Merge 3 into master
...
# Conflicts:
# admin/javascript/LeftAndMain.Tree.js
# admin/javascript/lang/cs.js
# admin/javascript/lang/de.js
# admin/javascript/lang/en.js
# admin/javascript/lang/eo.js
# admin/javascript/lang/es.js
# admin/javascript/lang/fa_IR.js
# admin/javascript/lang/fi.js
# admin/javascript/lang/fr.js
# admin/javascript/lang/id.js
# admin/javascript/lang/id_ID.js
# admin/javascript/lang/it.js
# admin/javascript/lang/ja.js
# admin/javascript/lang/lt.js
# admin/javascript/lang/mi.js
# admin/javascript/lang/nb.js
# admin/javascript/lang/nl.js
# admin/javascript/lang/pl.js
# admin/javascript/lang/ro.js
# admin/javascript/lang/ru.js
# admin/javascript/lang/sk.js
# admin/javascript/lang/sl.js
# admin/javascript/lang/sr.js
# admin/javascript/lang/sr@latin.js
# admin/javascript/lang/sr_RS.js
# admin/javascript/lang/sr_RS@latin.js
# admin/javascript/lang/src/cs.js
# admin/javascript/lang/src/de.js
# admin/javascript/lang/src/en.js
# admin/javascript/lang/src/eo.js
# admin/javascript/lang/src/es.js
# admin/javascript/lang/src/fi.js
# admin/javascript/lang/src/fr.js
# admin/javascript/lang/src/id.js
# admin/javascript/lang/src/id_ID.js
# admin/javascript/lang/src/it.js
# admin/javascript/lang/src/ja.js
# admin/javascript/lang/src/lt.js
# admin/javascript/lang/src/mi.js
# admin/javascript/lang/src/nb.js
# admin/javascript/lang/src/nl.js
# admin/javascript/lang/src/pl.js
# admin/javascript/lang/src/ro.js
# admin/javascript/lang/src/ru.js
# admin/javascript/lang/src/sk.js
# admin/javascript/lang/src/sl.js
# admin/javascript/lang/src/sr.js
# admin/javascript/lang/src/sr@latin.js
# admin/javascript/lang/src/sr_RS.js
# admin/javascript/lang/src/sr_RS@latin.js
# admin/javascript/lang/src/sv.js
# admin/javascript/lang/src/zh.js
# admin/javascript/lang/sv.js
# admin/javascript/lang/zh.js
# css/GridField.css
# forms/gridfield/GridFieldExportButton.php
# javascript/GridField.js
# javascript/lang/ar.js
# javascript/lang/cs.js
# javascript/lang/de.js
# javascript/lang/en.js
# javascript/lang/en_GB.js
# javascript/lang/eo.js
# javascript/lang/es.js
# javascript/lang/fi.js
# javascript/lang/fr.js
# javascript/lang/id.js
# javascript/lang/id_ID.js
# javascript/lang/it.js
# javascript/lang/ja.js
# javascript/lang/lt.js
# javascript/lang/mi.js
# javascript/lang/nb.js
# javascript/lang/nl.js
# javascript/lang/pl.js
# javascript/lang/ru.js
# javascript/lang/sk.js
# javascript/lang/sl.js
# javascript/lang/sr.js
# javascript/lang/sr@latin.js
# javascript/lang/sr_RS.js
# javascript/lang/sr_RS@latin.js
# javascript/lang/src/ar.js
# javascript/lang/src/cs.js
# javascript/lang/src/de.js
# javascript/lang/src/en.js
# javascript/lang/src/eo.js
# javascript/lang/src/es.js
# javascript/lang/src/fi.js
# javascript/lang/src/fr.js
# javascript/lang/src/id.js
# javascript/lang/src/id_ID.js
# javascript/lang/src/it.js
# javascript/lang/src/ja.js
# javascript/lang/src/lt.js
# javascript/lang/src/mi.js
# javascript/lang/src/nb.js
# javascript/lang/src/nl.js
# javascript/lang/src/pl.js
# javascript/lang/src/ru.js
# javascript/lang/src/sk.js
# javascript/lang/src/sl.js
# javascript/lang/src/sr.js
# javascript/lang/src/sr@latin.js
# javascript/lang/src/sr_RS.js
# javascript/lang/src/sr_RS@latin.js
# javascript/lang/src/sv.js
# javascript/lang/src/zh.js
# javascript/lang/sv.js
# javascript/lang/zh.js
# scss/GridField.scss
# tests/model/ManyManyListTest.php
# tests/model/SQLQueryTest.php
2016-05-11 15:19:35 +12:00
Ingo Schommer
0b295137c2
Fix unguarded JS check in LeftAndMain.Preview.js
2016-05-06 14:42:20 +12:00
Damian Mooyman
e7cd864ebc
Merge branch 'master'
2016-05-02 10:38:08 +12:00
Damian Mooyman
8d2f063f0c
Fix eslint errors ( #5411 )
2016-05-02 08:51:31 +12:00
Damian Mooyman
d52db0ba34
Merge 3 into master
...
# Conflicts:
# .travis.yml
# admin/css/ie7.css
# admin/css/ie7.css.map
# admin/css/ie8.css.map
# admin/css/screen.css
# admin/css/screen.css.map
# admin/javascript/LeftAndMain.js
# admin/scss/_style.scss
# admin/scss/_uitheme.scss
# control/HTTPRequest.php
# core/Object.php
# css/AssetUploadField.css
# css/AssetUploadField.css.map
# css/ConfirmedPasswordField.css.map
# css/Form.css.map
# css/GridField.css.map
# css/TreeDropdownField.css.map
# css/UploadField.css
# css/UploadField.css.map
# css/debug.css.map
# dev/Debug.php
# docs/en/00_Getting_Started/00_Server_Requirements.md
# docs/en/02_Developer_Guides/06_Testing/00_Unit_Testing.md
# docs/en/02_Developer_Guides/06_Testing/index.md
# docs/en/02_Developer_Guides/14_Files/02_Images.md
# docs/en/02_Developer_Guides/15_Customising_the_Admin_Interface/How_Tos/Extend_CMS_Interface.md
# filesystem/File.php
# filesystem/Folder.php
# filesystem/GD.php
# filesystem/Upload.php
# forms/ToggleField.php
# forms/Validator.php
# javascript/lang/en_GB.js
# javascript/lang/fr.js
# javascript/lang/src/en.js
# javascript/lang/src/fr.js
# model/Image.php
# model/UnsavedRelationList.php
# model/Versioned.php
# model/connect/MySQLDatabase.php
# model/fieldtypes/DBField.php
# model/fieldtypes/Enum.php
# scss/AssetUploadField.scss
# scss/UploadField.scss
# templates/email/ChangePasswordEmail.ss
# templates/forms/DropdownField.ss
# tests/behat/features/bootstrap/SilverStripe/Framework/Test/Behaviour/CmsFormsContext.php
# tests/behat/features/bootstrap/SilverStripe/Framework/Test/Behaviour/CmsUiContext.php
# tests/forms/EnumFieldTest.php
# tests/security/MemberTest.php
# tests/security/MemberTest.yml
# tests/security/SecurityTest.php
2016-04-29 17:50:55 +12:00
scott1702
97e672721d
Add AddToCampaign dialog box functionality
2016-04-26 13:33:06 +12:00
Damian Mooyman
9a4b93a058
BUG Fix baseurl in IE missing leading /
...
Reformat LeftAndMain.js to new indentation standard
2016-04-25 22:31:11 +12:00
Ingo Schommer
21db18e7ef
Correct naming for JS and CSS files in client/
...
Removed some dist/js/*.js files since they're no longer built as individual files.
This was a side effect of them living in the toplevel folder of admin/client/src/,
which used to have all the legacy/*.js files in there (they do need to be built).
Following AirBnB convention: https://github.com/airbnb/javascript#naming--filename-matches-export
While it technically allows index.js files, we found them to be bad for dev and debugging in practice:
Depending on the used IDE, editor tabs all look the same. Other views like Chrome Dev Tools with
sourcemaps rely on path context, and are harder to auto-complete.
There's no direct rules for CSS files, but same principles apply here.
Also renamed the sections/ folder to containers/, which more clearly communicates
the distinction between components/ (shouldn't contain state-dependant, smart components).
Renamed state/ files to follow AirBnB naming conventions
https://github.com/airbnb/javascript#naming--filename-matches-export
https://github.com/airbnb/javascript#naming--camelCase-default-export
https://github.com/airbnb/javascript#naming--PascalCase-singleton
Leaving the folder name in state/<state-key> lowercase since
that's also the key to reducers in the actual state object.
References:
http://engineering.kapost.com/2016/01/organizing-large-react-applications/
https://github.com/erikras/react-redux-universal-hot-example/tree/master/src
https://github.com/RickWong/react-isomorphic-starterkit/tree/master/src
https://github.com/react-toolbox/react-toolbox/issues/98
https://github.com/react-bootstrap/react-bootstrap/tree/master/src
2016-04-25 15:43:19 +12:00
Damian Mooyman
fa8075367d
BUG Fix routing tests
...
BUG Fix issue with top level routes without trailing slashes
2016-04-22 11:16:48 +12:00
Damian Mooyman
dbd17bd49a
API Remove routing from silverstripe-component
...
BUG Fix page routing in subdirectory
BUG Fix top level admin sections not causing ajax load
2016-04-21 08:43:03 +12:00
Paul Clarke
978369bd63
Update old cms toolbars and menu to use new variables and heights so everything lines up
...
Includes fixes for menu borders and preview border
2016-04-21 08:28:12 +12:00
Ingo Schommer
19de22f427
API Moved frontend assets into admin/client/
...
admin/javascript => admin/client
admin/javascript/src => admin/client/src/legacy (mostly)
admin/scss/_variables.scss => admin/client/styles/_variables.scss
admin/scss => admin/client/styles/legacy/
admin/css/editor.css => admin/client/dist/css/editor.css
admin/css/screen.css => admin/client/dist/css/bundle.css
admin/images => admin/client/dist/images
admin/images/sprites/src => admin/client/src/sprites
admin/images/sprites/dist => admin/client/dist/sprites
admin/font => admin/client/dist/font
2016-04-20 21:13:10 +12:00