Si utilizza jquery 1.9 e jquery.ui 1.10, da locale e non da remoto, per le esigenze di alcuni clienti. le librerie sono fornite da jmb.core e sono richieste all’interno del template del base_site.html.
jmb.core fornisce una liberia jmb.core.js che ha le seguente funzionalità
Solo nella change_form al caricamento della pagina vengono nascosti i fields con type hidden ovvero con widget HiddenInput, utile sia nell’EDIT che nell’ADD passando l’attributo tra gli initial.
Un esempio in cogema.contratto admin.py:
self.fields['contratto'] = forms.ModelChoiceField(
queryset=Contratto.objects.all(), required=False,
widget=forms.widgets.HiddenInput()
)
show_in_popup(src, title, width, height, callback)
funzione per mostrare un URL nell iframe sfrutta le modali di jquery.ui, usa il resize, si adatta alla dimensione dell’iframe. URL è l’url da aprire esempio:
jmb.show_in_popup("http://google.it")
la callback predefinta è vuota, viene chiamata alla chiusura della modale per esempio si può usare:
show_in_popup(src, title, width, height, function(){ parent.chiusura() })
vedi documentazione completa Popup via iframe
Aggiunge il position fixed allo scroll della pagina. per utilizzarlo aggiungere la classe stickytab all’elemento .. https://github.com/garand/sticky
Ai link con classe iframe, hsjon e popup, aggiunge come suffisso il parametro _hjson=1&_popup=1, e apre il link in un iframe la modalità hjson, funziona solo nei casi di change e di add e delete al save la pagina viene rediretta su un template iframe che chiama la iframe_callback del parent ovvero della pagina che ha chiamato l’iframe, questa funzione va implementata sempre
la callback predefinta è vuota, viene chiamata alla chiusura della modale esempio:
jmb.iframe_hjson_link(function(){ parent.chiusura() })