Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4358dfea authored by Arnau Vàzquez's avatar Arnau Vàzquez
Browse files

Merge branch 'dev/video-conf-link' into 'murena-main'

video conf

See merge request !32
parents 048d4bf3 9c8706c7
Loading
Loading
Loading
Loading
Loading
+903 −864
Original line number Diff line number Diff line
@@ -31,8 +31,14 @@
     align-items: stretch !important;
     position:relative;
     textarea {
			border-right: 0px;
       padding-right:27px;
       &:not(:disabled) {
         &:active,
         &:hover,
         &:focus {
           border-color: var(--color-primary-element) !important;
         }
       }
     }
     .icon-externallink {
       background-image: var(--icon-calendar-openlink-0075E0);
@@ -48,8 +54,31 @@
       text-align: center;
       cursor:pointer;
     }
     .icon-delete {
       background-image: var(--icon-calendar-close-0075E0);
       opacity: 1;
       position: absolute;
       top: 0;
       right: 34px;
       z-index: 2;
       display: block;
       width: 34px;
       height: 100%;
       line-height: 34px;
       text-align: center;
       cursor:pointer;
     }

   }
   .multiselect__tags{
     &:active,
     &:hover,
     &:focus {
       border: 1px solid var(--color-primary-element) !important;
       border-radius: 3px;
     }

   }
   .app-sidebar-header__action {
     margin-top: 0 !important;
     max-height: none !important;
@@ -621,11 +650,18 @@

     &__input {
       flex-grow: 2;

       textarea,
       input,
       div.multiselect {
         width: 100%;
         .multiselect__tags{
           &:active,
           &:hover,
           &:focus {
             border: 1px solid var(--color-primary-element);
             border-radius: 3px;
           }
         }
       }

       textarea {
@@ -665,7 +701,6 @@
       }
     }
   }

   .property-color {
     &__input {
       display: flex;
@@ -683,6 +718,13 @@
     &__input {
       textarea {
         resize: none;
         &:not(:disabled) {
         &:active,
         &:hover,
         &:focus {
           border-color: var(--color-primary-element) !important;
         }
       }
       }
     }
   }
@@ -760,9 +802,6 @@
     .property-text-location {
       align-items: stretch !important;
       position: relative;
			textarea {
				border-right: 0px;
			}
     }

     .empty-content {
+2 −1
Original line number Diff line number Diff line
@@ -46,3 +46,4 @@
@include icon-color('reminder', 'calendar', '#fffffe', 1);
@include icon-color('reminder', 'calendar', '#000001', 1);
@include icon-color('openlink', 'calendar', '#0075E0', 1);
@include icon-color('close', 'calendar', '#0075E0', 1);
 No newline at end of file

img/close.svg

0 → 100644
+3 −0
Original line number Diff line number Diff line
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.3 0.710001C12.91 0.320001 12.28 0.320001 11.89 0.710001L7 5.59L2.11 0.700001C1.72 0.310001 1.09 0.310001 0.700001 0.700001C0.310001 1.09 0.310001 1.72 0.700001 2.11L5.59 7L0.700001 11.89C0.310001 12.28 0.310001 12.91 0.700001 13.3C1.09 13.69 1.72 13.69 2.11 13.3L7 8.41L11.89 13.3C12.28 13.69 12.91 13.69 13.3 13.3C13.69 12.91 13.69 12.28 13.3 11.89L8.41 7L13.3 2.11C13.68 1.73 13.68 1.09 13.3 0.710001Z" fill="#3392FF"/>
</svg>
+1 −0
Original line number Diff line number Diff line
@@ -178,6 +178,7 @@ export default {
				timezoneId,
				organizer: this.$store.getters.getCurrentUserPrincipal,
			})
			  this.$emit('newattendeeadded', 'added')
		},
		removeAttendee(attendee) {
			this.$store.commit('removeAttendee', {
+78 −21
Original line number Diff line number Diff line
<template>
	<div v-if="display" class="property-text-location">
		<component :is="icon"
			v-show="vshow1"
			:size="20"
			:title="readableName"
			class="property-text__icon"
			:class="{ 'property-text__icon--hidden': !showIcon }" />
		<component :is="iconOptional"
			v-show="vshow2"
			:size="20"
			:title="readableName"
			class="property-text__icon"
@@ -15,20 +22,20 @@
				:title="readableName"
				:value="value"
				@input.prevent.stop="changeValue" />
			<span v-if="!isReadOnly"
				v-visible="clearUrl"
				class="icon-delete"
				@click="removeValue" />
			<span v-if="!isReadOnly"
				v-visible="visibleValue"
				:title="tagPlaceholder"
				class="icon-externallink"
				@click="goto" />
			<!-- eslint-disable-next-line vue/singleline-html-element-content-newline -->
			<div v-else
				v-linkify="{ text: value, linkify: true }" />
			<div v-else v-linkify="{ text: value, linkify: true }" />
		</div>
		<div v-if="hasInfo"
			v-tooltip="info"
			class="property-select__info">
			<InformationVariant :size="20"
				decorative />
		<div v-if="hasInfo" v-tooltip="info" class="property-select__info">
			<InformationVariant :size="20" decorative />
		</div>
	</div>
</template>
@@ -51,15 +58,36 @@ function isValidHttpUrl(string) {
	}
	return url.protocol === 'http:' || url.protocol === 'https:'
}
/**
 *
 * @param length
 * @param chars
 */
function generateRandomString(length, chars) {
	let result = ''
	for (let i = length; i > 0; --i) { result += chars[Math.floor(Math.random() * chars.length)] }
	const todaynow = new Date()
	result = result + todaynow.getDate() + todaynow.getMonth() + todaynow.getFullYear().toString().substr(-2)
	return result
}
/**
 *
 */
function JitsiUrlGenerator() {
	let url = 'https://meet.jit.si/'
	const charstr = '0123456789abcdefghijklmnopqrstuvwxyz'
	const randomString = generateRandomString(8, charstr)
	url = url + randomString
	return url
}

/**
 * @param el
 * @param binding
 */
function setVisibility(el, binding) {
	el.style.visibility = (binding.value === true) ? 'visible' : 'hidden'
	el.style.visibility = binding.value === true ? 'visible' : 'hidden'
}

export default {
	name: 'PropertyTextLocation',
	directives: {
@@ -79,14 +107,14 @@ export default {
			componentUpdated(el, binding) {
				setVisibility(el, binding)
			},

		},
	},
	mixins: [
		PropertyMixin,
	],
	mixins: [PropertyMixin],
	data: () => ({
		visibleValue: true,
		visibleValue: false,
		clearUrl: false,
		vshow1: true,
		vshow2: false,
	}),
	computed: {
		display() {
@@ -112,22 +140,51 @@ export default {
		},
	},
	mounted() {
		this.visibleValue = isValidHttpUrl(this.value)
		this.vshow2 = this.visibleValue = this.clearUrl = isValidHttpUrl(this.value)
		this.vshow1 = !this.vshow2
	},
	methods: {
		changeValue(event) {
			if (event.target.value.trim() === '') {
				this.visibleValue = false
				this.clearUrl = false
				this.$emit('update:value', null)
			} else {
				this.visibleValue = isValidHttpUrl(event.target.value.trim())
				this.$emit('update:value', event.target.value)
				this.vshow2 = this.visibleValue = this.clearUrl = isValidHttpUrl(
					event.target.value.trim()
				)
				this.vshow1 = !this.vshow2
				this.$emit('update:value', event.target.value.trim())
			}
		},
		goto() {
			const urlval = this.value
			window.open(urlval, '_blank').focus()
		},
		removeValue() {
			this.visibleValue = false
			this.clearUrl = false
			this.$emit('update:value', null)
			this.vshow2 = false
			this.vshow1 = true
		},
		addJitsiUrl() {
			if (typeof this.value !== 'string') {
				this.$emit('update:value', JitsiUrlGenerator())
				this.visibleValue = true
				this.clearUrl = true
				this.vshow2 = true
				this.vshow1 = false
			} else if (this.value === '') {
				this.$emit('update:value', JitsiUrlGenerator())
				this.visibleValue = true
				this.clearUrl = true
				this.vshow2 = true
				this.vshow1 = false
			} else {
				this.visibleValue = this.clearUrl = isValidHttpUrl(this.value.trim())
			}
		},
	},
}
</script>
Loading