File diff suppressed because one or more lines are too long
											
										
									
								
							@ -38,5 +38,8 @@ sound-upload-url="{% url "api:sound-list" %}"
 | 
				
			|||||||
    {% endwith %}
 | 
					    {% endwith %}
 | 
				
			||||||
    {% endfor %}
 | 
					    {% endfor %}
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					<template #row-delete="{cell}">
 | 
				
			||||||
 | 
					    <input type="checkbox" :name="'{{ formset.prefix }}-' + cell.row + '-DELETE'">
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{% endblock %}
 | 
					{% endblock %}
 | 
				
			||||||
 | 
				
			|||||||
@ -66,6 +66,7 @@ inline_labels_ = {
 | 
				
			|||||||
    "discard_changes": _("Discard changes"),
 | 
					    "discard_changes": _("Discard changes"),
 | 
				
			||||||
    "select_file": _("Select a file"),
 | 
					    "select_file": _("Select a file"),
 | 
				
			||||||
    "submit": _("Submit"),
 | 
					    "submit": _("Submit"),
 | 
				
			||||||
 | 
					    "delete": _("Delete"),
 | 
				
			||||||
    # track list
 | 
					    # track list
 | 
				
			||||||
    "columns": _("Columns"),
 | 
					    "columns": _("Columns"),
 | 
				
			||||||
    "timestamp": _("Timestamp"),
 | 
					    "timestamp": _("Timestamp"),
 | 
				
			||||||
 | 
				
			|||||||
@ -55,9 +55,6 @@ class EpisodeUpdateView(UserPassesTestMixin, BaseProgramMixin, PageUpdateView):
 | 
				
			|||||||
        program = self.get_object().program
 | 
					        program = self.get_object().program
 | 
				
			||||||
        return self.request.user.has_perm("aircox.%s" % program.change_permission_codename)
 | 
					        return self.request.user.has_perm("aircox.%s" % program.change_permission_codename)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_success_url(self):
 | 
					 | 
				
			||||||
        return reverse("episode-detail", kwargs={"slug": self.get_object().slug})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def get_tracklist_queryset(self, episode):
 | 
					    def get_tracklist_queryset(self, episode):
 | 
				
			||||||
        return Track.objects.filter(episode=episode).order_by("position")
 | 
					        return Track.objects.filter(episode=episode).order_by("position")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -24,8 +24,8 @@
 | 
				
			|||||||
        </a-modal>
 | 
					        </a-modal>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <slot name="top" :set="set" :items="set.items"></slot>
 | 
					        <slot name="top" :set="set" :items="set.items"></slot>
 | 
				
			||||||
        <a-rows :set="set" :columns="columns"
 | 
					        <a-rows :set="set" :columns="allColumns"
 | 
				
			||||||
                :labels="initData.fields" :allow-create="true" :orderable="true"
 | 
					                :labels="allColumnsLabels" :allow-create="true" :orderable="true"
 | 
				
			||||||
                @move="listItemMove">
 | 
					                @move="listItemMove">
 | 
				
			||||||
            <template v-for="[name,slot] of rowsSlots" :key="slot"
 | 
					            <template v-for="[name,slot] of rowsSlots" :key="slot"
 | 
				
			||||||
                    v-slot:[slot]="data">
 | 
					                    v-slot:[slot]="data">
 | 
				
			||||||
@ -49,7 +49,8 @@
 | 
				
			|||||||
                        :title="labels.add_sound"
 | 
					                        :title="labels.add_sound"
 | 
				
			||||||
                        :aria-label="labels.add_sound"
 | 
					                        :aria-label="labels.add_sound"
 | 
				
			||||||
                        >
 | 
					                        >
 | 
				
			||||||
                    <span class="icon"><i class="fa fa-plus"/></span>
 | 
					                    <span class="icon">
 | 
				
			||||||
 | 
					                        <i class="fa fa-plus"/></span>
 | 
				
			||||||
                </button>
 | 
					                </button>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
@ -75,6 +76,7 @@ export default {
 | 
				
			|||||||
        settingsUrl: String,
 | 
					        settingsUrl: String,
 | 
				
			||||||
        soundListUrl: String,
 | 
					        soundListUrl: String,
 | 
				
			||||||
        soundUploadUrl: String,
 | 
					        soundUploadUrl: String,
 | 
				
			||||||
 | 
					        player: Object,
 | 
				
			||||||
        columns: {
 | 
					        columns: {
 | 
				
			||||||
            type: Array,
 | 
					            type: Array,
 | 
				
			||||||
            default: () => ['name', "type", 'is_public', 'is_downloadable']
 | 
					            default: () => ['name', "type", 'is_public', 'is_downloadable']
 | 
				
			||||||
@ -88,6 +90,18 @@ export default {
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    computed: {
 | 
					    computed: {
 | 
				
			||||||
 | 
					        player_() {
 | 
				
			||||||
 | 
					            return this.player || window.aircox.player
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        allColumns() {
 | 
				
			||||||
 | 
					            return [...this.columns, "delete"]
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        allColumnsLabels() {
 | 
				
			||||||
 | 
					            return {...this.labels, ...this.initData.fields}
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        items() {
 | 
					        items() {
 | 
				
			||||||
            return this.set.items
 | 
					            return this.set.items
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user