Guest User

Untitled

a guest
Jan 22nd, 2018
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.80 KB | None | 0 0
  1. ==== Template ================================================================
  2.  
  3. Asset ID : po6myzjV6TXmR9JIAuId0w
  4. Menu Title : MedIB Subject Area User Manager
  5. Parent : root/import/medintellibase-templates
  6. Title : MedIB Subject Area User Manager
  7. URL : root/import/medintellibase-templates/medintellibase-sausermanager
  8. ==== extraHeadTags ===========================================================
  9. ~
  10. ==== synopsis ================================================================
  11. ~
  12. ==== template ================================================================
  13. <div style="border:solid black 1px;width: 660px;padding:10px">
  14.  
  15. <div style="text-align:right"><a href="<tmpl_var url_addSubject>">Create New Subject</a> | <a href="<tmpl_var url>?func=copySubject;subjectId=<tmpl_var subjectId escape="url">" onclick="return confirm('Are you sure you want to copy?');">Copy Subject Area</a></div>
  16.  
  17. <p class="headline" style="margin-top:0px">Edit Subject</p>
  18.  
  19. <tmpl_if message>
  20. <p class="error"><tmpl_var message></p>
  21. </tmpl_if>
  22.  
  23. <form action="<tmpl_var url>" method="post">
  24. <input type="hidden" name="func" value="editSubjectSave" />
  25. <input type="hidden" name="subjectId" value="<tmpl_var subjectId>" />
  26. <table class="advancedSearch" cellpadding="4" width="615">
  27. <tr>
  28. <td style="width:1px;white-space:nowrap;text-align:right">
  29. Subject Name
  30. </td>
  31. <td style="text-align:left">
  32. <input type="text" name="name" size="30" value="<tmpl_var name>" style="padding-left:2px; width: 90%;" />
  33. </td>
  34. </tr>
  35. <tr>
  36. <td style="width:1px;white-space:nowrap;text-align:right">
  37. Subject Short Name
  38. </td>
  39. <td style="text-align:left">
  40. <input type="text" name="shortName" size="30" value="<tmpl_var shortName>" style="padding-left:2px; width: 90%;" />
  41. </td>
  42. </tr>
  43. <tr>
  44. <td style="width:1px;white-space:nowrap;text-align:right">
  45. Subject Abbreviation
  46. </td>
  47. <td style="text-align:left">
  48. <input type="text" name="abbr" size="30" value="<tmpl_var abbr>" style="padding-left:2px; width: 90%;" />
  49. </td>
  50. </tr>
  51. <tr>
  52. <td style="width:1px;white-space:nowrap;text-align:right">
  53. Default Subject Alert View
  54. </td>
  55. <td style="text-align:left">
  56. <tmpl_var form_defaultAlertView>
  57. </td>
  58. </tr>
  59. <tr>
  60. <td style="width:1px;white-space:nowrap;text-align:right">
  61. Users Can Receive Notification
  62. </td>
  63. <td style="text-align:left">
  64. <tmpl_var form_canNotify>
  65. </td>
  66. </tr>
  67. <tr>
  68. <td style="width:1px;white-space:nowrap;text-align:right">
  69. Subject Banner
  70. </td>
  71. <td style="text-align:left">
  72. <tmpl_var form_banner>
  73. </td>
  74. </tr>
  75. <tr>
  76. <td style="width:1px;white-space:nowrap;text-align:right; vertical-align: top;">
  77. Alert Introduction Text
  78. </td>
  79. <td style="text-align:left">
  80. <tmpl_var form_alertIntroText>
  81. </td>
  82. </tr>
  83. <tr>
  84. <td colspan="2">
  85. <h2>Subject Colors</h2>
  86. </td>
  87. </tr>
  88. <tmpl_loop colors>
  89. <tr>
  90. <td><tmpl_var label></td>
  91. <td><tmpl_var control></td>
  92. </tr>
  93. </tmpl_loop>
  94. <tr>
  95. <td colspan="2">
  96. <fieldset>
  97. <legend>Associated Users</legend>
  98. <script type="text/javascript">
  99. //------------------------------------------------------
  100. // removeAllChildren(elem)
  101. // Removes all child nodes from the given Element
  102. function removeAllChildren(elem) {
  103. if (elem && elem.hasChildNodes && elem.removeChild) {
  104. YAHOO.util.Event.purgeElement(elem, true);
  105. while (elem.hasChildNodes()) {
  106. elem.removeChild(elem.firstChild);
  107. }
  108. }
  109. }
  110. // keys are userIds, values are usernames
  111. var users = {
  112. <tmpl_loop users>
  113. "<tmpl_var userId>" : "<tmpl_var username>" <tmpl_unless __LAST__>,</tmpl_unless>
  114. </tmpl_loop>
  115. };
  116.  
  117. function showAddUser() {
  118. var offset = getScrollOffset();
  119. var topOffset = offset.y;
  120. var leftOffset = offset.x;
  121.  
  122. var userPopup = document.getElementById("userPopup");
  123. YAHOO.util.Dom.setStyle(userPopup, "position", "absolute");
  124. YAHOO.util.Dom.setStyle(userPopup, "top", (topOffset+30)+"px");
  125. YAHOO.util.Dom.setStyle(userPopup, "left", (leftOffset+30)+"px");
  126. YAHOO.util.Dom.setStyle(userPopup, "display", "block");
  127. }
  128.  
  129. function hideAddUser() {
  130. YAHOO.util.Dom.setStyle("userPopup","display","none");
  131. }
  132.  
  133. function getUserSearch() {
  134. var search = document.getElementById("userPopupForm").elements["search"].value;
  135. YAHOO.util.Connect.asyncRequest(
  136. "GET",
  137. "<tmpl_var url>?func=ajaxUserSearch;search="+search,
  138. getUserSearchCallback
  139. );
  140. }
  141.  
  142. var getUserSearchCallback = {
  143. success : function (o) {
  144. // Update the "userPopupTable"
  145. var searchResults = eval("("+o.responseText+")");
  146. var popupTable = document.getElementById("userPopupTable");
  147. removeAllChildren( popupTable );
  148.  
  149. if (searchResults.length > 0) {
  150. for (var i = 0; i < searchResults.length; i++) {
  151. var tr = document.createElement("tr");
  152. if (i % 2 == 0)
  153. YAHOO.util.Dom.addClass(tr,"alt2");
  154. var tdUsername = document.createElement("td");
  155. tdUsername.appendChild( document.createTextNode(searchResults[i].username) );
  156. tr.appendChild( tdUsername );
  157.  
  158. var tdAdd = document.createElement("td");
  159. YAHOO.util.Dom.setStyle(tdAdd, "text-align", "right");
  160.  
  161. var addLink = document.createElement("a");
  162. addLink.setAttribute("href","#");
  163. YAHOO.util.Event.addListener(addLink, "click", eventAddUser, searchResults[i]);
  164. addLink.appendChild( document.createTextNode("add") );
  165. tdAdd.appendChild( addLink );
  166. tr.appendChild( tdAdd );
  167.  
  168. popupTable.appendChild( tr );
  169. }
  170. }
  171. else {
  172. var tr = document.createElement("tr");
  173. var td = document.createElement("td");
  174. td.appendChild( document.createTextNode("No users found!") );
  175. tr.appendChild( td );
  176. popupTable.appendChild( tr );
  177. }
  178. },
  179. failure : function (o) {
  180. alert("Couldn't get user search! Please try again!");
  181. }
  182. };
  183.  
  184. function updateUsers() {
  185. // Update the "users" table with the info from the "users" hash
  186. var tbody = document.getElementById("users");
  187. removeAllChildren(tbody);
  188.  
  189. var i = 0;
  190. for (var userId in users) {
  191. var tr = document.createElement("tr");
  192. if (i++ % 2 == 0)
  193. YAHOO.util.Dom.addClass(tr, "alt");
  194.  
  195. var td = document.createElement("td");
  196. td.appendChild( document.createTextNode(users[userId]) );
  197.  
  198. var input = document.createElement("input");
  199. input.setAttribute("type","hidden");
  200. input.setAttribute("name","userId");
  201. input.setAttribute("value",userId);
  202. td.appendChild( input );
  203. tr.appendChild( td );
  204.  
  205. var tdDelete = document.createElement("td");
  206. YAHOO.util.Dom.setStyle(tdDelete, "text-align", "right");
  207. tdDelete.appendChild( document.createTextNode("[") );
  208. var aDelete = document.createElement("a");
  209. aDelete.setAttribute("href","#");
  210. YAHOO.util.Dom.setStyle(aDelete, "color", "red");
  211. YAHOO.util.Event.addListener(aDelete, "click", eventDeleteUser, userId);
  212. aDelete.appendChild( document.createTextNode("delete") );
  213. tdDelete.appendChild( aDelete );
  214. tdDelete.appendChild( document.createTextNode("]") );
  215. tr.appendChild( tdDelete );
  216. tbody.appendChild( tr );
  217. }
  218. }
  219.  
  220. function eventAddUser(e, user) {
  221. // Add the user to the "users" hash
  222. users[user.userId] = user.username;
  223. updateUsers();
  224. hideAddUser();
  225. return false;
  226. }
  227.  
  228. function eventDeleteUser(e, userId) {
  229. // Delete the user from the "users" hash
  230. delete users[userId];
  231. updateUsers();
  232. return false;
  233. }
  234.  
  235. // When "users" table ready, updateUsers();
  236. YAHOO.util.Event.onContentReady("users", updateUsers);
  237. </script>
  238. <div style="text-align:right">
  239. <a href="#" onclick="showAddUser(); return false;" style="color:white">Add</a>
  240. </div>
  241. <br />
  242. <table width="100%" style="border:solid #8D8D8D 1px" cellspacing="0" cellpadding="4">
  243. <tbody id="users"><tr><td></td></tr></tbody>
  244. </table>
  245. </fieldset>
  246. </td>
  247. </tr>
  248. </table>
  249.  
  250. <div>&nbsp;</div>
  251.  
  252. <p class="headline">Keyword Association</p>
  253. <script type="text/javascript">
  254. // array of hashrefs of keyword data in order of parent/child and then in order of ranking
  255. // note: existing rank is entirely ignored in this GUI, to deal with the initial implementation
  256. // rank is assigned by this GUI, and re-assigned every time updateKeywords is called
  257. // in addition to initial implementation this will repair holes in the ranks
  258. var keywords =
  259. <tmpl_if keywords>
  260. <tmpl_loop keywords>
  261. <tmpl_if isFirstChild>[</tmpl_if>
  262. {
  263. "keywordId" : "<tmpl_var keywordId>",
  264. "name" : "<tmpl_var name escape=JS>",
  265. "shortName" : "<tmpl_var shortName escape=JS>",
  266. "type" : "<tmpl_var type>",
  267. "showInAlert" : <tmpl_var showInAlert>,
  268. "showInBreakingNews" : <tmpl_var showInBreakingNews>,
  269. "parentId" : "<tmpl_var parentId>",
  270. "rank" : 0<tmpl_if hasChildren>,
  271. "children" : </tmpl_if>
  272. <tmpl_if depthUpLoop><tmpl_loop depthUpLoop>}]</tmpl_loop></tmpl_if>
  273. <tmpl_unless hasChildren><tmpl_unless __LAST__>},</tmpl_unless></tmpl_unless>
  274. </tmpl_loop>;
  275. <tmpl_else>[];</tmpl_if>
  276.  
  277. function showAddKeyword() {
  278. var form = document.getElementById("keywordForm");
  279.  
  280. // Update parent select list
  281. var list = form.elements["parentId"];
  282. removeAllChildren(list);
  283. var noParent = document.createElement("option");
  284. noParent.setAttribute("value","");
  285. noParent.appendChild( document.createTextNode("No Parent") );
  286. list.appendChild( noParent );
  287.  
  288. // Add the options to the parent select box
  289. addParentOptions(keywords, list, 0);
  290.  
  291. // Clear form
  292. form.elements["keywordId"].value = "new";
  293. form.elements["name"].value = "";
  294. form.elements["shortName"].value = "";
  295. form.elements["type"].options[0].selected = "selected";
  296. form.elements["parentId"].options[0].selected = "selected";
  297. form.elements["showInAlert"].checked = true;
  298. form.elements["showInBreakingNews"].checked = false;
  299.  
  300. // Display
  301. var offset = getScrollOffset();
  302. var topOffset = offset.y;
  303. var leftOffset = offset.x;
  304.  
  305. var keywordPopup = document.getElementById("keywordPopup");
  306. YAHOO.util.Dom.setStyle(keywordPopup, "position", "absolute");
  307. YAHOO.util.Dom.setStyle(keywordPopup, "top", (topOffset+30)+"px");
  308. YAHOO.util.Dom.setStyle(keywordPopup, "left", (leftOffset+30)+"px");
  309. YAHOO.util.Dom.setStyle(keywordPopup, "display", "block");
  310. }
  311.  
  312. function addParentOptions(tree, list, depth) {
  313. // Add parent options to the select box
  314. for (var i in tree) {
  315. var option = document.createElement("option");
  316.  
  317. option.setAttribute("value",tree[i].keywordId);
  318. var prefix = ""; // Add a prefix to show child relationships
  319. for (var x = 0; x < depth; x++) { prefix = prefix + (x == 0 ? "+" : "-"); }
  320. option.appendChild( document.createTextNode(prefix + " " + tree[i].name) );
  321.  
  322. list.appendChild( option );
  323.  
  324. if (tree[i].children) {
  325. addParentOptions(tree[i].children, list, depth+1);
  326. }
  327. }
  328. }
  329.  
  330. function hideAddKeyword() {
  331. // Hide
  332. YAHOO.util.Dom.setStyle(
  333. document.getElementById("keywordPopup"),
  334. "display",
  335. "none"
  336. );
  337. }
  338.  
  339. function eventEditKeyword(e, keyword) {
  340. showAddKeyword();
  341.  
  342. var form = document.getElementById("keywordForm");
  343.  
  344. // Update form with proper information
  345. form.elements["keywordId"].value = keyword.keywordId;
  346. form.elements["name"].value = keyword.name;
  347. form.elements["shortName"].value = keyword.shortName;
  348. for (var i = 0; i < form.elements["type"].options.length; i++) {
  349. if (form.elements["type"].options[i].value == keyword.type) {
  350. form.elements["type"].options[i].selected = "selected";
  351. break;
  352. }
  353. }
  354. for (var i = 0; i < form.elements["parentId"].options.length; i++) {
  355. if (form.elements["parentId"].options[i].value == keyword.parentId) {
  356. form.elements["parentId"].options[i].selected = "selected";
  357. break;
  358. }
  359. }
  360. form.elements["showInAlert"].checked = keyword.showInAlert ? true : false;
  361. form.elements["showInBreakingNews"].checked = keyword.showInBreakingNews ? true : false;
  362. }
  363.  
  364. function eventDeleteKeyword(e, keywordId) {
  365. if (confirm("Are you sure you want to delete this keyword and all child keywords?")) {
  366. removeItemFromTree(keywordId, keywords);
  367. updateKeywords();
  368. }
  369. }
  370.  
  371. function removeItemFromTree(itemId, tree) {
  372. for (var i in tree) {
  373. if (tree[i].keywordId == itemId) {
  374. tree.splice(i,1);
  375. return 1;
  376. }
  377. if (tree[i].children) {
  378. var found = removeItemFromTree(itemId, tree[i].children);
  379. if (found == 1) {
  380. // Delete the children key if we have no children
  381. return found;
  382. }
  383. }
  384. }
  385.  
  386. return 0;
  387. }
  388.  
  389. function eventSaveKeyword(e) {
  390. var form = document.getElementById("keywordForm");
  391.  
  392. var keyword = {
  393. "keywordId" : form.elements["keywordId"].value,
  394. "name" : form.elements["name"].value,
  395. "shortName" : form.elements["shortName"].value,
  396. "showInAlert" : form.elements["showInAlert"].checked ? "1" : 0,
  397. "showInBreakingNews" : form.elements["showInBreakingNews"].checked ? "1" : 0
  398. };
  399.  
  400. for (var i = 0; i < form.elements["type"].options.length; i++) {
  401. if (form.elements["type"].options[i].selected) {
  402. keyword.type = form.elements["type"].options[i].value;
  403. break;
  404. }
  405. }
  406.  
  407. for (var i = 0; i < form.elements["parentId"].options.length; i++) {
  408. if (form.elements["parentId"].options[i].selected) {
  409. keyword.parentId = form.elements["parentId"].options[i].value;
  410. break;
  411. }
  412. }
  413.  
  414. // Make sure all information is filled in
  415. if (!keyword.name) {
  416. alert("Please fill in the keyword name.");
  417. return;
  418. }
  419. else if (!keyword.shortName) {
  420. alert("Please fill in the keyword short name.");
  421. return;
  422. }
  423. else if (!keyword.type) {
  424. alert("Please select a keyword type.");
  425. return;
  426. }
  427. else {
  428. // Make sure the hash key is unique
  429. if (keyword.keywordId == "new") {
  430. var randA = Math.floor(Math.random() * 9999999999);
  431. var randB = Math.floor(Math.random() * 9999999999);
  432. keyword.keywordId = "k"+randA+""+randB;
  433. addItemToTree(keyword, keywords);
  434. }
  435. else {
  436. updateItemInTree(keyword, keywords);
  437. }
  438.  
  439.  
  440. // ranking is assigned in appendKeywordTree
  441. hideAddKeyword();
  442. updateKeywords();
  443. }
  444. }
  445.  
  446. function addItemToTree(item, tree) {
  447. // Special case to add top-level items
  448. if (item.parentId == "") {
  449. tree[tree.length] = item;
  450. return 1;
  451. }
  452.  
  453. // Loop through the tree looking for the parentId
  454. for (var i = 0; i < tree.length; i++) {
  455. if (tree[i].keywordId == item.parentId) {
  456. if (!tree[i].children) { tree[i].children = [] }
  457. tree[i].children[tree[i].children.length] = item;
  458. return 1;
  459. }
  460.  
  461. if (tree[i].children) {
  462. var found = addItemToTree(item, tree[i].children);
  463. if (found == 1) return 1;
  464. }
  465. }
  466.  
  467. return 0;
  468. }
  469.  
  470. function updateItemInTree(item, tree) {
  471. // Loop through the tree looking for the keywordId
  472. for (var i = 0; i < tree.length; i++) {
  473. if (tree[i].keywordId == item.keywordId) {
  474. item.children = tree[i].children; // Won't somebody PLEASE think of the children?
  475. tree[i] = item;
  476. return 1;
  477. }
  478.  
  479. if (tree[i].children) {
  480. var found = updateItemInTree(item, tree[i].children);
  481. if (found == 1) return 1;
  482. }
  483. }
  484.  
  485. return 0;
  486. }
  487.  
  488. function eventMoveKeywordDown(e, keyword) {
  489. moveItemDownInTree(keyword, keywords);
  490. updateKeywords();
  491. }
  492.  
  493. function moveItemDownInTree(item, tree) {
  494. // Loop through the tree and find the item
  495. for (var i = 0; i < tree.length; i++) {
  496. // If we found the item, move it
  497. if (item.keywordId == tree[i].keywordId) {
  498. // Splice
  499. var moving = tree.splice(i, 1);
  500. tree.splice(i+1,0,moving[0]);
  501. return 1;
  502. }
  503. // Otherwise recurse
  504. else {
  505. if (tree[i].children) {
  506. var found = moveItemDownInTree(item, tree[i].children);
  507. if (found == 1) return found;
  508. }
  509. }
  510. }
  511.  
  512. }
  513.  
  514. function eventMoveKeywordUp(e, keyword) {
  515. moveItemUpInTree(keyword, keywords);
  516. updateKeywords();
  517. }
  518.  
  519. function moveItemUpInTree(item, tree) {
  520. // Loop through the keywords and find the item
  521. for (var i = 0; i < tree.length; i++) {
  522. // If we found the tree, move it
  523. if (item.keywordId == tree[i].keywordId) {
  524. // Splice
  525. var moving = tree.splice(i, 1);
  526. tree.splice(i-1,0,moving[0]);
  527. return 1;
  528. }
  529. // Otherwise recurse
  530. else {
  531. if (tree[i].children) {
  532. var found = moveItemUpInTree(item, tree[i].children);
  533. if (found == 1) return found;
  534. }
  535. }
  536. }
  537. }
  538.  
  539. function updateKeywords() {
  540. // Clear keywords
  541. removeAllChildren( document.getElementById("keywords") );
  542.  
  543. updateKeywordTree(keywords, 0);
  544. }
  545.  
  546. // Recursive function to add keywords to the table
  547. function updateKeywordTree(keywords, depth) {
  548. for (var i = 0; i < keywords.length; i++) {
  549. // initialize rank if necessary
  550. keywords[i].rank = i;
  551.  
  552. var isFirstChild = ( i == 0 ? 1 : 0 );
  553. var isLastChild = ( i == keywords.length - 1 ? 1 : 0);
  554.  
  555. appendKeyword(keywords[i], depth, isFirstChild, isLastChild);
  556.  
  557. // Recurse
  558. if (keywords[i].children) {
  559. updateKeywordTree(keywords[i].children, depth+1);
  560. }
  561. }
  562. }
  563.  
  564. // Add a single keyword to the table
  565. function appendKeyword(keyword, depth, isFirstChild, isLastChild) {
  566. if (typeof keyword.rank == "undefined")
  567. alert("Keyword not assigned rank?");
  568.  
  569. // Add the current keyword
  570. var tbody = document.getElementById("keywords");
  571. var tr = document.createElement("tr");
  572.  
  573. var tdName = document.createElement("td");
  574. // Create the appropriate hidden form element
  575. var input = document.createElement("input");
  576. input.setAttribute("type","hidden");
  577. input.setAttribute("name","keyword");
  578. input.setAttribute("value", JSON.stringify({
  579. 'keywordId' : keyword.keywordId,
  580. 'name' : keyword.name,
  581. 'shortName' : keyword.shortName,
  582. "showInAlert" : keyword.showInAlert,
  583. "showInBreakingNews" : keyword.showInBreakingNews,
  584. 'type' : keyword.type,
  585. 'rank' : keyword.rank,
  586. 'parentId' : keyword.parentId
  587. }));
  588. tdName.appendChild( input );
  589. var paddingLeft = (depth * 10) + "px";
  590. YAHOO.util.Dom.setStyle(tdName, "paddingLeft", paddingLeft);
  591. tdName.appendChild( document.createTextNode("\u2219 "+keyword.name) );
  592. tr.appendChild( tdName );
  593.  
  594. var tdShortName = document.createElement("td");
  595. tdShortName.appendChild( document.createTextNode("("+keyword.shortName+")") );
  596. tr.appendChild( tdShortName );
  597.  
  598. var tdType = document.createElement("td");
  599. tdType.appendChild( document.createTextNode(keyword.type) );
  600. tr.appendChild( tdType );
  601.  
  602. var tdControls = document.createElement("td");
  603. YAHOO.util.Dom.setStyle(tdControls, "white-space", "nowrap");
  604. YAHOO.util.Dom.setStyle(tdControls, "text-align", "right");
  605.  
  606. // Add up/dn controls
  607. tdControls.appendChild( document.createTextNode("[") );
  608. if (!isFirstChild) {
  609. var aUp = document.createElement("a");
  610. YAHOO.util.Event.addListener(aUp, "click", eventMoveKeywordUp, keyword);
  611. aUp.appendChild( document.createTextNode("up") );
  612. tdControls.appendChild( aUp );
  613. }
  614. else { tdControls.appendChild( document.createTextNode("up") ); }
  615. tdControls.appendChild( document.createTextNode("] ") );
  616.  
  617. tdControls.appendChild( document.createTextNode("[") );
  618. if (!isLastChild) {
  619. var aDn = document.createElement("a");
  620. YAHOO.util.Event.addListener(aDn, "click", eventMoveKeywordDown, keyword);
  621. aDn.appendChild( document.createTextNode("dn") );
  622. tdControls.appendChild( aDn );
  623. }
  624. else { tdControls.appendChild( document.createTextNode("dn") ); }
  625. tdControls.appendChild( document.createTextNode("] ") );
  626.  
  627. var aEdit = document.createElement("a");
  628. YAHOO.util.Event.addListener(aEdit, "click", eventEditKeyword, keyword);
  629. var imgEdit = document.createElement("img");
  630. imgEdit.setAttribute("src","/images/edit.gif");
  631. YAHOO.util.Dom.setStyle(imgEdit, "border", "none");
  632. aEdit.appendChild( imgEdit );
  633. tdControls.appendChild( aEdit );
  634.  
  635. var aDelete = document.createElement("a");
  636. YAHOO.util.Event.addListener(aDelete, "click", eventDeleteKeyword, keyword.keywordId);
  637. var imgDelete = document.createElement("img");
  638. imgDelete.setAttribute("src","/images/delete.gif");
  639. YAHOO.util.Dom.setStyle(imgDelete, "border", "none");
  640. aDelete.appendChild( imgDelete );
  641. tdControls.appendChild( aDelete );
  642. tr.appendChild( tdControls );
  643. tbody.appendChild( tr );
  644. }
  645.  
  646. // When "keywords" table ready, updateKeywords();
  647. YAHOO.util.Event.onContentReady("keywords", updateKeywords);
  648.  
  649. </script>
  650. <div style="width:605px;padding:5px;text-align:right">
  651. <a href="#" onclick="showAddKeyword(); return false;">Add Keyword</a>
  652. </div>
  653.  
  654. <table class="advancedSearch" cellpadding="4" cellspacing="0" width="615">
  655. <thead>
  656. <tr>
  657. <td class="header" style="font-size:10pt;padding-left:2px;width:50%">Full Keyword</td>
  658. <td class="header" style="font-size:10pt;padding-left:2px;width:20%">Short Keyword</td>
  659. <td class="header" style="font-size:10pt;padding-left:2px;width:20%">Keyword Type</td>
  660. <td class="header"></td>
  661. </tr>
  662. </thead>
  663. <tbody id="keywords">
  664. <tr><td></td><td></td><td></td></tr>
  665. </tbody>
  666. </table>
  667.  
  668. </div>
  669. <div style="width:645px;padding:5px;text-align:right">
  670. <input type="submit" value="Update Subject" name="submit" />
  671. <input type="submit" value="Cancel" name="submit" />
  672. </div>
  673. </form>
  674.  
  675. <div id="userPopup" class="popUp" style="display:none; position:absolute; width: 540px;">
  676. <form id="userPopupForm" action="" onsubmit="return false;">
  677. <div style="text-align: right;">
  678. [<a href="#" onclick="hideAddUser(); return false;">close</a>]
  679. </div>
  680. <table>
  681. <tr>
  682. <td><input name="search" type="text" size="30" /></td>
  683. <td><input onclick="getUserSearch();" type="button" value="Search" class="advancedSearch" /></td>
  684. </tr>
  685. <tr>
  686. <td colspan="2">
  687. <br />
  688. <table border="0" cellpadding="2" cellspacing="0" width="100%">
  689. <tbody id="userPopupTable">
  690. <tr>
  691. <td></td>
  692. </tr>
  693. </tbody>
  694. </table>
  695. </td>
  696. </tr>
  697. </table>
  698. <tmpl_if canAddUser><div style="float: left;"><a href="?op=editUser;uid=new" target="_new">Add new user</a></div></tmpl_if>
  699. </form>
  700. </div>
  701.  
  702. <div id="keywordPopup" class="popUp" style="display:none; position:absolute; width: 540px;">
  703. <form id="keywordForm" onsubmit="return false;">
  704. <input type="hidden" name="keywordId" value="" />
  705. <div style="text-align: right;">
  706. [<a href="#" onclick="hideAddKeyword(); return false;">close</a>]
  707. </div>
  708. <table style="width: 95%; margin: 0 auto;">
  709. <tbody>
  710. <tr>
  711. <td style="text-align:right"><strong class="smallText">Full Keyword</strong></td>
  712. <td><input name="name" style="width: 90%;" type="text" size="25" /></td>
  713. </tr>
  714. <tr>
  715. <td style="text-align:right"><strong class="smallText">Short Keyword</strong></td>
  716. <td><input name="shortName" style="width: 90%;" type="text" size="25" /></td>
  717. </tr>
  718. <tr>
  719. <td style="text-align:right"><strong class="smallText">Keyword Type</strong></td>
  720. <td>
  721. <select name="type">
  722. <option value="">Choose One</option>
  723. <option value="company">Company</option>
  724. <option value="application">Application</option>
  725. <option value="procedure">Procedure</option>
  726. <option value="product">Product</option>
  727. </select>
  728. </td>
  729. </tr>
  730. <tr>
  731. <td style="text-align:right"><strong class="smallText">Parent</strong></td>
  732. <td>
  733. <select name="parentId">
  734. <option value="">No Parent</option>
  735. </select>
  736. </td>
  737. </tr>
  738. <tr>
  739. <td style="text-align:right"><strong class="smallText">Show In Alert</strong></td>
  740. <td><input type="checkbox" name="showInAlert" value="1" /></td>
  741. </tr>
  742. <tr>
  743. <td style="text-align:right"><strong class="smallText">Show In Breaking News</strong></td>
  744. <td><input type="checkbox" name="showInBreakingNews" value="1" /></td>
  745. </tr>
  746. </tbody>
  747. </table>
  748. <hr />
  749. <div style="text-align:right;padding:7px">
  750. <a href="#" onclick="eventSaveKeyword(); return false;" class="advancedLink">Add Keyword</a>
  751. </div>
  752. </form>
  753. </div>
  754. ==== Properties ==============================================================
  755.  
  756. display:
  757. isHidden: 1
  758. newWindow: 0
  759. meta:
  760. inheritUrlFromParent: 0
  761. isExportable: 1
  762. isPackage: 0
  763. isPrototype: 0
  764. properties:
  765. namespace: MedIntellibase/SAUserManager
  766. parser: WebGUI::Asset::Template::HTMLTemplate
  767. showInForms: 1
  768. security:
  769. groupIdEdit: 12
  770. groupIdView: 7
  771. ownerUserId: 3
Add Comment
Please, Sign In to add comment