From: Michael M Slusarz Date: Fri, 30 Jul 2010 16:02:16 +0000 (-0600) Subject: Convert browse javascript to a static js file X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=060308d6c24f24231d6739236a02e1642584e332;p=horde.git Convert browse javascript to a static js file --- diff --git a/turba/js/browse.js b/turba/js/browse.js new file mode 100644 index 000000000..23f69c216 --- /dev/null +++ b/turba/js/browse.js @@ -0,0 +1,92 @@ +/** + * browse.js + */ + +var TurbaBrowse = { + // Defined externally: contact1, contact2, contact3, copy1, copy2, + // submit1, submit2, delete1 +}; + +function AnySelected() +{ + for (i = 0; i < document.contacts.elements.length; i++) { + if (document.contacts.elements[i].checked) { + return true; + } + } + return false; +} + +function Add(select) +{ + if (!AnySelected()) { + window.alert(TurbaBrowse.contact1); + return false; + } + + key = select[select.selectedIndex].value; + if (key == '') { + window.alert(TurbaBrowse.contact2); + return false; + } + + if (key.indexOf(':') == -1 || key.lastIndexOf(':') == key.length - 1) { + var newList = window.prompt(TurbaBrowse.contact3, ''); + if (newList != null && newList != '') { + if (key.lastIndexOf(':') == key.length - 1) { + key = key.substr(0, key.length - 1); + } + document.contacts.targetAddressbook.value = key; + document.contacts.targetNew.value = 1; + document.contacts.targetList.value = newList; + } else { + return false; + } + } else { + document.contacts.targetList.value = key; + } + + Submit('add'); +} + +function CopyMove(action, select) +{ + if (!AnySelected()) { + window.alert(TurbaBrowse.contact1); + return false; + } + + key = select[select.selectedIndex].value; + if (key == '') { + window.alert(TurbaBrowse.copymove); + return false; + } + + document.contacts.targetAddressbook.value = key; + Submit(action); +} + +function Submit(action) +{ + if (AnySelected()) { + if (action != 'delete' || window.confirm(TurbaBrowse.submit)) { + document.contacts.actionID.value = action; + document.contacts.submit(); + } + } else { + window.alert(TurbaBrowse.contact1); + return false; + } +} + +function SelectAll() +{ + for (var i = 0; i < document.contacts.elements.length; i++) { + document.contacts.elements[i].checked = document.contacts.checkAll.checked; + } +} + +function confirmDelete(name) +{ + return window.confirm(TurbaBrowse.confirmdelete.replace('%s', name)); +} diff --git a/turba/lib/Turba.php b/turba/lib/Turba.php index 46d95b749..fc53c6ba5 100644 --- a/turba/lib/Turba.php +++ b/turba/lib/Turba.php @@ -621,4 +621,27 @@ class Turba { return $menu; } + /** + * Add browse.js javascript to page. + */ + public function addBrowseJs() + { + $js = array(); + $js_text = array( + 'confirmdelete' => _("Are you sure that you want to delete %s?"), + 'contact1' => _("You must select at least one contact first."), + 'contact2' => ("You must select a target contact list."), + 'contact3' => _("Please name the new contact list:"), + 'copymove' => _("You must select a target address book."), + 'submit' => _("Are you sure that you want to delete the selected contacts?"), + ); + + foreach ($js_text as $key => $val) { + $js[] = 'TurbaBrowse.' . $key . ' = ' . Horde_Serialize::serialize($val, Horde_Serialize::JSON, $GLOBALS['registry']->getCharset()); + } + + Horde::addScriptFile('browse.js', 'turba'); + Horde::addInlineScript($js); + } + } diff --git a/turba/lib/View/Browse.php b/turba/lib/View/Browse.php index a82af2c72..3bf8c33a9 100644 --- a/turba/lib/View/Browse.php +++ b/turba/lib/View/Browse.php @@ -192,7 +192,7 @@ class Turba_View_Browse { if (!is_array($targetDriver->map[$info_key]) || isset($targetDriver->map[$info_key]['attribute'])) { $objectValue = $object->getValue($info_key); - + // Get 'data' value if object type is image, the // direct value in other case. $objAttributes[$info_key] = isset($GLOBALS['attributes'][$info_key]) && $GLOBALS['attributes'][$info_key]['type'] == 'image' ? $objectValue['load']['data'] : $objectValue; @@ -338,7 +338,7 @@ class Turba_View_Browse { $templates = array(); if (isset($driver)) { - $templates[] = '/browse/javascript.inc'; + Turba::addBrowseJs(); // Read the columns to display from the preferences. $sources = Turba::getColumns(); diff --git a/turba/search.php b/turba/search.php index b1c65c706..8bbb8c8e2 100644 --- a/turba/search.php +++ b/turba/search.php @@ -269,6 +269,10 @@ Horde::addScriptFile('quickfinder.js', 'horde'); Horde::addScriptFile('effects.js', 'horde'); Horde::addScriptFile('redbox.js', 'horde'); Horde::addScriptFile('search.js', 'turba'); +if (isset($view) && is_object($view)) { + Turba::addBrowseJs(); +} + require TURBA_TEMPLATES . '/common-header.inc'; require TURBA_TEMPLATES . '/menu.inc'; echo $tabs->render($_SESSION['turba']['search_mode']); @@ -278,7 +282,6 @@ if ($_SESSION['turba']['search_mode'] != 'duplicate') { echo $vbookView->render('vbook'); } if (isset($view) && is_object($view)) { - require TURBA_TEMPLATES . '/browse/javascript.inc'; require TURBA_TEMPLATES . '/browse/header.inc'; $view->display(); } diff --git a/turba/templates/browse/javascript.inc b/turba/templates/browse/javascript.inc deleted file mode 100644 index 9f536ac56..000000000 --- a/turba/templates/browse/javascript.inc +++ /dev/null @@ -1,88 +0,0 @@ -