+
{{ field.label }}
{% if field.name == 'text' %}
- {{ field }}
+
+ {% if is_custom %}
+ {{ field }}
+ {% endif %}
+ {% elif field.name == 'original_url' %}
+
+ {% if not is_custom %}
+
+ {% endif %}
+ {% elif field.name == 'alias' and form.instance.pk %}
+
+
+
{% trans "Alias cannot be changed after creation." %}
{% else %}
+
field.classList.remove('hidden'));
- customFields.forEach(field => field.classList.add('hidden'));
+ linkFields.forEach(field => {
+ field.classList.remove('hidden');
+ field.querySelector('label').classList.remove('hidden');
+ });
+ customFields.forEach(field => {
+ field.classList.add('hidden');
+ field.querySelector('label').classList.add('hidden');
+ });
linkDescription.classList.remove('hidden');
customDescription.classList.add('hidden');
linkTypeInput.value = 'LINK';
@@ -116,8 +147,14 @@
customTab.classList.remove('text-gray-500', 'border-transparent');
linkTab.classList.remove('text-blue-600', 'border-blue-600');
linkTab.classList.add('text-gray-500', 'border-transparent');
- customFields.forEach(field => field.classList.remove('hidden'));
- linkFields.forEach(field => field.classList.add('hidden'));
+ customFields.forEach(field => {
+ field.classList.remove('hidden');
+ field.querySelector('label').classList.remove('hidden');
+ });
+ linkFields.forEach(field => {
+ field.classList.add('hidden');
+ field.querySelector('label').classList.add('hidden');
+ });
customDescription.classList.remove('hidden');
linkDescription.classList.add('hidden');
linkTypeInput.value = 'CUSTOM';
@@ -126,14 +163,17 @@
linkTab.addEventListener('click', showLinkFields);
customTab.addEventListener('click', showCustomFields);
- // 初始化表单状态
- showLinkFields();
+ // Initialize form state
+ if (linkTypeInput.value === 'CUSTOM') {
+ showCustomFields();
+ } else {
+ showLinkFields();
+ }
+ // Initialize SimpleMDE for custom links
var textArea = document.getElementById('id_text');
if (textArea) {
var simplemde = new SimpleMDE({ element: textArea });
- } else {
- console.error('SimpleMDE: Error. No element was found with id "id_text".');
}
});
diff --git a/links/views.py b/links/views.py
index 47731b4..aa73b78 100644
--- a/links/views.py
+++ b/links/views.py
@@ -93,6 +93,18 @@ class LinkUpdateView(UpdateView):
template_name = 'links/link_form.html'
success_url = reverse_lazy('link_list')
+ def get_initial(self):
+ initial = super().get_initial()
+ link = self.get_object()
+ initial['link_type'] = link.link_type
+ return initial
+
+ def get_context_data(self, **kwargs):
+ context = super().get_context_data(**kwargs)
+ link = self.get_object()
+ context['is_custom'] = link.link_type == Link.LinkType.CUSTOM
+ return context
+
def form_valid(self, form):
form.instance.alias = form.instance.alias.lower()
alias = form.cleaned_data.get('alias').lower()