Skip to content

Commit

Permalink
Fix site selector dropdown
Browse files Browse the repository at this point in the history
  • Loading branch information
bencroker committed Mar 27, 2024
1 parent b90dd49 commit 35cb9d0
Show file tree
Hide file tree
Showing 13 changed files with 162 additions and 105 deletions.
1 change: 0 additions & 1 deletion .gitattributes
Expand Up @@ -3,7 +3,6 @@
/.github/ export-ignore
/.gitignore export-ignore
/ecs.php export-ignore
/codeception.yml export-ignore
/phpstan.neon export-ignore
/tests/ export-ignore

Expand Down
42 changes: 42 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.yaml
@@ -0,0 +1,42 @@
name: Bug Report
description: Create a bug report for this plugin.
labels:
- bug
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to submit a bug report! To ensure this hasn’t already been reported, please first search existing issues.
To rule out that this isn’t a setup or configuration issue, please read the docs.
If you still believe you’ve found a bug, please provide a clear and concise description, including:
- What is happening and what you expected to happen.
- Steps to reproduce the issue.
- Screenshots, if applicable.
- type: textarea
id: body
attributes:
label: Bug Report
description: Please provide a clear and concise description of the bug.
validations:
required: true
- type: input
id: pluginVersion
attributes:
label: Plugin Version
description: Provide the plugin version that this relates to, ideally the latest version.
validations:
required: true
- type: input
id: craftVersion
attributes:
label: Craft CMS Version
description: Provide the version of Craft that is installed.
validations:
required: true
- type: input
id: phpVersion
attributes:
label: PHP Version
description: Provide the PHP version, if applicable.
14 changes: 0 additions & 14 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1 @@
blank_issues_enabled: false
25 changes: 25 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.yaml
@@ -0,0 +1,25 @@
name: Feature Request
description: Suggest a new feature for this plugin.
labels:
- enhancement
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to submit a feature request! To ensure this isn’t already on our radar, please first search existing issues.
If you still believe you have a new suggestion, please provide a clear and concise description, including:
- What problem you believe your feature request can solve.
- Any alternative solutions or features you have already considered.
- type: textarea
id: body
attributes:
label: Feature Request
description: Please provide a clear and concise suggestion for a feature.
validations:
required: true
- type: input
id: pluginVersion
attributes:
label: Plugin Version
description: Provide the plugin version that this relates to, ideally the latest version.
12 changes: 0 additions & 12 deletions .github/ISSUE_TEMPLATE/feature_request.md

This file was deleted.

10 changes: 0 additions & 10 deletions .github/ISSUE_TEMPLATE/support-request.md

This file was deleted.

23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/support-request.yaml
@@ -0,0 +1,23 @@
name: Support Request
description: Ask a question about this plugin.
labels:
- question
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to submit a support request! To ensure your question hasn’t already been asked and answered, please first search existing issues.
If your question is still unanswered, please provide a clear and concise description. Note that we are diligent about documentation, so please check whether your question is answered by the plugin docs before submitting.
- type: textarea
id: body
attributes:
label: Support Request
description: Please provide a clear and concise question.
validations:
required: true
- type: input
id: pluginVersion
attributes:
label: Plugin Version
description: Provide the plugin version that this relates to, ideally the latest version.
21 changes: 21 additions & 0 deletions CHANGELOG-WIP.md
@@ -0,0 +1,21 @@
# Release Notes for Sprig

## 3.0.0 - Unreleased

> {warning} Template caches and static page caches should be cleared after performing this update.
### Added

- Added compatibility with Craft 5.0.0.

### Changed

- Changed how the component configuration is encoded.

### Removed

- Removed the `sprig.script` variable.
- Removed the `s-on` attribute.
- Removed the `success` variable. Use `sprig.isSuccess` or `sprig.isError` instead.
- Removed the `flashes` variable. Use `sprig.message` or `craft.app.session.flash()` instead.
- Removed the `id` variable. Use `sprig.modelId` instead.
12 changes: 12 additions & 0 deletions CHANGELOG.md
@@ -1,5 +1,17 @@
# Release Notes for Sprig

