Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
/dist
/node_modules
/mix-manifest.json
/yarn.lock
/js/cp.js
/package-lock.json
/vendor
/composer.lock
/js/cp.js
package-lock.json
composer.lock
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
22
14 changes: 8 additions & 6 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,24 @@
}
],
"require": {
"php": "^8.2",
"laravel/framework": "^10.0 || ^11.0 || ^12.0",
"php": "^8.3",
"pixelfear/composer-dist-plugin": "^0.1",
"statamic/cms": "^5.0"
"statamic/cms": "^6.0"
},
"require-dev": {
"mockery/mockery": "^1.3.1",
"nunomaduro/collision": "^8.1",
"orchestra/testbench": "^9.0 || ^10.0",
"orchestra/testbench": "^10.0",
"phpunit/phpunit": "^11.0",
"spatie/laravel-ray": "^1.32"
},
"autoload": {
"psr-4": {
"TransformStudios\\Review\\": "src"
}
},
"files": [
"src/helpers.php"
]
},
"config": {
"allow-plugins": {
Expand All @@ -33,7 +35,7 @@
},
"extra": {
"download-dist": {
"path": "dist",
"path": "resources/dist",
"url": "https://github.com/transformstudios/statamic-review/releases/download/{$version}/dist.tar.gz"
},
"laravel": {
Expand Down
13 changes: 7 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
{
"dependencies": {
"vue": "^2.6.11"
},
"scripts": {
"dev": "vite",
"build": "vite build",
"production": "vite build"
},
"dependencies": {
"@statamic/cms": "file:./vendor/statamic/cms/resources/dist-package",
"@tailwindcss/vite": "^4.1.18",
"tailwindcss": "^4.1.18"
},
"devDependencies": {
"@vitejs/plugin-vue2": "^2.2.0",
"laravel-vite-plugin": "^0.7.2",
"vite": "^4.0.0"
"laravel-vite-plugin": "^2.0",
"vite": "^7.0"
}
}
1 change: 1 addition & 0 deletions resources/css/cp.css
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@import "@statamic/cms/tailwind.css";
93 changes: 25 additions & 68 deletions resources/js/components/fieldtypes/CopyReviewUrlButton.vue
Original file line number Diff line number Diff line change
@@ -1,75 +1,32 @@
<template>
<div>
<button
type="button"
class="btn"
:disabled="!show"
<Button
@click="copyToClipboard"
v-text="__('Copy Review URL to Clipboard')"
>
</button>
:disabled="!show"
:text="__('Copy Review URL to Clipboard')"
/>
</div>
</template>

<script>
export default {
mixins: [Fieldtype],

computed: {
entryDate() {
let dateTime = this.publishForm.values.date;

if (!dateTime) {
return null
}

return moment(dateTime.date + 'T' + dateTime.time, 'YYYY-MM-DDTHH:mm');
},

isFuture() {
return this.entryDate?.isAfter(moment());
},

isWorkingCopy() {
return this.publishForm.revisionsEnabled && this.publishForm.isWorkingCopy;
},

publishForm() {
let vm = this;
while (true) {
let parent = vm.$parent;

if (!parent) {
return false;
}

if (parent.$options._componentTag == "entry-publish-form") {
return parent;
}
vm = parent;
}
},

show() {
if (!this.publishForm) {
return false;
}

if (this.publishForm.isDirty) {
return false;
}

return this.isWorkingCopy || !this.publishForm.published || this.isFuture;
},

},

methods: {
copyToClipboard() {
navigator.clipboard.writeText(this.meta.site_url);
this.$toast.success(__("Review URL copied to clipboard"));
},

},
};
<script setup>
import { computed } from 'vue';
import { Fieldtype } from '@statamic/cms';
import { toast } from '@statamic/cms/api';
import { Button, injectPublishContext } from '@statamic/cms/ui';

const props = defineProps(Fieldtype.props);
const { isDirty, isWorkingCopy, revisionsEnabled, values } = injectPublishContext();

const entryDate = computed(() => values.value.date ? new Date(values.value.date) : null);
const isFuture = computed(() => entryDate.value > Date.now());
const show = computed(() => !isDirty.value &&
((isWorkingCopy.value && revisionsEnabled.value) ||
!values.value.published ||
isFuture.value)
);

function copyToClipboard() {
navigator.clipboard.writeText(props.meta.site_url);
toast.success(__("Review URL copied to clipboard"));
};
</script>
3 changes: 1 addition & 2 deletions src/Fieldtypes/Review.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
namespace TransformStudios\Review\Fieldtypes;

use Statamic\Entries\Collection;
use Statamic\Entries\Entry;
use Statamic\Fields\Fieldtype;
use TransformStudios\Review\Support\URL;

Expand Down Expand Up @@ -34,6 +33,6 @@ public function preload()
return [];
}

return ['site_url' => URL::reviewUrl($entry)];
return ['site_url' => review_url($entry)];
}
}
22 changes: 0 additions & 22 deletions src/Http/Middleware/SetSite.php

This file was deleted.

13 changes: 1 addition & 12 deletions src/ServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,11 @@
namespace TransformStudios\Review;

use Statamic\Providers\AddonServiceProvider;
use TransformStudios\Review\Actions\OpenReview;
use TransformStudios\Review\Fieldtypes\Review;

class ServiceProvider extends AddonServiceProvider
{
protected $actions = [
OpenReview::class,
];

protected $fieldtypes = [
Review::class,
];

protected $vite = [
'input' => ['resources/js/cp.js'],
'input' => ['resources/css/cp.css', 'resources/js/cp.js'],
'publicDirectory' => 'dist',
'hotFile' => __DIR__.'/../dist/hot',
];
}
7 changes: 2 additions & 5 deletions src/Support/URL.php → src/helpers.php
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
<?php

namespace TransformStudios\Review\Support;

use Statamic\Entries\Entry;
use Statamic\Facades\Token as TokenFacade;
use Statamic\Tokens\Token;
use TransformStudios\Review\TokenHandler;

class URL
{
public static function reviewUrl(Entry $entry): string
if (! function_exists('review_url')) {
function review_url(Entry $entry): string
{
/** @var \Statamic\Tokens\Token */
if (! $token = TokenFacade::find($entry->id())) {
Expand Down
12 changes: 5 additions & 7 deletions vite.config.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import vue from '@vitejs/plugin-vue2';
import statamic from '@statamic/cms/vite-plugin';
import tailwindcss from '@tailwindcss/vite';

export default defineConfig({
plugins: [
laravel({
input: [
'resources/js/cp.js'
],
refresh: true,
input: ['resources/css/cp.css', 'resources/js/cp.js'],
publicDirectory: 'dist',
hotFile: 'dist/hot',
}),
vue(),
statamic(),
tailwindcss()
],
});
Loading