Compare commits
	
		
			1 Commits
		
	
	
		
			master
			...
			neon-redes
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 445a12c17d | 
|  | @ -1,44 +0,0 @@ | ||||||
| name: Deploy Wishlist |  | ||||||
| on: |  | ||||||
|   push: |  | ||||||
|     branches: [ master ] |  | ||||||
|      |  | ||||||
| env: |  | ||||||
|   DEPLOY_DIR: ${{ secrets.DEPLOY_DIR }} |  | ||||||
| 
 |  | ||||||
| jobs: |  | ||||||
|   deploy: |  | ||||||
|     runs-on: ubuntu |  | ||||||
|     steps: |  | ||||||
|       - name: Checkout code |  | ||||||
|         uses: actions/checkout@v3 |  | ||||||
|          |  | ||||||
|       - name: Create .env file from secrets |  | ||||||
|         run: |  |  | ||||||
|           echo "$ENV_PROD" > .env |  | ||||||
|           if [ ! -s .env ]; then |  | ||||||
|             echo "Error: .env file is empty!" |  | ||||||
|             exit 1 |  | ||||||
|           fi |  | ||||||
|         env: |  | ||||||
|           ENV_PROD: ${{ secrets.ENV_PROD }} |  | ||||||
| 
 |  | ||||||
|       - name: Install PHP dependencies |  | ||||||
|         run: composer install |  | ||||||
| 
 |  | ||||||
|       - name: Install Node.js dependencies |  | ||||||
|         run: npm i |  | ||||||
| 
 |  | ||||||
|       - name: Build assets |  | ||||||
|         run: npm run build |  | ||||||
|          |  | ||||||
|       - name: Copy files to deployment directory |  | ||||||
|         run: |  |  | ||||||
|           chmod -R 777 ./ |  | ||||||
|           sudo rsync -av ./ ${DEPLOY_DIR}/ |  | ||||||
| 
 |  | ||||||
|       - name: Restart PHP service |  | ||||||
|         run: sudo systemctl restart php8.2-fpm |  | ||||||
| 
 |  | ||||||
|       - name: Restart Nginx |  | ||||||
|         run: sudo systemctl restart nginx |  | ||||||
|  | @ -17,5 +17,3 @@ yarn-error.log | ||||||
| /.fleet | /.fleet | ||||||
| /.idea | /.idea | ||||||
| /.vscode | /.vscode | ||||||
| composer.lock |  | ||||||
| package-lock.json |  | ||||||
|  |  | ||||||
|  | @ -1,15 +0,0 @@ | ||||||
| <?php |  | ||||||
| 
 |  | ||||||
| namespace App\Http\Controllers; |  | ||||||
| 
 |  | ||||||
| use App\Models\ServicesLink; |  | ||||||
| use Illuminate\Http\Request; |  | ||||||
| 
 |  | ||||||
