├── views └── mail │ ├── some_text.htm │ ├── some_html.htm │ ├── with_template.htm │ ├── test-partial.htm │ ├── test-message.htm │ └── test-layout.htm ├── controllers ├── pages │ ├── index.php │ ├── config_relation.yaml │ ├── export.php │ ├── import.php │ ├── config_import_export.yaml │ ├── preview.php │ ├── config_form.yaml │ ├── _list_toolbar.php │ └── config_list.yaml ├── cities │ ├── index.htm │ ├── preview.htm │ ├── config_form.yaml │ ├── config_relation.yaml │ ├── _list_toolbar.htm │ └── config_list.yaml ├── companies │ ├── index.php │ ├── _list_toolbar.php │ ├── preview.php │ ├── config_form.yaml │ └── config_list.yaml ├── galleries │ ├── index.php │ ├── _countries.php │ ├── _list_toolbar.php │ ├── preview.php │ ├── config_relation.yaml │ ├── config_form.yaml │ └── config_list.yaml ├── locations │ ├── index.htm │ ├── preview.htm │ ├── config_relation.yaml │ ├── config_form.yaml │ └── _list_toolbar.htm ├── orders │ ├── index.php │ ├── _list_toolbar.php │ ├── preview.php │ ├── config_form.yaml │ └── config_list.yaml ├── people │ ├── _phone.htm │ ├── _id.htm │ ├── _name.htm │ ├── _ajax_options.htm │ ├── config_relation.yaml │ ├── _download_prompt.htm │ ├── preview.htm │ ├── _form_toggle.htm │ ├── config_form.yaml │ ├── _datatable.htm │ ├── config_list.yaml │ └── _test_modal.htm ├── phones │ ├── _person.htm │ ├── _list_toolbar.htm │ ├── index.htm │ ├── config_relation.yaml │ ├── preview.htm │ ├── config_form.yaml │ ├── _form_toggle.htm │ └── config_list.yaml ├── plugins │ ├── index.htm │ ├── _reviews.htm │ ├── config_relation.yaml │ ├── _list_toolbar.htm │ ├── config_form.yaml │ └── config_list.yaml ├── posts │ ├── _status.php │ ├── _galleries.php │ ├── _review.php │ ├── _galleries_pivot.php │ ├── _comments.php │ ├── _error_button.php │ ├── _list_tags_toolbar.php │ ├── _list_comments_toolbar.php │ ├── _list_posts_toolbar.php │ ├── config_import_export.yaml │ ├── preview.htm │ ├── _form_toggle.php │ ├── config_tag_form.yaml │ ├── config_comment_form.yaml │ ├── config_post_form.yaml │ ├── index.htm │ ├── config_posts_list.yaml │ └── config_tags_list.yaml ├── products │ ├── index.php │ ├── preview.php │ ├── config_form.yaml │ ├── _list_toolbar.php │ └── config_list.yaml ├── themes │ ├── index.htm │ ├── config_relation.yaml │ ├── _list_toolbar.htm │ ├── create.htm │ ├── update.htm │ ├── preview.htm │ ├── config_form.yaml │ └── config_list.yaml ├── users │ ├── _roles.htm │ ├── _roles_pivot.htm │ ├── _roles_pivot_model.htm │ ├── index.htm │ ├── preview.htm │ ├── _list_toolbar.htm │ ├── _form_toggle.htm │ ├── config_form.yaml │ ├── _field_uppercase_name.htm │ └── config_list.yaml ├── reviews │ ├── _small_image.php │ ├── index.php │ ├── _list_toolbar.php │ ├── preview.php │ ├── _list_container.php │ ├── config_form.yaml │ ├── list │ │ └── _list_body_row.php │ ├── _list_tabs.php │ └── config_list.yaml ├── countries │ ├── _posts.htm │ ├── _google_button.htm │ ├── _list_toolbar.htm │ ├── index.htm │ ├── config_relation.yaml │ ├── preview.htm │ ├── config_form.yaml │ └── config_list.yaml ├── productcategories │ ├── index.php │ ├── _list_toolbar.php │ ├── preview.php │ └── config_form.yaml ├── channels │ ├── _reorder_toolbar.htm │ ├── reorder.htm │ ├── config_reorder.yaml │ ├── preview.htm │ └── config_form.yaml ├── categories │ ├── _reorder_toolbar.htm │ ├── reorder.htm │ ├── config_reorder.yaml │ ├── preview.htm │ └── config_form.yaml ├── trees │ ├── _list_members_toolbar.htm │ ├── index.htm │ ├── _list_channels_toolbar.htm │ ├── _list_categories_toolbar.htm │ ├── config_channels_list.yaml │ ├── config_members_list.yaml │ └── config_categories_list.yaml ├── _hints │ └── _people.htm ├── Members.php ├── members │ ├── preview.php │ └── config_form.yaml ├── Categories.php ├── Cities.php ├── Trees.php ├── Phones.php ├── Themes.php ├── Orders.php ├── Countries.php ├── ProductCategories.php ├── Galleries.php └── Channels.php ├── lang ├── en.json ├── fr │ └── lang.php ├── en │ └── lang.php └── fr-ca │ └── lang.php ├── formwidgets └── timechecker │ └── partials │ ├── _big_image.htm │ ├── _current_time.htm │ └── _timechecker.htm ├── models ├── pagebanner │ ├── columns.yaml │ └── fields.yaml ├── layout │ ├── fields.yaml │ └── columns.yaml ├── productoffer │ ├── columns.yaml │ └── fields.yaml ├── page │ ├── colors.yaml │ ├── scopes.yaml │ ├── columns.yaml │ ├── PageExport.php │ └── PageImport.php ├── productofferstock │ ├── columns.yaml │ └── fields.yaml ├── productofferstocklead │ ├── columns.yaml │ └── fields.yaml ├── person │ └── scopes.yaml ├── photo │ ├── columns.yaml │ └── fields.yaml ├── city │ ├── _locations.php │ └── columns.yaml ├── category │ └── columns.yaml ├── company │ ├── columns.yaml │ └── fields.yaml ├── tag │ ├── fields_simple.yaml │ ├── columns.yaml │ └── fields.yaml ├── order │ ├── columns.yaml │ └── fields.yaml ├── setting │ ├── _json_values.php │ ├── nestedform-child.yaml │ └── nestedform.yaml ├── phone │ ├── fields_simple.yaml │ ├── columns.yaml │ └── fields.yaml ├── attribute │ ├── fields.yaml │ └── columns.yaml ├── role │ ├── columns.yaml │ ├── fields.yaml │ └── scopes.yaml ├── theme │ ├── columns.yaml │ └── fields.yaml ├── productcategory │ ├── columns.yaml │ └── fields.yaml ├── review │ ├── columns.yaml │ └── fields_simple.yaml ├── channel │ └── columns.yaml ├── plugin │ ├── columns.yaml │ └── fields.yaml ├── PageBanner.php ├── member │ ├── columns.yaml │ └── fields.yaml ├── comment │ ├── scopes.yaml │ └── columns.yaml ├── gallery │ └── columns.yaml ├── country │ ├── columns_simple.yaml │ ├── fields_simple.yaml │ ├── columns.yaml │ ├── fields_simple_nested.yaml │ └── fields_simple_form.yaml ├── userrolepivot │ ├── fields_basic.yaml │ ├── columns_basic.yaml │ ├── columns.yaml │ └── fields.yaml ├── post │ ├── fields_simple.yaml │ ├── scopes.yaml │ └── columns.yaml ├── user │ ├── position_repeater.yaml │ └── columns.yaml ├── ProductOffer.php ├── ProductOfferStockLead.php ├── location │ ├── columns.yaml │ └── scopes.yaml ├── Attribute.php ├── CountryBrother.php ├── ProductOfferStock.php ├── Theme.php ├── Layout.php ├── Order.php ├── Company.php ├── Meta.php ├── RepeaterItem.php ├── product │ ├── _column_dropdown.php │ └── columns.yaml ├── Setting.php ├── CustomFile.php ├── Role.php ├── ProductCategory.php ├── Plugin.php ├── Review.php ├── meta │ └── fields.yaml ├── UserRolePivot.php └── Tag.php ├── tests ├── fixtures │ ├── sample-long.jpg │ └── sample-image.jpg ├── browser │ ├── concerns │ │ └── InteractsWithAuth.php │ └── test-backend │ │ └── AuthenticationTest.php ├── ExampleDatabaseTest.php └── ExampleModelTest.php ├── .gitignore ├── components ├── kitchensink │ └── default.htm └── RemoveIndex.php ├── classes ├── StatusEnum.php ├── LowercaseRule.php ├── UppercaseRule.php └── BetwixtRule.php ├── composer.json ├── blueprints ├── blog │ ├── blog-tag.yaml │ ├── comment-content.yaml │ ├── comments.yaml │ ├── categories.yaml │ ├── authors.yaml │ └── blog.yaml └── wiki │ ├── wiki-widgets.yaml │ ├── wiki.yaml │ └── wiki-nestedform-fields.yaml ├── vuecomponents ├── mycustomwidget │ ├── partials │ │ └── _mycustomwidget.php │ └── assets │ │ └── js │ │ └── mycustomwidget.js └── MyCustomWidget.php ├── filterwidgets ├── discount │ └── partials │ │ ├── _discount.php │ │ └── _discount_form.php ├── inlinesearch │ └── partials │ │ └── _inlinesearch.php ├── inlineballoon │ └── partials │ │ └── _inlineballoon.php ├── InlineBalloon.php └── InlineSearch.php ├── config ├── repeater_locations.yaml ├── repeater_notes.yaml ├── repeater_country_sisters.yaml └── repeater_country_brothers.yaml ├── skins └── BackendSkin.php ├── assets └── js │ └── custom-button.js ├── reportwidgets └── clearcache │ └── partials │ └── _clearcache.php ├── contentfields ├── mycontentfield │ └── partials │ │ └── _field_mycontentfield.php └── MyContentField.php ├── updates ├── version.yaml └── create_general_tables.php ├── phpunit.xml └── console └── SeedPosts.php /views/mail/some_text.htm: -------------------------------------------------------------------------------- 1 | I am Text 2 | -------------------------------------------------------------------------------- /views/mail/some_html.htm: -------------------------------------------------------------------------------- 1 |

I am HTML

2 | -------------------------------------------------------------------------------- /controllers/pages/index.php: -------------------------------------------------------------------------------- 1 | 2 | listRender() ?> 3 | -------------------------------------------------------------------------------- /controllers/cities/index.htm: -------------------------------------------------------------------------------- 1 | 2 | listRender() ?> 3 | -------------------------------------------------------------------------------- /controllers/companies/index.php: -------------------------------------------------------------------------------- 1 | 2 | listRender() ?> 3 | -------------------------------------------------------------------------------- /controllers/galleries/index.php: -------------------------------------------------------------------------------- 1 | 2 | listRender() ?> 3 | -------------------------------------------------------------------------------- /controllers/locations/index.htm: -------------------------------------------------------------------------------- 1 | 2 | listRender() ?> 3 | -------------------------------------------------------------------------------- /controllers/orders/index.php: -------------------------------------------------------------------------------- 1 | 2 | listRender() ?> 3 | -------------------------------------------------------------------------------- /controllers/people/_phone.htm: -------------------------------------------------------------------------------- 1 | relationRender('phone') ?> -------------------------------------------------------------------------------- /controllers/phones/_person.htm: -------------------------------------------------------------------------------- 1 | relationRender('person') ?> -------------------------------------------------------------------------------- /controllers/plugins/index.htm: -------------------------------------------------------------------------------- 1 | 2 | listRender() ?> 3 | -------------------------------------------------------------------------------- /controllers/posts/_status.php: -------------------------------------------------------------------------------- 1 | relationRender('status') ?> -------------------------------------------------------------------------------- /controllers/products/index.php: -------------------------------------------------------------------------------- 1 | 2 | listRender() ?> 3 | -------------------------------------------------------------------------------- /controllers/themes/index.htm: -------------------------------------------------------------------------------- 1 | 2 | listRender() ?> 3 | -------------------------------------------------------------------------------- /controllers/users/_roles.htm: -------------------------------------------------------------------------------- 1 | relationRender('roles') ?> -------------------------------------------------------------------------------- /controllers/posts/_galleries.php: -------------------------------------------------------------------------------- 1 | relationRender('galleries') ?> -------------------------------------------------------------------------------- /controllers/posts/_review.php: -------------------------------------------------------------------------------- 1 | relationRender('review') ?> 2 | -------------------------------------------------------------------------------- /controllers/reviews/_small_image.php: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /lang/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "Happy": "Happy!", 3 | "Sad": "Sad!" 4 | } 5 | -------------------------------------------------------------------------------- /controllers/countries/_posts.htm: -------------------------------------------------------------------------------- 1 | relationRender('posts') ?> 2 | -------------------------------------------------------------------------------- /controllers/plugins/_reviews.htm: -------------------------------------------------------------------------------- 1 | relationRender('reviews') ?> 2 | -------------------------------------------------------------------------------- /controllers/productcategories/index.php: -------------------------------------------------------------------------------- 1 | 2 | listRender() ?> 3 | -------------------------------------------------------------------------------- /controllers/users/_roles_pivot.htm: -------------------------------------------------------------------------------- 1 | relationRender('roles_pivot') ?> -------------------------------------------------------------------------------- /controllers/galleries/_countries.php: -------------------------------------------------------------------------------- 1 | relationRender('countries') ?> 2 | -------------------------------------------------------------------------------- /formwidgets/timechecker/partials/_big_image.htm: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /models/pagebanner/columns.yaml: -------------------------------------------------------------------------------- 1 | columns: 2 | title: 3 | label: Title 4 | -------------------------------------------------------------------------------- /controllers/posts/_galleries_pivot.php: -------------------------------------------------------------------------------- 1 | relationRender('galleries_pivot') ?> -------------------------------------------------------------------------------- /controllers/users/_roles_pivot_model.htm: -------------------------------------------------------------------------------- 1 | relationRender('roles_pivot_model') ?> -------------------------------------------------------------------------------- /controllers/posts/_comments.php: -------------------------------------------------------------------------------- 1 | relationRender('comments', ['readOnly' => false]) ?> -------------------------------------------------------------------------------- /controllers/people/_id.htm: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /controllers/people/_name.htm: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /views/mail/with_template.htm: -------------------------------------------------------------------------------- 1 | layout = "october.test::layouts.custom-layout" 2 | == 3 |

Test Content

4 | -------------------------------------------------------------------------------- /formwidgets/timechecker/partials/_current_time.htm: -------------------------------------------------------------------------------- 1 | The current time is: 2 | 3 | -------------------------------------------------------------------------------- /tests/fixtures/sample-long.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/octobercms/test-plugin/HEAD/tests/fixtures/sample-long.jpg -------------------------------------------------------------------------------- /tests/fixtures/sample-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/octobercms/test-plugin/HEAD/tests/fixtures/sample-image.jpg -------------------------------------------------------------------------------- /models/layout/fields.yaml: -------------------------------------------------------------------------------- 1 | fields: 2 | 3 | content: 4 | label: Content 5 | span: full 6 | type: textarea 7 | -------------------------------------------------------------------------------- /views/mail/test-partial.htm: -------------------------------------------------------------------------------- 1 | name = "Test Partial" 2 | == 3 |

Test partial

4 |

In Partial: {{ user }}

5 | -------------------------------------------------------------------------------- /controllers/posts/_error_button.php: -------------------------------------------------------------------------------- 1 | 5 | Do not click 6 | 7 | -------------------------------------------------------------------------------- /views/mail/test-message.htm: -------------------------------------------------------------------------------- 1 | layout = "test" 2 | == 3 |

I am a test message

4 | 5 |

In Message: {{ user }}

