Bir editör, bazı değerleri içeren bir bileşeni (bu durumda geçmişte bir tarih alanı) kaydetmek istediğinde görünen kalıcı bir açılır pencerem var.Anguilla - Bir alanın pop-up değerinden mi güncelleniyor?
Bu açılır pencerede editöre birkaç seçenek (varsayılan "Açılan Öğe Aç" iletişim kutusuna çok benzer) ve bir Tamam/İptal düğmesi açılanını gösteriyorum. Açık İptal "İptal" olayını tetiklerim ve editör düzenleme ekranına geri döner, hepsi burada iyi. "Tamam" da, alanın değerini, editörün seçimi ne olursa olsun eşleştirmek için değiştirmek istiyorum, sonra da kaydedin.
FieldBuilder ve this other topic numaralı örnekte Boris ile bir yaklaşım kullanmayı denedim ancak açılan iletişim kutusundan alana alamıyorum.
Kalıcı bir açılır pencereden öğenin xml'sini (ayrıca bir sayfa da olabilir) nasıl değiştirebileceğimi ve değiştirebileceğim hakkında herhangi bir öneriniz var mı?
DÜZENLEME: Kod getControlForFieldName kullanılan
function getControlForFieldName(name) {
var fieldBuilder = $display.getView().properties.controls.fieldBuilder;
var fieldsContainer = fieldBuilder.properties.input;
var fieldsNode = fieldsContainer.getElement();
var fieldContainer = $dom.getFirstElementChild(fieldsNode);
while (fieldContainer) {
var labelNode = $dom.getFirstElementChild(fieldContainer);
var fieldNode = $dom.getNextElementSibling(labelNode);
var control = fieldNode.control;
if (control.getFieldName() == name) {
return control;
}
fieldContainer = $dom.getNextElementSibling(fieldContainer);
}
}
DÜZENLEME 2. Frank'in tavsiye, Jaime & Frank çevrimdışı bazı yardımıyla sonra aşağıdaki gibi çalışması için var
:
- Açılır pencereye Komut Uzantısı denir (Benim durumumda & Kapat)
- command.js Ben olay işleyicisi seçili öğeyi (bir anahtar kelime kimliği var) geçirerek (== Tamam basılmış) Benim popup penceresinde
$evt.addEventHandler(p.dialogPopup, "submit",
this.getDelegate(this._onPopupSubmit));
"Gönder" üzerine çağrılan bir olay işleyicisi belirtir :
this.fireEvent("submit", { id: select.options[select.selectedIndex].value });
ve şimdi geri olay işleyicisi _onPopupSubmit(e)
sadece e.data.id okumak bu anahtar kelimeyi yüklemek, kimlik & Başlığı gibi özelliklerini almak ve item.setMetadata kullanarak öğenin meta verileri güncellemek içinde ("yeni güncellenmiş değerlere sahip meta veriler ").
Basit :)
Pop-up'ınızda sahip olduğunuz kodu paylaşabilir misiniz? Muhtemelen bir yerde bir ebeveyn eksik. –