| class ServiceLinksController extends Controller |  | ||||||
| { |  | ||||||
|     public function index() |  | ||||||
|     { |  | ||||||
|         $links = new ServicesLink(); |  | ||||||
|         return $links->all(); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  | @ -1,11 +0,0 @@ | ||||||
| <?php |  | ||||||
| 
 |  | ||||||
| namespace App\Models; |  | ||||||
| 
 |  | ||||||
| use Illuminate\Database\Eloquent\Factories\HasFactory; |  | ||||||
| use Illuminate\Database\Eloquent\Model; |  | ||||||
| 
 |  | ||||||
| class ServicesLink extends Model |  | ||||||
| { |  | ||||||
|     use HasFactory; |  | ||||||
| } |  | ||||||
|  | @ -1,29 +0,0 @@ | ||||||
| <?php |  | ||||||
| 
 |  | ||||||
| use Illuminate\Database\Migrations\Migration; |  | ||||||
| use Illuminate\Database\Schema\Blueprint; |  | ||||||
| use Illuminate\Support\Facades\Schema; |  | ||||||
| 
 |  | ||||||
| return new class extends Migration |  | ||||||
| { |  | ||||||
|     /** |  | ||||||
|      * Run the migrations. |  | ||||||
|      */ |  | ||||||
|     public function up(): void |  | ||||||
|     { |  | ||||||
|         Schema::create('services_links', function (Blueprint $table) { |  | ||||||
|             $table->id(); |  | ||||||
|             $table->string('name', 255); |  | ||||||
|             $table->string('link', 255); |  | ||||||
|             $table->timestamps(); |  | ||||||
|         }); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     /** |  | ||||||
|      * Reverse the migrations. |  | ||||||
|      */ |  | ||||||
|     public function down(): void |  | ||||||
|     { |  | ||||||
|         Schema::dropIfExists('services_links'); |  | ||||||
|     } |  | ||||||
| }; |  | ||||||
|  | @ -9,6 +9,49 @@ .box-gradient { | ||||||
|     border-radius: 14px; |     border-radius: 14px; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | .nice-bg { | ||||||
|  |     background-color: #000814 !important; | ||||||
|  |     background-size: 200% 200%!important; | ||||||
|  |     height: 100vh!important; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .nice-bg-sheet { | ||||||
|  |     background-color: #1e1f22 !important; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .bricks-bg { | ||||||
|  |     --s: 45px!important; /* control the size*/ | ||||||
|  |     --c1: #bb593e !important; | ||||||
|  |     --c2: #bb593e !important; | ||||||
|  |     --c3: #2c2e2a!important; | ||||||
|  | 
 | ||||||
|  |     --p:at 45% 40%,#0000 75%,; | ||||||
|  |     --g1:conic-gradient(var(--p) var(--c1) 0)!important; | ||||||
|  |     --g2:conic-gradient(var(--p) var(--c2) 0)!important; | ||||||
|  |     background: | ||||||
|  |         var(--g1),var(--g2) calc(2*var(--s)) 0, | ||||||
|  |         var(--g2) calc(3*var(--s)) var(--s), | ||||||
|  |         var(--g1) var(--s) var(--s) var(--c3)!important; | ||||||
|  |     background-size: calc(4*var(--s)) calc(2*var(--s))!important; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .nice-bg-border { | ||||||
|  |     border: 0.2rem solid #fff!important; | ||||||
|  |     border-radius: 2rem!important; | ||||||
|  |     padding: 0.4em!important; | ||||||
|  |     box-shadow: 0 0 .2rem #fff, | ||||||
|  |                 0 0 .2rem #fff, | ||||||
|  |                 0 0 2rem #bc13fe, | ||||||
|  |                 0 0 0.8rem #bc13fe, | ||||||
|  |                 0 0 2.8rem #bc13fe, | ||||||
|  |                 inset 0 0 1.3rem #bc13fe!important; | ||||||
|  |     animation: pulsate 1.5s infinite alternate!important; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .white-text { | ||||||
|  |     color: #fff!important; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| .neon-text { | .neon-text { | ||||||
|     color: #fff!important; |     color: #fff!important; | ||||||
|     text-shadow: |     text-shadow: | ||||||
|  | @ -22,18 +65,28 @@ .neon-text { | ||||||
|         0 0 34px #bc13fe !important; |         0 0 34px #bc13fe !important; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .neon-border { | @keyframes pulsate { | ||||||
|     border: 0.2rem solid #fff !important; |  | ||||||
|     border-radius: 2rem !important; |  | ||||||
|     box-shadow: 0 0 .2rem #fff, |  | ||||||
|     0 0 .2rem #fff, |  | ||||||
|     0 0 2rem #bc13fe, |  | ||||||
|     0 0 0.8rem #bc13fe, |  | ||||||
|     0 0 2.8rem #bc13fe, |  | ||||||
|     inset 0 0 1.3rem #bc13fe !important; |  | ||||||
|     animation: pulsate 1.5s infinite alternate !important; |  | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| .white-text { |     100% { | ||||||
|     color: white!important; |         box-shadow: | ||||||
|  |             0 0 4px #fff, | ||||||
|  |             0 0 11px #fff, | ||||||
|  |             0 0 19px #fff, | ||||||
|  |             0 0 40px #bc13fe, | ||||||
|  |             0 0 80px #bc13fe, | ||||||
|  |             0 0 90px #bc13fe, | ||||||
|  |             0 0 100px #bc13fe, | ||||||
|  |             0 0 150px #bc13fe; | ||||||
|  |     } | ||||||
|  |     0% { | ||||||
|  |         box-shadow: | ||||||
|  |             0 0 2px #fff, | ||||||
|  |             0 0 4px #fff, | ||||||
|  |             0 0 6px #fff, | ||||||
|  |             0 0 10px #bc13fe, | ||||||
|  |             0 0 45px #bc13fe, | ||||||
|  |             0 0 55px #bc13fe, | ||||||
|  |             0 0 70px #bc13fe, | ||||||
|  |             0 0 80px #bc13fe; | ||||||
|  |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,18 +0,0 @@ | ||||||
| import './js/bootstrap'; |  | ||||||
| import { createApp } from 'vue' |  | ||||||
| import { createPinia } from 'pinia' |  | ||||||
| import App from './views/ServiceLinks/ServicesLinks.vue' |  | ||||||
| import { createVuetify } from 'vuetify' |  | ||||||
| import 'vuetify/styles' |  | ||||||
| import * as components from 'vuetify/components' |  | ||||||
| import * as directives from 'vuetify/directives' |  | ||||||
| import '@mdi/font/css/materialdesignicons.css' |  | ||||||
| 
 |  | ||||||
| const pinia = createPinia(); |  | ||||||
| 
 |  | ||||||
| const vuetify = createVuetify({ |  | ||||||
|     components, |  | ||||||
|     directives |  | ||||||
| }); |  | ||||||
| 
 |  | ||||||
| createApp(App).use(vuetify).use(pinia).mount("#app"); |  | ||||||
|  | @ -1,21 +0,0 @@ | ||||||
| import {defineStore} from "pinia"; |  | ||||||
| import axios from "axios"; |  | ||||||
| 
 |  | ||||||
| export const useServicesList = defineStore('services_list', { |  | ||||||
|     state: () => ({ |  | ||||||
|         links: Object |  | ||||||
|     }), |  | ||||||
|     getters: { |  | ||||||
| 
 |  | ||||||
|     }, |  | ||||||
|     actions: { |  | ||||||
|         async getList(){ |  | ||||||
|             await axios |  | ||||||
|                 .get('/api/v1/services_list') |  | ||||||
|                 .then((response) => { |  | ||||||
|                     this.links = response.data; |  | ||||||
|                 }); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|     }, |  | ||||||
| }) |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| <template> | <template> | ||||||
|     <v-sheet class="bg-grey-darken-3 mt-5 mb-5 rounded-lg w-75 pl-3"> |     <v-sheet class="bg-transparent mt-5 mb-5 rounded-lg w-75"> | ||||||
|         <p class="neon-text text-xl-h3 text-lg-h3 text-md-h4 text-sm-h4 text-h5 ma-5">Расписание стримов</p> |         <p class="neon-text text-xl-h3 text-lg-h3 text-md-h4 text-sm-h4 text-h5 ma-5">Расписание стримов</p> | ||||||
|         <v-skeleton-loader v-if="fetching" type="text" class="bg-grey-darken-3"/> |         <v-skeleton-loader v-if="fetching" type="text" /> | ||||||
|         <p v-else class="neon-text ma-5 text-xl-h3 text-lg-h3 text-md-h4 text-sm-h4 text-h5"> {{ parseDate(dates[0].current_date) }} - {{ parseDate(dates[1].current_date) }}</p> |         <p v-else class="neon-text ma-5 text-xl-h3 text-lg-h3 text-md-h4 text-sm-h4 text-h5"> {{ parseDate(dates[0].current_date) }} - {{ parseDate(dates[1].current_date) }}</p> | ||||||
|         <ScheduleTable :is-wide="isWide"/> |         <ScheduleTable :is-wide="isWide"/> | ||||||
|         <p class="neon-text text-xl-h3 text-lg-h3 text-md-h4 text-sm-h4 text-h5 ma-5">Ссылочки</p> |         <p class="neon-text text-xl-h3 text-lg-h3 text-md-h4 text-sm-h4 text-h5 ma-5">Ссылочки</p> | ||||||
|  |  | ||||||
|  | @ -52,39 +52,39 @@ export default { | ||||||
| <template> | <template> | ||||||
|     <div class="w-100 d-flex justify-space-evenly" :class="isWide ? '' : 'flex-column'"> |     <div class="w-100 d-flex justify-space-evenly" :class="isWide ? '' : 'flex-column'"> | ||||||
|         <v-btn |         <v-btn | ||||||
|             class="bg-grey-darken-3 neon-border pt-3 pb-3 pl-3 pr-3 mt-7 mb-7 mr-5 ml-5 h-auto" |             class="nice-bg-border nice-bg-sheet white-text pa-4 ma-5 h-auto" | ||||||
|             text="Кинуть копеечку" |             text="Кинуть копеечку" | ||||||
|             href="https://www.donationalerts.com/r/dhaverd" |             href="https://www.donationalerts.com/r/dhaverd" | ||||||
|             target="_blank" |             target="_blank" | ||||||
|         /> |         /> | ||||||
|         <v-btn |         <v-btn | ||||||
|             class="bg-grey-darken-3 neon-border pt-3 pb-3 pl-3 pr-3 mt-7 mb-7 mr-5 ml-5 h-auto" |             class="nice-bg-border nice-bg-sheet white-text pa-4 ma-5 h-auto" | ||||||
|             text="Оставить отзыв" |             text="Оставить отзыв" | ||||||
|             @click="onShowModal" |             @click="onShowModal" | ||||||
|         /> |         /> | ||||||
|     </div> |     </div> | ||||||
|     <v-dialog v-model="showModal" class="align-center" :class="isWide ? 'w-50' : 'w-100 h-100'"> |     <v-dialog v-model="showModal" class="align-center" :class="isWide ? 'w-50' : 'w-100 h-100'"> | ||||||
|         <v-sheet class="mt-5 mb-5 pa-5 h-auto rounded-lg bg-grey-darken-3 neon-border d-flex flex-column"> |         <v-sheet class="nice-bg-border nice-bg-sheet white-text mb-5 pa-5 h-auto rounded-lg d-flex flex-column"> | ||||||
|             <div class="w-100 d-flex justify-end bg-grey-darken-3"> |             <div class="w-100 d-flex justify-end"> | ||||||
|                 <v-btn class="bg-grey-darken-3" icon="mdi-window-close" elevation="0" @click="onShowModal"/> |                 <v-btn class="nice-bg-sheet white-text" icon="mdi-window-close" elevation="0" @click="onShowModal"/> | ||||||
|             </div> |             </div> | ||||||
|             <v-label class="text-xl-h6 white-text ">Оцените канал:</v-label> |             <v-label class="white-text text-xl-h6">Оцените канал:</v-label> | ||||||
|             <v-rating v-model="rating" active-color="purple-darken-1"> |             <v-rating v-model="rating" active-color="#BC13FEFF"> | ||||||
|                 sss |                 sss | ||||||
|             </v-rating> |             </v-rating> | ||||||
|             <v-label class="text-xl-h6 mb-2 white-text ">Оставьте отзыв:</v-label> |             <v-label class="white-text text-xl-h6 mb-2">Оставьте отзыв:</v-label> | ||||||
|             <v-textarea v-model="comment" clearable variant="outlined" label="Что можно улучшить?"/> |             <v-textarea v-model="comment" clearable variant="outlined" label="Что можно улучшить?"/> | ||||||
|             <div class="d-flex justify-center"> |             <div class="d-flex justify-center"> | ||||||
|                 <v-btn class="bg-grey-darken-3 neon-border pt-3 pb-3 pl-3 pr-3 w-auto h-auto" @click="sendRating">Отправить</v-btn> |                 <v-btn class="nice-bg-border nice-bg-sheet white-text pl-3 pr-3 pt-3 pb-3 w-auto h-auto" @click="sendRating">Отправить</v-btn> | ||||||
|             </div> |             </div> | ||||||
|         </v-sheet> |         </v-sheet> | ||||||
|     </v-dialog> |     </v-dialog> | ||||||
|     <v-dialog v-model="afterModal" class="align-center" :class="isWide ? 'w-50' : 'w-100 h-100'"> |     <v-dialog v-model="afterModal" class="align-center" :class="isWide ? 'w-50' : 'w-100 h-100'"> | ||||||
|         <v-sheet class="mt-5 mb-5 pa-5 h-auto rounded-lg bg-grey-darken-3 neon-border d-flex flex-column"> |         <v-sheet class="nice-bg-border nice-bg-sheet white-text mt-5 mb-5 pa-5 h-auto rounded-lg d-flex flex-column"> | ||||||
|             <div class="w-100 d-flex justify-end bg-grey-darken-3"> |             <div class="w-100 d-flex justify-end"> | ||||||
|                 <v-btn class="bg-grey-darken-3" icon="mdi-window-close" elevation="0" @click="onShowAfterModal"/> |                 <v-btn class="nice-bg-sheet white-text" icon="mdi-window-close" elevation="0" @click="onShowAfterModal"/> | ||||||
|             </div> |             </div> | ||||||
|             <v-label class="text-xl-h6 white-text justify-center">{{afterModalText}}</v-label> |             <v-label class="white-text text-xl-h6">{{afterModalText}}</v-label> | ||||||
|         </v-sheet> |         </v-sheet> | ||||||
|     </v-dialog> |     </v-dialog> | ||||||
| </template> | </template> | ||||||
|  |  | ||||||
|  | @ -23,13 +23,13 @@ | ||||||
| 
 | 
 | ||||||
| <template> | <template> | ||||||
|     <div class="w-100 d-flex justify-center"> |     <div class="w-100 d-flex justify-center"> | ||||||
|         <v-list class="bg-grey-darken-3" :class="isWide ? 'w-66' : 'w-100'"> |         <v-list class="bg-transparent pt-6 pb-6 pl-5 pr-5" :class="isWide ? 'w-66' : 'w-100'"> | ||||||
|             <v-skeleton-loader v-if="fetching" type="list-item" class="bg-grey-darken-3 ml-1 mr-3"/> |             <v-skeleton-loader v-if="fetching" type="list-item"/> | ||||||
|             <v-list-item v-else class="bg-grey-darken-3 neon-border mt-6 mb-7 ml-7 mr-7" elevation="0" v-for="link in links" :href="link.link"> <!-- style="background-color: #E57373; color: #FFFFFF" --> |             <v-list-item v-else class="ma-5 nice-bg-border" v-for="link in links" :href="link.link"> <!-- style="background-color: #E57373; color: #FFFFFF" elevation="6"--> | ||||||
|                 <template v-slot:prepend> |                 <template v-slot:prepend> | ||||||
|                     <v-avatar class="mt-1 mb-1 ml-5" :image="link.image" rounded="0"></v-avatar> |                     <v-avatar class="ml-4" :image="link.image" rounded="0"></v-avatar> | ||||||
|                 </template> |                 </template> | ||||||
|                 <v-list-item-title>{{ link.link_name }}</v-list-item-title> |                 <v-list-item-title class="white-text pl-6 pb-4 pt-4">{{ link.link_name }}</v-list-item-title> | ||||||
|             </v-list-item> |             </v-list-item> | ||||||
|         </v-list> |         </v-list> | ||||||
|     </div> |     </div> | ||||||
|  |  | ||||||
|  | @ -28,13 +28,13 @@ | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <template> | <template> | ||||||
|     <div class="w-100 d-flex justify-center mt-6 mb-6"> |     <div class="w-100 d-flex justify-center"> | ||||||
|         <v-skeleton-loader v-if="fetching" type="table" class="bg-grey-darken-3 mr-3 ml-1"/> |         <v-skeleton-loader v-if="fetching" type="table"/> | ||||||
|         <v-table v-else class="bg-grey-darken-3 neon-border pa-3 ml-1 mr-3 text-xl-h5 text-lg-h5 text-md-h5 text-sm-h5 text-body-2" :class="isWide ? 'w-66' : 'w-100'"> |         <v-table v-else class="bg-transparent nice-bg-border mt-3 mb-3 neon-text text-xl-h5 text-lg-h5 text-md-h5 text-sm-h5  text-body-2" :class="isWide ? 'w-66' : 'w-100'"> | ||||||
|             <tbody> |             <tbody> | ||||||
|             <tr v-for="schedule in schedules"> |             <tr v-for="schedule in schedules"> | ||||||
|                 <td>{{ parseDate(schedule.current_date) }} {{ schedule.weekday_name }} {{ schedule.stream_time }}</td> |                 <td class="pt-6 pb-6 pl-6 white-text">{{ parseDate(schedule.current_date) }} {{ schedule.weekday_name }} {{ schedule.stream_time }}</td> | ||||||
|                 <td>{{ schedule.name }}</td> |                 <td class="pt-6 pb-6 white-text">{{ schedule.name }}</td> | ||||||
|             </tr> |             </tr> | ||||||
|             </tbody> |             </tbody> | ||||||
|         </v-table> |         </v-table> | ||||||
|  |  | ||||||
|  | @ -1,86 +0,0 @@ | ||||||
| <script> |  | ||||||
| 
 |  | ||||||
| import {ref} from "vue"; |  | ||||||
| import {useServicesList} from "../../stores/services_list.js"; |  | ||||||
| 
 |  | ||||||
| export default { |  | ||||||
|     name: "ServicesLinks", |  | ||||||
|     data: () => ({ |  | ||||||
|         links: ref([]), |  | ||||||
|         servicesListStore: useServicesList(), |  | ||||||
|         fetching: true, |  | ||||||
|         windowHeight: document.documentElement.clientHeight, |  | ||||||
|         windowWidth: document.documentElement.clientWidth, |  | ||||||
|         isWide: window.innerWidth >= 654 |  | ||||||
|     }), |  | ||||||
|     mounted() { |  | ||||||
|         this.fetching = true; |  | ||||||
|         this.servicesListStore.getList().then(()=>{ |  | ||||||
|             this.links = this.servicesListStore.links; |  | ||||||
|             this.fetching = false; |  | ||||||
|         }); |  | ||||||
|         this.myEventHandler(); |  | ||||||
|         window.addEventListener("resize", this.myEventHandler, { passive: true }); |  | ||||||
|     }, |  | ||||||
|     methods: { |  | ||||||
|         myEventHandler(e) { |  | ||||||
|             this.windowHeight = document.documentElement.clientHeight; |  | ||||||
|             this.windowWidth = document.documentElement.clientWidth; |  | ||||||
|             this.isWide = this.windowWidth >= 654; |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     created() { |  | ||||||
|         window.addEventListener("resize", this.myEventHandler); |  | ||||||
|     }, |  | ||||||
| } |  | ||||||
| </script> |  | ||||||
| 
 |  | ||||||
| <template> |  | ||||||
|     <v-app> |  | ||||||
|         <v-sheet class="bg-gradient h-100 w-100 d-flex justify-center"> |  | ||||||
|             <v-sheet class="bg-grey-darken-3 mt-5 mb-5 rounded-lg w-75 pl-3 pr-3"> |  | ||||||
|                 <p class="text-xl-h3 text-lg-h3 text-md-h4 text-sm-h4 text-h5 text-center pt-3">Список сервисов и страниц</p> |  | ||||||
|                 <v-skeleton-loader v-if="fetching" class="bg-grey-darken-3" type="card"/> |  | ||||||
|                 <div class="pt-5 h-100" v-else> |  | ||||||
|                     <v-row class="ma-0" v-for="n in Math.ceil(links.length / 3)" v-if="isWide"> |  | ||||||
|                         <v-col class="d-flex justify-center align-center w-33" v-for="j in 3"> |  | ||||||
|                             <v-btn v-if="links[(n - 1) * 3 + j - 1]" class="w-100 h-100 pa-5 text-white mt-5 mb-5 bg-btn text-center" :href="links[(n - 1) * 3 + j - 1].link" target="_blank"> |  | ||||||
|                                 <template v-slot:default> |  | ||||||
|                                     <span class="txt-wrap">{{ links[(n - 1) * 3 + j - 1].name }}</span> |  | ||||||
|                                 </template> |  | ||||||
|                             </v-btn> |  | ||||||
|                         </v-col> |  | ||||||
|                     </v-row> |  | ||||||
|                     <div v-else class="ma-0"> |  | ||||||
|                         <v-btn class="w-100 h-100 pa-5 text-white mt-5 mb-5 bg-btn text-center" v-for="link in links" :href="link.link" target="_blank"> |  | ||||||
|                             <template v-slot:default> |  | ||||||
|                                 <span class="txt-wrap">{{ link.name }}</span> |  | ||||||
|                             </template> |  | ||||||
|                         </v-btn> |  | ||||||
|                     </div> |  | ||||||
|                 </div> |  | ||||||
|             </v-sheet> |  | ||||||
|         </v-sheet> |  | ||||||
|     </v-app> |  | ||||||
| </template> |  | ||||||
| 
 |  | ||||||
| <style scoped> |  | ||||||
| .bg-gradient { |  | ||||||
|     --s: 50px; /* control the size */ |  | ||||||
| 
 |  | ||||||
|     --c: #E08E79 0 25%,#774F38 0 50%,#0000 0; |  | ||||||
|     background: |  | ||||||
|         conic-gradient(from 180deg,var(--c)) |  | ||||||
|         0/var(--s) var(--s), |  | ||||||
|         repeating-conic-gradient(from 90deg,var(--c)) |  | ||||||
|         0/calc(3*var(--s)) calc(3*var(--s)) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .bg-btn { |  | ||||||
|     background-color: #E08E79 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .txt-wrap { |  | ||||||
|     white-space: wrap!important; |  | ||||||
| } |  | ||||||
| </style> |  | ||||||
|  | @ -1,13 +0,0 @@ | ||||||
| <!DOCTYPE html> |  | ||||||
| <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> |  | ||||||
|     <head> |  | ||||||
|         <meta charset="utf-8"> |  | ||||||
|         <meta name="viewport" content="width=device-width, initial-scale=1"> |  | ||||||
|         <title>Services Links</title> |  | ||||||
|         @vite('resources/service_links.js') |  | ||||||
|         @vite('resources/css/app.css') |  | ||||||
|     </head> |  | ||||||
|     <body class="antialiased"> |  | ||||||
|         <div id="app"></div> |  | ||||||
|     </body> |  | ||||||
| </html> |  | ||||||
|  | @ -1,7 +1,9 @@ | ||||||
| <template> | <template> | ||||||
|     <v-app> |     <v-app> | ||||||
|         <v-sheet class="bg-gradient h-100 w-100 d-flex justify-center"> |         <v-sheet class="nice-bg-sheet h-100 w-100 d-flex justify-center"> | ||||||
|             <Schedule/> |             <div class="w-100 d-flex justify-center"> | ||||||
|  |                 <Schedule/> | ||||||
|  |             </div> | ||||||
|         </v-sheet> |         </v-sheet> | ||||||
|     </v-app> |     </v-app> | ||||||
| </template> | </template> | ||||||
|  |  | ||||||
|  | @ -20,4 +20,3 @@ | ||||||
| Route::get('/dates', 'App\Http\Controllers\SchedulesController@mmDate')->name('dates'); | Route::get('/dates', 'App\Http\Controllers\SchedulesController@mmDate')->name('dates'); | ||||||
| Route::get('/phrases', 'App\Http\Controllers\BasyaPhrasesController@index')->name('phrases'); | Route::get('/phrases', 'App\Http\Controllers\BasyaPhrasesController@index')->name('phrases'); | ||||||
| Route::post('/rating', 'App\Http\Controllers\RatingController@index')->name('rating'); | Route::post('/rating', 'App\Http\Controllers\RatingController@index')->name('rating'); | ||||||
| Route::get('/services_list', 'App\Http\Controllers\ServiceLinksController@index')->name('services_list'); |  | ||||||
|  |  | ||||||
|  | @ -14,10 +14,6 @@ | ||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| Route::get('/', function () { | Route::get('/', function () { | ||||||
|     return view('ServiceLinks/links'); |  | ||||||
| }); |  | ||||||
| 
 |  | ||||||
| Route::get('/schedule', function () { |  | ||||||
|     return view('welcome'); |     return view('welcome'); | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,8 +12,7 @@ export default defineConfig({ | ||||||
|                 'resources/welcome.js', |                 'resources/welcome.js', | ||||||
|                 'resources/caesar.js', |                 'resources/caesar.js', | ||||||
|                 'resources/basya.js', |                 'resources/basya.js', | ||||||
|                 'resources/friday.js', |                 'resources/friday.js' | ||||||
|                 'resources/service_links.js' |  | ||||||
|             ], |             ], | ||||||
|             refresh: true, |             refresh: true, | ||||||
|         }), |         }), | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue