Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F945710
yahoo_search.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Subscribers
None
yahoo_search.js
View Options
// model that works with Yahoo Search API
dojo
.
declare
(
"dojox.grid.data.yahooSearch"
,
dojox
.
grid
.
data
.
dynamic
,
function
(
inFields
,
inData
)
{
this
.
rowsPerPage
=
20
;
this
.
fieldNames
=
[];
for
(
var
i
=
0
,
f
;
(
f
=
inFields
[
i
]);
i
++
)
this
.
fieldNames
.
push
(
f
.
name
);
},
{
clearData
:
function
()
{
turbo
.
widgets
.
TurboGrid
.
data
.
dynamic
.
prototype
.
clearData
.
apply
(
this
,
arguments
);
},
// server send / receive
encodeParam
:
function
(
inName
,
inValue
)
{
return
turbo
.
printf
(
'&%s=%s'
,
inName
,
inValue
);
},
getParams
:
function
(
inParams
)
{
var
url
=
this
.
url
;
url
+=
'?appid=turboajax'
;
inParams
=
inParams
||
{};
inParams
.
output
=
'json'
;
inParams
.
results
=
this
.
rowsPerPage
;
inParams
.
query
=
turbo
.
$
(
'searchInput'
).
value
.
replace
(
/ /g
,
'+'
);
for
(
var
i
in
inParams
)
if
(
inParams
[
i
]
!=
undefined
)
url
+=
this
.
encodeParam
(
i
,
inParams
[
i
]);
return
url
;
},
send
:
function
(
inAsync
,
inParams
,
inOnReceive
,
inOnError
)
{
var
p
=
this
.
getParams
(
inParams
);
dojo
.
io
.
bind
({
url
:
"support/proxy.php"
,
method
:
"post"
,
content
:
{
url
:
p
},
contentType
:
"application/x-www-form-urlencoded; charset=utf-8"
,
mimetype
:
'text/json'
,
sync
:
!
inAsync
,
load
:
turbo
.
bindArgs
(
this
,
"receive"
,
inOnReceive
,
inOnError
),
error
:
turbo
.
bindArgs
(
this
,
"error"
,
inOnError
)
});
this
.
onSend
(
inParams
);
},
receive
:
function
(
inOnReceive
,
inOnError
,
inEvt
,
inData
)
{
try
{
inData
=
inData
.
ResultSet
;
inOnReceive
(
inData
);
this
.
onReceive
(
inData
);
}
catch
(
e
)
{
if
(
inOnError
)
inOnError
(
inData
);
}
},
error
:
function
(
inOnError
,
inTyp
,
inErr
)
{
var
m
=
'io error: '
+
inErr
.
message
;
alert
(
m
);
if
(
inOnError
)
inOnError
(
m
);
},
fetchRowCount
:
function
(
inCallback
)
{
this
.
send
(
true
,
inCallback
);
},
// request data
requestRows
:
function
(
inRowIndex
,
inCount
)
{
inRowIndex
=
(
inRowIndex
==
undefined
?
0
:
inRowIndex
);
var
params
=
{
start
:
inRowIndex
+
1
}
this
.
send
(
true
,
params
,
turbo
.
bindArgs
(
this
,
this
.
processRows
));
},
// server callbacks
processRows
:
function
(
inData
)
{
for
(
var
i
=
0
,
l
=
inData
.
totalResultsReturned
,
s
=
inData
.
firstResultPosition
;
i
<
l
;
i
++
)
{
this
.
setRow
(
inData
.
Result
[
i
],
s
-
1
+
i
);
}
// yahoo says 1000 is max results to return
var
c
=
Math
.
min
(
1000
,
inData
.
totalResultsAvailable
);
if
(
this
.
count
!=
c
)
{
this
.
setRowCount
(
c
);
this
.
allChange
();
this
.
onInitializeData
(
inData
);
}
},
getDatum
:
function
(
inRowIndex
,
inColIndex
)
{
var
row
=
this
.
getRow
(
inRowIndex
);
var
field
=
this
.
fields
.
get
(
inColIndex
);
return
(
inColIndex
==
undefined
?
row
:
(
row
?
row
[
field
.
name
]
:
field
.
na
));
},
// events
onInitializeData
:
turbo
.
nop
,
onSend
:
turbo
.
nop
,
onReceive
:
turbo
.
nop
});
// report
modelChange
=
function
()
{
var
n
=
turbo
.
$
(
'rowCount'
);
if
(
n
)
n
.
innerHTML
=
turbo
.
printf
(
'about %s row(s)'
,
model
.
count
);
}
// some data formatters
formatLink
=
function
(
inData
,
inRowIndex
)
{
if
(
!
inData
[
0
]
||
!
inData
[
1
])
return
' '
;
return
turbo
.
supplant
(
'<a target="_blank" href="{href}">{text}</a>'
,
{
href
:
inData
[
0
],
text
:
inData
[
1
]
});
};
formatImage
=
function
(
inData
,
inRowIndex
)
{
if
(
!
inData
[
0
]
||
!
inData
[
1
])
return
' '
;
var
o
=
{
href
:
inData
[
0
],
src
:
inData
[
1
].
Url
,
width
:
inData
[
1
].
Width
,
height
:
inData
[
1
].
Height
}
return
turbo
.
supplant
(
'<a href="{href}" target="_blank"><img border=0 src="{src}" width="{width}" height="{height}"></a>'
,
o
);
};
formatDate
=
function
(
inDatum
,
inRowIndex
)
{
if
(
inDatum
==
''
)
return
' '
;
var
d
=
new
Date
(
inDatum
*
1000
);
return
turbo
.
printf
(
'%s/%s/%s'
,
d
.
getMonth
(),
d
.
getDate
(),
d
.
getFullYear
());
};
formatDimensions
=
function
(
inData
,
inRowIndex
)
{
if
(
!
inData
[
0
]
||
!
inData
[
1
])
return
' '
;
return
inData
[
0
]
+
' x '
+
inData
[
1
];
}
File Metadata
Details
Attached
Mime Type
text/html
Expires
Sat, Apr 26, 03:31 (4 d, 5 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27588
Default Alt Text
yahoo_search.js (3 KB)
Attached To
rZEDHG ZedLegacy
Event Timeline
Log In to Comment