6 | 7 | {% partial 'test' %} 8 | -------------------------------------------------------------------------------- /controllers/countries/_google_button.htm: -------------------------------------------------------------------------------- 1 | 5 | Open Google 6 | -------------------------------------------------------------------------------- /controllers/pages/config_relation.yaml: -------------------------------------------------------------------------------- 1 | pagebanner: 2 | label: Page Banner 3 | form: $/october/test/models/pagebanner/fields.yaml 4 | list: $/october/test/models/pagebanner/columns.yaml -------------------------------------------------------------------------------- /controllers/phones/_list_toolbar.htm: -------------------------------------------------------------------------------- 1 |
2 | New Phone 3 |
-------------------------------------------------------------------------------- /models/productoffer/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | name: 7 | label: Name -------------------------------------------------------------------------------- /controllers/countries/_list_toolbar.htm: -------------------------------------------------------------------------------- 1 |
2 | New Country 3 |
-------------------------------------------------------------------------------- /models/page/colors.yaml: -------------------------------------------------------------------------------- 1 | secondaryTabs: 2 | fields: 3 | primary: 4 | tab: Primary Color 5 | type: colorpicker 6 | secondary: 7 | tab: Secondary Color 8 | type: colorpicker -------------------------------------------------------------------------------- /models/productofferstock/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | name: 7 | label: Name -------------------------------------------------------------------------------- /lang/fr/lang.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'component_name' => 'Test List in French', 6 | 'component_description' => 'Displays a list in French.', 7 | ], 8 | ]; 9 | -------------------------------------------------------------------------------- /models/productofferstocklead/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | name: 7 | label: Name -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Editor configs 2 | .vscode/ 3 | .sftp-config 4 | .ftpconfig 5 | composer.lock 6 | .phpunit.result.cache 7 | tests/browser/console 8 | tests/browser/screenshots 9 | tests/browser/source 10 | -------------------------------------------------------------------------------- /lang/en/lang.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'component_name' => 'Test List', 6 | 'component_description' => 'Displays a list of all tests for the user.', 7 | ], 8 | ]; 9 | -------------------------------------------------------------------------------- /models/person/scopes.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Filter Scope Definitions 3 | # =================================== 4 | 5 | scopes: 6 | id: 7 | label: ID 8 | type: text 9 | -------------------------------------------------------------------------------- /models/photo/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | id: 7 | label: ID 8 | searchable: true -------------------------------------------------------------------------------- /models/photo/fields.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | id: 7 | label: ID 8 | disabled: true 9 | -------------------------------------------------------------------------------- /models/city/_locations.php: -------------------------------------------------------------------------------- 1 | relationHasField('locations')): ?> 2 | relationRender('locations') ?> 3 | 4 |

This relation cannot be managed here

5 | 6 | -------------------------------------------------------------------------------- /models/category/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | name: 7 | label: Category 8 | searchable: true -------------------------------------------------------------------------------- /models/company/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | name: 7 | label: Name 8 | searchable: true 9 | -------------------------------------------------------------------------------- /controllers/channels/_reorder_toolbar.htm: -------------------------------------------------------------------------------- 1 |
2 | 3 | Return to Trees 4 | 5 |
6 | -------------------------------------------------------------------------------- /lang/fr-ca/lang.php: -------------------------------------------------------------------------------- 1 | [ 5 | // 'component_name' => 'Test List in French Canadian', 6 | // 'component_description' => 'Displays a list in French Canadian.', 7 | ], 8 | ]; 9 | -------------------------------------------------------------------------------- /controllers/categories/_reorder_toolbar.htm: -------------------------------------------------------------------------------- 1 |
2 | 3 | Return to Trees 4 | 5 |
6 | -------------------------------------------------------------------------------- /controllers/themes/config_relation.yaml: -------------------------------------------------------------------------------- 1 | reviews: 2 | label: Review 3 | list: $/october/test/models/review/columns.yaml 4 | form: $/october/test/models/review/fields_simple.yaml 5 | view: 6 | showSetup: true 7 | -------------------------------------------------------------------------------- /models/tag/fields_simple.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | 7 | name: 8 | label: Name 9 | span: auto 10 | -------------------------------------------------------------------------------- /controllers/themes/_list_toolbar.htm: -------------------------------------------------------------------------------- 1 |
2 | 5 | New Theme 6 | 7 |
-------------------------------------------------------------------------------- /controllers/trees/_list_members_toolbar.htm: -------------------------------------------------------------------------------- 1 |
2 | 5 | New 6 | 7 |
-------------------------------------------------------------------------------- /views/mail/test-layout.htm: -------------------------------------------------------------------------------- 1 | name = "Test Layout" 2 | == 3 | 4 | 5 |

HTML Contents

6 |
7 | {{ content|raw }} 8 |
9 |

In Layout: {{ user }}

10 | 11 | 12 | -------------------------------------------------------------------------------- /controllers/galleries/_list_toolbar.php: -------------------------------------------------------------------------------- 1 |
2 | 5 | New Gallery 6 | 7 |
8 | -------------------------------------------------------------------------------- /controllers/people/_ajax_options.htm: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /models/order/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | title: 7 | label: Title 8 | 9 | price: 10 | label: Price 11 | -------------------------------------------------------------------------------- /models/setting/_json_values.php: -------------------------------------------------------------------------------- 1 |
2 |
 $model->image_properties,
4 |         'properties' => $model->properties,
5 |     ], JSON_PRETTY_PRINT) ?>
6 |
7 | -------------------------------------------------------------------------------- /controllers/plugins/config_relation.yaml: -------------------------------------------------------------------------------- 1 | reviews: 2 | label: Review 3 | list: $/october/test/models/review/columns.yaml 4 | form: $/october/test/models/review/fields_simple.yaml 5 | popupSize: 1400 6 | view: 7 | showSetup: true 8 | 9 | -------------------------------------------------------------------------------- /models/phone/fields_simple.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | 7 | name: 8 | label: Name 9 | 10 | number: 11 | label: Number 12 | -------------------------------------------------------------------------------- /components/kitchensink/default.htm: -------------------------------------------------------------------------------- 1 |
2 |

Component Default View

3 | 4 | {{ __SELF__.property('defaultView') ? 'True' : 'False' }} 5 |
6 | 7 | 8 | {{ d(__SELF__.property('addressList')) }} 9 | 10 | {{ 'variable to translate'|_ }} 11 | 12 | -------------------------------------------------------------------------------- /classes/StatusEnum.php: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | reorderRender() ?> 9 | -------------------------------------------------------------------------------- /controllers/channels/reorder.htm: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | reorderRender() ?> 9 | -------------------------------------------------------------------------------- /controllers/phones/index.htm: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | listRender() ?> 9 | -------------------------------------------------------------------------------- /controllers/posts/_list_tags_toolbar.php: -------------------------------------------------------------------------------- 1 |
2 | New Tag 8 |
9 | -------------------------------------------------------------------------------- /controllers/themes/create.htm: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | formRenderDesign() ?> 9 | -------------------------------------------------------------------------------- /controllers/themes/update.htm: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | formRenderDesign() ?> 9 | -------------------------------------------------------------------------------- /controllers/posts/_list_comments_toolbar.php: -------------------------------------------------------------------------------- 1 |
2 | New Comment 8 |
-------------------------------------------------------------------------------- /models/attribute/fields.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | name: 7 | label: Name 8 | span: auto 9 | 10 | label: 11 | label: Label 12 | span: auto 13 | -------------------------------------------------------------------------------- /models/productofferstocklead/fields.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | name: 7 | label: Name 8 | 9 | gallery: 10 | label: Gallery 11 | type: fileupload 12 | -------------------------------------------------------------------------------- /models/role/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | id: 7 | label: ID 8 | searchable: true 9 | 10 | name: 11 | label: Name 12 | searchable: true -------------------------------------------------------------------------------- /models/theme/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | name: 7 | label: Name 8 | 9 | code: 10 | label: Code 11 | 12 | content: 13 | label: Content 14 | -------------------------------------------------------------------------------- /controllers/people/config_relation.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Relation Behavior Config 3 | # =================================== 4 | 5 | phone: 6 | label: Phone 7 | form: $/october/test/models/phone/fields_simple.yaml 8 | list: $/october/test/models/phone/columns.yaml 9 | -------------------------------------------------------------------------------- /controllers/phones/config_relation.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Relation Behavior Config 3 | # =================================== 4 | 5 | person: 6 | label: Person 7 | list: $/october/test/models/person/columns.yaml 8 | form: $/october/test/models/person/fields.yaml 9 | -------------------------------------------------------------------------------- /models/productcategory/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | name: 7 | label: Name 8 | searchable: true 9 | 10 | description: 11 | label: Description 12 | -------------------------------------------------------------------------------- /models/tag/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | id: 7 | label: ID 8 | searchable: true 9 | 10 | name: 11 | label: Name 12 | searchable: true 13 | -------------------------------------------------------------------------------- /models/attribute/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | name: 7 | label: Name 8 | searchable: true 9 | 10 | label: 11 | label: Label 12 | searchable: true 13 | -------------------------------------------------------------------------------- /controllers/plugins/_list_toolbar.htm: -------------------------------------------------------------------------------- 1 |
2 | 10 |
11 | -------------------------------------------------------------------------------- /controllers/posts/_list_posts_toolbar.php: -------------------------------------------------------------------------------- 1 |
2 | New Post 3 | Export Posts 4 |
5 | -------------------------------------------------------------------------------- /controllers/posts/config_import_export.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Import/Export Behavior Config 3 | # =================================== 4 | 5 | export: 6 | useList: posts 7 | fileName: posts.json 8 | 9 | defaultFormatOptions: 10 | fileFormat: json 11 | encoding: utf-8 12 | -------------------------------------------------------------------------------- /models/review/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | content: 7 | label: Content 8 | searchable: true 9 | 10 | is_positive: 11 | label: Positive 12 | type: switch 13 | -------------------------------------------------------------------------------- /models/tag/fields.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | 7 | name: 8 | label: Name 9 | commentAbove: Text field, required. 10 | commentHtml: true 11 | span: auto 12 | -------------------------------------------------------------------------------- /models/productcategory/fields.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | name: 7 | label: Name 8 | translatable: site 9 | 10 | description: 11 | label: Description 12 | type: textarea 13 | -------------------------------------------------------------------------------- /blueprints/blog/blog-tag.yaml: -------------------------------------------------------------------------------- 1 | uuid: 5ca12420-24a5-4304-a30a-39fd901ec4b1 2 | handle: Test\Blog\Tag 3 | type: entry 4 | name: Blog Post Tag 5 | 6 | navigation: 7 | mode: secondary 8 | parent: Test\Blog 9 | icon: icon-tags 10 | order: 150 11 | 12 | fields: 13 | description: 14 | label: Description 15 | -------------------------------------------------------------------------------- /controllers/_hints/_people.htm: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 |

A Person "Has One" Phone

6 |

One to one relationship

7 |
8 |
9 |
10 | -------------------------------------------------------------------------------- /models/setting/nestedform-child.yaml: -------------------------------------------------------------------------------- 1 | fields: 2 | 3 | _title: 4 | label: Title 5 | comment: Enter a title for this block. 6 | required: true 7 | type: section 8 | 9 | heading: 10 | type: text 11 | required: true 12 | 13 | description: 14 | type: richeditor 15 | -------------------------------------------------------------------------------- /models/city/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | name: 7 | label: Name 8 | searchable: true 9 | 10 | country_name: 11 | label: Country 12 | relation: country 13 | select: name 14 | -------------------------------------------------------------------------------- /models/layout/columns.yaml: -------------------------------------------------------------------------------- 1 | columns: 2 | 3 | id: 4 | label: id 5 | type: number 6 | 7 | type: 8 | label: Type 9 | type: selectable 10 | options: 11 | 1: Simple 12 | 2: Complex 13 | 14 | content[title]: 15 | label: content 16 | type: text 17 | -------------------------------------------------------------------------------- /controllers/trees/index.htm: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | listRender('members') ?> 5 |
6 |
7 | listRender('categories') ?> 8 |
9 |
10 | listRender('channels') ?> 11 |
12 |
13 | -------------------------------------------------------------------------------- /models/channel/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | title: 7 | label: Channel 8 | searchable: true 9 | 10 | user: 11 | label: user 12 | relation: user 13 | select: username 14 | default: none 15 | -------------------------------------------------------------------------------- /controllers/users/index.htm: -------------------------------------------------------------------------------- 1 | 2 | listRender() ?> 3 | 4 |
5 |
6 |
7 | 8 |

A User "Has Many" Roles

9 |

Many to many relationship

10 |
11 |
12 |
-------------------------------------------------------------------------------- /vuecomponents/mycustomwidget/partials/_mycustomwidget.php: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 |
5 |

Current server time:

6 |
7 |

Loading...

8 |
9 | -------------------------------------------------------------------------------- /filterwidgets/discount/partials/_discount.php: -------------------------------------------------------------------------------- 1 | 6 | label)) ?> 7 | 8 | 1 9 | 10 | 11 | -------------------------------------------------------------------------------- /models/phone/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | id: 7 | label: ID 8 | searchable: true 9 | 10 | name: 11 | label: Name 12 | searchable: true 13 | 14 | number: 15 | label: Number 16 | searchable: true 17 | -------------------------------------------------------------------------------- /config/repeater_locations.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Used as a Simple Repeater 3 | # =================================== 4 | 5 | fields: 6 | country: 7 | label: Country 8 | span: auto 9 | type: dropdown 10 | state: 11 | label: State 12 | span: auto 13 | dependsOn: country 14 | type: dropdown 15 | -------------------------------------------------------------------------------- /controllers/reviews/index.php: -------------------------------------------------------------------------------- 1 | 2 | listRender() ?> 3 | 4 |
5 |
6 |
7 | 8 |

A Review "Morphs To" Plugins and Themes

9 |

Polymorphic relationship

10 |
11 |
12 |
13 | -------------------------------------------------------------------------------- /skins/BackendSkin.php: -------------------------------------------------------------------------------- 1 | 'Custom Skin' 17 | ]; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /controllers/countries/index.htm: -------------------------------------------------------------------------------- 1 | 2 | listRender() ?> 3 | 4 |
5 |
6 |
7 | 8 |

A Country "Has Many" Posts "Through" a User

9 |

Has many through relationship

