| | 400 | |
|---|
| | 401 | |
|---|
| | 402 | //********************************************** |
|---|
| | 403 | |
|---|
| | 404 | // Fixed bug: innerHTML return not actual data, now used DOM |
|---|
| | 405 | |
|---|
| | 406 | |
|---|
| | 407 | function grepInfo(li) { |
|---|
| | 408 | |
|---|
| | 409 | // grep li state |
|---|
| | 410 | var info = {"li.id" : li.id, "li.title": li.title, "li.className" : li.className}; |
|---|
| | 411 | |
|---|
| | 412 | // grep visibility checkbox state |
|---|
| | 413 | var vis_box = li.getElementsByTagName("INPUT")[0]; |
|---|
| | 414 | info["vis_box.checked"] = vis_box.checked; |
|---|
| | 415 | info["vis_box.name"] = vis_box.name; |
|---|
| | 416 | |
|---|
| | 417 | var spans = li.getElementsByTagName("SPAN"); |
|---|
| | 418 | |
|---|
| | 419 | // grep url helper state |
|---|
| | 420 | info["url_helper.text"] = spans[0].innerHTML; |
|---|
| | 421 | |
|---|
| | 422 | // grep tab title state |
|---|
| | 423 | info["tab_title.text"] = spans[1].innerHTML; |
|---|
| | 424 | |
|---|
| | 425 | // grep edit form state |
|---|
| | 426 | var edit_form = li.getElementsByTagName("FORM")[0]; |
|---|
| | 427 | info["edit_form.name"] = edit_form.name; |
|---|
| | 428 | info["edit_form.action"] = edit_form.action; |
|---|
| | 429 | |
|---|
| | 430 | var inputs = edit_form.getElementsByTagName("INPUT"); |
|---|
| | 431 | |
|---|
| | 432 | // grep hidden input index value |
|---|
| | 433 | info["input_idx.value"] = inputs[0].value; |
|---|
| | 434 | |
|---|
| | 435 | // grep action name input state |
|---|
| | 436 | info["input_name.name"] = inputs[1].name; |
|---|
| | 437 | info["input_name.value"] = inputs[1].value; |
|---|
| | 438 | |
|---|
| | 439 | // grep dl advanced section class name |
|---|
| | 440 | info["dl_advanced.className"] = edit_form.getElementsByTagName("DL")[1].className; |
|---|
| | 441 | info["dd_advanced.style.display"] = edit_form.getElementsByTagName("DD")[1].style.display; |
|---|
| | 442 | |
|---|
| | 443 | // grep url input state |
|---|
| | 444 | info["input_url.name"] = inputs[2].name; |
|---|
| | 445 | info["input_url.value"] = inputs[2].value; |
|---|
| | 446 | |
|---|
| | 447 | // grep id input state |
|---|
| | 448 | info["input_id.name"] = inputs[3].name; |
|---|
| | 449 | info["input_id.value"] = inputs[3].value; |
|---|
| | 450 | |
|---|
| | 451 | // grep condition input state |
|---|
| | 452 | info["input_condition.name"] = inputs[4].name; |
|---|
| | 453 | info["input_condition.value"] = inputs[4].value; |
|---|
| | 454 | |
|---|
| | 455 | // grep buttons state |
|---|
| | 456 | info["save_button.value"] = inputs[5].value; |
|---|
| | 457 | info["cancel_button.value"] = inputs[6].value; |
|---|
| | 458 | |
|---|
| | 459 | return info; |
|---|
| | 460 | } |
|---|
| | 461 | |
|---|
| | 462 | function recoverAction(info) { |
|---|
| | 463 | |
|---|
| | 464 | // create list item and assign corresponding attributes |
|---|
| | 465 | var li = document.createElement("LI"); |
|---|
| | 466 | li.id = info["li.id"]; |
|---|
| | 467 | li.title = info["li.title"]; |
|---|
| | 468 | li.className = info["li.className"]; |
|---|
| | 469 | |
|---|
| | 470 | // create drag handle image and assign corresponding attributes |
|---|
| | 471 | var drag_handle = document.createElement("IMG"); |
|---|
| | 472 | drag_handle.className = "drag-handle"; |
|---|
| | 473 | drag_handle.src = "drag.gif"; |
|---|
| | 474 | drag_handle.alt = ""; |
|---|
| | 475 | drag_handle.height = "11"; |
|---|
| | 476 | drag_handle.width = "25"; |
|---|
| | 477 | |
|---|
| | 478 | li.appendChild(drag_handle); |
|---|
| | 479 | |
|---|
| | 480 | // create bridge div element for visibility checkbox |
|---|
| | 481 | var bridge = document.createElement("DIV"); |
|---|
| | 482 | bridge.className = "bridge"; |
|---|
| | 483 | |
|---|
| | 484 | // create checkbox for visibility control |
|---|
| | 485 | var vis_box = document.createElement("INPUT"); |
|---|
| | 486 | vis_box.type = "checkbox"; |
|---|
| | 487 | vis_box.className = "visibility"; |
|---|
| | 488 | vis_box.value = "1"; |
|---|
| | 489 | vis_box.title = "visibility"; |
|---|
| | 490 | vis_box.name = info["vis_box.name"]; |
|---|
| | 491 | |
|---|
| | 492 | bridge.appendChild(vis_box); |
|---|
| | 493 | |
|---|
| | 494 | // buggy IE |
|---|
| | 495 | if (info["vis_box.checked"]) { |
|---|
| | 496 | vis_box.setAttribute("checked", "checked"); |
|---|
| | 497 | vis_box.defaultChecked = true; |
|---|
| | 498 | } |
|---|
| | 499 | |
|---|
| | 500 | li.appendChild(bridge); |
|---|
| | 501 | |
|---|
| | 502 | // create Delete link |
|---|
| | 503 | var del_link = document.createElement("A"); |
|---|
| | 504 | del_link.className = "delete"; |
|---|
| | 505 | del_link.href = "#"; |
|---|
| | 506 | del_link.appendChild(document.createTextNode("Delete")); |
|---|
| | 507 | |
|---|
| | 508 | li.appendChild(del_link); |
|---|
| | 509 | |
|---|
| | 510 | // create url-helper element |
|---|
| | 511 | var url_helper = document.createElement("SPAN"); |
|---|
| | 512 | url_helper.className = "url-helper"; |
|---|
| | 513 | url_helper.appendChild(document.createTextNode(info["url_helper.text"])); |
|---|
| | 514 | |
|---|
| | 515 | li.appendChild(url_helper); |
|---|
| | 516 | |
|---|
| | 517 | // create tab title element |
|---|
| | 518 | var tab_title = document.createElement("SPAN"); |
|---|
| | 519 | tab_title.className = "tab-title"; |
|---|
| | 520 | tab_title.appendChild(document.createTextNode(info["tab_title.text"])); |
|---|
| | 521 | |
|---|
| | 522 | li.appendChild(tab_title); |
|---|
| | 523 | |
|---|
| | 524 | // create edit form |
|---|
| | 525 | var edit_form = document.createElement("FORM"); |
|---|
| | 526 | edit_form.className = "editform"; |
|---|
| | 527 | edit_form.method = "post"; |
|---|
| | 528 | edit_form.name = info["edit_form.name"]; |
|---|
| | 529 | edit_form.action = info["edit_form.action"]; |
|---|
| | 530 | |
|---|
| | 531 | // create hidden input with index value |
|---|
| | 532 | var input_idx = document.createElement("INPUT"); |
|---|
| | 533 | input_idx.type = "hidden"; |
|---|
| | 534 | input_idx.name = "idx"; |
|---|
| | 535 | input_idx.value = info["input_idx.value"]; |
|---|
| | 536 | |
|---|
| | 537 | edit_form.appendChild(input_idx); |
|---|
| | 538 | |
|---|
| | 539 | // create dl element for name input section |
|---|
| | 540 | var dl_name = document.createElement("DL"); |
|---|
| | 541 | var dt_name = document.createElement("DT"); |
|---|
| | 542 | var name_label = document.createElement("LABEL"); |
|---|
| | 543 | name_label.appendChild(document.createTextNode("Name")); |
|---|
| | 544 | |
|---|
| | 545 | dt_name.appendChild(name_label); |
|---|
| | 546 | dl_name.appendChild(dt_name); |
|---|
| | 547 | |
|---|
| | 548 | // crete input for action name |
|---|
| | 549 | var dd_name = document.createElement("DD"); |
|---|
| | 550 | var input_name = document.createElement("INPUT"); |
|---|
| | 551 | input_name.type = "text"; |
|---|
| | 552 | input_name.size = "30"; |
|---|
| | 553 | input_name.name = info["input_name.name"]; |
|---|
| | 554 | input_name.value = info["input_name.value"]; |
|---|
| | 555 | |
|---|
| | 556 | dd_name.appendChild(input_name); |
|---|
| | 557 | dl_name.appendChild(dd_name); |
|---|
| | 558 | edit_form.appendChild(dl_name); |
|---|
| | 559 | |
|---|
| | 560 | // create dl element for advanced inputs |
|---|
| | 561 | var dl_advanced = document.createElement("DL"); |
|---|
| | 562 | dl_advanced.className = info["dl_advanced.className"]; |
|---|
| | 563 | |
|---|
| | 564 | // create collapsible header |
|---|
| | 565 | var dt_advanced = document.createElement("DT"); |
|---|
| | 566 | dt_advanced.className = "headerAdvanced"; |
|---|
| | 567 | dt_advanced.appendChild(document.createTextNode("Advanced")); |
|---|
| | 568 | |
|---|
| | 569 | dl_advanced.appendChild(dt_advanced); |
|---|
| | 570 | |
|---|
| | 571 | // create collapsible content |
|---|
| | 572 | var dd_advanced = document.createElement("DD"); |
|---|
| | 573 | dd_advanced.className = "contentAdvanced"; |
|---|
| | 574 | dd_advanced.style.display = info["dd_advanced.style.display"]; |
|---|
| | 575 | |
|---|
| | 576 | // add URL section |
|---|
| | 577 | // add url header |
|---|
| | 578 | var dl_url = document.createElement("DL"); |
|---|
| | 579 | var dt_url = document.createElement("DT"); |
|---|
| | 580 | var label_url = document.createElement("LABEL"); |
|---|
| | 581 | label_url.appendChild(document.createTextNode("URL (Expression)")); |
|---|
| | 582 | |
|---|
| | 583 | dt_url.appendChild(label_url); |
|---|
| | 584 | dl_url.appendChild(dt_url); |
|---|
| | 585 | |
|---|
| | 586 | //add url value |
|---|
| | 587 | var dd_url = document.createElement("DD"); |
|---|
| | 588 | var input_url = document.createElement("INPUT"); |
|---|
| | 589 | input_url.type = "text"; |
|---|
| | 590 | input_url.size = "30"; |
|---|
| | 591 | input_url.name = info["input_url.name"]; |
|---|
| | 592 | input_url.value = info["input_url.value"]; |
|---|
| | 593 | |
|---|
| | 594 | dd_url.appendChild(input_url); |
|---|
| | 595 | dl_url.appendChild(dd_url); |
|---|
| | 596 | dd_advanced.appendChild(dl_url); |
|---|
| | 597 | |
|---|
| | 598 | // add ID section |
|---|
| | 599 | // add id header |
|---|
| | 600 | var dl_id = document.createElement("DL"); |
|---|
| | 601 | var dt_id = document.createElement("DT"); |
|---|
| | 602 | var label_id = document.createElement("LABEL"); |
|---|
| | 603 | label_id.appendChild(document.createTextNode("Id")); |
|---|
| | 604 | |
|---|
| | 605 | dt_id.appendChild(label_id); |
|---|
| | 606 | dl_id.appendChild(dt_id); |
|---|
| | 607 | |
|---|
| | 608 | //add id value |
|---|
| | 609 | var dd_id = document.createElement("DD"); |
|---|
| | 610 | var input_id = document.createElement("INPUT"); |
|---|
| | 611 | input_id.type = "text"; |
|---|
| | 612 | input_id.name = info["input_id.name"]; |
|---|
| | 613 | input_id.value = info["input_id.value"]; |
|---|
| | 614 | |
|---|
| | 615 | dd_id.appendChild(input_id); |
|---|
| | 616 | dl_id.appendChild(dd_id); |
|---|
| | 617 | dd_advanced.appendChild(dl_id); |
|---|
| | 618 | |
|---|
| | 619 | // add Condition section |
|---|
| | 620 | // add condition header |
|---|
| | 621 | var dl_condition = document.createElement("DL"); |
|---|
| | 622 | var dt_condition = document.createElement("DT"); |
|---|
| | 623 | var label_condition = document.createElement("LABEL"); |
|---|
| | 624 | label_condition.appendChild(document.createTextNode("Condition (Expression)")); |
|---|
| | 625 | |
|---|
| | 626 | dt_condition.appendChild(label_condition); |
|---|
| | 627 | dl_condition.appendChild(dt_condition); |
|---|
| | 628 | |
|---|
| | 629 | //add condition value |
|---|
| | 630 | var dd_condition = document.createElement("DD"); |
|---|
| | 631 | var input_condition = document.createElement("INPUT"); |
|---|
| | 632 | input_condition.type = "text"; |
|---|
| | 633 | input_condition.size = "30"; |
|---|
| | 634 | input_condition.name = info["input_condition.name"]; |
|---|
| | 635 | input_condition.value = info["input_condition.value"]; |
|---|
| | 636 | |
|---|
| | 637 | dd_condition.appendChild(input_condition); |
|---|
| | 638 | dl_condition.appendChild(dd_condition); |
|---|
| | 639 | dd_advanced.appendChild(dl_condition); |
|---|
| | 640 | |
|---|
| | 641 | // add visual clear div to advanced dd element |
|---|
| | 642 | var visual_clear = document.createElement("DIV"); |
|---|
| | 643 | visual_clear.className = "visualClear"; |
|---|
| | 644 | visual_clear.appendChild = document.createTextNode("<!-- -->"); |
|---|
| | 645 | |
|---|
| | 646 | dd_advanced.appendChild(visual_clear); |
|---|
| | 647 | dl_advanced.appendChild(dd_advanced); |
|---|
| | 648 | edit_form.appendChild(dl_advanced); |
|---|
| | 649 | |
|---|
| | 650 | // create div element for form controls |
|---|
| | 651 | var form_controls = document.createElement("DIV"); |
|---|
| | 652 | |
|---|
| | 653 | // add save button |
|---|
| | 654 | var save_button = document.createElement("INPUT"); |
|---|
| | 655 | save_button.type = "submit"; |
|---|
| | 656 | save_button.className = "editsave"; |
|---|
| | 657 | save_button.value = info["save_button.value"]; |
|---|
| | 658 | form_controls.appendChild(save_button); |
|---|
| | 659 | |
|---|
| | 660 | // add cancel button |
|---|
| | 661 | var cancel_button = document.createElement("INPUT"); |
|---|
| | 662 | cancel_button.type = "submit"; |
|---|
| | 663 | cancel_button.className = "editcancel"; |
|---|
| | 664 | cancel_button.value = info["cancel_button.value"]; |
|---|
| | 665 | form_controls.appendChild(cancel_button); |
|---|
| | 666 | |
|---|
| | 667 | edit_form.appendChild(form_controls); |
|---|
| | 668 | li.appendChild(edit_form); |
|---|
| | 669 | |
|---|
| | 670 | return li; |
|---|
| | 671 | } |
|---|