Ver a proveniência

feat(module_links): doctypes as dependencies

version-14
Prateeksha Singh há 6 anos
ascendente
cometimento
df96ce46ac
4 ficheiros alterados com 44 adições e 8 eliminações
  1. +5
    -0
      frappe/desk/moduleview.py
  2. +1
    -1
      frappe/public/js/frappe/views/components/Desktop.vue
  3. +15
    -1
      frappe/public/js/frappe/views/components/ModuleDetail.vue
  4. +23
    -6
      frappe/public/js/frappe/views/components/ModuleLinkItem.vue

+ 5
- 0
frappe/desk/moduleview.py Ver ficheiro

@@ -59,7 +59,12 @@ def get_data(module):
# Onboarding

# First disable based on exists of depends_on list
doctype = item.get("doctype")
dependencies = item.get("dependencies") or None
if not dependencies and doctype:
item["dependencies"] = [doctype]

dependencies = item.get("dependencies")
if dependencies:
incomplete_dependencies = [d for d in dependencies if not exists(d)]
if len(incomplete_dependencies):


+ 1
- 1
frappe/public/js/frappe/views/components/Desktop.vue Ver ficheiro

@@ -16,7 +16,7 @@
<div class="flush-top">
<div class="module-box-content">
<h4 class="h4">
<span v-if="module.count" class="indicator orange"></span>
<span class="indicator" :class="module.count ? 'red' : 'orange'"></span>
{{ module.label }}
</h4>
<p class="small text-muted"> {{ module.description }} </p>


+ 15
- 1
frappe/public/js/frappe/views/components/ModuleDetail.vue Ver ficheiro

@@ -29,7 +29,21 @@ export default {
components: {
ModuleLinkItem
},
props: ['module_name', 'sections']
props: ['module_name', 'sections'],
data() {
return {
popover_present: false
}
},
methods: {
popover_appeared() {
this.popover_present = true;
},

popover_disappeared() {
this.popover_present = false;
}
}
}
</script>
<style lang="less" scoped>


+ 23
- 6
frappe/public/js/frappe/views/components/ModuleLinkItem.vue Ver ficheiro

@@ -1,22 +1,22 @@
<template>
<div class="link-item flush-top small"
:class="{'onboard-spotlight': onboard, 'disabled-link': disabled_dependent}"
@mouseover="hover = true" @mouseleave="hover = false"
@mouseover="hover = true" @mouseleave="mouseleave"
>
<span :class="['indicator', indicator_color]"></span>

<span v-if="disabled_dependent" class="link-content text-muted">{{ label || __(name) }}</span>
<a v-else class="link-content" :href="route">{{ label || __(name) }}</a>

<div v-if="disabled_dependent" v-show="hover"
<div v-if="disabled_dependent" v-show="popover_active"
@mouseover="popover_hover = true" @mouseleave="popover_hover = false"
class="popover fade top in" role="tooltip"
>

<div class="arrow"></div>
<h3 class="popover-title" style="display: none;"></h3>
<div class="popover-content">
<div class="small text-muted">{{ __("You need to create these first: ") }}</div>
<div>{{ __(incomplete_dependencies.join(", ")) }}</div>
<div class="small">{{ __(incomplete_dependencies.join(", ")) }}</div>
</div>
</div>
</div>
@@ -24,10 +24,11 @@

<script>
export default {
props: ['label', 'name', 'dependencies', 'incomplete_dependencies', 'onboard', 'count', 'route', 'doctype', 'open_count'],
props: ['label', 'name', 'dependencies', 'incomplete_dependencies', 'onboard', 'count', 'route', 'doctype', 'open_count', 'popover_present'],
data() {
return {
hover: false
hover: false,
popover_hover: false,
}
},
computed: {
@@ -43,6 +44,21 @@ export default {
return this.count ? 'blue' : 'orange';
};
return 'grey';
},

popover_active() {
return this.popover_hover || this.hover;
}
},
methods: {
mouseover() {
this.hover = true;
},

mouseleave() {
setTimeout(() => {
this.hover = false;
}, 100);
}
}
}
@@ -53,6 +69,7 @@ export default {
.link-item {
position: relative;
margin: 10px 0px;
cursor: default;
}

.onboard-spotlight {


Carregando…
Cancelar
Guardar