10 |
11 |
12 |
13 | -------------------------------------------------------------------------------- /controllers/trees/_list_channels_toolbar.htm: -------------------------------------------------------------------------------- 1 |
2 | 5 | New 6 | 7 | 10 | Reorder 11 | 12 |
-------------------------------------------------------------------------------- /models/plugin/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | name: 7 | label: Name 8 | 9 | code: 10 | label: Code 11 | 12 | icon: 13 | label: Icon 14 | type: selectable 15 | optionsPreset: phosphorIcons 16 | 17 | content: 18 | label: Content 19 | -------------------------------------------------------------------------------- /assets/js/custom-button.js: -------------------------------------------------------------------------------- 1 | oc.richEditorRegisterButton('insertCustomThing', { 2 | title: 'Insert Something', 3 | icon: '', 4 | undo: true, 5 | focus: true, 6 | refreshOnCallback: true, 7 | callback: function () { 8 | this.html.insert('My Custom Thing!'); 9 | } 10 | }); 11 | 12 | oc.richEditorButtons.splice(0, 0, 'insertCustomThing'); 13 | -------------------------------------------------------------------------------- /controllers/trees/_list_categories_toolbar.htm: -------------------------------------------------------------------------------- 1 |
2 | 5 | New 6 | 7 | 10 | Reorder 11 | 12 |
-------------------------------------------------------------------------------- /models/PageBanner.php: -------------------------------------------------------------------------------- 1 | \System\Models\File::class 17 | ]; 18 | } 19 | -------------------------------------------------------------------------------- /models/member/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | # id: 7 | # label: ID 8 | 9 | name: 10 | label: Member 11 | searchable: true 12 | 13 | user: 14 | label: user 15 | relation: user 16 | select: username 17 | default: none 18 | tooltip: Related User 19 | -------------------------------------------------------------------------------- /models/comment/scopes.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Filter Scope Definitions 3 | # =================================== 4 | 5 | scopes: 6 | 7 | post: 8 | label: Post 9 | modelClass: October\Test\Models\Post 10 | conditions: post_id in (:filtered) 11 | nameFrom: name 12 | 13 | content: 14 | label: Content 15 | type: text 16 | conditions: content = :value 17 | -------------------------------------------------------------------------------- /controllers/channels/config_reorder.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Reorder Behavior Config 3 | # =================================== 4 | 5 | # Reorder Title 6 | title: Reorder Channels 7 | 8 | # Attribute name 9 | nameFrom: title 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\Channel 13 | 14 | # Toolbar widget configuration 15 | toolbar: 16 | # Partial for toolbar buttons 17 | buttons: reorder_toolbar 18 | -------------------------------------------------------------------------------- /controllers/categories/config_reorder.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Reorder Behavior Config 3 | # =================================== 4 | 5 | # Reorder Title 6 | title: Reorder Categories 7 | 8 | # Attribute name 9 | nameFrom: name 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\Category 13 | 14 | # Toolbar widget configuration 15 | toolbar: 16 | # Partial for toolbar buttons 17 | buttons: reorder_toolbar 18 | -------------------------------------------------------------------------------- /vuecomponents/MyCustomWidget.php: -------------------------------------------------------------------------------- 1 | Carbon::now()->format('Y-m-d H:i:s') 13 | ]; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /models/gallery/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | id: 7 | label: ID 8 | searchable: true 9 | width: 50px 10 | 11 | title: 12 | label: Title 13 | searchable: true 14 | 15 | countries: 16 | type: text 17 | relation: countries 18 | select: name 19 | clickable: false 20 | -------------------------------------------------------------------------------- /models/country/columns_simple.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | name: 7 | label: Name 8 | searchable: true 9 | 10 | code: 11 | label: Code 12 | searchable: true 13 | 14 | is_active: 15 | label: Active 16 | type: switch 17 | 18 | pivot[sort_order]: 19 | label: Order 20 | type: number 21 | -------------------------------------------------------------------------------- /models/userrolepivot/fields_basic.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | pivot[clearance_level]: 7 | label: Clearance level 8 | span: auto 9 | 10 | pivot[is_executive]: 11 | label: Executive 12 | type: checkbox 13 | span: auto 14 | 15 | pivot[salary]: 16 | label: Salary 17 | type: number 18 | span: auto 19 | -------------------------------------------------------------------------------- /models/productoffer/fields.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | name: 7 | label: Name 8 | 9 | stocks: 10 | tab: Stocks 11 | label: Stocks 12 | type: relation 13 | controller: 14 | label: Stock 15 | form: $/october/test/models/productofferstock/fields.yaml 16 | list: $/october/test/models/productofferstock/columns.yaml 17 | -------------------------------------------------------------------------------- /controllers/pages/export.php: -------------------------------------------------------------------------------- 1 | 'layout']) ?> 2 | 3 |
4 | exportRender() ?> 5 |
6 | 7 |
8 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /controllers/pages/import.php: -------------------------------------------------------------------------------- 1 | 'layout']) ?> 2 | 3 |
4 | importRender() ?> 5 |
6 | 7 |
8 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /models/userrolepivot/columns_basic.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | id: 7 | label: ID 8 | searchable: true 9 | 10 | name: 11 | label: Name 12 | searchable: true 13 | 14 | pivot[clearance_level]: 15 | label: Clearance level 16 | 17 | pivot[is_executive]: 18 | label: Executive 19 | type: switch 20 | 21 | pivot[salary]: 22 | label: Salary 23 | format: "%.2f" -------------------------------------------------------------------------------- /controllers/pages/config_import_export.yaml: -------------------------------------------------------------------------------- 1 | # config_import_export.yaml 2 | import: 3 | title: Import Pages 4 | modelClass: October\Test\Models\Page\PageImport 5 | list: $/october/test/models/page/columns.yaml 6 | 7 | export: 8 | title: Export Pages 9 | modelClass: October\Test\Models\Page\PageExport 10 | list: $/october/test/models/page/columns.yaml 11 | form: 12 | fields: 13 | skip_first_record: 14 | label: Skip first record 15 | type: checkbox 16 | default: true 17 | -------------------------------------------------------------------------------- /controllers/reviews/_list_toolbar.php: -------------------------------------------------------------------------------- 1 |
2 | 5 | New Review 6 | 7 | 10 | Manage Plugins 11 | 12 | 15 | Manage Themes 16 | 17 |
-------------------------------------------------------------------------------- /models/productofferstock/fields.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | name: 7 | label: Name 8 | 9 | gallery: 10 | label: Gallery 11 | type: fileupload 12 | 13 | leads: 14 | label: Leads 15 | type: relation 16 | controller: 17 | label: Lead 18 | form: $/october/test/models/productofferstocklead/fields.yaml 19 | list: $/october/test/models/productofferstocklead/columns.yaml 20 | -------------------------------------------------------------------------------- /models/post/fields_simple.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | 7 | name: 8 | label: Name 9 | span: auto 10 | 11 | status: 12 | label: Status 13 | type: relation 14 | span: auto 15 | 16 | published_at: 17 | label: Published date and time 18 | type: datepicker 19 | span: full 20 | 21 | content_html: 22 | label: Content 23 | type: richeditor 24 | size: huge 25 | tab: Rich Editor 26 | -------------------------------------------------------------------------------- /models/user/position_repeater.yaml: -------------------------------------------------------------------------------- 1 | product: 2 | name: Product 3 | description: Add product from catalog 4 | icon: icon-file-text-o 5 | fields: 6 | _product: 7 | label: Product 8 | nameFrom: title 9 | descriptionFrom: description_short 10 | list: $/october/test/models/product/columns.yaml 11 | type: recordfinder 12 | showSetup: true 13 | recordsPerPage: 1 14 | useRelation: false 15 | modelClass: October\Test\Models\Product 16 | spanClass: col-12 17 | -------------------------------------------------------------------------------- /config/repeater_notes.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Used as a Simple Repeater 3 | # =================================== 4 | 5 | fields: 6 | note: 7 | tab: Notes 8 | span: full 9 | type: richeditor 10 | 11 | person: 12 | tab: Additional Information 13 | label: Standalone Record Finder 14 | nameFrom: name 15 | descriptionFrom: description 16 | list: $/october/test/models/person/columns.yaml 17 | type: recordfinder 18 | useRelation: false 19 | modelClass: October\Test\Models\Person 20 | -------------------------------------------------------------------------------- /models/country/fields_simple.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | 7 | name: 8 | label: Name 9 | span: auto 10 | default: Australia 11 | 12 | code: 13 | label: Code 14 | span: auto 15 | preset: 16 | field: name 17 | type: slug 18 | 19 | is_active: 20 | label: Active 21 | comment: Check this box to hide some tabs, using depends and trigger API. 22 | type: checkbox 23 | default: true 24 | -------------------------------------------------------------------------------- /models/role/fields.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | photos: 7 | label: Photos 8 | type: fileupload 9 | commentAbove: Photos of someone performing this role 10 | mode: image 11 | imageHeight: 150 12 | imageWidth: 150 13 | span: right 14 | 15 | name: 16 | label: Name 17 | span: left 18 | 19 | description: 20 | label: Description 21 | type: textarea 22 | size: tiny 23 | span: left 24 | -------------------------------------------------------------------------------- /models/post/scopes.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Filter Scope Definitions 3 | # =================================== 4 | 5 | scopes: 6 | published_at: 7 | label: Date 8 | type: daterange 9 | conditions: created_at >= ':after' AND created_at <= ':before' 10 | username: 11 | label: Name 12 | type: text 13 | conditions: name = :value 14 | size: 2 15 | status: 16 | label: Status 17 | modelClass: October\Test\Models\Attribute 18 | conditions: status_id in (:filtered) 19 | nameFrom: name 20 | -------------------------------------------------------------------------------- /controllers/orders/_list_toolbar.php: -------------------------------------------------------------------------------- 1 |
2 | 5 | 'Order'])) ?> 6 | 7 | 8 | 16 |
17 | -------------------------------------------------------------------------------- /models/setting/nestedform.yaml: -------------------------------------------------------------------------------- 1 | fields: 2 | 3 | _title: 4 | label: Title 5 | comment: Description 6 | type: section 7 | 8 | copy: 9 | type: nestedform 10 | form: $/october/test/models/setting/nestedform-child.yaml 11 | span: left 12 | 13 | image: 14 | label: Image 15 | type: mediafinder 16 | required: true 17 | mode: image 18 | span: right 19 | 20 | button[label]: 21 | label: Button Label 22 | commentAbove: Add some text for the button label 23 | type: text 24 | span: right 25 | -------------------------------------------------------------------------------- /models/theme/fields.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | name: 7 | label: Name 8 | tab: Details 9 | span: auto 10 | 11 | code: 12 | label: Code 13 | tab: Details 14 | span: auto 15 | 16 | content: 17 | label: Content 18 | tab: Details 19 | type: textarea 20 | size: small 21 | 22 | secondaryTabs: 23 | fields: 24 | reviews: 25 | label: Reviews 26 | tab: Reviews 27 | type: relation 28 | -------------------------------------------------------------------------------- /controllers/companies/_list_toolbar.php: -------------------------------------------------------------------------------- 1 |
2 | 5 | 'Company'])) ?> 6 | 7 | 8 | 16 |
17 | -------------------------------------------------------------------------------- /models/page/scopes.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Filter Scope Definitions 3 | # =================================== 4 | 5 | scopes: 6 | parent: 7 | label: Page Parent 8 | modelClass: October\Test\Models\Page 9 | conditions: parent_id in (:filtered) 10 | nameFrom: title 11 | options: getParentScopeOptions 12 | 13 | status: 14 | label: Status 15 | type: group 16 | modelClass: October\Test\Models\Page 17 | options: getStatusOptions 18 | conditions: status in (:filtered) 19 | # default: 20 | # - 0 21 | -------------------------------------------------------------------------------- /models/pagebanner/fields.yaml: -------------------------------------------------------------------------------- 1 | fields: 2 | is_active: 3 | label: Is Active 4 | span: full 5 | type: switch 6 | default: 1 7 | 8 | title: 9 | label: Title 10 | span: full 11 | type: text 12 | 13 | url: 14 | label: URL 15 | span: full 16 | type: text 17 | 18 | image_desktop: 19 | label: Image Desktop 20 | mode: image 21 | fileTypes: 'png' 22 | useCaption: 0 23 | thumbOptions: 24 | mode: crop 25 | extension: auto 26 | span: full 27 | type: fileupload 28 | -------------------------------------------------------------------------------- /models/userrolepivot/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | id: 7 | label: ID 8 | searchable: true 9 | 10 | name: 11 | label: Name 12 | searchable: true 13 | 14 | pivot[clearance_level]: 15 | label: Clearance level 16 | 17 | pivot[evolution]: 18 | label: Evolution 19 | type: selectable 20 | 21 | pivot[is_executive]: 22 | label: Executive 23 | type: switch 24 | 25 | pivot[salary]: 26 | label: Salary 27 | format: "%.2f" -------------------------------------------------------------------------------- /controllers/Members.php: -------------------------------------------------------------------------------- 1 | 'required', 22 | ]; 23 | 24 | public $hasMany = [ 25 | 'stocks' => [ProductOfferStock::class, 'key' => 'offer_id', 'delete' => true] 26 | ]; 27 | } 28 | -------------------------------------------------------------------------------- /models/country/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | google_button: 7 | label: Action 8 | type: partial 9 | sortable: false 10 | clickable: false 11 | cssClass: column-button 12 | valueFrom: id 13 | width: 150px 14 | path: google_button 15 | 16 | name: 17 | label: Name 18 | searchable: true 19 | 20 | code: 21 | label: Code 22 | searchable: true 23 | 24 | is_active: 25 | label: Active 26 | type: switch 27 | -------------------------------------------------------------------------------- /filterwidgets/inlinesearch/partials/_inlinesearch.php: -------------------------------------------------------------------------------- 1 | scopeValue !== null ? $scope->value : $scope->default; 3 | ?> 4 |
7 | 12 | 17 |
18 | -------------------------------------------------------------------------------- /models/ProductOfferStockLead.php: -------------------------------------------------------------------------------- 1 | 'required', 22 | ]; 23 | 24 | public $attachMany = [ 25 | 'gallery' => \System\Models\File::class 26 | ]; 27 | } 28 | -------------------------------------------------------------------------------- /config/repeater_country_sisters.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Used as a Repeater Model 3 | # =================================== 4 | 5 | fields: 6 | title: 7 | label: State 8 | span: auto 9 | subtitle: 10 | label: Suburb 11 | span: auto 12 | is_enabled: 13 | label: Enabled 14 | type: switch 15 | span: auto 16 | is_default: 17 | label: Default 18 | type: switch 19 | span: auto 20 | photos: 21 | label: Photos 22 | type: fileupload 23 | mode: image 24 | imageWidth: 200 25 | imageHeight: 200 26 | -------------------------------------------------------------------------------- /controllers/channels/preview.htm: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | fatalError): ?> 9 | 10 |
11 | formRenderPreview() ?> 12 |
13 | 14 | 15 | 16 |

fatalError) ?>

17 |

Return to channels list

18 | 19 | -------------------------------------------------------------------------------- /controllers/members/preview.php: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | fatalError): ?> 9 | 10 |
11 | formRenderPreview() ?> 12 |
13 | 14 | 15 | 16 |

fatalError) ?>

17 |

Return to members list

18 | 19 | -------------------------------------------------------------------------------- /controllers/pages/preview.php: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | fatalError): ?> 9 | 10 |
11 | formRenderPreview() ?> 12 |
13 | 14 | 15 | 16 |

fatalError) ?>

17 |

Return to pages list

18 | 19 | 20 | -------------------------------------------------------------------------------- /controllers/productcategories/_list_toolbar.php: -------------------------------------------------------------------------------- 1 |
2 | 5 | 'Product Category'])) ?> 6 | 7 | 8 | 16 |
17 | -------------------------------------------------------------------------------- /controllers/themes/preview.htm: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | fatalError): ?> 9 | 10 |
11 | formRenderPreview() ?> 12 |
13 | 14 | 15 | 16 |

fatalError) ?>

17 |

Return to themes list

18 | 19 | -------------------------------------------------------------------------------- /controllers/cities/preview.htm: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | fatalError): ?> 9 | 10 |
11 | formRenderPreview() ?> 12 |
13 | 14 | 15 | 16 |

fatalError) ?>

17 |

Return to cities list

18 | 19 | 20 | -------------------------------------------------------------------------------- /controllers/reviews/preview.php: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | fatalError): ?> 9 | 10 |
11 | formRenderPreview() ?> 12 |
13 | 14 | 15 | 16 |

fatalError) ?>

17 |

Return to reviews list

18 | 19 | -------------------------------------------------------------------------------- /controllers/categories/preview.htm: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | fatalError): ?> 9 | 10 |
11 | formRenderPreview() ?> 12 |
13 | 14 | 15 | 16 |

fatalError) ?>

17 |

Return to categories list

18 | 19 | -------------------------------------------------------------------------------- /controllers/people/_download_prompt.htm: -------------------------------------------------------------------------------- 1 | 2 | 6 | 11 | 19 | 20 | -------------------------------------------------------------------------------- /controllers/galleries/preview.php: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | fatalError): ?> 9 | 10 |
11 | formRenderPreview() ?> 12 |
13 | 14 | 15 | 16 |

fatalError) ?>

17 |

Return to galleries list

18 | 19 | 20 | -------------------------------------------------------------------------------- /controllers/locations/preview.htm: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | fatalError): ?> 9 | 10 |
11 | formRenderPreview() ?> 12 |
13 | 14 | 15 | 16 |

fatalError) ?>

17 |

Return to locations list

18 | 19 | 20 | -------------------------------------------------------------------------------- /models/location/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | name: 7 | label: Name 8 | searchable: true 9 | 10 | city_name: 11 | label: City 12 | relation: city 13 | select: name 14 | 15 | country_name: 16 | label: Country 17 | relation: country 18 | select: name 19 | 20 | is_enabled: 21 | label: Enabled 22 | type: switch 23 | options: 24 | - Nope 25 | - Yeah 26 | 27 | sort_order: 28 | label: Sort 29 | type: number 30 | -------------------------------------------------------------------------------- /models/Attribute.php: -------------------------------------------------------------------------------- 1 | 2 |

property('title')) ?>

3 | 4 | 5 |

This is the default partial content.

6 |

Title (prop): property('title') ?>

7 |

Days (prop): property('days') ?>

8 | 10 | 11 |

12 | 13 | 14 | -------------------------------------------------------------------------------- /controllers/galleries/config_relation.yaml: -------------------------------------------------------------------------------- 1 | 2 | posts: 3 | label: Posts 4 | list: $/october/test/models/post/columns.yaml 5 | form: $/october/test/models/post/fields_simple.yaml 6 | view: 7 | filter: $/october/test/models/post/scopes.yaml 8 | showSearch: true 9 | manage: 10 | showSearch: true 11 | filter: $/october/test/models/post/scopes.yaml 12 | 13 | countries: 14 | label: Country 15 | list: $/october/test/models/country/columns_simple.yaml 16 | form: $/october/test/models/country/fields_simple.yaml 17 | deferredBinding: true 18 | structure: 19 | showReorder: true 20 | showTree: false 21 | -------------------------------------------------------------------------------- /controllers/orders/preview.php: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | fatalError): ?> 9 | 10 |
11 | formRenderPreview() ?> 12 |
13 | 14 | 15 | 16 |

fatalError) ?>

17 |

18 | 19 | 20 | -------------------------------------------------------------------------------- /blueprints/blog/comment-content.yaml: -------------------------------------------------------------------------------- 1 | uuid: 5ca12420-24a5-4304-a30a-39fd901ec4b1 2 | handle: Test\Blog\CommentContent 3 | type: mixin 4 | name: Blog Post Content 5 | 6 | fields: 7 | author: 8 | tab: Manage 9 | label: Author 10 | commentAbove: 'Select the author for this blog post' 11 | type: entries 12 | maxItems: 1 13 | source: Test\Blog\Authors 14 | 15 | products: 16 | label: Products 17 | tab: Products 18 | type: recordfinder 19 | modelClass: October\Test\Models\Product 20 | list: $/october/test/models/product/columns.yaml 21 | maxItems: 1 22 | # displayMode: controller 23 | -------------------------------------------------------------------------------- /controllers/posts/preview.htm: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | fatalError): ?> 9 | 10 |
11 | formRenderPreview() ?> 12 |
13 | 14 | 15 | 16 |

fatalError)) ?>

17 |

Return to posts list

18 | 19 | -------------------------------------------------------------------------------- /controllers/reviews/_list_container.php: -------------------------------------------------------------------------------- 1 | 2 | render() ?> 3 | 4 | 5 | 6 | render() ?> 7 | 8 | 9 |
10 |
11 |
12 | makePartial('list_tabs') ?> 13 |
14 |
15 |
16 |
17 | render() ?> 18 |
19 |
20 |
21 |
22 |
23 | -------------------------------------------------------------------------------- /controllers/users/preview.htm: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | fatalError): ?> 9 | 10 |
11 | formRenderPreview() ?> 12 |
13 | 14 | 15 | 16 |

fatalError)) ?>

17 |

Return to users list

18 | 19 | -------------------------------------------------------------------------------- /models/company/fields.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | name: 7 | label: Name 8 | span: auto 9 | 10 | preset_icon: 11 | label: Icon (Preset) 12 | span: auto 13 | type: dropdown 14 | optionsPreset: icons 15 | 16 | preset_locales: 17 | label: Locales (Preset) 18 | span: auto 19 | type: dropdown 20 | optionsPreset: locales 21 | 22 | preset_locales_icons: 23 | label: Locales with Icons (Preset) 24 | span: auto 25 | type: dropdown 26 | optionsPreset: localeIcons 27 | -------------------------------------------------------------------------------- /models/location/scopes.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Filter Scope Definitions 3 | # =================================== 4 | 5 | scopes: 6 | 7 | country: 8 | label: Country 9 | type: group 10 | conditions: country_id in (:filtered) 11 | modelClass: October\Test\Models\Location 12 | options: getCountryOptions 13 | emptyOption: Unspecified 14 | 15 | city: 16 | label: City 17 | type: group 18 | conditions: city_id in (:filtered) 19 | modelClass: October\Test\Models\Location 20 | options: getCityOptions 21 | dependsOn: country 22 | emptyOption: Unspecified 23 | -------------------------------------------------------------------------------- /controllers/products/preview.php: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | fatalError): ?> 9 | 10 |
11 | formRenderPreview() ?> 12 |
13 | 14 | 15 | 16 |

fatalError) ?>

17 |

18 | 19 | 20 | -------------------------------------------------------------------------------- /controllers/countries/config_relation.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Relation Behavior Config 3 | # =================================== 4 | 5 | posts: 6 | label: Posts 7 | list: $/october/test/models/post/columns.yaml 8 | form: $/october/test/models/post/fields_simple.yaml 9 | view: 10 | showCheckboxes: false 11 | 12 | cities: 13 | label: Cities 14 | manage: 15 | form: $/october/test/models/city/fields.yaml 16 | list: $/october/test/models/city/columns.yaml 17 | recordsPerPage: 20 18 | view: 19 | list: $/october/test/models/city/columns.yaml 20 | toolbarButtons: false 21 | recordsPerPage: 20 22 | -------------------------------------------------------------------------------- /controllers/people/preview.htm: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | fatalError): ?> 9 | 10 |
11 | formRenderPreview() ?> 12 |
13 | 14 | 15 | 16 |

fatalError)) ?>

17 |

Return to people list

18 | 19 | 20 | -------------------------------------------------------------------------------- /controllers/users/_list_toolbar.htm: -------------------------------------------------------------------------------- 1 |
2 | New User 3 | 'form-control custom-select', 5 | 'data-request' => 'onSelectPeriod', 6 | 'data-request-data' => 'foo: "bar"' 7 | ]) ?> 8 | 9 | 17 |
18 | -------------------------------------------------------------------------------- /controllers/countries/preview.htm: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | fatalError): ?> 9 | 10 |
11 | formRenderPreview() ?> 12 |
13 | 14 | 15 | 16 |

fatalError)) ?>

17 |

Return to countries list

18 | 19 | -------------------------------------------------------------------------------- /controllers/productcategories/preview.php: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | fatalError): ?> 9 | 10 |
11 | formRenderPreview() ?> 12 |
13 | 14 | 15 | 16 |

fatalError) ?>

17 |

18 | 19 | 20 | -------------------------------------------------------------------------------- /models/CountryBrother.php: -------------------------------------------------------------------------------- 1 | \System\Models\File::class, 20 | ]; 21 | 22 | /** 23 | * @var array hasMany 24 | */ 25 | public $hasMany = [ 26 | 'sisters' => [ 27 | RepeaterItem::class, 28 | 'key' => 'parent_id', 29 | 'delete' => true 30 | ], 31 | ]; 32 | } 33 | -------------------------------------------------------------------------------- /models/country/fields_simple_nested.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | 7 | name: 8 | label: Name 9 | span: auto 10 | default: Australia 11 | 12 | code: 13 | label: Code 14 | span: auto 15 | preset: 16 | field: name 17 | type: slug 18 | 19 | is_active: 20 | label: Active 21 | comment: Check this box to hide some tabs, using depends and trigger API. 22 | type: checkbox 23 | default: true 24 | 25 | cities: 26 | tab: Cities 27 | label: Cities 28 | type: relation 29 | useController: true 30 | -------------------------------------------------------------------------------- /models/page/columns.yaml: -------------------------------------------------------------------------------- 1 | columns: 2 | id: 3 | label: ID 4 | type: number 5 | order: 200 6 | 7 | title: 8 | label: Title 9 | order: 800 10 | 11 | type: 12 | label: Type 13 | type: selectable 14 | order: 700 15 | options: 16 | 1: [Simple, 'icon-clock-o'] 17 | 2: [Complex, 'icon-exclamation'] 18 | 19 | parent: 20 | label: Parent 21 | relation: parent 22 | select: title 23 | order: 600 24 | 25 | content[title]: 26 | label: Content 27 | type: text 28 | order: 500 29 | 30 | status: 31 | label: Status 32 | type: selectable 33 | order: 900 34 | -------------------------------------------------------------------------------- /tests/browser/concerns/InteractsWithAuth.php: -------------------------------------------------------------------------------- 1 | visit('/admin') 15 | ->waitForLocation('/admin/backend/auth/signin') 16 | ->assertTitleContains('Administration Area |') 17 | ->type('login', env('DUSK_ADMIN_USER', 'admin')) 18 | ->type('password', env('DUSK_ADMIN_PASS', 'admin')) 19 | ->check('remember') 20 | ->press('Login') 21 | ->waitForLocation('/admin'); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /models/review/fields_simple.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | photo: 7 | label: Photo 8 | mode: image 9 | useCaption: true 10 | thumbOptions: 11 | mode: crop 12 | extension: auto 13 | span: left 14 | type: fileupload 15 | 16 | content: 17 | label: Content 18 | type: textarea 19 | size: small 20 | span: right 21 | 22 | feature_color: 23 | label: Feature Color 24 | type: colorpicker 25 | span: left 26 | 27 | is_positive: 28 | label: Positive 29 | type: checkbox 30 | span: right 31 | -------------------------------------------------------------------------------- /models/plugin/fields.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | tabs: 6 | fields: 7 | name: 8 | label: Name 9 | tab: Details 10 | 11 | code: 12 | label: Code 13 | tab: Details 14 | autoFocus: true 15 | 16 | icon: 17 | label: Icon 18 | type: dropdown 19 | optionsPreset: phosphorIcons 20 | tab: Details 21 | 22 | content: 23 | label: Content 24 | tab: Details 25 | 26 | reviews: 27 | label: Reviews 28 | type: partial 29 | path: reviews 30 | tab: Reviews 31 | -------------------------------------------------------------------------------- /controllers/Categories.php: -------------------------------------------------------------------------------- 1 | 'required', 22 | ]; 23 | 24 | public $hasMany = [ 25 | 'leads' => [ProductOfferStockLead::class, 'key' => 'stock_id', 'delete' => true] 26 | ]; 27 | 28 | public $attachMany = [ 29 | 'gallery' => \System\Models\File::class 30 | ]; 31 | } 32 | -------------------------------------------------------------------------------- /controllers/phones/preview.htm: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | fatalError): ?> 10 | 11 |
12 | formRenderPreview() ?> 13 |
14 | 15 | 16 | 17 |

fatalError) ?>

18 |

Return to phones list

19 | 20 | -------------------------------------------------------------------------------- /controllers/users/_form_toggle.htm: -------------------------------------------------------------------------------- 1 | exists 3 | ? 'october/test/users/update/'.$formModel->id 4 | : 'october/test/users/create'; 5 | ?> 6 |
7 |
8 | 9 |

Alternate views

10 |
11 |
12 | 17 |
18 |
19 | -------------------------------------------------------------------------------- /contentfields/mycontentfield/partials/_field_mycontentfield.php: -------------------------------------------------------------------------------- 1 |
2 |
3 | 10 |
11 |
12 | 19 |
20 |
21 | -------------------------------------------------------------------------------- /controllers/people/_form_toggle.htm: -------------------------------------------------------------------------------- 1 | exists 3 | ? 'october/test/people/update/'.$formModel->id 4 | : 'october/test/people/create'; 5 | ?> 6 |
7 |
8 | 9 |

Alternate views

10 |
11 |
12 | 17 |
18 |
-------------------------------------------------------------------------------- /controllers/posts/_form_toggle.php: -------------------------------------------------------------------------------- 1 | exists 3 | ? 'october/test/posts/update/'.$formModel->id 4 | : 'october/test/posts/create'; 5 | ?> 6 |
7 |
8 | 9 |

Alternate views

10 |
11 |
12 | 17 |
18 |
19 | -------------------------------------------------------------------------------- /models/Theme.php: -------------------------------------------------------------------------------- 1 | [Review::class, 'name' => 'product'], 30 | ]; 31 | 32 | public $morphOne = [ 33 | 'meta' => [Meta::class, 'name' => 'taggable'], 34 | ]; 35 | } 36 | -------------------------------------------------------------------------------- /controllers/locations/config_relation.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Relation Behavior Config 3 | # =================================== 4 | 5 | country: 6 | label: Country 7 | view: 8 | form: $/october/test/models/country/fields_simple_form.yaml 9 | toolbarButtons: update|link|unlink 10 | manage: 11 | form: $/october/test/models/country/fields_simple_form.yaml 12 | list: $/october/test/models/country/columns_simple.yaml 13 | 14 | # city: 15 | # label: City 16 | # view: 17 | # form: $/october/test/models/city/fields.yaml 18 | # toolbarButtons: link|unlink 19 | # manage: 20 | # form: $/october/test/models/city/fields.yaml 21 | # list: $/october/test/models/city/columns.yaml 22 | -------------------------------------------------------------------------------- /models/country/fields_simple_form.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | 7 | name: 8 | label: Name 9 | span: auto 10 | default: Australia 11 | 12 | code: 13 | label: Code 14 | span: auto 15 | preset: 16 | field: name 17 | type: slug 18 | 19 | is_active: 20 | label: Active 21 | comment: Check this box to hide some tabs, using depends and trigger API. 22 | type: checkbox 23 | default: true 24 | 25 | footer: 26 | translatable: true 27 | type: nestedform 28 | showPanel: false 29 | form: $/october/test/models/setting/nestedform.yaml 30 | -------------------------------------------------------------------------------- /controllers/Cities.php: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | fatalError): ?> 9 | 10 |
11 | formRenderPreview() ?> 12 |
13 | 14 | 15 | 16 |

fatalError) ?>

17 |