## 3.0.0-beta.2 - 2024-03-26

### Fixed

- Fixed the site selector dropdown.

### Removed

- Removed the `success` variable. Use `sprig.isSuccess` or `sprig.isError` instead.
- Removed the `flashes` variable. Use `sprig.message` or `craft.app.session.flash()` instead.
- Removed the `id` variable. Use `sprig.modelId` instead.

## 3.0.0-beta.1 - 2024-02-14

> {warning} Template caches and static page caches should be cleared after performing this update.
Expand Down
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -7,7 +7,7 @@

### A reactive Twig component framework for Craft CMS.

Sprig is a free plugin for [Craft CMS](https://craftcms.com/) that allows you to create reactive components from Twig templates and/or PHP classes. These components can re-render themselves on user-triggered events (clicks, changes to input fields, form submissions, etc.) using AJAX requests, without requiring you to write a single line of JavaScript.
Sprig is a free plugin for [Craft CMS](https://craftcms.com/) that allows you to create reactive components from Twig templates and/or PHP classes. These components can re-render themselves on user-triggered events (clicks, changes to input fields, form submissions, etc.) using AJAX requests, without requiring you to write a single line of JavaScript.

Sprig enables common use-cases such as the following while completely avoiding full page refreshes:

Expand All @@ -31,7 +31,7 @@ This plugin is licensed for free under the MIT License.

## Requirements

This plugin requires [Craft CMS](https://craftcms.com/) 3.1.19 or later, or 4.0.0 or later.
This plugin requires [Craft CMS](https://craftcms.com/) 3.1.19 or later, or 4.0.0 or later, or 5.0.0 or later.

## Installation

Expand Down
18 changes: 9 additions & 9 deletions composer.json
@@ -1,29 +1,29 @@
{
"name": "putyourlightson/craft-sprig",
"description": "A reactive Twig component framework for Craft.",
"version": "3.0.0-beta.1",
"version": "3.0.0-beta.2",
"type": "craft-plugin",
"license": "mit",
"require": {
"php": "^8.2",
"craftcms/cms": "^5.0.0-beta.1",
"craftcms/cms": "^5.0.0",
"nystudio107/craft-code-editor": "^1.0.0",
"putyourlightson/craft-sprig-core": "^3.0.0-beta.1"
"putyourlightson/craft-sprig-core": "^3.0.0-beta.2"
},
"require-dev": {
"craftcms/ecs": "dev-main",
"craftcms/phpstan": "dev-main"
},
"scripts": {
"phpstan": "phpstan --ansi --memory-limit=1G",
"check-cs": "ecs check --ansi",
"fix-cs": "ecs check --fix --ansi"
},
"autoload": {
"psr-4": {
"putyourlightson\\sprig\\plugin\\": "src/"
}
},
"scripts": {
"phpstan": "phpstan --ansi --memory-limit=1G",
"check-cs": "ecs check --ansi",
"fix-cs": "ecs check --fix --ansi"
},
"config": {
"allow-plugins": {
"craftcms/plugin-installer": true,
Expand All @@ -44,7 +44,7 @@
"developer": "PutYourLightsOn",
"developerUrl": "https://putyourlightson.com/",
"documentationUrl": "https://putyourlightson.com/plugins/sprig",
"changelogUrl": "https://raw.githubusercontent.com/putyourlightson/craft-sprig/v2/CHANGELOG.md",
"changelogUrl": "https://raw.githubusercontent.com/putyourlightson/craft-sprig/v3/CHANGELOG.md",
"class": "putyourlightson\\sprig\\plugin\\Sprig"
}
}
84 changes: 27 additions & 57 deletions src/templates/index.twig
Expand Up @@ -7,76 +7,54 @@
{% set bundle = view.registerAssetBundle('putyourlightson\\sprig\\plugin\\assets\\PlaygroundAsset') %}
{% set resourcesUrl = bundle.baseUrl %}

{% block pageTitle %}
{% set crumbs = [{
label: playground ? playground.name : 'Components'|t('sprig'),
menu: {
items: [
{
heading: 'Sample Components'|t('sprig'),
items: allSamples|map(sample => {
label: sample.name,
url: 'sprig/' ~ sample.slug,
selected: sample.slug == slug,
})
},
{
heading: 'Saved Components'|t('sprig'),
items: allSaved|map(saved => {
label: saved.name,
url: 'sprig/' ~ saved.id,
selected: saved.id == playground.id ?? null,
})
},
],
},
}] %}

{% block pageTitle %}
<div style="width: 54px;">
{{ svg(craft.app.plugins.getPluginIconSvg('sprig')) }}
</div>

{{ parent() }}

{% endblock %}

{% block contextMenu %}

<div id="context-btngroup" class="btngroup">
<button type="button" id="context-btn" class="btn menubtn">
<span id="revision-label">{{ playground.name ?? '' }}</span>
</button>
<div class="menu">
{% if allSamples|length > 0 %}
<h6>{{ "Sample Components" | t('sprig') }}</h6>
<ul class="padded">
{% for sample in allSamples %}
<li>
<a href="{{ url('sprig/' ~ sample.slug) }}" class="{{ sample.slug == slug ? 'sel' }}">
{{ sample.name }}
</a>
</li>
{% endfor %}
</ul>
{% endif %}
{% if allSaved|length > 0 %}
<h6>{{ "Saved Components" | t('sprig') }}</h6>
<ul class="padded">
{% for saved in allSaved %}
<li>
<a href="{{ url('sprig/' ~ saved.id) }}"
class="{{ playground and playground.id == saved.id ? 'sel' }}">
{{ saved.name }}
</a>
</li>
{% endfor %}
</ul>
{% endif %}
</div>
</div>

{% if not craft.app.config.general.devMode %}
{% if craft.app.config.general.devMode %}
<span class="info warning" title="devMode is not enabled">
{{ 'Enable `devMode` to see Twig template errors.'|t('sprig')|markdown }}
</span>
{% endif %}

{% endblock %}


{% block actionButton %}

<form id="action-form" method="post">

{{ csrfInput() }}
<input type="hidden" name="action" value="sprig/playground/save">
<input type="hidden" name="id" value="{{ playground ? playground.id }}">
<input type="hidden" name="name" value="">
<textarea name="component" class="hidden"></textarea>
<textarea name="variables" class="hidden"></textarea>

<div class="flex">
<a href="https://putyourlightson.com/sprig" class="btn" target="_blank" rel="noopener">
{{ 'Learning Resources'|t('sprig') }}
</a>

{% if playground and not slug %}
<div class="btngroup">
<button type="button" class="btn submit formsubmit"
Expand All @@ -101,21 +79,16 @@
<button type="button" class="btn submit formsubmit">{{ 'Save'|t('sprig') }}</button>
{% endif %}
</div>

</form>

{% endblock %}


{% block main %}

<div class="playground">
<div>
<div class="variables content-pane">
<p class="light code">{{ 'Component Variables'|t('sprig') }}</p>
{% set variables = playground ? playground.variables : '' %}
<input id="input-variables" class="input code fullwidth field" value="{{ variables }}"
placeholder="x=1&y=2&z=3">
<input id="input-variables" class="input code fullwidth field" value="{{ variables }}" placeholder="x=1&y=2&z=3">
</div>
<div class="pane input-pane">
<p class="light code">{{ 'Component'|t('sprig') }}</p>
Expand All @@ -137,7 +110,6 @@
<button id="create" type="submit" class="btn submit topright">{{ 'Create'|t('sprig') }}</button>
</div>
</div>

<div>
<div class="variables content-pane">
<p class="light code">{{ 'Output Variables'|t('sprig') }}</p>
Expand All @@ -156,9 +128,7 @@
</div>
</div>
</div>

{% js %}
let resourcesUrl = '{{ resourcesUrl }}';
let resourcesUrl = '{{ resourcesUrl }}';
{% endjs %}

{% endblock %}

0 comments on commit 35cb9d0

Please sign in to comment.