@@ -1,3 +1,25 @@
+2.200001 2015-01-06
+
+ * Fix version numbers for CPAN
+
+2.200000 2015-01-06
+
+ * [#30] Fix JavaScript truncates some valid bigint values (trinitum)
+ * Alert users to RapidApp and maintenance status for AutoCRUD
+
+2.143070 2014-11-03 21:12:29 Europe/London
+
+ * [#98448] Remove FATAL => all from warnings import (ANDK)
+
+2.142820 2014-10-09 13:26:50 Europe/London
+
+ * [#98954] Fix malformed tests missing foreign/self prefix
+
+2.141940 2014-07-13 10:22:41 Europe/London
+
+ * extjs from the CDN over HTTPS (mendel)
+ * Fix deprecation warning from SQL::Translator
+
2.131210 2013-05-01 21:12:25 Europe/London
* Support Oracle LIKE syntax properly (tunakermit)
@@ -1,379 +0,0 @@
-This software is copyright (c) 2013 by Oliver Gorwits.
-
-This is free software; you can redistribute it and/or modify it under
-the same terms as the Perl 5 programming language system itself.
-
-Terms of the Perl programming language system itself
-
-a) the GNU General Public License as published by the Free
- Software Foundation; either version 1, or (at your option) any
- later version, or
-b) the "Artistic License"
-
---- The GNU General Public License, Version 1, February 1989 ---
-
-This software is Copyright (c) 2013 by Oliver Gorwits.
-
-This is free software, licensed under:
-
- The GNU General Public License, Version 1, February 1989
-
- GNU GENERAL PUBLIC LICENSE
- Version 1, February 1989
-
- Copyright (C) 1989 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The license agreements of most software companies try to keep users
-at the mercy of those companies. By contrast, our General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. The
-General Public License applies to the Free Software Foundation's
-software and to any other program whose authors commit to using it.
-You can use it for your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Specifically, the General Public License is designed to make
-sure that you have the freedom to give away or sell copies of free
-software, that you receive source code or can get it if you want it,
-that you can change the software or use pieces of it in new free
-programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of a such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must tell them their rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any program or other work which
-contains a notice placed by the copyright holder saying it may be
-distributed under the terms of this General Public License. The
-"Program", below, refers to any such program or work, and a "work based
-on the Program" means either the Program or any work containing the
-Program or a portion of it, either verbatim or with modifications. Each
-licensee is addressed as "you".
-
- 1. You may copy and distribute verbatim copies of the Program's source
-code as you receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice and
-disclaimer of warranty; keep intact all the notices that refer to this
-General Public License and to the absence of any warranty; and give any
-other recipients of the Program a copy of this General Public License
-along with the Program. You may charge a fee for the physical act of
-transferring a copy.
-
- 2. You may modify your copy or copies of the Program or any portion of
-it, and copy and distribute such modifications under the terms of Paragraph
-1 above, provided that you also do the following:
-
- a) cause the modified files to carry prominent notices stating that
- you changed the files and the date of any change; and
-
- b) cause the whole of any work that you distribute or publish, that
- in whole or in part contains the Program or any part thereof, either
- with or without modifications, to be licensed at no charge to all
- third parties under the terms of this General Public License (except
- that you may choose to grant warranty protection to some or all
- third parties, at your option).
-
- c) If the modified program normally reads commands interactively when
- run, you must cause it, when started running for such interactive use
- in the simplest and most usual way, to print or display an
- announcement including an appropriate copyright notice and a notice
- that there is no warranty (or else, saying that you provide a
- warranty) and that users may redistribute the program under these
- conditions, and telling the user how to view a copy of this General
- Public License.
-
- d) You may charge a fee for the physical act of transferring a
- copy, and you may at your option offer warranty protection in
- exchange for a fee.
-
-Mere aggregation of another independent work with the Program (or its
-derivative) on a volume of a storage or distribution medium does not bring
-the other work under the scope of these terms.
-
- 3. You may copy and distribute the Program (or a portion or derivative of
-it, under Paragraph 2) in object code or executable form under the terms of
-Paragraphs 1 and 2 above provided that you also do one of the following:
-
- a) accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of
- Paragraphs 1 and 2 above; or,
-
- b) accompany it with a written offer, valid for at least three
- years, to give any third party free (except for a nominal charge
- for the cost of distribution) a complete machine-readable copy of the
- corresponding source code, to be distributed under the terms of
- Paragraphs 1 and 2 above; or,
-
- c) accompany it with the information you received as to where the
- corresponding source code may be obtained. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form alone.)
-
-Source code for a work means the preferred form of the work for making
-modifications to it. For an executable file, complete source code means
-all the source code for all modules it contains; but, as a special
-exception, it need not include source code for modules which are standard
-libraries that accompany the operating system on which the executable
-file runs, or for standard header files or definitions files that
-accompany that operating system.
-
- 4. You may not copy, modify, sublicense, distribute or transfer the
-Program except as expressly provided under this General Public License.
-Any attempt otherwise to copy, modify, sublicense, distribute or transfer
-the Program is void, and will automatically terminate your rights to use
-the Program under this License. However, parties who have received
-copies, or rights to use copies, from you under this General Public
-License will not have their licenses terminated so long as such parties
-remain in full compliance.
-
- 5. By copying, distributing or modifying the Program (or any work based
-on the Program) you indicate your acceptance of this license to do so,
-and all its terms and conditions.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the original
-licensor to copy, distribute or modify the Program subject to these
-terms and conditions. You may not impose any further restrictions on the
-recipients' exercise of the rights granted herein.
-
- 7. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of the license which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-the license, you may choose any version ever published by the Free Software
-Foundation.
-
- 8. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to humanity, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these
-terms.
-
- To do so, attach the following notices to the program. It is safest to
-attach them to the start of each source file to most effectively convey
-the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 1, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19xx name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the
-appropriate parts of the General Public License. Of course, the
-commands you use may be called something other than `show w' and `show
-c'; they could even be mouse-clicks or menu items--whatever suits your
-program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- program `Gnomovision' (a program to direct compilers to make passes
- at assemblers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
---- The Artistic License 1.0 ---
-
-This software is Copyright (c) 2013 by Oliver Gorwits.
-
-This is free software, licensed under:
-
- The Artistic License 1.0
-
-The Artistic License
-
-Preamble
-
-The intent of this document is to state the conditions under which a Package
-may be copied, such that the Copyright Holder maintains some semblance of
-artistic control over the development of the package, while giving the users of
-the package the right to use and distribute the Package in a more-or-less
-customary fashion, plus the right to make reasonable modifications.
-
-Definitions:
-
- - "Package" refers to the collection of files distributed by the Copyright
- Holder, and derivatives of that collection of files created through
- textual modification.
- - "Standard Version" refers to such a Package if it has not been modified,
- or has been modified in accordance with the wishes of the Copyright
- Holder.
- - "Copyright Holder" is whoever is named in the copyright or copyrights for
- the package.
- - "You" is you, if you're thinking about copying or distributing this Package.
- - "Reasonable copying fee" is whatever you can justify on the basis of media
- cost, duplication charges, time of people involved, and so on. (You will
- not be required to justify it to the Copyright Holder, but only to the
- computing community at large as a market that must bear the fee.)
- - "Freely Available" means that no fee is charged for the item itself, though
- there may be fees involved in handling the item. It also means that
- recipients of the item may redistribute it under the same conditions they
- received it.
-
-1. You may make and give away verbatim copies of the source form of the
-Standard Version of this Package without restriction, provided that you
-duplicate all of the original copyright notices and associated disclaimers.
-
-2. You may apply bug fixes, portability fixes and other modifications derived
-from the Public Domain or from the Copyright Holder. A Package modified in such
-a way shall still be considered the Standard Version.
-
-3. You may otherwise modify your copy of this Package in any way, provided that
-you insert a prominent notice in each changed file stating how and when you
-changed that file, and provided that you do at least ONE of the following:
-
- a) place your modifications in the Public Domain or otherwise make them
- Freely Available, such as by posting said modifications to Usenet or an
- equivalent medium, or placing the modifications on a major archive site
- such as ftp.uu.net, or by allowing the Copyright Holder to include your
- modifications in the Standard Version of the Package.
-
- b) use the modified Package only within your corporation or organization.
-
- c) rename any non-standard executables so the names do not conflict with
- standard executables, which must also be provided, and provide a separate
- manual page for each non-standard executable that clearly documents how it
- differs from the Standard Version.
-
- d) make other distribution arrangements with the Copyright Holder.
-
-4. You may distribute the programs of this Package in object code or executable
-form, provided that you do at least ONE of the following:
-
- a) distribute a Standard Version of the executables and library files,
- together with instructions (in the manual page or equivalent) on where to
- get the Standard Version.
-
- b) accompany the distribution with the machine-readable source of the Package
- with your modifications.
-
- c) accompany any non-standard executables with their corresponding Standard
- Version executables, giving the non-standard executables non-standard
- names, and clearly documenting the differences in manual pages (or
- equivalent), together with instructions on where to get the Standard
- Version.
-
- d) make other distribution arrangements with the Copyright Holder.
-
-5. You may charge a reasonable copying fee for any distribution of this
-Package. You may charge any fee you choose for support of this Package. You
-may not charge a fee for this Package itself. However, you may distribute this
-Package in aggregate with other (possibly commercial) programs as part of a
-larger (possibly commercial) software distribution provided that you do not
-advertise this Package as a product of your own.
-
-6. The scripts and library files supplied as input to or produced as output
-from the programs of this Package do not automatically fall under the copyright
-of this Package, but belong to whomever generated them, and may be sold
-commercially, and may be aggregated with this Package.
-
-7. C or perl subroutines supplied by you and linked into this Package shall not
-be considered part of this Package.
-
-8. The name of the Copyright Holder may not be used to endorse or promote
-products derived from this software without specific prior written permission.
-
-9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
-WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-
-The End
-
@@ -1,10 +1,4 @@
Changes
-LICENSE
-MANIFEST
-META.json
-META.yml
-Makefile.PL
-README
examples/demo/demo.conf
examples/demo/demo_other_features.conf
examples/demo/demo_with_display_name.conf
@@ -19,8 +13,8 @@ examples/demo/lib/DemoAppMusicSchema/Result/Track.pm
examples/demo/lib/DemoAppOtherFeatures.pm
examples/demo/lib/DemoAppOtherFeaturesSchema.pm
examples/demo/lib/DemoAppOtherFeaturesSchema/Result/Artist.pm
-examples/demo/lib/DemoAppOtherFeaturesSchema/Result/ArtistUndirectedMap.pm
examples/demo/lib/DemoAppOtherFeaturesSchema/Result/ArtistsCalledMike.pm
+examples/demo/lib/DemoAppOtherFeaturesSchema/Result/ArtistUndirectedMap.pm
examples/demo/lib/DemoAppOtherFeaturesSchema/Result/Bookmark.pm
examples/demo/lib/DemoAppOtherFeaturesSchema/Result/BookmarkWithLinkProxy.pm
examples/demo/lib/DemoAppOtherFeaturesSchema/Result/DynamicDefault.pm.off
@@ -57,8 +51,6 @@ lib/Catalyst/Plugin/AutoCRUD/Model/DBIC.pm
lib/Catalyst/Plugin/AutoCRUD/Model/StorageEngine/DBIC.pm
lib/Catalyst/Plugin/AutoCRUD/Model/StorageEngine/DBIC/CRUD.pm
lib/Catalyst/Plugin/AutoCRUD/Model/StorageEngine/DBIC/Metadata.pm
-lib/Catalyst/Plugin/AutoCRUD/View/JSON.pm
-lib/Catalyst/Plugin/AutoCRUD/View/TT.pm
lib/Catalyst/Plugin/AutoCRUD/static/add.png
lib/Catalyst/Plugin/AutoCRUD/static/application_view_detail.png
lib/Catalyst/Plugin/AutoCRUD/static/arrow_refresh_small.png
@@ -106,6 +98,8 @@ lib/Catalyst/Plugin/AutoCRUD/templates/skinny/wrapper/footer.tt
lib/Catalyst/Plugin/AutoCRUD/templates/skinny/wrapper/head.tt
lib/Catalyst/Plugin/AutoCRUD/templates/skinny/wrapper/header.tt
lib/Catalyst/Plugin/AutoCRUD/templates/tables.tt
+lib/Catalyst/Plugin/AutoCRUD/View/JSON.pm
+lib/Catalyst/Plugin/AutoCRUD/View/TT.pm
lib/SQL/Translator/AutoCRUD/Quick.pm
lib/SQL/Translator/AutoCRUD/Utils.pm
lib/SQL/Translator/Filter/AutoCRUD/CatalystModel.pm
@@ -117,6 +111,9 @@ lib/SQL/Translator/Filter/AutoCRUD/StorageEngine/DBIC/DynamicDefault.pm
lib/SQL/Translator/Filter/AutoCRUD/StorageEngine/DBIC/ProxyColumns.pm
lib/SQL/Translator/Filter/AutoCRUD/StorageEngine/DBIC/Relationships.pm
lib/SQL/Translator/Filter/AutoCRUD/StorageEngine/DBIC/ViewsAsTables.pm
+Makefile.PL
+MANIFEST This list of files
+META.yml
t/00-load.t
t/10-www.t
t/11-site.t
@@ -145,7 +142,18 @@ t/65-headings_skinny.t
t/66-columns_skinny.t
t/67-headings_and_columns_skinny.t
t/68-no_columns_skinny.t
+t/lib/columns_extjs.conf
+t/lib/headings_and_columns_extjs.conf
+t/lib/headings_byhash.conf
+t/lib/headings_extjs.conf
+t/lib/hide_table.conf
+t/lib/html_charset.conf
+t/lib/list_returns_byhash.conf
+t/lib/list_returns_bylist.conf
+t/lib/no_columns_extjs.conf
t/lib/Test/WWW/Mechanize/Catalyst/AJAX.pm
+t/lib/test_app.sql
+t/lib/test_app_m2m.sql
t/lib/TestApp.pm
t/lib/TestApp/Controller/Root.pm
t/lib/TestApp/M2MSchema.pm
@@ -158,21 +166,11 @@ t/lib/TestApp/Schema/Artist.pm
t/lib/TestApp/Schema/Copyright.pm
t/lib/TestApp/Schema/SleeveNotes.pm
t/lib/TestApp/Schema/Track.pm
-t/lib/TestApp/View/TT.pm
t/lib/TestApp/script/testapp_server.pl
t/lib/TestApp/templates/testpage.tt
+t/lib/TestApp/View/TT.pm
t/lib/TestAppCustomConfig.pm
t/lib/TestAppLoader.pm
t/lib/TestAppM2M.pm
t/lib/TestAppRel.pm
-t/lib/columns_extjs.conf
-t/lib/headings_and_columns_extjs.conf
-t/lib/headings_byhash.conf
-t/lib/headings_extjs.conf
-t/lib/hide_table.conf
-t/lib/html_charset.conf
-t/lib/list_returns_byhash.conf
-t/lib/list_returns_bylist.conf
-t/lib/no_columns_extjs.conf
-t/lib/test_app.sql
-t/lib/test_app_m2m.sql
+META.json Module JSON meta-data (added by MakeMaker)
@@ -3,8 +3,8 @@
"author" : [
"Oliver Gorwits <oliver@cpan.org>"
],
- "dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 4.300002, CPAN::Meta::Converter version 2.112621",
+ "dynamic_config" : 1,
+ "generated_by" : "ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.131560",
"license" : [
"perl_5"
],
@@ -13,7 +13,28 @@
"version" : "2"
},
"name" : "Catalyst-Plugin-AutoCRUD",
+ "no_index" : {
+ "directory" : [
+ "t",
+ "inc"
+ ]
+ },
"prereqs" : {
+ "build" : {
+ "requires" : {
+ "Catalyst" : "0",
+ "Catalyst::ScriptRunner" : "0",
+ "Class::Data::Inheritable" : "0",
+ "DBI" : "0",
+ "DBIx::Class" : "0",
+ "DBIx::Class::Schema" : "0",
+ "File::Temp" : "0",
+ "JSON::XS" : "0",
+ "Storable" : "0",
+ "Test::More" : "0",
+ "Test::WWW::Mechanize::Catalyst" : "0"
+ }
+ },
"configure" : {
"requires" : {
"ExtUtils::MakeMaker" : "6.30"
@@ -21,68 +42,42 @@
},
"runtime" : {
"requires" : {
- "Catalyst::Action::RenderView" : 0,
- "Catalyst::Controller" : 0,
- "Catalyst::Model" : 0,
- "Catalyst::Model::DBIC::Schema" : 0,
- "Catalyst::Plugin::ConfigLoader" : 0,
- "Catalyst::Plugin::Unicode::Encoding" : 0,
+ "Catalyst::Action::RenderView" : "0",
+ "Catalyst::Controller" : "0",
+ "Catalyst::Model" : "0",
+ "Catalyst::Model::DBIC::Schema" : "0",
+ "Catalyst::Plugin::ConfigLoader" : "0",
+ "Catalyst::Plugin::Unicode::Encoding" : "0",
"Catalyst::Runtime" : "5.70",
- "Catalyst::Utils" : 0,
- "Catalyst::View::JSON" : 0,
- "Catalyst::View::TT" : 0,
- "DBD::SQLite" : 0,
+ "Catalyst::Utils" : "0",
+ "Catalyst::View::JSON" : "0",
+ "Catalyst::View::TT" : "0",
+ "DBD::SQLite" : "0",
"DBIx::Class" : "0.08127",
- "DBIx::Class::Schema::Loader" : 0,
- "Data::Dumper" : 0,
- "Data::Page" : 0,
- "Devel::InnerPackage" : 0,
- "Exporter" : 0,
- "File::Basename" : 0,
- "File::Slurp" : 0,
- "File::stat" : 0,
- "Lingua::EN::Inflect::Number" : 0,
- "List::MoreUtils" : 0,
- "List::Util" : 0,
- "MRO::Compat" : 0,
- "SQL::Translator" : 0,
- "SQL::Translator::Schema" : 0,
- "SQL::Translator::Schema::Table" : 0,
- "Scalar::Util" : 0,
- "base" : 0,
- "overload" : 0,
- "strict" : 0,
- "warnings" : 0
- }
- },
- "test" : {
- "requires" : {
- "Catalyst" : 0,
- "Catalyst::ScriptRunner" : 0,
- "Class::Data::Inheritable" : 0,
- "DBI" : 0,
- "DBIx::Class" : 0,
- "DBIx::Class::Schema" : 0,
- "File::Temp" : 0,
- "JSON::XS" : 0,
- "Storable" : 0,
- "Test::More" : 0,
- "Test::WWW::Mechanize::Catalyst" : 0
+ "DBIx::Class::Schema::Loader" : "0",
+ "Data::Dumper" : "0",
+ "Data::Page" : "0",
+ "Devel::InnerPackage" : "0",
+ "Exporter" : "0",
+ "File::Basename" : "0",
+ "File::Slurp" : "0",
+ "File::stat" : "0",
+ "JSON" : "2.90",
+ "Lingua::EN::Inflect::Number" : "0",
+ "List::MoreUtils" : "0",
+ "List::Util" : "0",
+ "MRO::Compat" : "0",
+ "SQL::Translator" : "0",
+ "SQL::Translator::Schema" : "0",
+ "SQL::Translator::Schema::Table" : "0",
+ "Scalar::Util" : "0",
+ "base" : "0",
+ "overload" : "0",
+ "strict" : "0",
+ "warnings" : "0"
}
}
},
"release_status" : "stable",
- "resources" : {
- "bugtracker" : {
- "web" : "https://rt.cpan.org/Public/Dist/Display.html?Name=Catalyst-Plugin-AutoCRUD"
- },
- "homepage" : "https://github.com/ollyg/Catalyst-Plugin-AutoCRUD/wiki",
- "repository" : {
- "type" : "git",
- "url" : "git://github.com/ollyg/Catalyst-Plugin-AutoCRUD.git",
- "web" : "https://github.com/ollyg/Catalyst-Plugin-AutoCRUD"
- }
- },
- "version" : "2.131210"
+ "version" : "2.200001"
}
-
@@ -16,13 +16,17 @@ build_requires:
Test::WWW::Mechanize::Catalyst: 0
configure_requires:
ExtUtils::MakeMaker: 6.30
-dynamic_config: 0
-generated_by: 'Dist::Zilla version 4.300002, CPAN::Meta::Converter version 2.112621'
+dynamic_config: 1
+generated_by: 'ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.131560'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: 1.4
name: Catalyst-Plugin-AutoCRUD
+no_index:
+ directory:
+ - t
+ - inc
requires:
Catalyst::Action::RenderView: 0
Catalyst::Controller: 0
@@ -44,6 +48,7 @@ requires:
File::Basename: 0
File::Slurp: 0
File::stat: 0
+ JSON: 2.90
Lingua::EN::Inflect::Number: 0
List::MoreUtils: 0
List::Util: 0
@@ -56,8 +61,4 @@ requires:
overload: 0
strict: 0
warnings: 0
-resources:
- bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=Catalyst-Plugin-AutoCRUD
- homepage: https://github.com/ollyg/Catalyst-Plugin-AutoCRUD/wiki
- repository: git://github.com/ollyg/Catalyst-Plugin-AutoCRUD.git
-version: 2.131210
+version: 2.200001
@@ -1,13 +1,8 @@
-
use strict;
use warnings;
-
-
use ExtUtils::MakeMaker 6.30;
-
-
my %WriteMakefileArgs = (
"ABSTRACT" => "Instant AJAX web front-end for DBIx::Class",
"AUTHOR" => "Oliver Gorwits <oliver\@cpan.org>",
@@ -52,6 +47,7 @@ my %WriteMakefileArgs = (
"File::Basename" => 0,
"File::Slurp" => 0,
"File::stat" => 0,
+ "JSON" => "2.90",
"Lingua::EN::Inflect::Number" => 0,
"List::MoreUtils" => 0,
"List::Util" => 0,
@@ -65,7 +61,7 @@ my %WriteMakefileArgs = (
"strict" => 0,
"warnings" => 0
},
- "VERSION" => "2.131210",
+ "VERSION" => "2.200001",
"test" => {
"TESTS" => "t/*.t"
}
@@ -90,5 +86,3 @@ delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
WriteMakefile(%WriteMakefileArgs);
-
-
@@ -1,680 +0,0 @@
-NAME
- Catalyst::Plugin::AutoCRUD - Instant AJAX web front-end for DBIx::Class
-
-VERSION
- version 2.131210
-
-PURPOSE
- You have a database, and wish to have a basic web interface supporting
- Create, Retrieve, Update, Delete and Search, with little effort. This
- module is able to create such interfaces on the fly. They are a bit
- whizzy and all Web 2.0-ish.
-
- * See the demo at: <http://demo.autocrud.pl/>
-
-SYNOPSIS
- If you already have a Catalyst app with DBIx::Class models configured:
-
- use Catalyst qw(AutoCRUD); # <-- add the plugin name here in MyApp.pm
-
- Now load your app in a web browser, but add "/autocrud" to the URL path.
-
- Alternatively, to connect to an external database if you have the
- DBIX::Class schema available, use the "ConfigLoader" plugin with the
- following config:
-
- <Model::AutoCRUD::DBIC>
- schema_class My::Database::Schema
- connect_info dbi:Pg:dbname=mydbname;host=mydbhost.example.com;
- connect_info username
- connect_info password
- <connect_info>
- AutoCommit 1
- </connect_info>
- </Model::AutoCRUD::DBIC>
-
- If you don't have the DBIx::Class schema available, just omit the
- "schema_class" option (and have DBIx::Class::Schema::Loader installed).
-
-DESCRIPTION
- This module contains an application which will automatically construct a
- web interface for a database on the fly. The web interface supports
- Create, Retrieve, Update, Delete and Search operations.
-
- The interface is not written to static files on your system, and uses
- AJAX to act upon the database without reloading your web page (much like
- other Web 2.0 applications, for example Google Mail).
-
- Almost all the information required by the plugin is retrieved from the
- DBIx::Class ORM frontend to your database, which it is expected that you
- have already set up (although see "USAGE", below). This means that any
- change in database schema ought to be reflected immediately in the web
- interface after a page refresh.
-
-USAGE
- Read Me First
- * If you get stuck, read the Troubleshooting documentation.
-
- * DBIx::Class users should read DBIx::Class Tips.
-
- * This plugin provides no user-based access authentication or
- authorization. Please take care when deploying, and consider who
- will have access. It is possible to restrict the add/update/delete
- operations on data. See "TIPS AND TRICKS" for other suggestions.
-
- Scenario 1: Plugin to an existing Catalyst App
- This mode is for when you have written your Catalyst application, but
- the Views are catering for the users and as an admin you'd like a more
- direct, secondary web interface to the database.
-
- package AutoCRUDUser;
- use Catalyst qw(AutoCRUD);
-
- __PACKAGE__->setup;
- 1;
-
- Adding "Catalyst::Plugin::AutoCRUD" as a plugin to your Catalyst
- application, as above, causes it to scan your existing Models. If any of
- them are built using Catalyst::Model::DBIC::Schema, they are
- automatically loaded.
-
- This mode of operation works even if you have more than one database.
- You will be offered a Home screen to select the database, and then
- another menu to select the table within that.
-
- Remember that the pages available from this plugin will be located under
- the "/autocrud" path of your application. Use the "basepath" option if
- you want to override this.
-
- Scenario 2: Frontend for an existing "DBIx::Class::Schema" based class
- In this mode, "Catalyst::Plugin::AutoCRUD" is running standalone, in a
- sense as the Catalyst application itself. Your main application file
- looks almost the same as in Scenario 1, except you'll need the
- "ConfigLoader" plugin:
-
- package AutoCRUDUser;
- use Catalyst qw(ConfigLoader AutoCRUD);
-
- __PACKAGE__->setup;
- 1;
-
- For the configuration, you need to tell AutoCRUD which package contains
- the "DBIx::Class" schema, and also provide database connection
- parameters.
-
- <Model::AutoCRUD::DBIC>
- schema_class My::Database::Schema
- connect_info dbi:Pg:dbname=mydbname;host=mydbhost.example.com;
- connect_info username
- connect_info password
- <connect_info>
- AutoCommit 1
- </connect_info>
- </Model::AutoCRUD::DBIC>
-
- The "Model::AutoCRUD::DBIC" section must look (and be named) exactly
- like that above, except you should of course change the "schema_class"
- value and the values within "connect_info".
-
- Remember that the pages available from this plugin will be located under
- the "/autocrud" path if your application. Use the "basepath" option if
- you want to override this.
-
- "DBIx::Class" setup
- You will of course need the "DBIx::Class" schema to be created and
- installed on your system. The recommended way to do this quickly is to
- use the excellent DBIx::Class::Schema::Loader module which connects to
- your database and writes "DBIx::Class" Perl modules for it.
-
- Pick a suitable namespace for your schema, which is not related to this
- application. For example "DBIC::Database::Foo::Schema" for the "Foo"
- database (in the configuration example above we used
- "My::Database::Schema"). Then use the following command-line
- incantation:
-
- perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:. -e \
- 'make_schema_at("DBIC::Database::Foo::Schema", { debug => 1, naming => 'current' }, \
- ["dbi:Pg:dbname=foodb;host=mydbhost.example.com","user","pass" ])'
-
- This will create a directory (such as "DBIC") which you need to move
- into your Perl Include path (one of the paths shown at the end of "perl
- -V").
-
- Scenario 3: Lazy loading a "DBIx::Class" schema
- If you're in such a hurry that you can't create the "DBIx::Class"
- schema, as shown in the previous section, then
- "Catalyst::Plugin::AutoCRUD" is able to do this on the fly, but it will
- slow the application's startup just a little.
-
- The application file and configuration are very similar to those in
- Scenario two, above, except that you omit the "schema_class"
- configuration option because you want AutoCRUD to generate that on the
- fly (rather than reading an existing one from disk).
-
- package AutoCRUDUser;
- use Catalyst qw(ConfigLoader AutoCRUD);
-
- __PACKAGE__->setup;
- 1;
-
- <Model::AutoCRUD::DBIC>
- connect_info dbi:Pg:dbname=mydbname;host=mydbhost.example.com;
- connect_info username
- connect_info password
- <connect_info>
- AutoCommit 1
- </connect_info>
- </Model::AutoCRUD::DBIC>
-
- When AutoCRUD loads it will connect to the database and use the
- DBIx::Class::Schema::Loader module to reverse engineer its schema. To
- work properly you'll need the very latest version of that module (at
- least 0.05, or the most recent development release from CPAN).
-
- The other drawback to this scenario (other than the slower operation) is
- that you have no ability to customize how foreign, related records are
- shown. A related record will simply be represented as something
- approximating the name of the foreign table, the names of the primary
- keys, and associated values (e.g. id(5)).
-
-TIPS AND TRICKS
- Displaying Unicode
- It is essential that you load the Catalyst::Plugin::Unicode::Encoding
- plugin to ensure proper decoding/encoding of incoming request parameters
- and the outgoing body response respectively. This is done in your
- "MyApp.pm":
-
- use Catalyst qw/ -Debug ConfigLoader Unicode::Encoding AutoCRUD /;
-
- Additionally, when connecting to the database, add a flag to the
- connection parameters, specific to your database engine, that enables
- Unicode. See the following link for more details:
-
- * <https://metacpan.org/module/DBIx::Class::Manual::Cookbook#Using-Uni
- code>
-
- Representing related records
- When the web interface wants to display a column which references
- another table, you can make things look much better by adding a custom
- render method to your "DBIx::Class" Result Classes (i.e. the class files
- for each table).
-
- First, the plugin will look for a method called "display_name" and use
- that. Here is an example which could be added to your Result Class files
- below the line which reads "DO NOT MODIFY THIS OR ANYTHING ABOVE", and
- in this case returns the data from the "title" column:
-
- sub display_name {
- my $self = shift;
- return $self->title || '';
- }
-
- Failing the existence of a "display_name" method, the plugin attempts to
- stringify the row object. Using stringification is not recommended,
- although some people like it. Here is an example of a stringification
- handler:
-
- use overload '""' => sub {
- my $self = shift;
- return $self->title || '';
- }, fallback => 1;
-
- If all else fails the plugin prints the best hint it can to describe the
- foreign row. This is something approximating the name of the foreign
- table, the names of the primary keys, and associated values. It's better
- than stringifying the object the way Perl does, anyway.
-
- Textfields and Textareas
- When the plugin creates a web form for adding or editing, it has to
- choose whether to show a Textfield or Textarea for text-type fields. If
- you have set a "size" option in add_columns() within the Schema, and
- this is less than or equal to 40, a Textfield is used. Otherwise, if the
- "size" option is larger than 40 or not set, then an auto-expanding,
- scrollable Textarea is used.
-
- Column names with spaces
- The plugin will handle most tricky names, but you should remember to
- pass some required extra quoting hints to DBIx::Class when it makes a
- connection to your database:
-
- # most databases:
- { quote_char => q{`}, name_sep => q{.} }
-
- # SQL Server:
- { quote_char => [qw/[ ]/], name_sep => q{.} }
-
- For more information see the DBIx::Class::Storage::DBI manual page or
- ask on the DBIx::Class mail list.
-
- Database IO filters
- Buried within one of the modules in this application are some filters
- which are applied to data of certain types as it enters or leaves the
- database. If you find a particular data type is not being rendered
- correctly, please drop the author a line at the email address below,
- explaining what you'd like to see instead.
-
- Relocating AutoCRUD to another URL path
- If you want to use this application as a plugin with another Catalyst
- system, it should work fine, but you probably want to serve pages under
- a different path on your web site. To that end, the plugin by default
- places its pages under a path part of ".../autocrud/". You can change
- this by adding the following option to your configuration file:
-
- <Plugin::AutoCRUD>
- basepath admin
- </Plugin::AutoCRUD>
-
- In the above example, the path ".../admin/" will contain the AutoCRUD
- application, and all generated links in AutoCRUD will also make use of
- that path. Remember this is added to the "base" of your Cataylst
- application which, depending on your web server configuration, might
- also have a leading path.
-
- To have the links based at the root of your application (which was the
- default behaviour of "CatalystX::ListFramework::Builder", set this
- variable to an empty string in your configuration:
-
- <Plugin::AutoCRUD>
- basepath ""
- </Plugin::AutoCRUD>
-
- Using your own ExtJS libraries
- The plugin will use copies of the ExtJS libraries hosted in the CacheFly
- content delivery network out there on the Internet. Under some
- circumstances you'll want to use your own hosted copy, for instance if
- you are serving HTTPS (because browsers will warn about mixed HTTP and
- HTTPS content).
-
- In which case, you'll need to download the ExtJS Javascript Library
- (version 2.2+ recommended), from this web page:
- <http://www.sencha.com/products/extjs/download/>.
-
- Install it to your web server in a location that it is able to serve as
- static content. Make a note of the path used in a URL to retrieve this
- content, as it will be needed in the application configuration file,
- like so:
-
- <Plugin::AutoCRUD>
- extjs2 /static/javascript/extjs-2
- </Plugin::AutoCRUD>
-
- Use the "extjs2" option as shown above to specify the URL path to the
- libraries. This will be used in the templates in some way like this:
-
- <script type="text/javascript" src="[% c.config.extjs2 %]/ext-all.js" />
-
- Changing the HTML Character Set
- The default HTML "charset" used by this module is "utf-8". If you wish
- to override this, then set the "html_charset" parameter, as below:
-
- <Plugin::AutoCRUD>
- html_charset iso-8859-1
- </Plugin::AutoCRUD>
-
- Simple read-only non-JavaScript Frontend
- All table views will default to the full-featured ExtJS based frontend.
- If you would prefer to see a simple read-only non-JavaScript interface,
- then append "/browse" to your URL.
-
- This simpler frontend uses HTTP GET only, supports paging and sorting,
- and will obey any column filtering and renaming as set in your "SITES
- CONFIGURATION" file.
-
- Overriding built-in Templates
- The whole site is built from Perl Template Toolkit templates, and it is
- possible to override these shipped templates with your own files. This
- goes for both general files (CSS, top-level TT wrapper) as well as the
- site files mentioned in the next section.
-
- To add these override paths, include the following directive in your
- configuration file:
-
- <Plugin::AutoCRUD>
- tt_path /path/to/my/local/templates
- </Plugin::AutoCRUD>
-
- This "tt_path" directive can be included multiple times to set a list of
- override paths, which will be processed in the order given.
-
- Within the specified directory you should mirror the file structure
- where the overridden templates have come from, including the frontend
- name. For example:
-
- extjs2
- extjs2/wrapper
- extjs2/wrapper/footer.tt
- skinny
- skinny/wrapper
- skinny/wrapper/footer.tt
-
- If you want to override any of the CSS used in the app, copy the
- "head.tt" template from whichever "site" you are using, edit, and
- install in a local "tt_path" set with this directive.
-
- Reconfiguring Embedded Plugins
- Embedded plugins such as Catalyst::View:TT, Catalyst::View::JSON, etc,
- can be reconfigured in your "myapp.yml" file using a simple naming
- convention. Remove the leading "Catalyst", and insert "AutoCRUD" after
- the first namespace component. For example:
-
- View::AutoCRUD::TT:
- ENCODING: utf-8
-
- Note that this does not affect your own App's usage of the same plugins,
- only the AutoCRUD plugin's instances are reconfigured.
-
-SITES CONFIGURATION
- It's possible to have multiple views of the source data, tailored in
- various ways. For example you might choose to hide some tables, or
- columns within tables, rename headings of columns, or disable updates or
- deletes.
-
- This is all achieved through the "sites" configuration. Altering the
- default site simply allows for control of column naming, hiding, etc.
- Creating a new site allows you to present alternate configurations of
- the same source data.
-
- Altering the Default Site
- When using this plugin out of the box you're already running within the
- default site, which unsurprisingly is called "default". To override
- settings in this, create the following configuration stub, and fill it
- in with any of the options listed below:
-
- <Plugin::AutoCRUD>
- <sites>
- <default>
- # override settings here
- </default>
- </sites>
- </Plugin::AutoCRUD>
-
- Configuration Options for Sites
- In general, when you apply a setting to something at a higher level
- (say, a database), it *percolates* down to the child sections (i.e. the
- tables). For example, setting "delete_allowed no" on a database will
- prevent records from any table within that from being deleted.
-
- Some of the options are *global* for a site, others apply to the
- database or table within it. To specify an option for one or the other,
- use the database and table names *as they appear in the URL path*:
-
- <Plugin::AutoCRUD>
- <sites>
- <default>
- # global settings for the site, here
- <mydb>
- # override settings here
- <sometable>
- # and/or override settings here
- </sometable
- </mydb>
- </default>
- </sites>
- </Plugin::AutoCRUD>
-
- Options
- update_allowed [ yes* | no ]
- This can be applied to either a database or a table; if applied to a
- database it percolates to all the tables, unless the table has a
- different setting.
-
- The default is to allow updates to be made to existing records. Set
- this to a value of "no" to prevent this operation from being
- permitted. Widgets will also be removed from the user interface so
- as not to confuse users.
-
- <Plugin::AutoCRUD>
- <sites>
- <default>
- update_allowed no
- </default>
- </sites>
- </Plugin::AutoCRUD>
-
- create_allowed [ yes* | no ]
- This can be applied to either a database or a table; if applied to a
- database it percolates to all the tables, unless the table has a
- different setting.
-
- The default is to allow new records to be created. Set this to a
- value of "no" to prevent this operation from being allowed. Widgets
- will also be removed from the user interface so as not to confuse
- users.
-
- <Plugin::AutoCRUD>
- <sites>
- <default>
- create_allowed no
- </default>
- </sites>
- </Plugin::AutoCRUD>
-
- delete_allowed [ yes* | no ]
- This can be applied to either a database or a table; if applied to a
- database it percolates to all the tables, unless the table has a
- different setting.
-
- The default is to allow deletions of records in the tables. Set this
- to a value of "no" to prevent deletions from being allowed. Widgets
- will also be removed from the user interface so as not to confuse
- users.
-
- <Plugin::AutoCRUD>
- <sites>
- <default>
- delete_allowed no
- </default>
- </sites>
- </Plugin::AutoCRUD>
-
- columns \@column_names
- This option achieves two purposes. First, you can re-order the set
- of columns as they are displayed to the user. Second, by omitting
- columns from this list you can hide them from the main table views.
-
- Provide a list of the column names (as the data source knows them)
- to this setting. This option must appear at the table level of your
- site config hierarchy. In "Config::General" format, this would look
- something like:
-
- <Plugin::AutoCRUD>
- <sites>
- <default>
- <mydb>
- <thetable>
- columns id
- columns title
- columns length
- </thetable>
- </mydb>
- </default>
- </sites>
- </Plugin::AutoCRUD>
-
- Any columns existing in the table, but not mentioned there, will not
- be displayed in the main table. They'll still appear in the record
- edit form, as some fields are required by the database schema so
- cannot be hidden. Columns will be displayed in the same order that
- you list them in the configuration.
-
- headings { col => title, ... }
- You can alter the title given to any column in the user interface,
- by providing a hash mapping of column names (as the data source
- knows them) to titles you wish displayed to the user. This option
- must appear at the table level of your site config hierarchy. In
- "Config::General" format, this would look something like:
-
- <Plugin::AutoCRUD>
- <sites>
- <default>
- <mydb>
- <thetable>
- <headings>
- id Key
- title Name
- length Time
- </headings>
- </thetable>
- </mydb>
- </default>
- </sites>
- </Plugin::AutoCRUD>
-
- Any columns not included in the hash mapping will use the default
- title (i.e. what the plugin works out for itself). To hide a column
- from view, use the "columns" option, described above.
-
- hidden [ yes | no* ]
- If you don't want a database to be offered to the user, or likewise
- a particular table, then set this option to "yes". By default, all
- databases and tables are shown in the user interface.
-
- <Plugin::AutoCRUD>
- <sites>
- <default>
- <mydb>
- <secrettable>
- hidden yes
- </secrettable>
- </mydb>
- </default>
- </sites>
- </Plugin::AutoCRUD>
-
- This can be applied to either a database or table; if applied to a
- database it overrides all child tables, even if a table has a
- different setting.
-
- frontend [ extjs2 | skinny | ... ]
- With this option you can swap out the set of templates used to
- generate the web front-end, and completely change its look and feel.
-
- Currently you have two choices: either "extjs2" which is the default
- and provides the standard full-featured ExtJS2 frontend, or "skinny"
- which is a read-only non-JavaScript alternative supporting listing,
- paging and sorting only.
-
- Set the frontend in your site config at its top level. Note that you
- cannot set the frontend on a per-database or per-table basis, only
- per-site:
-
- <Plugin::AutoCRUD>
- <sites>
- <default>
- frontend skinny
- </default>
- </sites>
- </Plugin::AutoCRUD>
-
- Be aware that setting the frontend to "skinny" does not restrict
- create or update access to your database via the AJAX API. For that,
- you still should set the *_allowed options listed above, as
- required.
-
- Creating a New Site
- You can create a new site by adding it to the "sites" section of your
- configuration:
-
- <Plugin::AutoCRUD>
- <sites>
- <mysite>
- # local settings here
- </mysite>
- </sites>
- </Plugin::AutoCRUD>
-
- You'll notice that a non-default site is active because the path in your
- URLs changes to a more RPC-like verbose form, mentioning the site,
- database and table:
-
- from this:
- .../autocrud/mydb/thetable # (i.e. site == default)
-
- to this:
- .../autocrud/site/mysite/schema/mydb/source/thetable
-
- So let's say you've created a dumbed down site for your users which is
- read-only (i.e. "update_allowed no" and "delete_allowed no"), and called
- the site "simplesite" in your configuration. You need to give the
- following URL to users:
-
- .../autocrud/site/simplesite
-
- You could also then place an access control on this path part in your
- web server (e.g. Apache) which is different from the default site
- itself.
-
-INSTANT DEMO APPLICATIONS
- Automagic Loading
- If you want to run an instant demo of this module, with minimal
- configuration, then a simple application for that is shipped with this
- distribution. For this to work, you must have:
-
- * The very latest version of DBIx::Class::Schema::Loader installed on
- your system (at least 0.05, or the most recent release from CPAN).
-
- * SQLite3 and the accompanying DBD module, if you want to use the
- shipped demo database.
-
- Go to the "examples/sql/" directory of this distribution and run the
- "bootstrap_sqlite.pl" perl script. This will create an SQLite file.
-
- Now change to the "examples/demo/" directory and start the demo
- application like so:
-
- demo> perl ./server.pl
-
- Visit "http://localhost:3000" in your browser as instructed at the end
- of the output from this command.
-
- To use your own database rather than the SQLite demo, edit
- "examples/demo/demo.conf" so that it contains the correct "dsn",
- username, and password for your database. Upon restarting the
- application you should see your own data source instead.
-
- Row Display Names
- An alternate application exists which demonstrates use of the
- "display_name" method on a DBIx::Class Row, to give row entries
- "friendly names". Follow all the instructions above but instead run the
- following server script:
-
- demo> perl ./server_with_display_name.pl
-
- Other Features
- Finally, the kitchen sink of other features supported by this module are
- demonstrated in a separate application. This contains many tables, each
- of which highlights one or more aspects of a relational database backend
- being rendered in AutoCRUD.
-
- Follow all the instructions above, but instead run the following server
- script:
-
- demo> perl ./server_other_features.pl
-
-TROUBLESHOOTING
- See Catalyst::Plugin::AutoCRUD::Manual::Troubleshooting.
-
-LIMITATIONS
- See Catalyst::Plugin::AutoCRUD::Manual::Limitations.
-
-SEE ALSO
- CatalystX::CRUD and CatalystX::CRUD:YUI are two distributions which
- allow you to create something similar but with full customization, and
- the ability to add more features. So, you trade effort for flexibility
- and power.
-
-ACKNOWLEDGEMENTS
- Without the initial work on "CatalystX::ListFramework" by Andrew Payne
- and Peter Edwards this package would not exist. If you are looking for
- something like this module but without the dependency on Javascript,
- please do check out CatalystX::ListFramework.
-
-AUTHOR
- Oliver Gorwits <oliver@cpan.org>
-
-COPYRIGHT AND LICENSE
- This software is copyright (c) 2013 by Oliver Gorwits.
-
- This is free software; you can redistribute it and/or modify it under
- the same terms as the Perl 5 programming language system itself.
-
@@ -1,10 +1,10 @@
package Catalyst::Plugin::AutoCRUD::Controller::AJAX;
{
- $Catalyst::Plugin::AutoCRUD::Controller::AJAX::VERSION = '2.131210';
+ $Catalyst::Plugin::AutoCRUD::Controller::AJAX::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
use base 'Catalyst::Controller';
@@ -1,10 +1,10 @@
package Catalyst::Plugin::AutoCRUD::Controller::DisplayEngine::ExtJS2;
{
- $Catalyst::Plugin::AutoCRUD::Controller::DisplayEngine::ExtJS2::VERSION = '2.131210';
+ $Catalyst::Plugin::AutoCRUD::Controller::DisplayEngine::ExtJS2::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
use base 'Catalyst::Controller';
@@ -1,10 +1,10 @@
package Catalyst::Plugin::AutoCRUD::Controller::DisplayEngine::Skinny;
{
- $Catalyst::Plugin::AutoCRUD::Controller::DisplayEngine::Skinny::VERSION = '2.131210';
+ $Catalyst::Plugin::AutoCRUD::Controller::DisplayEngine::Skinny::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
use base 'Catalyst::Controller';
@@ -1,10 +1,10 @@
package Catalyst::Plugin::AutoCRUD::Controller::Root;
{
- $Catalyst::Plugin::AutoCRUD::Controller::Root::VERSION = '2.131210';
+ $Catalyst::Plugin::AutoCRUD::Controller::Root::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
use base 'Catalyst::Controller';
use Catalyst::Utils;
@@ -1,10 +1,10 @@
package Catalyst::Plugin::AutoCRUD::Controller::Static;
{
- $Catalyst::Plugin::AutoCRUD::Controller::Static::VERSION = '2.131210';
+ $Catalyst::Plugin::AutoCRUD::Controller::Static::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
use base 'Catalyst::Controller';
@@ -1,10 +1,10 @@
package Catalyst::Plugin::AutoCRUD::Model::DBIC;
{
- $Catalyst::Plugin::AutoCRUD::Model::DBIC::VERSION = '2.131210';
+ $Catalyst::Plugin::AutoCRUD::Model::DBIC::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
use base 'Catalyst::Model::DBIC::Schema';
@@ -1,10 +1,10 @@
package Catalyst::Plugin::AutoCRUD::Model::StorageEngine::DBIC::CRUD;
{
- $Catalyst::Plugin::AutoCRUD::Model::StorageEngine::DBIC::CRUD::VERSION = '2.131210';
+ $Catalyst::Plugin::AutoCRUD::Model::StorageEngine::DBIC::CRUD::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
our @EXPORT;
BEGIN {
@@ -1,10 +1,10 @@
package Catalyst::Plugin::AutoCRUD::Model::StorageEngine::DBIC::Metadata;
{
- $Catalyst::Plugin::AutoCRUD::Model::StorageEngine::DBIC::Metadata::VERSION = '2.131210';
+ $Catalyst::Plugin::AutoCRUD::Model::StorageEngine::DBIC::Metadata::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
our @EXPORT;
BEGIN {
@@ -131,7 +131,7 @@ sub schema_metadata {
$self->_schema_cache->{handles}->{$db}->{model})->schema;
my $sqlt = SQL::Translator->new(
parser => 'SQL::Translator::Parser::DBIx::Class',
- parser_args => { package => $dbic },
+ parser_args => { dbic_schema => $dbic },
filters => [
['AutoCRUD::StorageEngine::DBIC::ViewsAsTables', $dbic],
['AutoCRUD::StorageEngine::DBIC::Relationships', $dbic],
@@ -1,10 +1,10 @@
package Catalyst::Plugin::AutoCRUD::Model::StorageEngine::DBIC;
{
- $Catalyst::Plugin::AutoCRUD::Model::StorageEngine::DBIC::VERSION = '2.131210';
+ $Catalyst::Plugin::AutoCRUD::Model::StorageEngine::DBIC::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
use base 'Catalyst::Model';
@@ -1,10 +1,10 @@
package Catalyst::Plugin::AutoCRUD::View::JSON;
{
- $Catalyst::Plugin::AutoCRUD::View::JSON::VERSION = '2.131210';
+ $Catalyst::Plugin::AutoCRUD::View::JSON::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
use base 'Catalyst::View::JSON';
@@ -1,10 +1,10 @@
package Catalyst::Plugin::AutoCRUD::View::TT;
{
- $Catalyst::Plugin::AutoCRUD::View::TT::VERSION = '2.131210';
+ $Catalyst::Plugin::AutoCRUD::View::TT::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
use base 'Catalyst::View::TT';
use File::Basename;
@@ -4,11 +4,15 @@
<meta http-equiv="Content-Type" content="text/html; charset=[% cpac.g.html_charset OR 'utf-8' | html %]" />
<title>[% cpac.g.title %][% ' - Powered by ' IF cpac.g.title %][% cpac.g.version %]</title>
-[% IF NOT cpac.g.extjs2 %]
-<link rel="stylesheet" type="text/css" href="http://extjs.cachefly.net/ext-2.2/resources/css/ext-all.css" />
-[% ELSE %]
-<link rel="stylesheet" type="text/css" href="[% cpac.g.extjs2 %]/resources/css/ext-all.css" />
-[% END %]
+[%
+ SET extjs_base_uri = cpac.g.extjs2 OR (
+ c.req.secure
+ ? 'https://extjs.cachefly.net/ext-2.2'
+ : 'http://extjs.cachefly.net/ext-2.2'
+ )
+%]
+
+<link rel="stylesheet" type="text/css" href="[% extjs_base_uri %]/resources/css/ext-all.css" />
<link rel="stylesheet" type="text/css" href="[% c.uri_for( c.controller('AutoCRUD::Static').action_for('cpacstatic'), "body.css" ) %]" />
<link rel="stylesheet" type="text/css" href="[% c.uri_for( c.controller('AutoCRUD::Static').action_for('cpacstatic'), "cpac.css" ) %]" />
@@ -16,13 +20,8 @@
<link rel="stylesheet" type="text/css" href="[% c.uri_for( c.controller('AutoCRUD::Static').action_for('cpacstatic'), "iefix.css" ) %]" />
[% END %]
-[% IF NOT cpac.g.extjs2 %]
-<script type="text/javascript" src="http://extjs.cachefly.net/ext-2.2/adapter/ext/ext-base.js"></script>
-<script type="text/javascript" src="http://extjs.cachefly.net/ext-2.2/ext-all.js"></script>
-[% ELSE %]
-<script type="text/javascript" src="[% cpac.g.extjs2 %]/adapter/ext/ext-base.js"></script>
-<script type="text/javascript" src="[% cpac.g.extjs2 %]/ext-all.js"></script>
-[% END %]
+<script type="text/javascript" src="[% extjs_base_uri %]/adapter/ext/ext-base.js"></script>
+<script type="text/javascript" src="[% extjs_base_uri %]/ext-all.js"></script>
<script type="text/javascript" src="[% c.uri_for( c.controller('AutoCRUD::Static').action_for('cpacstatic'), "xdatetime.js" ) %]"></script>
</head>
@@ -1,10 +1,10 @@
package Catalyst::Plugin::AutoCRUD;
{
- $Catalyst::Plugin::AutoCRUD::VERSION = '2.131210';
+ $Catalyst::Plugin::AutoCRUD::VERSION = '2.200001';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
use MRO::Compat;
use Devel::InnerPackage qw/list_packages/;
@@ -192,7 +192,19 @@ Catalyst::Plugin::AutoCRUD - Instant AJAX web front-end for DBIx::Class
=head1 VERSION
-version 2.131210
+version 2.200001
+
+=head1 STATUS
+
+B<Important Notice>
+
+This distribution is no longer under active maintenance. The status of
+AutoCRUD is now "pull-request" only, meaning there will only be updates when
+the author receives a patch or pull request (via Github).
+
+You are recommended to take a look at the excellent L<RapidApp> distributiuon
+and in particular the L<rdbic.pl> script which can do the same thing as
+AutoCRUD (only better, and maintained).
=head1 PURPOSE
@@ -909,7 +921,7 @@ Oliver Gorwits <oliver@cpan.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Oliver Gorwits.
+This software is copyright (c) 2015 by Oliver Gorwits.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,10 +1,10 @@
package SQL::Translator::AutoCRUD::Quick;
{
- $SQL::Translator::AutoCRUD::Quick::VERSION = '2.131210';
+ $SQL::Translator::AutoCRUD::Quick::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
{
package # hide from toolchain
@@ -1,10 +1,10 @@
package SQL::Translator::AutoCRUD::Utils;
{
- $SQL::Translator::AutoCRUD::Utils::VERSION = '2.131210';
+ $SQL::Translator::AutoCRUD::Utils::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
our @EXPORT;
BEGIN {
@@ -1,10 +1,10 @@
package SQL::Translator::Filter::AutoCRUD::CatalystModel;
{
- $SQL::Translator::Filter::AutoCRUD::CatalystModel::VERSION = '2.131210';
+ $SQL::Translator::Filter::AutoCRUD::CatalystModel::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
sub filter {
my ($schema, @args) = @_;
@@ -1,10 +1,10 @@
package SQL::Translator::Filter::AutoCRUD::ColumnsAndPKs;
{
- $SQL::Translator::Filter::AutoCRUD::ColumnsAndPKs::VERSION = '2.131210';
+ $SQL::Translator::Filter::AutoCRUD::ColumnsAndPKs::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
# PK can be FK so need to unique fields
use List::MoreUtils 'uniq';
@@ -1,10 +1,10 @@
package SQL::Translator::Filter::AutoCRUD::DisplayName;
{
- $SQL::Translator::Filter::AutoCRUD::DisplayName::VERSION = '2.131210';
+ $SQL::Translator::Filter::AutoCRUD::DisplayName::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
use Scalar::Util 'blessed';
use SQL::Translator::AutoCRUD::Utils;
@@ -1,18 +1,21 @@
package SQL::Translator::Filter::AutoCRUD::ExtJSxType;
{
- $SQL::Translator::Filter::AutoCRUD::ExtJSxType::VERSION = '2.131210';
+ $SQL::Translator::Filter::AutoCRUD::ExtJSxType::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
my %xtype_for = (
boolean => 'checkbox',
);
-$xtype_for{$_} = 'numberfield' for (
+$xtype_for{$_} = 'textfield' for (
'bigint',
'bigserial',
+);
+
+$xtype_for{$_} = 'numberfield' for (
'dec',
'decimal',
'double precision',
@@ -1,6 +1,6 @@
package SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::AccessorDisplayName;
{
- $SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::AccessorDisplayName::VERSION = '2.131210';
+ $SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::AccessorDisplayName::VERSION = '2.143070';
}
# Although AutoCRUD is "safe" for columns of any weird name you like,
@@ -8,7 +8,7 @@ package SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::AccessorDisplayN
# to show that as the display name instead of the column's native name.
use strict;
-use warnings FATAL => 'all';
+use warnings;
use SQL::Translator::AutoCRUD::Utils;
@@ -1,6 +1,6 @@
package SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::DynamicDefault;
{
- $SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::DynamicDefault::VERSION = '2.131210';
+ $SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::DynamicDefault::VERSION = '2.143070';
}
# DBIx:Class extensions such as DBIx::Class::TimeStamp or
@@ -9,7 +9,7 @@ package SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::DynamicDefault;
# ignores the fields for create and update.
use strict;
-use warnings FATAL => 'all';
+use warnings;
use SQL::Translator::AutoCRUD::Utils;
@@ -1,6 +1,6 @@
package SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::ProxyColumns;
{
- $SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::ProxyColumns::VERSION = '2.131210';
+ $SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::ProxyColumns::VERSION = '2.143070';
}
# The DBIC Relation proxy atribute can be used to import accessors from
@@ -8,7 +8,7 @@ package SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::ProxyColumns;
# which AutoCRUD will display.
use strict;
-use warnings FATAL => 'all';
+use warnings;
use SQL::Translator::AutoCRUD::Utils;
@@ -1,10 +1,10 @@
package SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::Relationships;
{
- $SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::Relationships::VERSION = '2.131210';
+ $SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::Relationships::VERSION = '2.143070';
}
use strict;
-use warnings FATAL => 'all';
+use warnings;
use Lingua::EN::Inflect::Number;
use SQL::Translator::AutoCRUD::Utils;
@@ -1,6 +1,6 @@
package SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::ViewsAsTables;
{
- $SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::ViewsAsTables::VERSION = '2.131210';
+ $SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::ViewsAsTables::VERSION = '2.143070';
}
# SQLT doesn't provide for proper Field objects in Views
@@ -11,7 +11,7 @@ package SQL::Translator::Filter::AutoCRUD::StorageEngine::DBIC::ViewsAsTables;
# run very early on in the Filter list, if not first.
use strict;
-use warnings FATAL => 'all';
+use warnings;
use SQL::Translator::AutoCRUD::Utils;
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -18,5 +18,19 @@ $mech->content_contains('Hello, World!', 'Hello World page content');
$mech->content_contains('http://extjs.cachefly.net/',
"pages are using the ExtJS CacheFly links");
+# mimic that the webserver is running behind a reverse proxy that proxies from
+# HTTPS to HTTP
+$mech->default_header('X-Forwarded-For' => '127.0.0.1');
+$mech->default_header('X-Forwarded-Host' => 'localhost');
+$mech->default_header('X-Forwarded-Port' => 443);
+
+# get basic template, no Metadata
+$mech->get_ok('/autocrud/helloworld', 'Get Hello World page (HTTPS)');
+is($mech->ct, 'text/html', 'Hello World page content type (HTTPS)');
+$mech->content_contains('Hello, World!', 'Hello World page content (HTTPS)');
+
+$mech->content_contains('https://extjs.cachefly.net/',
+ "pages are using the ExtJS CacheFly links (HTTPS)");
+
# warn $mech->content;
__END__
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use JSON::XS;
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use strict;
-use warnings FATAL => 'all';
+use warnings;
use lib qw( t/lib );
use Test::More 'no_plan';
@@ -1,7 +1,7 @@
package TestApp::Controller::Root;
use strict;
-use warnings FATAL => 'all';
+use warnings;
use base 'Catalyst::Controller';
@@ -21,7 +21,7 @@ __PACKAGE__->add_columns(
{ data_type => "int", is_foreign_key => 1, is_nullable => 0, size => undef },
);
__PACKAGE__->set_primary_key("id");
-__PACKAGE__->belongs_to("album_id", "TestApp::Schema::Album", { id => "album_id" });
+__PACKAGE__->belongs_to("album_id", "TestApp::Schema::Album", { "foreign.id" => "self.album_id" });
__PACKAGE__->add_unique_constraint(['album_id']);
# Created by DBIx::Class::Schema::Loader v0.04999_05 @ 2008-08-03 20:38:57
@@ -31,7 +31,7 @@ __PACKAGE__->add_unique_constraint(['album_id']);
__PACKAGE__->has_many(
'nonexistent_things',
'Nonexistent::Schema::Noggin',
- { id => 'noggin_id' },
+ { "foreign.id" => 'self.noggin_id' },
);
# You can replace this text with custom content, and it will be preserved on regeneration
@@ -1,7 +1,7 @@
package TestApp::View::TT;
use strict;
-use warnings FATAL => 'all';
+use warnings;
use base 'Catalyst::View::TT';
use File::Basename;
@@ -1,7 +1,7 @@
package TestApp;
use strict;
-use warnings FATAL => 'all';
+use warnings;
use DBI;
use File::Temp;
@@ -1,7 +1,7 @@
package TestAppCustomConfig;
use strict;
-use warnings FATAL => 'all';
+use warnings;
use DBI;
use File::Temp;
@@ -1,7 +1,7 @@
package TestAppLoader;
use strict;
-use warnings FATAL => 'all';
+use warnings;
use DBI;
use File::Temp;
@@ -1,7 +1,7 @@
package TestAppM2M;
use strict;
-use warnings FATAL => 'all';
+use warnings;
use DBI;
use File::Temp;
@@ -1,7 +1,7 @@
package TestAppRel;
use strict;
-use warnings FATAL => 'all';
+use warnings;
use DBI;
use File::Temp;