Campaign description sync

This commit is contained in:
BinarySandia04 2024-09-26 11:01:43 +02:00
parent be6d4fda26
commit 225926bec2
3 changed files with 18 additions and 4 deletions

View File

@ -100,7 +100,7 @@ router.get('/players', (req, res) => {
});
router.put('/update', (req, res) => {
CampaignUser.find({campaign: req.query.campaign}).then((data) => {
CampaignUser.findOne({campaign: req.query.campaign, user: req.user}).then((data) => {
if(data.is_dm){
let {
name,

View File

@ -6,6 +6,8 @@ import { GetUser } from "./User";
import { chat } from './Chat';
import { ClearAll, CreateWindow } from './Windows';
import Api from '@/services/Api';
import { GetCampaign } from './Dragonroll';
let _currentCampaign = null;
let _currentPlayer = null;
@ -27,12 +29,17 @@ function Disconnect(){
chat.value = [];
}
function DisplayCampaign(data = _currentCampaign){
ClearAll();
CreateWindow('campaign_preview', {campaign: data});
}
function UpdateCampaignData(data){
Api().put('/campaign/update?campaign=' + GetCampaign()._id, {campaign: data}).then(response => {
console.log(response);
});
}
socket.on('update-players', data => {
_UpdatePlayers(data)
})
@ -57,5 +64,6 @@ export {
ConnectToCampaign,
DisplayCampaign,
UpdateCampaignData,
Disconnect
}

View File

@ -13,7 +13,7 @@ import ChatComponent from '../../partials/ChatComponent.vue';
import GameSystem from '@/views/partials/GameSystem.vue'
import { GetModule } from '../../../services/Modules';
import { AddTooltip } from '../../../services/Tooltip';
import { Disconnect } from '../../../services/Campaign';
import { Disconnect, UpdateCampaignData } from '../../../services/Campaign';
import MarkdownEditor from '@/views/partials/MarkdownEditor.vue';
import { useI18n } from 'vue-i18n';
@ -31,6 +31,7 @@ const campaign_title = ref(null);
const copy_code_button = ref(null);
const container = ref(null);
const description = ref(null);
let id = data.id;
@ -50,10 +51,16 @@ function Exit(){
CreateWindow('campaign_list');
}
function DescriptionChanged(description){
UpdateCampaignData({description})
}
const description_editable = ref(false);
onMounted(() => {
if(GetClient().is_dm) description_editable.value = true;
description.value.text = data.campaign.description;
SetupHandle(id, handle);
SetSize(id, {width: 800, height: 750});
@ -71,7 +78,6 @@ onMounted(() => {
campaign_title.value.style.backgroundColor = GetModule(data.campaign.system).color ? GetModule(data.campaign.system).color : "#1f1f1f";
AddTooltip(copy_code_button.value, `<p>${t('campaigns.preview.copy-explain')}</p>`, {max_width: 300})
});
</script>