|
Okay, thanks Richard for your kind suggestion!
-Sanjeev
|
|
|
|
|
Hello,
I have been trying to use SOAPUI freeware but it won't work in our environment with my project. The ReadyAPI does work with the project and no changes. My trial ran out on ReadyAPI. Nice tools but SOAPUI free is not supported.
Any free alternatives tools that can be used for testing API calls?
Thanks.
|
|
|
|
|
|
I've spent an hour trying to figure out why my img element won't resize correctly.
By cutting and pasting it in different places, I discovered when I place the IMG element inside a fieldset, it malfunctions, but outside the fieldset it works right.
But I need it inside the fieldset to load and post the form using asp.net MVC and razor.
Or maybe not?, dump the fieldset perhsps.
The image is part of a form to upload and display the image assignment.
End of the day, I'm going home.
|
|
|
|
|
So I'm using bootstrap.css and fontawesome on a asp.net MVC project, and I wanted to show the spinner on the File Upload button.
I tried wrapping the HTML in a A element, but got the default square grey button and the text saying choose a file. I did looked around the internet for awhile but found nothing.
<div class="form-group">
<label class="control-label">Enter your avatar's name max(40)</label>
<div class="input-group">
<input id="AvatarName" class="form-control" type="text" maxlength="40">
<span class="btn btn-primary btn-file">
Browse <input id="AvatarBrowse" name="AvatarBrowse" class="btn btn-primary has-spinner active" type="file" />
<span class="spinner">^__i class="fa fa-cog fa-spin">
</span>
</span>
</div>
</div>
Maybe someone out there a ran across this before.
Funny part is I got all the complicated stuff written, like the Jquery to upload the file and the controller to write the file.
But this eludes me. I suspect it can't be done.
The active on the input was just to see if I can make it work on page load.
|
|
|
|
|
Customising the file input is fairly complicated. Most browsers don't give you any hooks to do it, so you end up hiding the input and generating the UI yourself. It's tricky, because you have to make the click event on your custom UI trigger the click event on the input, so that the file dialog pops up.
Whipping File Inputs Into Shape with Bootstrap 3 · A Beautiful Site[^]
You might have more luck using a pre-built control for this. For example:
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Richard Deeming wrote: Customising the file input is fairly complicated
Your right about that. I have the first part done in the 1st link you provided.
Just thought it would be cool to add a spinner to show work is being done.
The more I think about it should be able to do that. My wheels are turning!
Thanks Richard, I'll read the other links.
|
|
|
|
|
I got my cog to spin, Happy now.
I just made a cog and toggled the class of the cog.
<div class="form-group">
<label class="control-label">Enter your avatar's name max(40)</label>
<div class="input-group">
<span class="input-group-addon">
<i class="fa fa-folder-open"></i>
</span>
<input id="AvatarName" class="form-control" type="text" maxlength="40">
<span class="input-group-btn">
<span class="btn btn-primary btn-file">
Choose
<input id="AvatarBrowse" name="AvatarBrowse" class="btn btn-primary spinner" type="file" />
<i id="AvatarSpinner" class=""></i>
</span>
</span>
</div>
</div>
And then the JQuery Side
function run_upload_serviceAvatar(e) {
var _files = e.target.files,
$spinner = $("#AvatarSpinner");
if (_files.length > 0) {
$spinner.toggleClass("fa fa-cog fa-spin");
if (window.FormData !== undefined) {
var _data = new FormData();
for (var x = 0; x < _files.length; x++) {
_data.append("file" + x, _files[x]);
}
$.ajax({
type: "POST",
url: '/Admin/json_upload_avatar?id=-1',
contentType: false,
processData: false,
data: _data,
error: function (xhr, status, p3, p4) {
var err = "run_upload_serviceAvatar Error: " + " " + status + " " + p3 + " " + p4;
if (xhr.responseText && xhr.responseText[0] == "{") {
err = JSON.parse(xhr.responseText).Message;
}
console.log(err);
$spinner.toggleClass("fa fa-cog fa-spin");
},
success: function (data) {
console.log(data);
$spinner.toggleClass("fa fa-cog fa-spin");
}
});
}
else {
alert("This browser doesn't support HTML5 file uploads!");
}
}
}
modified 18-Feb-16 11:11am.
|
|
|
|
|
For anything Bootstrap related I would recommend Bootsnipp[^]
What do you get when you cross a joke with a rhetorical question?
The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.
Do questions with multiple question marks annoy you???
|
|
|
|
|
Oh Thanks!, just bookmarked it
|
|
|
|
|
There's also Bootswatch[^] for themes.
What do you get when you cross a joke with a rhetorical question?
The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.
Do questions with multiple question marks annoy you???
|
|
|
|
|
I have those already, but thanks for pointing that out!
This Bootstrap.css stuff is hard to learn. I'm finally starting to figure out the col-xx-xx and how it works.
the middle xx controls when to go block or inline based on device, like xs or sm
and how the numbers work for it.
however I do like it. less artwork to manufacture and less HTML writing.
|
|
|
|
|
I want to do a simple CTRL-A copy/paste of a list from THIS PAGE HERE[^]
When I do that, I get only part of the entire list, and at this moment I can't figure out the parameters that define the start and stop points of what I do get.
I looked at the page source, and I see 124 lines of what appears to be JavaScript (anyone, correct me).
This is a new trick on me. Can anyone here describe to me a method for getting that list in some sort of text (ASCII or HTML, or whatever) form ?
|
|
|
|
|
The page appears to be using SlickGrid[^], which is virtualizing the UI, so only a small number of rows actually exist in the DOM at any one time.
The data is available via script, so it's fairly easy to extract. Open the browser's developer tools, and paste in the following commands:
var table = $("<table/>");
table.append($("<thead/>").append($("<tr/>").append($("<th/>").html("Booth")).append($("<th/>").html("Name"))));
var tbody = table.append("<tbody/>");
$.each(expocadfx.fxData.exhibitors, function(i,v){ tbody.append($("<tr/>").append($("<th/>").text(v.boothNumber)).append($("<td/>").text(v.name))); });
$("body").empty().append(table);
That will replace the entire page content with a single table containing the list you want to copy.
If you need more data, each record has some other properties you can use:
- id
- status
- name
- nameOther
- exhId
- boothNumber
- boothIndex
- address1
- address2
- city
- state
- zip
- country
- contact
- phone
- fax
- email
- website
- profile
- category
- url
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Super cool. Where do I paste your sample code ?
|
|
|
|
|
Open the developer tools and paste the commands in the console.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
I'm using Opera (I know, I know)
Chrome and/or Firefox have some malware installed in them
I'll see if either one fixed itself yet
|
|
|
|
|
|
Thanks. As you have probably guessed by now, my web design skills are minimal. You are really helping me a lot.
|
|
|
|
|
Ultra cool, I didn't know that DragonFly existed. Still doing some learning curve stuff.
|
|
|
|
|
Ta-Da, you sir, are cool. Ultra cool, negative one degrees Kelvin cool.
Thank you, very much, big time thanks.
Drop me a note when you're in town and I'll take you out for a free T-Bone Steak.
|
|
|
|
|
Can you suggest a unique layout in creating a website design?
|
|
|
|
|
|
I am not able to invoke the Web service Method using WSDL web reffernce.
Step i Follow to invoke the webservice method
1. Add Web refernce of WSDL file. (It generates the refernce method )
2. create instance of service.
3. assign parameter to service method.
I am not able to invoke the service.
Sample c# code
CM_PORTG3_Ref.CM_PORTG3 _CM_PORTG3 = new CM_PORTG3_Ref.CM_PORTG3();
_CM_PORTG3.startdate = "1-Aug-2015";
_CM_PORTG3.enddate = "31-Aug-2015";
_CM_PORTG3.aid = "Agent1";
CM_PORTG3_Ref.CM_PORTG3Service _CM_PORTG3Service = new CM_PORTG3_Ref.CM_PORTG3Service();
////Smaple WSDl file format
<?xml version="1.0"?>
<!-- root element wsdl:definitions defines set of related services -->
<wsdl:definitions name="CM_PORTG3"
targetNamespace="http://ouaf.oracle.com/spl/XAIXapp/xaiserver/CM_PORTG3"
xmlns:xai="http://ouaf.oracle.com/spl/XAIXapp/xaiserver/CM_PORTG3"
xmlns:xaixsd="http://ouaf.oracle.com/spl/XAIXapp/xaiserver/CM_PORTG3"
xmlns:schemans1="http://oracle.com/CM_PORTG3.xsd"
xmlns:schemans2="http://oracle.com/CM_PORTG3.xsd"
xmlns:ouaf="urn:oracle:ouaf"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<!-- wsdl:types encapsulates schema definitions of communication types;
here using xsd -->
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ouaf="urn:oracle:ouaf" targetNamespace="urn:oracle:ouaf" elementFormDefault="unqualified">
<xsd:element name="Fault">
<xsd:complexType>
<xsd:all>
<xsd:element name="ResponseStatus" type="xsd:string"/>
<xsd:element name="ResponseCode" type="xsd:int"/>
<xsd:element name="ResponseText" type="xsd:string"/>
<xsd:element name="ResponseData" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="parm1" type="xsd:string"/>
<xsd:attribute name="parm2" type="xsd:string"/>
<xsd:attribute name="parm3" type="xsd:string"/>
<xsd:attribute name="parm4" type="xsd:string"/>
<xsd:attribute name="parm5" type="xsd:string"/>
<xsd:attribute name="parm6" type="xsd:string"/>
<xsd:attribute name="parm7" type="xsd:string"/>
<xsd:attribute name="parm8" type="xsd:string"/>
<xsd:attribute name="parm9" type="xsd:string"/>
<xsd:attribute name="text" type="xsd:string"/>
<xsd:attribute name="category" type="xsd:string"/>
<xsd:attribute name="numParm" type="xsd:int"/>
<xsd:attribute name="number" type="xsd:int"/>
</xsd:complexType>
</xsd:element>
</xsd:all>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="dateTime">
<xsd:restriction base="xsd:token">
<xsd:pattern value="[0-9]{4}-[0-1][0-9]-[0-3][0-9]-[0-2][0-9]:[0-6][0-9]:[0-6][0-9]"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="date">
<xsd:restriction base="xsd:token">
<xsd:pattern value="[0-9]{4}-[0-1][0-9]-[0-3][0-9]"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="time">
<xsd:restriction base="xsd:token">
<xsd:pattern value="[0-2][0-9]:[0-6][0-9]:[0-6][0-9]"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="money">
<xsd:restriction base="xsd:decimal"/>
</xsd:simpleType>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ouaf="urn:oracle:ouaf" targetNamespace="http://oracle.com/CM_PORTG3.xsd" elementFormDefault="qualified">
<xsd:import namespace="urn:oracle:ouaf"/>
<xsd:element name="CM_PORTG3">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="zone" type="xsd:string" minOccurs="0" default="CM_PORTG3"/>
<xsd:element name="startdate" type="xsd:string" minOccurs="0"/>
<xsd:element name="enddate" type="xsd:string" minOccurs="0"/>
<xsd:element name="aid" type="xsd:string" minOccurs="0"/>
<xsd:element name="rowCount" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="results" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="total1" type="xsd:string" minOccurs="0"/>
<xsd:element name="casecd" type="xsd:string" minOccurs="0"/>
<xsd:element name="aid" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="faultStyle" type="xsd:string" fixed="wsdl" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<!-- wsdl:message elements describe potential transactions -->
<!-- request CM_PORTG3Request is of type CM_PORTG3 -->
<wsdl:message name="CM_PORTG3Request">
<wsdl:part name="body" element="schemans1:CM_PORTG3"/>
</wsdl:message>
<!-- response CM_PORTG3Response is of type CM_PORTG3Response -->
<wsdl:message name="CM_PORTG3Response">
<wsdl:part name="body" element="schemans2:CM_PORTG3"/>
</wsdl:message>
<!-- fault CM_PORTG3Fault is of type CM_PORTG3Fault -->
<wsdl:message name="CM_PORTG3Fault">
<wsdl:part name="fault" element="ouaf:Fault"/>
</wsdl:message>
<!-- wsdl:portType describes messages in an operation -->
<wsdl:portType name="CM_PORTG3PortType">
<!-- the value of wsdl:operation eludes me -->
<wsdl:operation name="CM_PORTG3">
<wsdl:input message="xai:CM_PORTG3Request"/>
<wsdl:output message="xai:CM_PORTG3Response"/>
<wsdl:fault name="fault" message="xai:CM_PORTG3Fault"/>
</wsdl:operation>
</wsdl:portType>
<!-- wsdl:binding states a serialization protocol for this service -->
<wsdl:binding name="CM_PORTG3SoapBinding"
type="xai:CM_PORTG3PortType">
<!-- leverage off soap:binding document style @@@(no wsdl:foo pointing at
the soap binding) -->
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<!-- semi-opaque container of network transport details classed by
soap:binding above @@@ -->
<wsdl:operation name="CM_PORTG3">
<!-- again bind to SOAP? @@@ -->
<soap:operation soapAction="http://ouaf.oracle.com/spl/XAIXapp/xaiserver/CM_PORTG3"/>
<!-- furthur specify that the messages in the wsdl:operation
"CM_PORTG3" use SOAP? @@@ -->
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="fault">
<soap:fault name="fault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<!-- wsdl:service names a new service "CM_PORTG3Service" -->
<wsdl:service name="CM_PORTG3Service">
<wsdl:documentation>CM_PORTG3 version 2: Case Count against status-User ID for Genesys</wsdl:documentation>
<!-- connect it to the binding "CM_PORTG3SoapBinding" above -->
<wsdl:port name="CM_PORTG3Port"
binding="xai:CM_PORTG3SoapBinding">
<!-- give the binding a network address -->
<soap:address location="http://192.168.1.50:4500/spl/XAIApp/xaiserver/CM_PORTG3"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
|
|
|
|
|
Hi,
The soap request is sent using
set objReturn = Server.CreateObject("Msxml2.DOMDocument")
set objHTTP = server.CreateObject("Msxml2.ServerXMLHTTP")
objHTTP.setTimeouts lResolve, lConnect, lSend, lReceive
objHTTP.open "POST", strURL, False
on error resume next
objHTTP.setRequestHeader "Content-Type", "text/xml; charset=UTF-8"
objHTTP.setRequestHeader "Content-Disposition", "attachment;filename=""PDFTEST.pdf"""
objHTTP.send strXML
The response I get is per below in binary
------=_Part_97_1242713853.1455190897041
Content-Type: text/xml; charset=utf-8
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body>
****XML related document****
</SOAP-ENV:Body></SOAP-ENV:Envelope>
------=_Part_97_1242713853.1455190897041
Content-Type: application/pdf
****PDF related document****
I could output into text using below function
Binary to String function
Function BinaryToString(Binary)
Dim I, S
For I = 1 To LenB(Binary)
S = S & Chr(AscB(MidB(Binary, I, 1)))
Next
BinaryToString = S
End Function
The request
Attachment is read like below:
'--- attachments ---'
'Create Datastream object to save the file
set DataStream = CreateObject("ADODB.Stream")
'Open Datastream
DataStream.Open
'Set type to binary
DataStream.Type = 1
'Create bianry datastream of the file
DataStream.Write objHTTP.ResponseBody 'strReturnfile
DataStream.Position = 0
'Set the File System Object, so we can check to see if it already exists.
set FSO = Createobject("Scripting.FileSystemObject")
'If the file already exists, delete it
if FSO.FileExists(SaveAsFile) then
Fso.DeleteFile SaveAsFile
End If
set FSO = Nothing
'Write the file to the location on the server
DataStream.SaveToFile SaveAsFile
'Close Datastream
DataStream.Close
'Delete Datastream object
set DataStream = Nothing
'--- attachments end---'
Now my problem is I need to just read XML using loadXML()
Can anyone please help as I have spent few days and really lost.
Thanks
|
|
|
|