18 | 19 | 20 | -------------------------------------------------------------------------------- /controllers/users/config_form.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Behavior Config 3 | # =================================== 4 | 5 | # Record name 6 | name: User 7 | 8 | # Model Form Field configuration 9 | form: $/october/test/models/user/fields.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\User 13 | 14 | # Default redirect location 15 | defaultRedirect: october/test/users 16 | 17 | # Create page 18 | create: 19 | title: Create Users 20 | redirect: october/test/users/update/:id 21 | redirectClose: october/test/users 22 | 23 | # Update page 24 | update: 25 | title: Edit Users 26 | redirect: october/test/users 27 | redirectClose: october/test/users 28 | 29 | # Preview page 30 | preview: 31 | title: Preview Users -------------------------------------------------------------------------------- /controllers/pages/config_form.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Behavior Config 3 | # =================================== 4 | 5 | # Record name 6 | name: Page 7 | 8 | # Model Form Field configuration 9 | form: $/october/test/models/page/fields.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\Page 13 | 14 | # Default redirect location 15 | defaultRedirect: october/test/pages 16 | 17 | # Create page 18 | create: 19 | title: Create Page 20 | redirect: october/test/pages/update/:id 21 | redirectClose: october/test/pages 22 | 23 | # Update page 24 | update: 25 | title: Edit Page 26 | redirect: october/test/pages 27 | redirectClose: october/test/pages 28 | 29 | # Preview page 30 | preview: 31 | title: Preview Page 32 | -------------------------------------------------------------------------------- /controllers/posts/config_tag_form.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Behavior Config 3 | # =================================== 4 | 5 | # Record name 6 | name: Tag 7 | 8 | # Model Form Field configuration 9 | form: $/october/test/models/tag/fields_simple.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\Tag 13 | 14 | # Default redirect location 15 | defaultRedirect: october/test/posts 16 | 17 | # Create page 18 | create: 19 | title: Create Tags 20 | redirect: october/test/tags/update/:id 21 | redirectClose: october/test/tags 22 | 23 | # Update page 24 | update: 25 | title: Edit Tags 26 | redirect: october/test/tags 27 | redirectClose: october/test/tags 28 | 29 | # Preview page 30 | preview: 31 | title: Preview Tags 32 | -------------------------------------------------------------------------------- /controllers/Trees.php: -------------------------------------------------------------------------------- 1 | 'config_members_list.yaml', 17 | 'categories' => 'config_categories_list.yaml', 18 | 'channels' => 'config_channels_list.yaml' 19 | ]; 20 | 21 | public $requiredPermissions = ['october.test.access_plugin']; 22 | 23 | public function __construct() 24 | { 25 | parent::__construct(); 26 | 27 | BackendMenu::setContext('October.Test', 'test', 'trees'); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /controllers/cities/config_form.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Behavior Config 3 | # =================================== 4 | 5 | # Record name 6 | name: City 7 | 8 | # Model Form Field configuration 9 | form: $/october/test/models/city/fields.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\City 13 | 14 | # Default redirect location 15 | defaultRedirect: october/test/cities 16 | 17 | # Create page 18 | create: 19 | title: Create City 20 | redirect: october/test/cities/update/:id 21 | redirectClose: october/test/cities 22 | 23 | # Update page 24 | update: 25 | title: Edit City 26 | redirect: october/test/cities 27 | redirectClose: october/test/cities 28 | 29 | # Preview page 30 | preview: 31 | title: Preview City 32 | -------------------------------------------------------------------------------- /controllers/phones/config_form.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Behavior Config 3 | # =================================== 4 | 5 | # Record name 6 | name: Phone 7 | 8 | # Model Form Field configuration 9 | form: $/october/test/models/phone/fields.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\Phone 13 | 14 | # Default redirect location 15 | defaultRedirect: october/test/phones 16 | 17 | # Create page 18 | create: 19 | title: Create Phone 20 | redirect: october/test/phones/update/:id 21 | redirectClose: october/test/phones 22 | 23 | # Update page 24 | update: 25 | title: Edit Phone 26 | redirect: october/test/phones 27 | redirectClose: october/test/phones 28 | 29 | # Preview page 30 | preview: 31 | title: Preview Phone -------------------------------------------------------------------------------- /controllers/cities/config_relation.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Relation Behavior Config 3 | # =================================== 4 | 5 | country: 6 | label: Country 7 | form: $/october/test/models/country/fields_simple_nested.yaml 8 | list: $/october/test/models/country/columns_simple.yaml 9 | 10 | country[cities]: 11 | label: City 12 | form: $/october/test/models/city/fields.yaml 13 | list: $/october/test/models/city/columns.yaml 14 | 15 | locations: 16 | label: Location 17 | list: $/october/test/models/location/columns.yaml 18 | form: $/october/test/models/location/fields.yaml 19 | manage: 20 | recordsPerPage: 10 21 | showSearch: true 22 | structure: 23 | showTree: true 24 | showReorder: true 25 | -------------------------------------------------------------------------------- /controllers/members/config_form.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Behavior Config 3 | # =================================== 4 | 5 | # Record name 6 | name: Member 7 | 8 | # Model Form Field configuration 9 | form: $/october/test/models/member/fields.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\Member 13 | 14 | # Default redirect location 15 | defaultRedirect: october/test/trees 16 | 17 | # Create page 18 | create: 19 | title: Create Member 20 | redirect: october/test/members/update/:id 21 | redirectClose: october/test/trees 22 | 23 | # Update page 24 | update: 25 | title: Edit Member 26 | redirect: october/test/members 27 | redirectClose: october/test/trees 28 | 29 | # Preview page 30 | preview: 31 | title: Preview Member -------------------------------------------------------------------------------- /controllers/people/config_form.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Behavior Config 3 | # =================================== 4 | 5 | # Record name 6 | name: Person 7 | 8 | # Model Form Field configuration 9 | form: $/october/test/models/person/fields.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\Person 13 | 14 | # Default redirect location 15 | defaultRedirect: october/test/people 16 | 17 | # Create page 18 | create: 19 | title: Create People 20 | redirect: october/test/people/update/:id 21 | redirectClose: october/test/people 22 | 23 | # Update page 24 | update: 25 | title: Edit People 26 | redirect: october/test/people 27 | redirectClose: october/test/people 28 | 29 | # Preview page 30 | preview: 31 | title: Preview People -------------------------------------------------------------------------------- /controllers/reviews/config_form.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Behavior Config 3 | # =================================== 4 | 5 | # Record name 6 | name: Review 7 | 8 | # Model Form Field configuration 9 | form: $/october/test/models/review/fields.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\Review 13 | 14 | # Default redirect location 15 | defaultRedirect: october/test/reviews 16 | 17 | # Create page 18 | create: 19 | title: Create Review 20 | redirect: october/test/reviews/update/:id 21 | redirectClose: october/test/reviews 22 | 23 | # Update page 24 | update: 25 | title: Edit Review 26 | redirect: october/test/reviews 27 | redirectClose: october/test/reviews 28 | 29 | # Preview page 30 | preview: 31 | title: Preview Review -------------------------------------------------------------------------------- /controllers/channels/config_form.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Behavior Config 3 | # =================================== 4 | 5 | # Record name 6 | name: Channel 7 | 8 | # Model Form Field configuration 9 | form: $/october/test/models/channel/fields.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\Channel 13 | 14 | # Default redirect location 15 | defaultRedirect: october/test/trees 16 | 17 | # Create page 18 | create: 19 | title: Create Channel 20 | redirect: october/test/channels/update/:id 21 | redirectClose: october/test/trees 22 | 23 | # Update page 24 | update: 25 | title: Edit Channel 26 | redirect: october/test/channels 27 | redirectClose: october/test/trees 28 | 29 | # Preview page 30 | preview: 31 | title: Preview Channel -------------------------------------------------------------------------------- /models/Layout.php: -------------------------------------------------------------------------------- 1 | = 2025 14 | */ 15 | protected $guarded = []; 16 | 17 | /** 18 | * exportData 19 | */ 20 | public function exportData($columns, $sessionKey = null) 21 | { 22 | $pages = Page::all(); 23 | 24 | $pages->each(function($subscriber) use ($columns) { 25 | $subscriber->addVisible($columns); 26 | }); 27 | 28 | if ($this->skip_first_record) { 29 | $pages->shift(); 30 | } 31 | 32 | return $pages->toArray(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /controllers/posts/config_comment_form.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Behavior Config 3 | # =================================== 4 | 5 | # Record name 6 | name: Comment 7 | 8 | # Model Form Field configuration 9 | form: $/october/test/models/comment/fields_simple.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\Comment 13 | 14 | # Default redirect location 15 | defaultRedirect: october/test/posts 16 | 17 | # Create page 18 | create: 19 | title: Create Comments 20 | redirect: october/test/posts/update/:id 21 | redirectClose: october/test/posts 22 | 23 | # Update page 24 | update: 25 | title: Edit Comments 26 | redirect: october/test/posts 27 | redirectClose: october/test/posts 28 | 29 | # Preview page 30 | preview: 31 | title: Preview Comments 32 | -------------------------------------------------------------------------------- /controllers/posts/config_post_form.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Behavior Config 3 | # =================================== 4 | 5 | # Record name 6 | name: Post 7 | 8 | # Model Form Field configuration 9 | form: $/october/test/models/post/fields.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\Post 13 | 14 | # Default redirect location 15 | defaultRedirect: october/test/posts 16 | 17 | # Create page 18 | create: 19 | title: Create Posts (Custom Text) 20 | redirect: october/test/posts/update/:id 21 | redirectClose: october/test/posts 22 | 23 | # Update page 24 | update: 25 | title: Edit Posts (Awesome Title) 26 | redirect: october/test/posts 27 | redirectClose: october/test/posts 28 | 29 | # Preview page 30 | preview: 31 | title: Preview Posts 32 | -------------------------------------------------------------------------------- /controllers/countries/config_form.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Behavior Config 3 | # =================================== 4 | 5 | # Record name 6 | name: Country 7 | 8 | # Model Form Field configuration 9 | form: $/october/test/models/country/fields.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\Country 13 | 14 | # Default redirect location 15 | defaultRedirect: october/test/countries 16 | 17 | # Create page 18 | create: 19 | title: Create Countries 20 | redirect: october/test/countries/update/:id 21 | redirectClose: october/test/countries 22 | 23 | # Update page 24 | update: 25 | title: Edit Countries 26 | redirect: october/test/countries 27 | redirectClose: october/test/countries 28 | 29 | # Preview page 30 | preview: 31 | title: Preview Countries -------------------------------------------------------------------------------- /controllers/galleries/config_form.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Behavior Config 3 | # =================================== 4 | 5 | # Record name 6 | name: Gallery 7 | 8 | # Model Form Field configuration 9 | form: $/october/test/models/gallery/fields.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\Gallery 13 | 14 | # Default redirect location 15 | defaultRedirect: october/test/galleries 16 | 17 | # Create page 18 | create: 19 | title: Create Gallery 20 | redirect: october/test/galleries/update/:id 21 | redirectClose: october/test/galleries 22 | 23 | # Update page 24 | update: 25 | title: Edit Gallery 26 | redirect: october/test/galleries 27 | redirectClose: october/test/galleries 28 | 29 | # Preview page 30 | preview: 31 | title: Preview Gallery 32 | -------------------------------------------------------------------------------- /controllers/locations/config_form.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Behavior Config 3 | # =================================== 4 | 5 | # Record name 6 | name: Location 7 | 8 | # Model Form Field configuration 9 | form: $/october/test/models/location/fields.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\Location 13 | 14 | # Default redirect location 15 | defaultRedirect: october/test/locations 16 | 17 | # Create page 18 | create: 19 | title: Create Location 20 | redirect: october/test/locations/update/:id 21 | redirectClose: october/test/locations 22 | 23 | # Update page 24 | update: 25 | title: Edit Location 26 | redirect: october/test/locations 27 | redirectClose: october/test/locations 28 | 29 | # Preview page 30 | preview: 31 | title: Preview Location 32 | -------------------------------------------------------------------------------- /models/order/fields.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | title: 7 | label: Order Name 8 | required: true 9 | span: auto 10 | 11 | price: 12 | label: Price 13 | type: number 14 | span: auto 15 | 16 | tabs: 17 | fields: 18 | products: 19 | label: Products 20 | tab: Products 21 | type: relation 22 | controller: 23 | label: Product 24 | list: $/october/test/models/product/columns.yaml 25 | form: $/october/test/models/product/fields.yaml 26 | 27 | notes: 28 | label: Notes 29 | tab: Notes 30 | type: textarea 31 | size: huge 32 | -------------------------------------------------------------------------------- /tests/ExampleDatabaseTest.php: -------------------------------------------------------------------------------- 1 | migrateDatabase(); 20 | } 21 | 22 | /** 23 | * testDatabaseAvailable 24 | */ 25 | public function testDatabaseAvailable() 26 | { 27 | // Core 28 | $this->assertTrue(Schema::hasTable('migrations')); 29 | 30 | // Module 31 | $this->assertTrue(Schema::hasTable('system_files')); 32 | 33 | // Plugin 34 | $this->assertTrue(Schema::hasTable('october_test_people')); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /models/post/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | id: 7 | label: ID 8 | searchable: true 9 | 10 | name: 11 | label: Name 12 | searchable: true 13 | 14 | content: 15 | label: Content 16 | searchable: true 17 | 18 | # @deprecated 19 | # comments_count: 20 | # label: Comments 21 | # relation: comments_count 22 | # valueFrom: count 23 | # default: 0 24 | # type: number 25 | 26 | comments_count: 27 | label: Comments 28 | relation: comments 29 | relationCount: true 30 | type: number 31 | 32 | status_sort_order: 33 | label: Status 34 | sortable: true 35 | valueFrom: status_name 36 | -------------------------------------------------------------------------------- /controllers/Phones.php: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 25 | 26 | -------------------------------------------------------------------------------- /config/repeater_country_brothers.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Used as a Repeater Model 3 | # =================================== 4 | 5 | editor: 6 | name: Text Editor 7 | icon: icon-file-text-o 8 | fields: 9 | content: 10 | type: richeditor 11 | size: large 12 | 13 | gallery: 14 | name: Photos 15 | icon: icon-file-image-o 16 | fields: 17 | photos: 18 | type: fileupload 19 | mode: image 20 | imageWidth: 200 21 | imageHeight: 200 22 | 23 | sister: 24 | name: Sister 25 | icon: icon-refresh 26 | fields: 27 | sisters: 28 | label: Sister 29 | prompt: Add sister 30 | span: full 31 | type: repeater 32 | form: $/october/test/config/repeater_country_sisters.yaml 33 | -------------------------------------------------------------------------------- /controllers/Countries.php: -------------------------------------------------------------------------------- 1 | 2 | 5 | New City 6 | 7 | 8 | 21 | 22 | -------------------------------------------------------------------------------- /controllers/themes/config_form.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Behavior Config 3 | # =================================== 4 | 5 | # Record name 6 | name: Theme 7 | 8 | # Model Form Field configuration 9 | form: $/october/test/models/theme/fields.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\Theme 13 | 14 | # Default redirect location 15 | defaultRedirect: october/test/themes 16 | 17 | # Form Design 18 | design: 19 | displayMode: sidebar 20 | sidebarSize: 500 21 | 22 | # Create page 23 | create: 24 | title: Create Theme 25 | redirect: october/test/themes/update/:id 26 | redirectClose: october/test/themes 27 | 28 | # Update page 29 | update: 30 | title: Edit Theme 31 | redirect: october/test/themes 32 | redirectClose: october/test/themes 33 | 34 | # Preview page 35 | preview: 36 | title: Preview Theme 37 | -------------------------------------------------------------------------------- /controllers/ProductCategories.php: -------------------------------------------------------------------------------- 1 | $data) { 23 | try { 24 | $page = new Page; 25 | $page->fill($data); 26 | $page->save(); 27 | 28 | $this->logCreated(); 29 | } 30 | catch (Exception $ex) { 31 | $this->logError($row, $ex->getMessage()); 32 | } 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /controllers/users/_field_uppercase_name.htm: -------------------------------------------------------------------------------- 1 | 2 | previewMode): ?> 3 | value ? e($field->value) : ' ' ?> 4 | 5 | 14 | 15 | 23 | 24 | -------------------------------------------------------------------------------- /models/Order.php: -------------------------------------------------------------------------------- 1 | [ 32 | Product::class, 33 | 'table' => 'october_test_orders_products', 34 | 'key' => 'order_id', 35 | 'otherKey' => 'product_id', 36 | ], 37 | ]; 38 | } 39 | -------------------------------------------------------------------------------- /models/Company.php: -------------------------------------------------------------------------------- 1 | 'required', 24 | ]; 25 | 26 | /** 27 | * @var array propagatable list of attributes to propagate to other sites. 28 | */ 29 | protected $propagatable = []; 30 | 31 | /** 32 | * @var bool propagatableSync will enforce model structures between all sites 33 | */ 34 | protected $propagatableSync = true; 35 | } 36 | -------------------------------------------------------------------------------- /models/Meta.php: -------------------------------------------------------------------------------- 1 | [] 18 | ]; 19 | 20 | public $rules = [ 21 | 'meta_title' => 'required', 22 | 'meta_description' => 'required', 23 | 'meta_keywords' => 'required', 24 | 'canonical_url' => 'url', 25 | 'redirect_url' => 'url' 26 | ]; 27 | 28 | /** 29 | * @var array fillable fields 30 | */ 31 | protected $fillable = [ 32 | 'meta_title', 33 | 'meta_description', 34 | 'meta_keywords', 35 | 'canonical_url', 36 | 'redirect_url', 37 | 'robot_index', 38 | 'robot_follow' 39 | ]; 40 | } 41 | -------------------------------------------------------------------------------- /models/RepeaterItem.php: -------------------------------------------------------------------------------- 1 | \System\Models\File::class, 37 | ]; 38 | } 39 | -------------------------------------------------------------------------------- /filterwidgets/inlineballoon/partials/_inlineballoon.php: -------------------------------------------------------------------------------- 1 | scopeValue !== null ? $scope->value : $scope->default; 3 | ?> 4 |
9 | 19 | 20 | 21 |
22 | -------------------------------------------------------------------------------- /models/product/_column_dropdown.php: -------------------------------------------------------------------------------- 1 | 21 | -------------------------------------------------------------------------------- /tests/ExampleModelTest.php: -------------------------------------------------------------------------------- 1 | name = 'name'; 19 | $model->content = 'content'; 20 | $model->save(); 21 | 22 | $model = Comment::find($model->id); 23 | $this->assertEquals('name', $model->name); 24 | $this->assertEquals('content', $model->content); 25 | } 26 | 27 | /** 28 | * testItPosts 29 | */ 30 | public function testItPosts() 31 | { 32 | Request::setMethod('POST'); 33 | Request::merge(['checked' => [1,2,3]]); 34 | $this->assertEquals([1,2,3], post('checked')); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /controllers/productcategories/config_form.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Behavior Config 3 | # =================================== 4 | 5 | # Record name 6 | name: Product Category 7 | 8 | # Model Form Field configuration 9 | form: $/october/test/models/productcategory/fields.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\ProductCategory 13 | 14 | # Default redirect location 15 | defaultRedirect: october/test/productcategories 16 | 17 | # Create page 18 | create: 19 | title: backend::lang.form.create_title 20 | redirect: october/test/productcategories/update/:id 21 | redirectClose: october/test/productcategories 22 | 23 | # Update page 24 | update: 25 | title: backend::lang.form.update_title 26 | redirect: october/test/productcategories 27 | redirectClose: october/test/productcategories 28 | 29 | # Preview page 30 | preview: 31 | title: backend::lang.form.preview_title 32 | -------------------------------------------------------------------------------- /models/Setting.php: -------------------------------------------------------------------------------- 1 | 'required', 32 | 'show_all_posts' => 'boolean', 33 | ]; 34 | } 35 | -------------------------------------------------------------------------------- /updates/version.yaml: -------------------------------------------------------------------------------- 1 | v1.0.1: 2 | - First version of Test Plugin 3 | - drop_everything.php 4 | v1.0.2: 5 | - Create Test 1 Tables 6 | - create_test1_tables.php 7 | v1.0.3: 8 | - Create Test 2 Tables 9 | - create_test2_tables.php 10 | v1.0.4: 11 | - Create Test 3 Tables 12 | - create_test3_tables.php 13 | v1.0.5: 14 | - Create Test 4 Tables 15 | - create_test4_tables.php 16 | v1.0.6: 17 | - Create Test 5 Tables 18 | - create_test5_tables.php 19 | v1.0.7: 20 | - Create Test 6 Tables 21 | - create_test6_tables.php 22 | v1.0.8: 23 | - Create Test 7 Tables 24 | - create_test7_tables.php 25 | v1.0.9: 26 | - Create Test 8 Tables 27 | - create_test8_tables.php 28 | v1.0.10: 29 | - Create Test 9 Tables 30 | - create_test9_tables.php 31 | v1.0.11: 32 | - Create General Tables 33 | - create_general_tables.php 34 | v1.0.12: 35 | - Seed tables 36 | - seed_tables.php 37 | -------------------------------------------------------------------------------- /filterwidgets/discount/partials/_discount_form.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 8 |
9 |
10 |
11 | 14 |
15 | 18 |
19 |
20 | -------------------------------------------------------------------------------- /blueprints/blog/comments.yaml: -------------------------------------------------------------------------------- 1 | uuid: e32bf358-f11f-4541-9864-e328361fd15b 2 | handle: Test\Blog\Comments 3 | type: entry 4 | name: Test Comments 5 | useDrafts: false 6 | navigation: false 7 | pagefinder: false 8 | 9 | groups: 10 | regular_post: 11 | name: Regular Comment 12 | fields: 13 | content: 14 | tab: Edit 15 | label: Content 16 | type: richeditor 17 | span: adaptive 18 | 19 | blog_post_content: 20 | type: mixin 21 | source: Test\Blog\CommentContent 22 | 23 | markdown_post: 24 | name: Markdown Comment 25 | fields: 26 | content: 27 | tab: Edit 28 | label: Content 29 | type: markdown 30 | span: adaptive 31 | 32 | blog_post_content: 33 | type: mixin 34 | source: Test\Blog\CommentContent 35 | -------------------------------------------------------------------------------- /blueprints/wiki/wiki-widgets.yaml: -------------------------------------------------------------------------------- 1 | uuid: b3dc3abb-6bd5-4f11-a67a-c16710100400 2 | handle: Test\Wiki\Widgets 3 | name: Wiki Widgets 4 | type: mixin 5 | 6 | fields: 7 | added_at: 8 | label: Date Added 9 | type: datepicker 10 | 11 | gallery: 12 | label: Gallery 13 | type: fileupload 14 | mode: image 15 | 16 | list_items: 17 | label: List Items 18 | type: datatable 19 | btnAddRowLabel: Add Item 20 | btnDeleteRowLabel: Delete Item 21 | columns: 22 | text: 23 | type: string 24 | title: Text 25 | number: 26 | type: string 27 | title: Number 28 | 29 | nested_form: 30 | label: Nested Form 31 | type: nestedform 32 | form: 33 | fields: 34 | nested_form: 35 | type: mixin 36 | source: Test\Wiki\NestedFormFields 37 | -------------------------------------------------------------------------------- /classes/LowercaseRule.php: -------------------------------------------------------------------------------- 1 | validate($attribute, $value, []); 14 | } 15 | 16 | /** 17 | * validate determines if the validation rule passes. 18 | * @param string $attribute 19 | * @param mixed $value 20 | * @param array $params 21 | * @return bool 22 | */ 23 | public function validate($attribute, $value, $params) 24 | { 25 | return strtolower($value) === $value; 26 | } 27 | 28 | /** 29 | * message gets the validation error message. 30 | * @return string 31 | */ 32 | public function message() 33 | { 34 | return 'The :attribute must be lowercase.'; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /models/CustomFile.php: -------------------------------------------------------------------------------- 1 | [User::class, 'table' => 'october_test_users_roles'] 30 | ]; 31 | 32 | public $attachMany = [ 33 | 'photos' => \System\Models\File::class, 34 | ]; 35 | 36 | /** 37 | * scopeApplyRoleOptionsFilter 38 | */ 39 | public function scopeApplyRoleOptionsFilter($query) 40 | { 41 | return $query->where('id', '<>', 1); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /controllers/posts/index.htm: -------------------------------------------------------------------------------- 1 |
2 | 7 |
8 |
9 | listRender('posts') ?> 10 |
11 |
12 | listRender('comments') ?> 13 |
14 |
15 | listRender('tags') ?> 16 |
17 |
18 |
19 | 20 |
21 |
22 |
23 | 24 |

A Post "Has Many" Comments

25 |

One to many relationship

26 |
27 |
28 |
29 | -------------------------------------------------------------------------------- /blueprints/blog/categories.yaml: -------------------------------------------------------------------------------- 1 | uuid: 6c7a0f9b-957b-46a7-8431-1a0fa7d09b0f 2 | type: entry 3 | handle: Test\Blog\Categories 4 | name: Test Categories 5 | useDrafts: false 6 | pagefinder: false 7 | 8 | navigation: 9 | mode: secondary 10 | parent: Test\Blog 11 | icon: icon-star 12 | order: 150 13 | 14 | fields: 15 | mycontentfield: 16 | label: Custom Content Field 17 | type: mycontentfield 18 | firstColor: red 19 | secondColor: blue 20 | 21 | description@update: 22 | label: Description (Update) 23 | 24 | description@create: 25 | label: Description (Create) 26 | 27 | status: 28 | label: Status 29 | type: text 30 | 31 | reference: 32 | label: Reference 33 | type: pagefinder 34 | 35 | items: 36 | type: repeater 37 | form: 38 | fields: 39 | title: 40 | label: Title 41 | price: 42 | label: Price 43 | -------------------------------------------------------------------------------- /classes/UppercaseRule.php: -------------------------------------------------------------------------------- 1 | vars['scope'] = $this->filterScope; 20 | $this->vars['name'] = $this->getScopeName(); 21 | $this->vars['value'] = $this->getLoadValue(); 22 | 23 | return $this->makePartial('inlineballoon'); 24 | } 25 | 26 | /** 27 | * renderForm for the filter 28 | */ 29 | public function renderForm() 30 | { 31 | } 32 | 33 | /** 34 | * applyScopeToQuery 35 | */ 36 | public function applyScopeToQuery($query) 37 | { 38 | $searchValue = $this->filterScope->value; 39 | 40 | $query->where('username', 'LIKE', "%{$searchValue}%"); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /filterwidgets/InlineSearch.php: -------------------------------------------------------------------------------- 1 | vars['scope'] = $this->filterScope; 20 | $this->vars['name'] = $this->getScopeName(); 21 | $this->vars['value'] = $this->getLoadValue(); 22 | 23 | return $this->makePartial('inlinesearch'); 24 | } 25 | 26 | /** 27 | * renderForm for the filter 28 | */ 29 | public function renderForm() 30 | { 31 | } 32 | 33 | /** 34 | * applyScopeToQuery 35 | */ 36 | public function applyScopeToQuery($query) 37 | { 38 | $searchValue = $this->filterScope->value; 39 | 40 | $query->where('username', 'LIKE', "%{$searchValue}%"); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /blueprints/wiki/wiki.yaml: -------------------------------------------------------------------------------- 1 | uuid: 66ee3772-c72e-4e04-884e-931268ca32e2 2 | handle: Test\Wiki 3 | type: structure 4 | name: Test Wiki 5 | maxDepth: 3 6 | useDrafts: true 7 | 8 | navigation: 9 | parent: Test\Blog 10 | icon: icon-wikipedia-w 11 | 12 | fields: 13 | content: 14 | label: Content 15 | tab: Edit 16 | type: richeditor 17 | span: adaptive 18 | 19 | show_in_toc: 20 | label: Show in TOC 21 | comment: Include this article in the table of contents 22 | type: checkbox 23 | 24 | summary_text: 25 | label: Summary Text 26 | type: textarea 27 | size: small 28 | default: My Lovely 29 | 30 | generics: 31 | type: mixin 32 | source: Test\Wiki\Fields 33 | tab: Generics 34 | 35 | widgets: 36 | type: mixin 37 | source: Test\Wiki\Widgets 38 | tab: Widgets 39 | 40 | builder: 41 | type: mixin 42 | source: Test\Wiki\Builder 43 | tab: Builder 44 | -------------------------------------------------------------------------------- /formwidgets/timechecker/partials/_timechecker.htm: -------------------------------------------------------------------------------- 1 |
2 |
3 | makePartial('current_time') ?> 4 |
5 | 6 | 9 | Push random time 10 | 11 | 12 | 17 | Pull big image (widget) 18 | 19 | 20 | 24 | Pull small image (controller) 25 | 26 |
27 | -------------------------------------------------------------------------------- /blueprints/blog/authors.yaml: -------------------------------------------------------------------------------- 1 | uuid: e183d98c-e7ef-4142-a5d4-f56b596a9fa3 2 | handle: Test\Blog\Authors 3 | type: entry 4 | name: Test Authors 5 | useDrafts: false 6 | pagefinder: false 7 | 8 | structure: 9 | maxDepth: 1 10 | 11 | navigation: 12 | mode: secondary 13 | parent: Test\Blog 14 | icon: icon-user 15 | order: 200 16 | 17 | fields: 18 | avatar: 19 | label: Avatar 20 | type: mediafinder 21 | mode: image 22 | 23 | about: 24 | label: About 25 | type: textarea 26 | 27 | facebook_url: 28 | label: Facebook URL 29 | tab: Social 30 | placeholder: "https://..." 31 | 32 | twitter_url: 33 | label: Twitter URL 34 | tab: Social 35 | placeholder: "https://..." 36 | 37 | github_url: 38 | label: GitHub URL 39 | tab: Social 40 | placeholder: "https://..." 41 | 42 | linkedin_url: 43 | label: LinkedIn URL 44 | tab: Social 45 | placeholder: "https://..." 46 | -------------------------------------------------------------------------------- /models/product/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | title: 7 | label: Label 8 | 9 | price: 10 | label: Price 11 | 12 | category_name: 13 | label: Categories 14 | relation: categories 15 | select: name 16 | 17 | gallery: 18 | label: Gallery 19 | type: image 20 | 21 | location_built: 22 | label: Built At 23 | relation: location_built 24 | select: name 25 | 26 | location_sold: 27 | label: Sold At 28 | relation: location_sold 29 | select: name 30 | 31 | _dropdown: 32 | label: Dropdown 33 | type: partial 34 | path: $/october/test/models/product/_column_dropdown.php 35 | clickable: false 36 | sortable: false 37 | 38 | company_name: 39 | label: Company Name 40 | relation: company 41 | select: name 42 | searchable: true 43 | -------------------------------------------------------------------------------- /models/ProductCategory.php: -------------------------------------------------------------------------------- 1 | 'required', 32 | 'code' => 'required', 33 | 'content' => 'required' 34 | ]; 35 | 36 | /** 37 | * @var array Relations 38 | */ 39 | public $morphMany = [ 40 | 'reviews' => [Review::class, 'name' => 'product'], 41 | ]; 42 | 43 | public $morphOne = [ 44 | 'meta' => [Meta::class, 'name' => 'taggable'], 45 | ]; 46 | } 47 | -------------------------------------------------------------------------------- /models/member/fields.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | name: 7 | label: Name 8 | 9 | parent_name: 10 | label: Parent Name 11 | dependsOn: parent 12 | 13 | parent: 14 | label: Parent (RecordFinder) 15 | comment: Record finder field. 16 | type: recordfinder 17 | list: $/october/test/models/member/columns.yaml 18 | title: Please pick a parent member 19 | prompt: Click the %s to find a parent member 20 | nameFrom: name 21 | scope: eligibleParents 22 | 23 | grand_parent: 24 | label: Grand Parent (RecordFinder) 25 | comment: Select a parent and its grand parent should go here. 26 | type: recordfinder 27 | list: $/october/test/models/member/columns.yaml 28 | title: Please pick a parent member 29 | prompt: Click the %s to find a parent member 30 | nameFrom: name 31 | dependsOn: parent 32 | -------------------------------------------------------------------------------- /controllers/phones/_form_toggle.htm: -------------------------------------------------------------------------------- 1 | exists 3 | ? 'october/test/phones/update/'.$formModel->id 4 | : 'october/test/phones/create'; 5 | ?> 6 |
7 |
8 | 9 |

