[GB.WEB.FORM]
* NEW: WebForm.Download() is a new static method that triggers a file download on the client side. * BUG: WebTextBox: The default event is "Change" now. * BUG: Allows quotes in automatic completion items. git-svn-id: svn://localhost/gambas/trunk@7935 867c0c6c-44f3-4631-809d-bfa615b0a4ec
This commit is contained in:
parent
8b09edbe72
commit
a39a89c6f1
9 changed files with 72 additions and 14 deletions
|
@ -1,6 +1,6 @@
|
|||
[Component]
|
||||
Key=gb.web.form
|
||||
Version=3.8.90
|
||||
Version=3.9.90
|
||||
State=1
|
||||
Authors=Benoît Minisini
|
||||
Requires=gb.web,gb.util.web,gb.util
|
||||
|
|
|
@ -1059,6 +1059,10 @@ HandleRequest
|
|||
M
|
||||
|
||||
|
||||
_init
|
||||
M
|
||||
|
||||
|
||||
Main
|
||||
M
|
||||
|
||||
|
@ -1159,6 +1163,10 @@ AddJavascriptFile
|
|||
m
|
||||
|
||||
(sFile)s
|
||||
Download
|
||||
M
|
||||
|
||||
(Path)s[(ContentType)s(Remove)b]
|
||||
#WebHBox
|
||||
WebContainer
|
||||
C
|
||||
|
@ -1834,6 +1842,10 @@ _DefaultSize
|
|||
C
|
||||
s
|
||||
"24,4"
|
||||
_DefaultEvent
|
||||
C
|
||||
s
|
||||
"Change"
|
||||
:Change
|
||||
:
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gb.web.form 3.8.90\n"
|
||||
"POT-Creation-Date: 2016-10-25 02:03 UTC\n"
|
||||
"PO-Revision-Date: 2016-06-25 00:29 UTC\n"
|
||||
"Last-Translator: Benoît Minisini <gambas@users.sourceforge.net>\n"
|
||||
"Language: fr\n"
|
||||
|
@ -18,7 +19,10 @@ msgid "This is a very important message"
|
|||
msgstr ""
|
||||
|
||||
#: FHello.webform:18
|
||||
msgid "<h1>Welcome to the <tt>gb.web.form</tt> component!</h1>\n<p>This component aims at making web application as easy as making desktop applications.</p>\n<p>This goal is difficult to achieve, but I hope to succeed!</p>"
|
||||
msgid ""
|
||||
"<h1>Welcome to the <tt>gb.web.form</tt> component!</h1>\n"
|
||||
"<p>This component aims at making web application as easy as making desktop applications.</p>\n"
|
||||
"<p>This goal is difficult to achieve, but I hope to succeed!</p>"
|
||||
msgstr ""
|
||||
|
||||
#: FHello.webform:34 FMessage.webform:50
|
||||
|
@ -260,4 +264,3 @@ msgstr ""
|
|||
#: Webform6.webform:24
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Gambas Project File 3.0
|
||||
# Compiled with Gambas 3.8.90
|
||||
# Compiled with Gambas 3.9.90
|
||||
Startup=Webform6
|
||||
UseHttpServer=1
|
||||
Version=3.8.90
|
||||
Version=3.9.90
|
||||
VersionFile=1
|
||||
Component=gb.util
|
||||
Component=gb.util.web
|
||||
|
|
|
@ -20,6 +20,8 @@ Static Private $aJavascript As New String[]
|
|||
Static Private $aRefresh As New String[]
|
||||
|
||||
Static Private $cLibrary As New Collection
|
||||
|
||||
Static Private $iDownload As Integer
|
||||
'Static Private $aPreload As String[]
|
||||
|
||||
Event Open
|
||||
|
@ -55,6 +57,13 @@ Static Public Sub HandleRequest()
|
|||
|
||||
End
|
||||
|
||||
Static Public Sub _init()
|
||||
|
||||
System.Language = Request.Language
|
||||
|
||||
End
|
||||
|
||||
|
||||
Static Public Sub Main()
|
||||
|
||||
Dim sPath As String
|
||||
|
@ -70,8 +79,6 @@ Static Public Sub Main()
|
|||
Me.HandleRequest
|
||||
If Response.Done Then Return
|
||||
|
||||
System.Language = Request.Language
|
||||
|
||||
sPath = Mid$(Request.Path, 2)
|
||||
|
||||
If Not sPath Then
|
||||
|
@ -99,6 +106,11 @@ Static Public Sub Main()
|
|||
If Not Error Then Response.SendFile(sPath)
|
||||
Return
|
||||
|
||||
Else If sPath Begins "download:" Then
|
||||
|
||||
If DownloadFile(Mid$(sPath, 10)) Then Goto NOT_FOUND
|
||||
Return
|
||||
|
||||
Else If sPath = "~dump" Then
|
||||
|
||||
If Session.Id Then
|
||||
|
@ -725,3 +737,35 @@ Public Sub AddJavascriptFile(sFile As String)
|
|||
$aJavascriptFiles.Add(sFile)
|
||||
|
||||
End
|
||||
|
||||
Static Public Sub Download(Path As String, Optional ContentType As String, Optional Remove As Boolean)
|
||||
|
||||
Dim cDownload As Collection
|
||||
|
||||
'' TODO: Move file to /tmp/gambas.XXXX/download if it is a temp file
|
||||
|
||||
cDownload = Session["download"]
|
||||
If Not cDownload Then cDownload = New Collection
|
||||
Inc $iDownload
|
||||
cDownload[$iDownload] = [Path, ContentType, Remove]
|
||||
Session["download"] = cDownload
|
||||
|
||||
_AddJavascript("window.open(" & JS("/" &/ Application.Root &/ "download:" & CStr($iDownload) &/ File.Name(Path)) & ", '_blank');")
|
||||
|
||||
End
|
||||
|
||||
Static Private Sub DownloadFile(sKey As String) As Boolean
|
||||
|
||||
Dim aDownload As String[]
|
||||
Dim iPos As Integer
|
||||
|
||||
iPos = InStr(sKey, "/")
|
||||
If iPos Then sKey = Left(sKey, iPos - 1)
|
||||
|
||||
Try aDownload = Session["download"][sKey]
|
||||
If Error Then Return True
|
||||
Response.AddHeader("Content-Disposition", "attachment")
|
||||
Response.SendFile(aDownload[0], aDownload[1])
|
||||
If aDownload[2] Then Try Kill aDownload[0]
|
||||
|
||||
End
|
||||
|
|
|
@ -6,6 +6,7 @@ Inherits WebControl
|
|||
Public Const _Properties As String = "*,Border=True,ReadOnly,PlaceHolder,Text"
|
||||
Public Const _DrawWith As String = "TextBox"
|
||||
Public Const _DefaultSize As String = "24,4"
|
||||
Public Const _DefaultEvent As String = "Change"
|
||||
|
||||
Event Change
|
||||
Event Completion(Text As String)
|
||||
|
|
|
@ -2,7 +2,7 @@ Webform6
|
|||
|
||||
0
|
||||
0
|
||||
3.8.90
|
||||
3.9.90
|
||||
|
||||
gb.util
|
||||
gb.util.web
|
||||
|
|
|
@ -41,7 +41,7 @@ var AutoComplete = (function(){
|
|||
// escape special characters
|
||||
search = search.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
||||
var re = new RegExp("(" + search.split(' ').join('|') + ")", "gi");
|
||||
return '<div class="gw-ac-suggestion" data-val="' + item + '">' + item.replace(re, "<b>$1</b>") + '</div>';
|
||||
return '<div class="gw-ac-suggestion" data-val="' + item.replace(/"/g, '"') + '">' + item.replace(re, "<b>$1</b>") + '</div>';
|
||||
},
|
||||
onSelect: function(e, term, item){}
|
||||
};
|
||||
|
|
|
@ -1095,11 +1095,6 @@ gw = {
|
|||
new AutoComplete({
|
||||
selector: $(id),
|
||||
cache: false,
|
||||
/*source: function(term, response)
|
||||
{
|
||||
gw.raise(id, 'completion', [term]);
|
||||
response($(id).gw_completion);
|
||||
}*/
|
||||
source: function(term, response) {
|
||||
var xhr = $(id).gw_xhr;
|
||||
if (xhr)
|
||||
|
@ -1119,6 +1114,9 @@ gw = {
|
|||
}
|
||||
};
|
||||
xhr.send();
|
||||
},
|
||||
onSelect: function(e, term, item) {
|
||||
gw.update(id, 'text', $(id).value);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue