Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int GetIspId(const mgr_xml::XmlNode &) {
- static int cnt = 0;
- return ++cnt;
- }
- struct eAdditionOrderParam : Event {
- eAdditionOrderParam()
- : Event("addition.order.param", "addition_dropdown_2") {}
- void BeforeExecute(Session &ses) const override {
- // комментируем if ниже -- элементы дублируются
- if (!ses.xml.GetNode("//slist[@name='item']")) {
- ses.NewSelect("item");
- auto soft = InternalCall(ses, "soft");
- for (auto item : soft.GetNodes("//elem")) {
- ses.AddChildNode("val", item.FindNode("name").Str())
- .SetProp("key", GetIspId(item));
- }
- }
- }
- void AfterExecute(Session &ses) const override {
- // Комментируем if ниже -- появляется два select.
- if (!ses.xml.GetNode("//metadata/form/field[@name='item']/select")) {
- auto item_field = ses.xml.GetNode("//metadata/form/field[@name='item']");
- if (item_field) {
- item_field.FindNode("input").Unlink();
- item_field.AppendChild("select").SetProp("name", "item");
- }
- }
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement