mirror of https://github.com/nocodb/nocodb
Browse Source
re #382 Signed-off-by: Pranav C <61551451+pranavxc@users.noreply.github.com>pull/401/head
6 changed files with 88 additions and 1 deletions
@ -0,0 +1,15 @@
|
||||
<template> |
||||
<a v-if="value" :href="value" target="_blank">{{ value }}</a> |
||||
<span v-else /> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
name: 'UrlCell', |
||||
props: ['value'] |
||||
} |
||||
</script> |
||||
|
||||
<style scoped> |
||||
|
||||
</style> |
@ -0,0 +1,52 @@
|
||||
<template> |
||||
<input v-model="localState" v-on="parentListeners"> |
||||
</template> |
||||
|
||||
<script> |
||||
import { isValidURL } from '@/helpers' |
||||
|
||||
export default { |
||||
name: 'EditableUrlCell', |
||||
props: { |
||||
value: String |
||||
}, |
||||
computed: { |
||||
localState: { |
||||
get() { |
||||
return this.value |
||||
}, |
||||
set(val) { |
||||
console.log(isValidURL(val)) |
||||
if (isValidURL(val)) { this.$emit('input', val) } |
||||
} |
||||
}, |
||||
parentListeners() { |
||||
const $listeners = {} |
||||
|
||||
if (this.$listeners.blur) { |
||||
$listeners.blur = this.$listeners.blur |
||||
} |
||||
if (this.$listeners.focus) { |
||||
$listeners.focus = this.$listeners.focus |
||||
} |
||||
|
||||
if (this.$listeners.cancel) { |
||||
$listeners.cancel = this.$listeners.cancel |
||||
} |
||||
|
||||
return $listeners |
||||
} |
||||
}, |
||||
mounted() { |
||||
this.$el.focus() |
||||
} |
||||
} |
||||
</script> |
||||
|
||||
<style scoped> |
||||
input, textarea { |
||||
width: 100%; |
||||
height: 100%; |
||||
color: var(--v-textColor-base); |
||||
} |
||||
</style> |
Loading…
Reference in new issue