Alternate views

10 |
11 |
12 | 25 |
26 |
-------------------------------------------------------------------------------- /vuecomponents/mycustomwidget/assets/js/mycustomwidget.js: -------------------------------------------------------------------------------- 1 | oc.Modules.register('october.test.component.mycustomwidget', function () { 2 | Vue.component('october-test-vuecomponents-mycustomwidget', { 3 | extends: Vue.options.components['dashboard-component-dashboard-widget-base'], 4 | data: function () { 5 | return { 6 | } 7 | }, 8 | methods: { 9 | useCustomData: function () { 10 | return true; 11 | }, 12 | 13 | makeDefaultConfigAndData: function () { 14 | Vue.set(this.widget.configuration, 'title', 'My Custom Widget'); 15 | }, 16 | 17 | getSettingsConfiguration: function () { 18 | const result = [{ 19 | property: "title", 20 | title: "Title", 21 | type: "string", 22 | }]; 23 | 24 | return result; 25 | } 26 | }, 27 | template: '#october_test_vuecomponents_mycustomwidget' 28 | }); 29 | }); 30 | -------------------------------------------------------------------------------- /controllers/reviews/list/_list_body_row.php: -------------------------------------------------------------------------------- 1 | 2 | $column): ?> 3 | 4 | 5 | 6 | 7 | 8 | 9 | clickable && !$url && ($url = $this->getRecordUrl($record))): ?> 10 | getRecordOnClick($record) ?> href=""> 11 | getColumnValue($record, $column) ?> 12 | 13 | 14 | getColumnValue($record, $column) ?> 15 | 16 | 17 | 18 | 19 | 20 |   21 | 22 | 23 | -------------------------------------------------------------------------------- /models/Review.php: -------------------------------------------------------------------------------- 1 | 'required', 37 | 'breakdown.*.aspect' => 'required', 38 | ]; 39 | 40 | /** 41 | * @var array Relations 42 | */ 43 | public $morphTo = [ 44 | 'product' => [] 45 | ]; 46 | 47 | public $attachOne = [ 48 | 'photo' => \System\Models\File::class 49 | ]; 50 | } 51 | -------------------------------------------------------------------------------- /classes/BetwixtRule.php: -------------------------------------------------------------------------------- 1 | $start && strlen($value) < $end; 16 | } 17 | 18 | /** 19 | * message gets the validation error message. 20 | * @return string 21 | */ 22 | public function message() 23 | { 24 | return 'The :attribute must be between :start and :end.'; 25 | } 26 | 27 | /** 28 | * replace defines custom placeholder replacements. 29 | * @return string 30 | */ 31 | public function replace($message, $attribute, $rule, $params) 32 | { 33 | [$start, $end] = $params; 34 | 35 | $message = str_replace(':start', $start, $message); 36 | 37 | $message = str_replace(':end', $end, $message); 38 | 39 | return $message; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /models/user/columns.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Column Definitions 3 | # =================================== 4 | 5 | columns: 6 | id: 7 | label: ID 8 | searchable: true 9 | 10 | username: 11 | label: Username 12 | searchable: true 13 | select: concat(id, ' ', username) 14 | 15 | roles: 16 | label: Roles 17 | relation: roles 18 | select: name 19 | 20 | # @deprecated 21 | # roles_count: 22 | # label: Roles 23 | # relation: roles_count 24 | # valueFrom: count 25 | # default: 0 26 | # sortable: false 27 | 28 | roles_count: 29 | label: Roles 30 | relation: roles 31 | relationCount: true 32 | type: number 33 | 34 | photo: 35 | label: Photo 36 | type: image 37 | sortable: false 38 | 39 | created_at: 40 | label: Created 41 | type: timetense 42 | invisible: true 43 | 44 | updated_at: 45 | label: Updated 46 | type: timetense 47 | invisible: true 48 | -------------------------------------------------------------------------------- /controllers/trees/config_channels_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/channel/columns.yaml 7 | 8 | # Model Class name 9 | modelClass: October\Test\Models\Channel 10 | 11 | # List Title 12 | title: Manage Channels 13 | 14 | # Link URL for each record 15 | recordUrl: october/test/channels/update/:id 16 | 17 | # Message to display if the list is empty 18 | noRecordsMessage: backend::lang.list.no_records 19 | 20 | # Records to display per page 21 | recordsPerPage: 20 22 | 23 | # Displays the list column set up button 24 | showSetup: true 25 | 26 | # Show tree (v1) 27 | # showTree: true 28 | # treeExpanded: true 29 | 30 | # Show tree (v2) 31 | structure: 32 | showTree: true 33 | showReorder: true 34 | maxDepth: 0 35 | 36 | # Toolbar widget configuration 37 | toolbar: 38 | # Partial for toolbar buttons 39 | buttons: list_channels_toolbar 40 | 41 | # Search widget configuration 42 | search: 43 | prompt: backend::lang.list.search_prompt 44 | -------------------------------------------------------------------------------- /blueprints/wiki/wiki-nestedform-fields.yaml: -------------------------------------------------------------------------------- 1 | uuid: 4dbb99c1-ee80-4679-8fc3-0a349ada4a75 2 | handle: Test\Wiki\NestedFormFields 3 | name: Wiki NestedForm Fields 4 | type: mixin 5 | 6 | fields: 7 | status: 8 | label: Status 9 | type: balloon-selector 10 | span: auto 11 | default: draft 12 | options: 13 | active: Active 14 | draft: Draft 15 | hidden: Hidden 16 | 17 | platform: 18 | span: auto 19 | label: Platform 20 | type: dropdown 21 | options: 22 | facebook: Facebook 23 | linkedin: LinkedIn 24 | dribbble: Dribbble 25 | twitter: Twitter 26 | youtube: YouTube 27 | 28 | url: 29 | span: auto 30 | label: Social Link 31 | type: text 32 | placeholder: "https://..." 33 | 34 | author: 35 | tab: Manage 36 | label: Author 37 | commentAbove: 'Select the author for this blog post' 38 | type: entries 39 | # maxItems: 1 40 | source: Test\Blog\Authors 41 | displayMode: relation 42 | 43 | -------------------------------------------------------------------------------- /components/RemoveIndex.php: -------------------------------------------------------------------------------- 1 | 'Remove Index', 20 | 'description' => 'This component removes the index.php part of the URL' 21 | ]; 22 | } 23 | 24 | /** 25 | * onRun component 26 | */ 27 | public function onRun() 28 | { 29 | $haveUrl = Url::full(); 30 | 31 | $wantUrl = $this->removeIndex($haveUrl); 32 | 33 | if ($haveUrl !== $wantUrl) { 34 | return Redirect::to($wantUrl, 301); 35 | } 36 | } 37 | 38 | /** 39 | * removeIndex php file from a path. 40 | */ 41 | protected function removeIndex(string $root): string 42 | { 43 | $i = 'index.php'; 44 | 45 | return Str::contains($root, $i) ? str_replace('/'.$i, '', $root) : $root; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /models/meta/fields.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | meta_title: 7 | label: Meta Title 8 | type: text 9 | required: true 10 | 11 | meta_description: 12 | label: Meta Description 13 | type: textarea 14 | size: tiny 15 | required: true 16 | 17 | meta_keywords: 18 | label: Meta Keywords 19 | type: textarea 20 | size: tiny 21 | required: true 22 | 23 | canonical_url: 24 | label: Canonical URL 25 | type: text 26 | span: left 27 | 28 | redirect_url: 29 | label: Redirect URL 30 | type: text 31 | span: right 32 | 33 | robot_index: 34 | label: Robot index 35 | type: dropdown 36 | default: index 37 | span: left 38 | options: 39 | index: Index 40 | 41 | robot_follow: 42 | label: Robot follow 43 | type: dropdown 44 | default: follow 45 | span: right 46 | options: 47 | follow: Follow 48 | -------------------------------------------------------------------------------- /models/userrolepivot/fields.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | pivot[clearance_level]: 7 | label: Clearance level 8 | span: auto 9 | 10 | pivot[evolution]: 11 | label: Evolution 12 | type: dropdown 13 | emptyOption: '--- Choose ---' 14 | span: auto 15 | 16 | pivot[is_executive]: 17 | label: Executive 18 | type: checkbox 19 | span: auto 20 | 21 | pivot[country]: 22 | span: auto 23 | label: Country 24 | type: recordfinder 25 | recordsPerPage: 20 26 | list: $/october/test/models/country/columns_simple.yaml 27 | comment: Record finder inside a popup. 28 | 29 | # Unsupported 30 | pivot[pic]: 31 | span: auto 32 | label: Photo 33 | type: fileupload 34 | comment: Image upload inside a popup. 35 | mode: image 36 | imageHeight: 150 37 | imageWidth: 150 38 | 39 | pivot[salary]: 40 | label: Salary 41 | type: number 42 | span: auto 43 | -------------------------------------------------------------------------------- /controllers/products/_list_toolbar.php: -------------------------------------------------------------------------------- 1 |
2 | 5 | 'Product'])) ?> 6 | 7 | 8 | 16 | 17 | 20 | Manage Orders 21 | 22 | 23 | 26 | Manage Categories 27 | 28 | 29 | 32 | Manage Companies 33 | 34 |
35 | -------------------------------------------------------------------------------- /controllers/plugins/config_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/plugin/columns.yaml 7 | 8 | # Model Class name 9 | modelClass: October\Test\Models\Plugin 10 | 11 | # List Title 12 | title: Manage Plugins 13 | 14 | # Link URL for each record 15 | recordOnClick: popup 16 | 17 | # Message to display if the list is empty 18 | noRecordsMessage: backend::lang.list.no_records 19 | 20 | # Records to display per page 21 | recordsPerPage: 20 22 | 23 | # Displays the list column set up button 24 | showSetup: true 25 | 26 | # Displays the sorting link on each column 27 | showSorting: true 28 | 29 | # Default sorting column 30 | # defaultSort: 31 | # column: created_at 32 | # direction: desc 33 | 34 | # Display checkboxes next to each record 35 | # showCheckboxes: true 36 | 37 | # Toolbar widget configuration 38 | toolbar: 39 | # Partial for toolbar buttons 40 | buttons: list_toolbar 41 | 42 | # Search widget configuration 43 | search: 44 | prompt: backend::lang.list.search_prompt 45 | -------------------------------------------------------------------------------- /controllers/reviews/_list_tabs.php: -------------------------------------------------------------------------------- 1 |
2 | 25 |
26 | -------------------------------------------------------------------------------- /controllers/posts/config_posts_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/post/columns.yaml 7 | 8 | # Model Class name 9 | modelClass: October\Test\Models\Post 10 | 11 | # List Title 12 | title: Manage Posts 13 | 14 | # Link URL for each record 15 | recordUrl: october/test/posts/update/:id 16 | 17 | # Message to display if the list is empty 18 | noRecordsMessage: backend::lang.list.no_records 19 | 20 | # Records to display per page 21 | recordsPerPage: 20 22 | 23 | # Displays the list column set up button 24 | showSetup: true 25 | 26 | # Displays the sorting link on each column 27 | showSorting: true 28 | 29 | # Default sorting column 30 | # defaultSort: 31 | # column: created_at 32 | # direction: desc 33 | 34 | # Display checkboxes next to each record 35 | # showCheckboxes: true 36 | 37 | # Toolbar widget configuration 38 | toolbar: 39 | # Partial for toolbar buttons 40 | buttons: list_posts_toolbar 41 | 42 | # Search widget configuration 43 | search: 44 | prompt: backend::lang.list.search_prompt 45 | -------------------------------------------------------------------------------- /tests/browser/test-backend/AuthenticationTest.php: -------------------------------------------------------------------------------- 1 | browse(function($browser) { 14 | $browser 15 | ->visit('/admin') 16 | ->waitForLocation('/admin/backend/auth/signin') 17 | ->assertTitleContains('Administration Area |') 18 | ->type('login', env('DUSK_ADMIN_USER', 'admin')) 19 | ->type('password', env('DUSK_ADMIN_PASS', 'admin')) 20 | ->check('remember') 21 | ->press('Login'); 22 | 23 | $browser 24 | ->waitForLocation('/admin') 25 | ->assertTitleContains('Dashboard |') 26 | ->click('#layout-mainmenu .mainmenu-account > a') 27 | ->clickLink('Sign Out'); 28 | 29 | $browser 30 | ->waitForLocation('/admin/backend/auth/signin') 31 | ->assertTitleContains('Administration Area |'); 32 | }); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /controllers/countries/config_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/country/columns.yaml 7 | 8 | # Model Class name 9 | modelClass: October\Test\Models\Country 10 | 11 | # List Title 12 | title: Manage Countries 13 | 14 | # Link URL for each record 15 | recordUrl: october/test/countries/update/:id 16 | 17 | # Message to display if the list is empty 18 | noRecordsMessage: backend::lang.list.no_records 19 | 20 | # Records to display per page 21 | recordsPerPage: 20 22 | 23 | # Displays the list column set up button 24 | showSetup: true 25 | 26 | # Displays the sorting link on each column 27 | showSorting: true 28 | 29 | # Default sorting column 30 | # defaultSort: 31 | # column: created_at 32 | # direction: desc 33 | 34 | # Display checkboxes next to each record 35 | # showCheckboxes: true 36 | 37 | # Toolbar widget configuration 38 | toolbar: 39 | # Partial for toolbar buttons 40 | buttons: list_toolbar 41 | 42 | # Search widget configuration 43 | search: 44 | prompt: backend::lang.list.search_prompt 45 | -------------------------------------------------------------------------------- /controllers/galleries/config_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/gallery/columns.yaml 7 | 8 | # Model Class name 9 | modelClass: October\Test\Models\Gallery 10 | 11 | # List Title 12 | title: Manage Galleries 13 | 14 | # Link URL for each record 15 | recordUrl: october/test/galleries/update/:id 16 | 17 | # Message to display if the list is empty 18 | noRecordsMessage: backend::lang.list.no_records 19 | 20 | # Records to display per page 21 | recordsPerPage: 20 22 | 23 | # Displays the list column set up button 24 | showSetup: true 25 | 26 | # Displays the sorting link on each column 27 | showSorting: true 28 | 29 | # Default sorting column 30 | # defaultSort: 31 | # column: created_at 32 | # direction: desc 33 | 34 | # Display checkboxes next to each record 35 | # showCheckboxes: true 36 | 37 | # Toolbar widget configuration 38 | toolbar: 39 | # Partial for toolbar buttons 40 | buttons: list_toolbar 41 | 42 | # Search widget configuration 43 | search: 44 | prompt: backend::lang.list.search_prompt 45 | -------------------------------------------------------------------------------- /controllers/trees/config_members_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/member/columns.yaml 7 | 8 | # Model Class name 9 | modelClass: October\Test\Models\Member 10 | 11 | # List Title 12 | title: Manage Members 13 | 14 | # Link URL for each record 15 | recordUrl: october/test/members/update/:id 16 | 17 | # Message to display if the list is empty 18 | noRecordsMessage: backend::lang.list.no_records 19 | 20 | # Records to display per page 21 | recordsPerPage: 20 22 | 23 | # Displays the list column set up button 24 | showSetup: true 25 | 26 | # Show tree 27 | # showTree: true 28 | # treeExpanded: true 29 | 30 | # Show tree (v2) 31 | structure: 32 | showTree: true 33 | showReorder: true 34 | maxDepth: 2 35 | 36 | # Display checkboxes next to each record 37 | # showCheckboxes: true 38 | 39 | # Toolbar widget configuration 40 | toolbar: 41 | # Partial for toolbar buttons 42 | buttons: list_members_toolbar 43 | 44 | # Search widget configuration 45 | search: 46 | prompt: backend::lang.list.search_prompt 47 | -------------------------------------------------------------------------------- /controllers/people/config_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/person/columns.yaml 7 | 8 | # Model Class name 9 | modelClass: October\Test\Models\Person 10 | 11 | # List Title 12 | title: Manage Peoples 13 | 14 | # Link URL for each record 15 | recordUrl: october/test/people/update/:id 16 | 17 | # Message to display if the list is empty 18 | noRecordsMessage: backend::lang.list.no_records 19 | 20 | # Records to display per page 21 | recordsPerPage: 20 22 | 23 | # Displays the list column set up button 24 | showSetup: true 25 | 26 | # Displays the sorting link on each column 27 | showSorting: true 28 | 29 | # Default sorting column 30 | # defaultSort: 31 | # column: created_at 32 | # direction: desc 33 | 34 | # Display checkboxes next to each record 35 | # showCheckboxes: true 36 | 37 | # Toolbar widget configuration 38 | toolbar: 39 | # Partial for toolbar buttons 40 | buttons: list_toolbar 41 | 42 | # Search widget configuration 43 | search: 44 | prompt: backend::lang.list.search_prompt 45 | mode: any 46 | -------------------------------------------------------------------------------- /controllers/themes/config_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/theme/columns.yaml 7 | 8 | # Model Class name 9 | modelClass: October\Test\Models\Theme 10 | 11 | # List Title 12 | title: Manage Themes 13 | 14 | # Link URL for each record 15 | recordUrl: october/test/themes/update/:id 16 | # recordOnClick: popup 17 | 18 | # Message to display if the list is empty 19 | noRecordsMessage: backend::lang.list.no_records 20 | 21 | # Records to display per page 22 | recordsPerPage: 20 23 | 24 | # Displays the list column set up button 25 | showSetup: true 26 | 27 | # Displays the sorting link on each column 28 | showSorting: true 29 | 30 | # Default sorting column 31 | # defaultSort: 32 | # column: created_at 33 | # direction: desc 34 | 35 | # Display checkboxes next to each record 36 | # showCheckboxes: true 37 | 38 | # Toolbar widget configuration 39 | toolbar: 40 | # Partial for toolbar buttons 41 | buttons: list_toolbar 42 | 43 | # Search widget configuration 44 | search: 45 | prompt: backend::lang.list.search_prompt 46 | -------------------------------------------------------------------------------- /controllers/phones/config_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/phone/columns.yaml 7 | 8 | # Model Class name 9 | modelClass: October\Test\Models\Phone 10 | 11 | # List Title 12 | title: Manage Phones 13 | 14 | # Link URL for each record 15 | recordUrl: october/test/phones/update/:id 16 | 17 | # Message to display if the list is empty 18 | noRecordsMessage: backend::lang.list.no_records 19 | 20 | # Records to display per page 21 | recordsPerPage: 20 22 | 23 | # Displays the list column set up button 24 | showSetup: true 25 | 26 | # Displays the sorting link on each column 27 | showSorting: true 28 | 29 | # Default sorting column 30 | # defaultSort: 31 | # column: created_at 32 | # direction: desc 33 | 34 | # Display checkboxes next to each record 35 | # showCheckboxes: true 36 | 37 | # Toolbar widget configuration 38 | toolbar: 39 | # Partial for toolbar buttons 40 | buttons: list_toolbar 41 | 42 | # Search widget configuration 43 | search: 44 | prompt: backend::lang.list.search_prompt 45 | scope: customSearch 46 | -------------------------------------------------------------------------------- /controllers/trees/config_categories_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/category/columns.yaml 7 | 8 | # Model Class name 9 | modelClass: October\Test\Models\Category 10 | 11 | # List Title 12 | title: Manage Categories 13 | 14 | # Link URL for each record 15 | recordUrl: october/test/categories/update/:id 16 | 17 | # Message to display if the list is empty 18 | noRecordsMessage: backend::lang.list.no_records 19 | 20 | # Records to display per page 21 | recordsPerPage: 20 22 | 23 | # Displays the list column set up button 24 | showSetup: true 25 | 26 | # Show tree (v1) 27 | # showTree: true 28 | # treeExpanded: true 29 | 30 | # Show tree (v2) 31 | structure: 32 | showTree: true 33 | showReorder: true 34 | maxDepth: 2 35 | dragRow: false 36 | permissions: general.backend.perform_updates 37 | 38 | # Toolbar widget configuration 39 | toolbar: 40 | # Partial for toolbar buttons 41 | buttons: list_categories_toolbar 42 | 43 | # Search widget configuration 44 | search: 45 | prompt: backend::lang.list.search_prompt 46 | -------------------------------------------------------------------------------- /models/UserRolePivot.php: -------------------------------------------------------------------------------- 1 | 'required|min:3', 28 | ]; 29 | 30 | public $belongsTo = [ 31 | 'country' => Country::class, 32 | ]; 33 | 34 | // Unsupported 35 | public $attachOne = [ 36 | 'pic' => \System\Models\File::class 37 | ]; 38 | 39 | /** 40 | * getEvolutionOptions 41 | */ 42 | public function getEvolutionOptions() 43 | { 44 | return [ 45 | 1 => 'Primate', 46 | 2 => 'Humanoid', 47 | 3 => 'Homo Sapiens', 48 | ]; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /controllers/people/_test_modal.htm: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 36 | 37 | -------------------------------------------------------------------------------- /controllers/pages/_list_toolbar.php: -------------------------------------------------------------------------------- 1 |
2 | 5 | New Page 6 | 7 | 8 | 21 | 22 | 25 | Export Records 26 | 27 | 30 | Import Records 31 | 32 |
33 | -------------------------------------------------------------------------------- /controllers/locations/_list_toolbar.htm: -------------------------------------------------------------------------------- 1 |
2 | 5 | New Location 6 | 7 | 8 | 21 | 24 | Manage Countries 25 | 26 | 29 | Manage Cities 30 | 31 |
32 | -------------------------------------------------------------------------------- /controllers/users/config_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/user/columns.yaml 7 | 8 | # Displays the list filter 9 | filter: $/october/test/models/user/scopes.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\User 13 | 14 | # List Title 15 | title: Manage Users 16 | 17 | # Link URL for each record 18 | recordUrl: october/test/users/update/:id 19 | 20 | # Message to display if the list is empty 21 | noRecordsMessage: backend::lang.list.no_records 22 | 23 | # Records to display per page 24 | recordsPerPage: 20 25 | 26 | # Displays the list column set up button 27 | showSetup: true 28 | 29 | # Displays the sorting link on each column 30 | showSorting: true 31 | 32 | # Default sorting column 33 | defaultSort: 34 | column: updated_at 35 | direction: desc 36 | 37 | # Display checkboxes next to each record 38 | # showCheckboxes: true 39 | 40 | # Toolbar widget configuration 41 | toolbar: 42 | # Partial for toolbar buttons 43 | buttons: list_toolbar 44 | 45 | # Search widget configuration 46 | search: 47 | prompt: backend::lang.list.search_prompt 48 | 49 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | ./tests 15 | ./tests/browser 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /controllers/Galleries.php: -------------------------------------------------------------------------------- 1 | getController() instanceof \October\Test\Controllers\Galleries) { 31 | if ($posts = $form->getField('posts')) { 32 | $posts->readOnly = true; 33 | // $posts->previewMode = true; 34 | } 35 | } 36 | }); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /controllers/reviews/config_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/review/columns.yaml 7 | 8 | # Model Class name 9 | modelClass: October\Test\Models\Review 10 | 11 | # List Title 12 | title: Manage Reviews 13 | 14 | # Link URL for each record 15 | recordUrl: october/test/reviews/update/:id 16 | 17 | # Message to display if the list is empty 18 | noRecordsMessage: backend::lang.list.no_records 19 | 20 | # Records to display per page 21 | recordsPerPage: 20 22 | 23 | # Displays the list column set up button 24 | showSetup: true 25 | 26 | # Displays the sorting link on each column 27 | showSorting: true 28 | 29 | # Default sorting column 30 | # defaultSort: 31 | # column: created_at 32 | # direction: desc 33 | 34 | # Display checkboxes next to each record 35 | # showCheckboxes: true 36 | 37 | # Toolbar widget configuration 38 | toolbar: 39 | # Partial for toolbar buttons 40 | buttons: list_toolbar 41 | 42 | # Search widget configuration 43 | search: 44 | prompt: backend::lang.list.search_prompt 45 | 46 | # Custom view path 47 | customViewPath: $/october/test/controllers/reviews/list 48 | -------------------------------------------------------------------------------- /models/Tag.php: -------------------------------------------------------------------------------- 1 | 'required', 32 | ]; 33 | 34 | /** 35 | * @var bool Use timestamps 36 | */ 37 | public $timestamps = false; 38 | 39 | /** 40 | * @var array Relations 41 | */ 42 | public $belongsToMany = [ 43 | 'posts' => [ 44 | Post::class, 45 | 'table' => 'october_test_posts_tags', 46 | 'key' => 'tag_id', 47 | 'otherKey' => 'post_id' 48 | ] 49 | ]; 50 | 51 | /** 52 | * getFullNameAttribute 53 | */ 54 | public function getFullNameAttribute() 55 | { 56 | return $this->name . ' Grossbard'; 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /models/phone/fields.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Form Field Definitions 3 | # =================================== 4 | 5 | fields: 6 | 7 | name: 8 | label: Name 9 | 10 | number: 11 | label: Number 12 | 13 | # Record Finder (Default) 14 | person: 15 | context: [create, update, recordfinder] 16 | label: Record Finder 17 | comment: Record finder field. 18 | type: recordfinder 19 | list: $/october/test/models/person/columns.yaml 20 | prompt: Click the %s to find an alternative person 21 | nameFrom: name 22 | descriptionFrom: number 23 | searchMode: any 24 | 25 | # Relation Controller 26 | person@relationcontroller: 27 | label: Relation Controller 28 | commentAbove: RelationController used as a partial field type. 29 | type: partial 30 | path: person 31 | 32 | # Proxy Fields 33 | person[name]: 34 | context: proxyfields 35 | span: auto 36 | label: Person Name 37 | comment: Proxy text field for Person model. 38 | 39 | person[bio]: 40 | context: proxyfields 41 | span: auto 42 | label: Person Bio 43 | comment: Proxy text field for Person model. 44 | -------------------------------------------------------------------------------- /controllers/cities/config_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/city/columns.yaml 7 | 8 | # Model Class name 9 | modelClass: October\Test\Models\City 10 | 11 | # List Title 12 | title: Manage Cities 13 | 14 | # Link URL for each record 15 | recordUrl: october/test/cities/update/:id 16 | 17 | # Message to display if the list is empty 18 | noRecordsMessage: backend::lang.list.no_records 19 | 20 | # Records to display per page 21 | recordsPerPage: 20 22 | 23 | # Display page numbers with pagination, disable to improve performance 24 | showPageNumbers: true 25 | 26 | # Displays the list column set up button 27 | showSetup: true 28 | 29 | # Displays the sorting link on each column 30 | showSorting: true 31 | 32 | # Default sorting column 33 | # defaultSort: 34 | # column: created_at 35 | # direction: desc 36 | 37 | # Display checkboxes next to each record 38 | showCheckboxes: true 39 | 40 | # Toolbar widget configuration 41 | toolbar: 42 | # Partial for toolbar buttons 43 | buttons: list_toolbar 44 | 45 | # Search widget configuration 46 | search: 47 | prompt: backend::lang.list.search_prompt 48 | -------------------------------------------------------------------------------- /controllers/companies/config_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/company/columns.yaml 7 | 8 | # Model Class name 9 | modelClass: October\Test\Models\Company 10 | 11 | # List Title 12 | title: Manage Companies 13 | 14 | # Link URL for each record 15 | recordUrl: october/test/companies/update/:id 16 | 17 | # Message to display if the list is empty 18 | noRecordsMessage: backend::lang.list.no_records 19 | 20 | # Records to display per page 21 | recordsPerPage: 20 22 | 23 | # Display page numbers with pagination, disable to improve performance 24 | showPageNumbers: true 25 | 26 | # Displays the list column set up button 27 | showSetup: true 28 | 29 | # Displays the sorting link on each column 30 | showSorting: true 31 | 32 | # Default sorting column 33 | defaultSort: 34 | column: id 35 | direction: asc 36 | 37 | # Display checkboxes next to each record 38 | showCheckboxes: true 39 | 40 | # Toolbar widget configuration 41 | toolbar: 42 | # Partial for toolbar buttons 43 | buttons: list_toolbar 44 | 45 | # Search widget configuration 46 | search: 47 | prompt: backend::lang.list.search_prompt 48 | -------------------------------------------------------------------------------- /controllers/orders/config_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/order/columns.yaml 7 | 8 | # Model Class name 9 | modelClass: October\Test\Models\Order 10 | 11 | # List Title 12 | title: Manage Orders 13 | 14 | # Link URL for each record 15 | recordUrl: october/test/orders/update/:id 16 | 17 | # Message to display if the list is empty 18 | noRecordsMessage: backend::lang.list.no_records 19 | 20 | # Records to display per page 21 | recordsPerPage: 20 22 | 23 | # Display page numbers with pagination, disable to improve performance 24 | showPageNumbers: true 25 | 26 | # Displays the list column set up button 27 | showSetup: true 28 | 29 | # Displays the sorting link on each column 30 | showSorting: true 31 | 32 | # Default sorting column 33 | # defaultSort: 34 | # column: created_at 35 | # direction: desc 36 | 37 | # Display checkboxes next to each record 38 | showCheckboxes: true 39 | 40 | # Toolbar widget configuration 41 | toolbar: 42 | # Partial for toolbar buttons 43 | buttons: list_toolbar 44 | 45 | # Search widget configuration 46 | search: 47 | prompt: backend::lang.list.search_prompt 48 | -------------------------------------------------------------------------------- /controllers/posts/config_tags_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/tag/columns.yaml 7 | 8 | # Model Class name 9 | modelClass: October\Test\Models\Tag 10 | 11 | # List Title 12 | title: Manage Tags 13 | 14 | # Link URL for each record 15 | # recordUrl: october/test/posts/update/:id 16 | recordOnClick: "$.popup({ handler: 'onUpdateForm', extraData: { tag_mode: 1, record_id: ':id' } })" 17 | 18 | # Message to display if the list is empty 19 | noRecordsMessage: backend::lang.list.no_records 20 | 21 | # Records to display per page 22 | recordsPerPage: 20 23 | 24 | # Displays the list column set up button 25 | showSetup: true 26 | 27 | # Displays the sorting link on each column 28 | showSorting: true 29 | 30 | # Default sorting column 31 | # defaultSort: 32 | # column: created_at 33 | # direction: desc 34 | 35 | # Display checkboxes next to each record 36 | # showCheckboxes: true 37 | 38 | # Toolbar widget configuration 39 | toolbar: 40 | # Partial for toolbar buttons 41 | buttons: list_tags_toolbar 42 | 43 | # Search widget configuration 44 | search: 45 | prompt: backend::lang.list.search_prompt 46 | -------------------------------------------------------------------------------- /controllers/products/config_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/product/columns.yaml 7 | 8 | # Model Class name 9 | modelClass: October\Test\Models\Product 10 | 11 | # List Title 12 | title: Manage Products 13 | 14 | # Link URL for each record 15 | recordUrl: october/test/products/update/:id 16 | 17 | # Message to display if the list is empty 18 | noRecordsMessage: backend::lang.list.no_records 19 | 20 | # Records to display per page 21 | recordsPerPage: 20 22 | 23 | # Display page numbers with pagination, disable to improve performance 24 | showPageNumbers: true 25 | 26 | # Displays the list column set up button 27 | showSetup: true 28 | 29 | # Displays the sorting link on each column 30 | showSorting: true 31 | 32 | # Default sorting column 33 | # defaultSort: 34 | # column: created_at 35 | # direction: desc 36 | 37 | # Display checkboxes next to each record 38 | showCheckboxes: true 39 | 40 | # Toolbar widget configuration 41 | toolbar: 42 | # Partial for toolbar buttons 43 | buttons: list_toolbar 44 | 45 | # Search widget configuration 46 | search: 47 | prompt: backend::lang.list.search_prompt 48 | -------------------------------------------------------------------------------- /blueprints/blog/blog.yaml: -------------------------------------------------------------------------------- 1 | uuid: b6884c2f-81c8-4f07-bf93-0f0424b07a45 2 | handle: Test\Blog 3 | type: stream 4 | name: Test Posts 5 | useDrafts: true 6 | pagefinder: false 7 | multisite: true 8 | 9 | primaryNavigation: 10 | label: Playground 2 11 | icon: icon-child 12 | order: 199 13 | 14 | navigation: 15 | mode: primary 16 | icon: icon-pencil 17 | order: 100 18 | 19 | extraNavigation: 20 | product_companies: 21 | label: Product Companies 22 | order: 210 23 | icon: icon-group 24 | url: october/test/companies 25 | 26 | groups: 27 | regular_post: 28 | name: Regular Post 29 | fields: 30 | content: 31 | tab: Edit 32 | label: Content 33 | type: richeditor 34 | span: adaptive 35 | 36 | blog_post_content: 37 | type: mixin 38 | source: Test\Blog\PostContent 39 | 40 | markdown_post: 41 | name: Markdown Post 42 | fields: 43 | content: 44 | tab: Edit 45 | label: Content 46 | type: markdown 47 | span: adaptive 48 | 49 | blog_post_content: 50 | type: mixin 51 | source: Test\Blog\PostContent 52 | -------------------------------------------------------------------------------- /updates/create_general_tables.php: -------------------------------------------------------------------------------- 1 | increments('id'); 14 | $table->string('type')->nullable(); 15 | $table->string('name')->nullable(); 16 | $table->string('label')->nullable(); 17 | $table->string('code')->nullable(); 18 | $table->boolean('is_default')->default(false); 19 | $table->integer('sort_order')->nullable(); 20 | $table->timestamps(); 21 | }); 22 | 23 | Schema::create('october_test_repeater_items', function($table) { 24 | $table->increments('id'); 25 | $table->integer('parent_id')->unsigned()->nullable()->index(); 26 | $table->mediumText('value')->nullable(); 27 | $table->integer('sort_order')->nullable(); 28 | $table->timestamps(); 29 | }); 30 | } 31 | 32 | public function down() 33 | { 34 | Schema::dropIfExists('october_test_attributes'); 35 | Schema::dropIfExists('october_test_repeater_items'); 36 | } 37 | }; 38 | 39 | -------------------------------------------------------------------------------- /console/SeedPosts.php: -------------------------------------------------------------------------------- 1 | info('Seeding in progress, please wait (this can take few minutes)'); 29 | 30 | for ($i = 0; $i < 5000; $i++) { 31 | $post = Post::create([ 32 | 'name' => $faker->sentence(5, true), 33 | 'content' => $faker->sentence(15, true) 34 | ]); 35 | 36 | for ($j = 0; $j < 4; $j++) { 37 | $post->comments()->create([ 38 | 'name' => $faker->userName, 39 | 'content' => $faker->sentence(15, true) 40 | ]); 41 | } 42 | } 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /models/role/scopes.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # Filter Scope Definitions 3 | # =================================== 4 | 5 | scopes: 6 | id_group: 7 | label: ID Group 8 | type: group 9 | conditions: id in (:filtered) 10 | options: 11 | '1': One 12 | '2': Two 13 | '3': Three 14 | 15 | id_range: 16 | label: ID Range 17 | type: numberrange 18 | conditions: id >= :min and id <= :max 19 | 20 | id_number: 21 | label: ID Number 22 | type: number 23 | conditions: 24 | greater: id >= :value 25 | between: id >= :min and id <= :max 26 | 27 | language: 28 | label: Language 29 | type: dropdown 30 | conditions: language = :value 31 | emptyOption: All Languages 32 | optionsMethod: System\Helpers\Preset::locales 33 | 34 | name: 35 | label: Name 36 | type: text 37 | conditions: 38 | equals: name = :value 39 | contains: name like %:value% 40 | 41 | created_at: 42 | label: Created 43 | type: date 44 | conditions: 45 | before: october_test_roles.created_at <= :value 46 | between: october_test_roles.created_at >= :after AND october_test_roles.created_at <= :before 47 | -------------------------------------------------------------------------------- /contentfields/MyContentField.php: -------------------------------------------------------------------------------- 1 | addFormField($this->fieldName, $this->label) 21 | ->useConfig($this->config) 22 | ->displayAs('partial') 23 | ->path('$/october/test/contentfields/mycontentfield/partials/_field_mycontentfield.php'); 24 | } 25 | 26 | /** 27 | * extendModelObject will extend the record model. 28 | */ 29 | public function extendModelObject($model) 30 | { 31 | $model->addJsonable($this->fieldName); 32 | } 33 | 34 | /** 35 | * extendDatabaseTable adds any required columns to the database. 36 | */ 37 | public function extendDatabaseTable($table) 38 | { 39 | $table->mediumText($this->fieldName)->nullable(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /controllers/Channels.php: -------------------------------------------------------------------------------- 1 | withTrashed(); 38 | } 39 | 40 | /** 41 | * update_onRestore handles restoring users 42 | */ 43 | public function update_onRestore($recordId) 44 | { 45 | $this->formFindModelObject($recordId)->restore(); 46 | 47 | Flash::success(Lang::get('backend::lang.form.restore_success', ['name' => Lang::get('backend::lang.user.name')])); 48 | 49 | return Redirect::refresh(); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /controllers/pages/config_list.yaml: -------------------------------------------------------------------------------- 1 | # =================================== 2 | # List Behavior Config 3 | # =================================== 4 | 5 | # Model List Column configuration 6 | list: $/october/test/models/page/columns.yaml 7 | 8 | # Displays the list filter 9 | filter: $/october/test/models/page/scopes.yaml 10 | 11 | # Model Class name 12 | modelClass: October\Test\Models\Page 13 | 14 | # List Title 15 | title: Manage Pages 16 | 17 | # Link URL for each record 18 | recordUrl: october/test/pages/update/:id 19 | 20 | # Message to display if the list is empty 21 | noRecordsMessage: backend::lang.list.no_records 22 | 23 | # Records to display per page 24 | recordsPerPage: 20 25 | 26 | # Display page numbers with pagination, disable to improve performance 27 | showPageNumbers: true 28 | 29 | # Displays the list column set up button 30 | showSetup: true 31 | 32 | # Displays the sorting link on each column 33 | showSorting: true 34 | 35 | # Default sorting column 36 | # defaultSort: 37 | # column: created_at 38 | # direction: desc 39 | 40 | # Display checkboxes next to each record 41 | showCheckboxes: true 42 | 43 | # Toolbar widget configuration 44 | toolbar: 45 | # Partial for toolbar buttons 46 | buttons: list_toolbar 47 | 48 | # Search widget configuration 49 | search: 50 | prompt: backend::lang.list.search_prompt 51 | --------------------------------------------------------------------------------