Spry:if inside a tr element
Hello,
I would like to add a "selected" class to a html table row
element if the curRowID == {dsRowID} so I tried the following
<tr spry:if="searchBar.searchResults.listDataSet.curRowID
== {ds_RowID}" class="selected" spry:select="selected"
spry:repeat="searchBar.searchResults.pagedView"
onclick='searchBar.searchResults.itemClick("{x}","{y}","{id}");'>
<td>{fileid}</td>
<td>{title}</td>
</tr>
<tr spry:if="searchBar.searchResults.listDataSet.curRowID
!= {ds_RowID}" spry:select="selected" class="listRow"
spry:repeat="searchBar.searchResults.pagedView"
onclick='searchBar.searchResults.itemClick("{x}","{y}","{id}");'>
<td>{fileid}</td>
<td>{title}</td>
</tr>
The above doesn't work for me as all the table rows are given
the "selected" class. It looks as if the spry:if is only executed
once.
I can put the spry:if inside the table cells and the code
below works i.e only one table row is "selected" with that row's td
elements having a class of "selected" -
<tr spry:select="selected" class="listRow"
spry:repeat="searchBar.searchResults.pagedView"
onclick='searchBar.searchResults.itemClick("{x}","{y}","{id}");'>
<td spry:if="searchBar.searchResults.listDataSet.curRowID
== {ds_RowID}" class="selected">{id}</td>
<td spry:if="searchBar.searchResults.listDataSet.curRowID
!= {ds_RowID}">{id}</td>
<td spry:if="searchBar.searchResults.listDataSet.curRowID
== {ds_RowID}" class="selected">{title}</td>
<td spry:if="searchBar.searchResults.listDataSet.curRowID
!= {ds_RowID}">{title}</td>
</tr>
Is it possible to use spry:if inside a tr like I want to ,
rather than each cell?
Thanks.
Just to clarify here, if you had the following:
<tr spry:if="a == b" spry:repeat="ds1" spry:test="a ==
c">
It gets interpreted like this:
If a==b then spry:repeat over all the rows in the data set
and only write out the <tr> if a==c.
If a!=b then don't execute the spry:repeat, so nothing gets
written out.
In other words, spry:if always gets evaluated first and then
spry:repeat. If you need to conditionally write out something
during the repeat, then place your expression in a spry:test, which
gets evaluated for every iteration of the repeat.
--== Kin ==--
Similar Messages
-
I would like tot know if it is possible to update a spry
region inside an HTMLPanel. When I load an HTML part with the
Spry.Widget.HTMLPanel. the Spry region data inside it won't update.
After onPostLoad is fired when loading the new part in the
HTMLPanel I call the loadData and force the redraw of the region
and call the region method updateRegion() (as in the Adobe API
example) or the rgn.updateContent();
but nothings helps.Did u take a look at this sample?
http://labs.adobe.com/technologies/spry/samples/utils/update_content.html
(it doesnt use html panels) -
I've come across a little hiccup when using a Spry Effect inside an Accordion. I am creating a survey page with one question per accordion tab. Some of these questions have sub-questions based on a yes or no answer.
I was able to use an onclick with a radio button to open a Spry Effect that will display more questions. The problem is that these questions are normally hidden and when the accordion renders it passes over the hidden content and ignores it when it is time for the onclick event to display them.
I was able to get it to work with one set by making the accordion open to that tab by default first (which renders the content) and then hides the sub-questions. The Spry Effect then calls a javascript function to open the fist accordion tab using the setup trigger.
But this doesn't seem to work for multiple Spry Effects on different tabs... am I missing something?
I have a demo page here (click "yes" on question 3) -- http://tv.swirelive.com/survey/demo_survey.phpOk. I figured it out. I had to define the Spry Effects first and then the Accordion last.
-
Found character data inside an array element while deserializing
Hi Experts,
When I am trying to execute the webservice I am getting the following error
Found character data inside an array element while deserializing
Actual structure is as follows
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://10.1.2.21:8090/axis/services/InventoryManager" targetNamespace="http://10.1.2.21:8090/axis/services/InventoryManager">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<xsd:element xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns="" name="retrieveInventoryRequest" type="retrieveInventoryRequest" />
<xsd:complexType xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" name="ArrayOf_xsd_string">
<xsd:complexContent>
<xsd:restriction base="soapenc:Array">
<xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]" />
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" name="ArrayOf_tns1_SkuQuantity">
<xsd:complexContent>
<xsd:restriction base="soapenc:Array">
<xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="tns1:SkuQuantity[]" />
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
I know XI doesnt support array types thats why I have created my own structure as follows
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="retrieveInventory" type="InvArray" />
<xsd:complexType name="InvArray">
<xsd:sequence>
<xsd:element name="pOutletList" type="xsd:string" maxOccurs="unbounded" form="qualified" />
<xsd:element name="pSkuQuantityList" type="xsd:string" maxOccurs="unbounded" form="qualified" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
This webservice takes input like
storenumber1;storenumner2....
item1,qty;item2,qty.
I am passing values like this to my webservice. But still I am getting the same problThe problem doesn't seem to be related to the XI system. Have you done any configuration at receiver Webservice to convert the string data passed through XI into string array data? I think there is a mismatch in what XI sends and receiver expects.
Regards,
Prateek -
Controlling spry menu inside tables
I am trying to add a spry menu bar widget inside a table on my web page. The problem
I am having is the spry menu floats and does not move with the table. Is there something
I must do to nest the spry menu bar inside the table ?
I tried inserting a div tag and then placeing the menu inside of that but the menu still
floats above the table. Any help would be greatly apprieciatedle chin wrote:
My code is below. I am trying to insert spry menu bar inside table but for some reason the
bar does not move with the table.
<body>
<table width="741" height="800" border="0" align="center">
<tr>
<td width="738" height="100" align="left"><table width="750" height="64" border="0">
<tr>
<td>
<ul id="MenuBar1" class="MenuBarHorizontal">
<li><a href="#">Item 1</a> </li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a> </li>
<li><a href="#">Item 4</a></li>
</ul>
</td>
</tr>
</table></td>
Why nested tables? What are you try to do? Centre the menu or have it aligned to the left?
Steve -
Spry validation inside CFDIV - possible?
I have a CFDIV bound to a grid via navigate(). CFDIV contains
an HTML form (I need multipart/form-data to upload images and
cfform inside cfdiv seems to only submit async).
I tried to use spry validation on the form but It does not
seem to fire at all. Has anyone made spry validation functionality
work inside a cfdiv of is it just impossible?Spry validation does not seem to fire when a form is loaded
via Spry.Widget.HTMLPanel like this:
<script src="/includes/javascript/spry/SpryHTMLPanel.js"
language="javascript" type="text/javascript"></script>
<link href="/SpryAssets/SpryHTMLPanel.css"
rel="stylesheet" type="text/css">
<script src="SpryAssets/SpryValidationTextField.js"
type="text/javascript"></script>
<link href="SpryAssets/SpryValidationTextField.css"
rel="stylesheet" type="text/css" />
<a href="testform.cfm"
onclick="panel.loadContent(this.href,{id:'panelform'}); return
false" >Click</a>
<div id="panel1">Please click</div>
<script type="text/javascript">
var panel = new Spry.Widget.HTMLPanel("panel1");
</script>
Here is the code for the file:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />
<title>Untitled Document</title>
<script src="SpryAssets/SpryValidationTextField.js"
type="text/javascript"></script>
<link href="SpryAssets/SpryValidationTextField.css"
rel="stylesheet" type="text/css" />
</head>
<body>
<div id="panelform">
<form name="form" action="test.cfm">
<span id="sprytextfield1">
<input type="text" name="text1" id="text1" />
<span class="textfieldRequiredMsg">A value is
required.</span><span
class="textfieldMinCharsMsg">Minimum number of characters not
met.</span><span class="textfieldMaxCharsMsg">Exceeded
maximum number of characters.</span></span>
<input name="submit" type="submit" value="submit" />
</form>
</div>
<script type="text/javascript">
<!--
var sprytextfield1 = new
Spry.Widget.ValidationTextField("sprytextfield1", "none",
{minChars:3, maxChars:3});
//-->
</script>
</body>
</html> -
Problem with Spry Panels inside a Table.
This might be in the wrong section, but I hope someone knows what i'm doing wrong.
I'm putting together a simple html website with a spry tabbed panel inside a table. I can insert the panel, switch between the different tabs to insert content, but when I preview the page in IE or Firefox all the content is in the first tabbe panel. I can hover over the other tabs but nothing happens when I click on them.
I am slightly new to dreamweaver so it might just be something i'm overlooking.Hi Vinay,
Check Valery`s great blogs:
/people/valery.silaev/blog/2005/06/13/master-of-columns-part-i
/people/valery.silaev/blog/2005/06/20/master-of-columns-part-ii
For your case this piece of code could be usefull
private IPrivateTreeTableCV.IEntriesElement currentEntry()
try
IWDNodeElement el;
for
el = wdContext.nodeEntries().getTreeSelection();
!( el == null || el instanceof IPrivateTreeTableCV.IEntriesElement);
el = el.node().getParentElement()
return (IPrivateTreeTableCV.IEntriesElement)el;
catch (final WDContextException ex)
return null;
Best regards, Maksim Rashchynski. -
Controlling spry menu inside table
My code is below. I am trying to insert spry menu bar inside table but for some reason the
bar does not move with the table.
<body>
<table width="741" height="800" border="0" align="center">
<tr>
<td width="738" height="100" align="left"><table width="750" height="64" border="0">
<tr>
<td>
<ul id="MenuBar1" class="MenuBarHorizontal">
<li><a href="#">Item 1</a> </li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a> </li>
<li><a href="#">Item 4</a></li>
</ul>
</td>
</tr>
</table></td>le chin wrote:
My code is below. I am trying to insert spry menu bar inside table but for some reason the
bar does not move with the table.
<body>
<table width="741" height="800" border="0" align="center">
<tr>
<td width="738" height="100" align="left"><table width="750" height="64" border="0">
<tr>
<td>
<ul id="MenuBar1" class="MenuBarHorizontal">
<li><a href="#">Item 1</a> </li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a> </li>
<li><a href="#">Item 4</a></li>
</ul>
</td>
</tr>
</table></td>
Why nested tables? What are you try to do? Centre the menu or have it aligned to the left?
Steve -
Dear Experts,
Im having two columns in my table and im using filter in my table, In onfilter event i written the code
wd_this->table_control->apply_filter( ).
And in the table column i enabled the isFiltered option and i also binded the filtervalue to a variable of type string.
when i execute my program and give input in filter field the following error occurs,
The following error text was processed in the system EBP : Access via 'NULL' object reference not possible.
The error occurred on the application server kaar-server15_EBP_00 and in the work process 1 .
The termination type was: RABAX_STATE
The ABAP call stack was:
Method: ONACTIONONFILTER of program /1BCWDY/6CS8GWLR56619XU3FP87==CP
Method: IF_WDR_VIEW_DELEGATE~WD_INVOKE_EVENT_HANDLER of program /1BCWDY/6CS8GWLR56619XU3FP87==CP
Method: INVOKE_EVENTHANDLER of program CL_WDR_DELEGATING_VIEW========CP
Method: IF_WDR_ACTION~FIRE of program CL_WDR_ACTION=================CP
Method: DO_HANDLE_ACTION_EVENT of program CL_WDR_WINDOW_PHASE_MODEL=====CP
Method: PROCESS_REQUEST of program CL_WDR_WINDOW_PHASE_MODEL=====CP
Method: PROCESS_REQUEST of program CL_WDR_WINDOW=================CP
Method: EXECUTE of program CL_WDR_MAIN_TASK==============CP
Method: IF_WDR_RUNTIME~EXECUTE of program CL_WDR_MAIN_TASK==============CP
Method: HANDLE_REQUEST of program CL_WDR_CLIENT_ABSTRACT_HTTP===CP
please help me to sort out this problem
Thanks & Regards
Arun.PHi,
You must not have defined wd_this->table_control
You need to do this in WDDOMODIFY and get table control in global variable as follows:
CHECK first_time EQ abap_true.
**Get table handler for table from view
DATA: l_table TYPE REF TO cl_wd_table.
* Get reference of the table view element
l_table ?= view->get_element( 'TBL_MAIN' ).
* Get reference to the Filter & Sorting API
wd_this->table_control ?= l_table->_method_handler.
Hope this helps!
Thanks,
Tejaswini
Edited by: Tejaswini Chafekar on Aug 27, 2009 2:53 PM -
Spry data out of form elements
HI all,
Currently using spry I have a drop down filter based on user
input through a text box working fine. What I want, is when I click
a button to have it move that data to a container. My problem is
that I can't seem to access the data that the user has selected
specifically on the drop down through any of the spry methods.
I'm not even sure what the best way through spry to access
that form field would be.
Any thoughts would be great.
Thanks.Hi,
Can you please send me your form designed in InDesign at [email protected]? I would like to take a look.
Thanks,
Wenlan -
Spry navigation covers flash movie element, why?
i have a spry navigation bar with a flash movie underneath,
and when i hover over the navbar and the submenu pops down it
covers the flash movie, but it doesn't cover the .jpg image that is
next to the flash movie. how can i fix this? thanks.mediastream13,
> i have a spry navigation bar with a flash movie
underneath,
> and when i hover over the navbar and the submenu pops
> down it covers the flash movie, but it doesn't cover the
.jpg
> image that is next to the flash movie.
What you're seeing is the result of the default WMODE
setting for Flash
Player, which you can change. Keep in mind, Flash content
isn't something
any browser natively supports. It requires an ActiveX
component or plugin,
and as a result, is processed outside of the browser's
composition buffer.
This lifts Flash content (and other active content, like
QuickTime, Java
applets, and so on) from the context of its surroundings. To
change that,
you can configure a SWF's WMODE setting for transparent or
opaque, as
described here:
http://www.quip.net/blog/2006/flash/how-to-position-flash-beneath-other-content
Be aware that any WMODE setting other than the default has
been known to
cause usability issues as described in the articles/blog
entries further
linked from the above URL.
David Stiller
Co-author, Foundation Flash CS3 for Designers
http://tinyurl.com/2k29mj
"Luck is the residue of good design." -
ADF Faces: How to insert an HREF inside a table element
Hi,
I have a web service data control, and this web service returns the email of a department.
I have to display this email inside a table, but, since this email is used to integrate the application with Microsoft OCS, the email must be inside an HREF tag, for example:
<a href='sip:"+employeeBean.getEmail()+"'><img src='images/OCS.png'/></a>How can I insert this HREF inside the table, so the table displays the image and the href works ?Yes it works.
Here is my code, so it will be usefull for others:
<af:column headerText="OCS" id="c3333">
<af:goImageLink text="Contatta dipendente" id="gil1"
icon="images/OCS.png"
destination="#{row.ocsContact}"/>
</af:column>Many many thanks.
Edited by: GheParDo on Jan 12, 2011 7:05 PM -
How use Spry detailregion inside script ?
Hi everybody, someone can help me how can i do that work ? I am trying to send information to Flickr API to create image galleries with information from my database...
<div id="content2" spry:detailregion="ds1">
<script src="badge.js" type="text/javascript"></script>
<script src="http://api.flickr.com/services/feeds/photos_public.gne?id=23366962@HU5&tags={ds1::flickr}&format=json" type="text/javascript"></script>
</div>
Thank YOU !!!!OK... nobody yet...
I am trying something different now using PHP, but still not getting what i want:
<?php $recentPhotos = $gallery->findRecentPhotos(30,?> {ds1::url}<?php ); ?>
Someone can help me in that ?
Thanks !!! -
The SVG code inside the Stage element doesn't render the image as expected in safari and Chrome
Hi All,
I tried include this simple SVG (as a Code "<svg>...</svg>") in stage OR into a rectangle(div) in side the stage. It comes up good in Firefox ONLY, not in other browsers.
sym.$("Stage").append('<svg xmlns:dc="http://purl.org/............................ </svg>');
Demo URL - http://www.dealsdrizzle.com/uxdesign/uxd.html
Download Link - http://www.dealsdrizzle.com/uxdesign/Archive.zip
Observations -
1. If I inculde SVG as a image, for instance - <img src="example.svg"/> OR background image, it comes out fine in all browsers.
2. If I try to add it "Body" or "Div" OUTSIDE of "Stage" Div. It works consistenetly.
Why do I need to put it as SVG Code ?? -
1. I am trying to create actions for each path (<path/>) in SVG. I think I can get access to the "Path" tag by ID only if I have included it as code.. not as image.
Thanks in advance.
- VinayThe problem was `xcompmgr` which caused "freezing" view. I switched it to `unagi` and all of the problems have gone.
-
Spry Collapsible Panel problem when previewing in web browser
Hello.
I have inserted a spry collapsible panel into my website, made ZERO adjustments to any of the scripting or even css styling, and previewed the panel in my Safari browser. It does not seem to be working correctly. I've attached a couple of images showing what the panel looks like in the browser. My site is not published yet, so I cannot give out the url.
Is something wrong with the js file? I tried the panel earlier on a different site on the same computer and it was working fine.
the "Tab" menu text does not fit inside the grey box. Everything collapses fine, however, the gray box is too thin for the text. I've tried adjusting it in the CSS sheet, but it doesn't seem to change anything.
This is the panel in the collapsed state. It looks bad. I know it's not supposed to work like this.
When I preview the site in "live view" everything works fine...
// SpryCollapsiblePanel.js - version 0.8 - Spry Pre-Release 1.6.1
// Copyright (c) 2006. Adobe Systems Incorporated.
// All rights reserved.
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
// * Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
// * Neither the name of Adobe Systems Incorporated nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
(function() { // BeginSpryComponent
if (typeof Spry == "undefined") window.Spry = {}; if (!Spry.Widget) Spry.Widget = {};
Spry.Widget.CollapsiblePanel = function(element, opts)
this.element = this.getElement(element);
this.focusElement = null;
this.hoverClass = "CollapsiblePanelTabHover";
this.openClass = "CollapsiblePanelOpen";
this.closedClass = "CollapsiblePanelClosed";
this.focusedClass = "CollapsiblePanelFocused";
this.enableAnimation = true;
this.enableKeyboardNavigation = true;
this.animator = null;
this.hasFocus = false;
this.contentIsOpen = false;
this.openPanelKeyCode = Spry.Widget.CollapsiblePanel.KEY_DOWN;
this.closePanelKeyCode = Spry.Widget.CollapsiblePanel.KEY_UP;
Spry.Widget.CollapsiblePanel.setOptions(this, opts);
this.attachBehaviors();
Spry.Widget.CollapsiblePanel.prototype.getElement = function(ele)
if (ele && typeof ele == "string")
return document.getElementById(ele);
return ele;
Spry.Widget.CollapsiblePanel.prototype.addClassName = function(ele, className)
if (!ele || !className || (ele.className && ele.className.search(new RegExp("\\b" + className + "\\b")) != -1))
return;
ele.className += (ele.className ? " " : "") + className;
Spry.Widget.CollapsiblePanel.prototype.removeClassName = function(ele, className)
if (!ele || !className || (ele.className && ele.className.search(new RegExp("\\b" + className + "\\b")) == -1))
return;
ele.className = ele.className.replace(new RegExp("\\s*\\b" + className + "\\b", "g"), "");
Spry.Widget.CollapsiblePanel.prototype.hasClassName = function(ele, className)
if (!ele || !className || !ele.className || ele.className.search(new RegExp("\\b" + className + "\\b")) == -1)
return false;
return true;
Spry.Widget.CollapsiblePanel.prototype.setDisplay = function(ele, display)
if( ele )
ele.style.display = display;
Spry.Widget.CollapsiblePanel.setOptions = function(obj, optionsObj, ignoreUndefinedProps)
if (!optionsObj)
return;
for (var optionName in optionsObj)
if (ignoreUndefinedProps && optionsObj[optionName] == undefined)
continue;
obj[optionName] = optionsObj[optionName];
Spry.Widget.CollapsiblePanel.prototype.onTabMouseOver = function(e)
this.addClassName(this.getTab(), this.hoverClass);
return false;
Spry.Widget.CollapsiblePanel.prototype.onTabMouseOut = function(e)
this.removeClassName(this.getTab(), this.hoverClass);
return false;
Spry.Widget.CollapsiblePanel.prototype.open = function()
this.contentIsOpen = true;
if (this.enableAnimation)
if (this.animator)
this.animator.stop();
this.animator = new Spry.Widget.CollapsiblePanel.PanelAnimator(this, true, { duration: this.duration, fps: this.fps, transition: this.transition });
this.animator.start();
else
this.setDisplay(this.getContent(), "block");
this.removeClassName(this.element, this.closedClass);
this.addClassName(this.element, this.openClass);
Spry.Widget.CollapsiblePanel.prototype.close = function()
this.contentIsOpen = false;
if (this.enableAnimation)
if (this.animator)
this.animator.stop();
this.animator = new Spry.Widget.CollapsiblePanel.PanelAnimator(this, false, { duration: this.duration, fps: this.fps, transition: this.transition });
this.animator.start();
else
this.setDisplay(this.getContent(), "none");
this.removeClassName(this.element, this.openClass);
this.addClassName(this.element, this.closedClass);
Spry.Widget.CollapsiblePanel.prototype.onTabClick = function(e)
if (this.isOpen())
this.close();
else
this.open();
this.focus();
return this.stopPropagation(e);
Spry.Widget.CollapsiblePanel.prototype.onFocus = function(e)
this.hasFocus = true;
this.addClassName(this.element, this.focusedClass);
return false;
Spry.Widget.CollapsiblePanel.prototype.onBlur = function(e)
this.hasFocus = false;
this.removeClassName(this.element, this.focusedClass);
return false;
Spry.Widget.CollapsiblePanel.KEY_UP = 38;
Spry.Widget.CollapsiblePanel.KEY_DOWN = 40;
Spry.Widget.CollapsiblePanel.prototype.onKeyDown = function(e)
var key = e.keyCode;
if (!this.hasFocus || (key != this.openPanelKeyCode && key != this.closePanelKeyCode))
return true;
if (this.isOpen() && key == this.closePanelKeyCode)
this.close();
else if ( key == this.openPanelKeyCode)
this.open();
return this.stopPropagation(e);
Spry.Widget.CollapsiblePanel.prototype.stopPropagation = function(e)
if (e.preventDefault) e.preventDefault();
else e.returnValue = false;
if (e.stopPropagation) e.stopPropagation();
else e.cancelBubble = true;
return false;
Spry.Widget.CollapsiblePanel.prototype.attachPanelHandlers = function()
var tab = this.getTab();
if (!tab)
return;
var self = this;
Spry.Widget.CollapsiblePanel.addEventListener(tab, "click", function(e) { return self.onTabClick(e); }, false);
Spry.Widget.CollapsiblePanel.addEventListener(tab, "mouseover", function(e) { return self.onTabMouseOver(e); }, false);
Spry.Widget.CollapsiblePanel.addEventListener(tab, "mouseout", function(e) { return self.onTabMouseOut(e); }, false);
if (this.enableKeyboardNavigation)
// XXX: IE doesn't allow the setting of tabindex dynamically. This means we can't
// rely on adding the tabindex attribute if it is missing to enable keyboard navigation
// by default.
// Find the first element within the tab container that has a tabindex or the first
// anchor tag.
var tabIndexEle = null;
var tabAnchorEle = null;
this.preorderTraversal(tab, function(node) {
if (node.nodeType == 1 /* NODE.ELEMENT_NODE */)
var tabIndexAttr = tab.attributes.getNamedItem("tabindex");
if (tabIndexAttr)
tabIndexEle = node;
return true;
if (!tabAnchorEle && node.nodeName.toLowerCase() == "a")
tabAnchorEle = node;
return false;
if (tabIndexEle)
this.focusElement = tabIndexEle;
else if (tabAnchorEle)
this.focusElement = tabAnchorEle;
if (this.focusElement)
Spry.Widget.CollapsiblePanel.addEventListener(this.focusElement, "focus", function(e) { return self.onFocus(e); }, false);
Spry.Widget.CollapsiblePanel.addEventListener(this.focusElement, "blur", function(e) { return self.onBlur(e); }, false);
Spry.Widget.CollapsiblePanel.addEventListener(this.focusElement, "keydown", function(e) { return self.onKeyDown(e); }, false);
Spry.Widget.CollapsiblePanel.addEventListener = function(element, eventType, handler, capture)
try
if (element.addEventListener)
element.addEventListener(eventType, handler, capture);
else if (element.attachEvent)
element.attachEvent("on" + eventType, handler);
catch (e) {}
Spry.Widget.CollapsiblePanel.prototype.preorderTraversal = function(root, func)
var stopTraversal = false;
if (root)
stopTraversal = func(root);
if (root.hasChildNodes())
var child = root.firstChild;
while (!stopTraversal && child)
stopTraversal = this.preorderTraversal(child, func);
try { child = child.nextSibling; } catch (e) { child = null; }
return stopTraversal;
Spry.Widget.CollapsiblePanel.prototype.attachBehaviors = function()
var panel = this.element;
var tab = this.getTab();
var content = this.getContent();
if (this.contentIsOpen || this.hasClassName(panel, this.openClass))
this.addClassName(panel, this.openClass);
this.removeClassName(panel, this.closedClass);
this.setDisplay(content, "block");
this.contentIsOpen = true;
else
this.removeClassName(panel, this.openClass);
this.addClassName(panel, this.closedClass);
this.setDisplay(content, "none");
this.contentIsOpen = false;
this.attachPanelHandlers();
Spry.Widget.CollapsiblePanel.prototype.getTab = function()
return this.getElementChildren(this.element)[0];
Spry.Widget.CollapsiblePanel.prototype.getContent = function()
return this.getElementChildren(this.element)[1];
Spry.Widget.CollapsiblePanel.prototype.isOpen = function()
return this.contentIsOpen;
Spry.Widget.CollapsiblePanel.prototype.getElementChildren = function(element)
var children = [];
var child = element.firstChild;
while (child)
if (child.nodeType == 1 /* Node.ELEMENT_NODE */)
children.push(child);
child = child.nextSibling;
return children;
Spry.Widget.CollapsiblePanel.prototype.focus = function()
if (this.focusElement && this.focusElement.focus)
this.focusElement.focus();
Spry.Widget.CollapsiblePanel.PanelAnimator = function(panel, doOpen, opts)
this.timer = null;
this.interval = 0;
this.fps = 60;
this.duration = 500;
this.startTime = 0;
this.transition = Spry.Widget.CollapsiblePanel.PanelAnimator.defaultTransition;
this.onComplete = null;
this.panel = panel;
this.content = panel.getContent();
this.doOpen = doOpen;
Spry.Widget.CollapsiblePanel.setOptions(this, opts, true);
this.interval = Math.floor(1000 / this.fps);
var c = this.content;
var curHeight = c.offsetHeight ? c.offsetHeight : 0;
this.fromHeight = (doOpen && c.style.display == "none") ? 0 : curHeight;
if (!doOpen)
this.toHeight = 0;
else
if (c.style.display == "none")
// The content area is not displayed so in order to calculate the extent
// of the content inside it, we have to set its display to block.
c.style.visibility = "hidden";
c.style.display = "block";
// Clear the height property so we can calculate
// the full height of the content we are going to show.
c.style.height = "";
this.toHeight = c.offsetHeight;
this.distance = this.toHeight - this.fromHeight;
this.overflow = c.style.overflow;
c.style.height = this.fromHeight + "px";
c.style.visibility = "visible";
c.style.overflow = "hidden";
c.style.display = "block";
Spry.Widget.CollapsiblePanel.PanelAnimator.defaultTransition = function(time, begin, finish, duration) { time /= duration; return begin + ((2 - time) * time * finish); };
Spry.Widget.CollapsiblePanel.PanelAnimator.prototype.start = function()
var self = this;
this.startTime = (new Date).getTime();
this.timer = setTimeout(function() { self.stepAnimation(); }, this.interval);
Spry.Widget.CollapsiblePanel.PanelAnimator.prototype.stop = function()
if (this.timer)
clearTimeout(this.timer);
// If we're killing the timer, restore the overflow property.
this.content.style.overflow = this.overflow;
this.timer = null;
Spry.Widget.CollapsiblePanel.PanelAnimator.prototype.stepAnimation = function()
var curTime = (new Date).getTime();
var elapsedTime = curTime - this.startTime;
if (elapsedTime >= this.duration)
if (!this.doOpen)
this.content.style.display = "none";
this.content.style.overflow = this.overflow;
this.content.style.height = this.toHeight + "px";
if (this.onComplete)
this.onComplete();
return;
var ht = this.transition(elapsedTime, this.fromHeight, this.distance, this.duration);
this.content.style.height = ((ht < 0) ? 0 : ht) + "px";
var self = this;
this.timer = setTimeout(function() { self.stepAnimation(); }, this.interval);
Spry.Widget.CollapsiblePanelGroup = function(element, opts)
this.element = this.getElement(element);
this.opts = opts;
this.attachBehaviors();
Spry.Widget.CollapsiblePanelGroup.prototype.setOptions = Spry.Widget.CollapsiblePanel.prototype.setOptions;
Spry.Widget.CollapsiblePanelGroup.prototype.getElement = Spry.Widget.CollapsiblePanel.prototype.getElement;
Spry.Widget.CollapsiblePanelGroup.prototype.getElementChildren = Spry.Widget.CollapsiblePanel.prototype.getElementChildren;
Spry.Widget.CollapsiblePanelGroup.prototype.setElementWidget = function(element, widget)
if (!element || !widget)
return;
if (!element.spry)
element.spry = new Object;
element.spry.collapsiblePanel = widget;
Spry.Widget.CollapsiblePanelGroup.prototype.getElementWidget = function(element)
return (element && element.spry && element.spry.collapsiblePanel) ? element.spry.collapsiblePanel : null;
Spry.Widget.CollapsiblePanelGroup.prototype.getPanels = function()
if (!this.element)
return [];
return this.getElementChildren(this.element);
Spry.Widget.CollapsiblePanelGroup.prototype.getPanel = function(panelIndex)
return this.getPanels()[panelIndex];
Spry.Widget.CollapsiblePanelGroup.prototype.attachBehaviors = function()
if (!this.element)
return;
var cpanels = this.getPanels();
var numCPanels = cpanels.length;
for (var i = 0; i < numCPanels; i++)
var cpanel = cpanels[i];
this.setElementWidget(cpanel, new Spry.Widget.CollapsiblePanel(cpanel, this.opts));
Spry.Widget.CollapsiblePanelGroup.prototype.openPanel = function(panelIndex)
var w = this.getElementWidget(this.getPanel(panelIndex));
if (w && !w.isOpen())
w.open();
Spry.Widget.CollapsiblePanelGroup.prototype.closePanel = function(panelIndex)
var w = this.getElementWidget(this.getPanel(panelIndex));
if (w && w.isOpen())
w.close();
Spry.Widget.CollapsiblePanelGroup.prototype.openAllPanels = function()
var cpanels = this.getPanels();
var numCPanels = cpanels.length;
for (var i = 0; i < numCPanels; i++)
var w = this.getElementWidget(cpanels[i]);
if (w && !w.isOpen())
w.open();
Spry.Widget.CollapsiblePanelGroup.prototype.closeAllPanels = function()
var cpanels = this.getPanels();
var numCPanels = cpanels.length;
for (var i = 0; i < numCPanels; i++)
var w = this.getElementWidget(cpanels[i]);
if (w && w.isOpen())
w.close();
})(); // EndSpryComponentI have inserted a spry collapsible panel into my website, made ZERO
adjustments to any of the scripting or even css styling
That is good, that means that I have a local copy of the scripting and css files eliminating the need to attach the code to a post.
Is something wrong with the js file? I tried the panel earlier on a
different site on the same computer and it was working fine
The fact that it works on a different site means that something is correct. My assumption is that the scripting and css files are doing their job correctly and to answer your question regarding the js file, no.
Having eliminated the Spry original JavaScript and CSS files as being the culprits, there must be a problem with the rest of the site, incorrect HTML, other interfering JavaScript or CSS.
I can keep guessing, but only those persons that are privy to your code can give you any positive input. Please find a way to upload your files so that we can see the code in context.
To this end, screen captures do not assist in solving the problem, they only add to others' amusement at seeing the problem.
Ben
PS I forgot to say, welcome to our community and yes I am a cynical old codger, sorry.
Maybe you are looking for
-
ADF JDeveloper wysiwyg visual editor does not render properly my jspx page
Hi everybody, I am working with JDev 11.1.1.5 and I have an issue with the wysiwyg visual editor. My jspx page does not render properly: I cannot see the full page whatever is the resolution, even in full screen mode. I've tried to activate in the pr
-
Hello, Is there any way to resize Tree View Node Element programatically. In .fr file the height of the tree view node element is set to 90. On a button click I want to resize the element height to 18. I have tried using IControlView->SetFrame(TmpRec
-
I cant open a document saved in Numbers
Please help me! I cant open a document that I saved in Numbers as it says "could not be open" Why is this happening?
-
Many documents I find with Safari display a truncated URL. If I send this URL to someone else, it is impossible to use the link. How can I access the full URL? Thanks for helping
-
Any validity period or expire of maintain the skip indicator is there
Hi Any validity period or expire of maintain the skip indicator is there. Because we mantianed the skip lot for the materials. and it create the correctly upto some period and now eventhou we maintained in the insp type . it not show the X mark agai