This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
31
Web Server - Ask For Help / Re: Tree Field Type
« on: October 13, 2021, 01:53:49 AM »
I too would be very interested in this information.
32
Web Server - Ask For Help / Re: NetWebYear or other scheduler
« on: October 13, 2021, 12:34:06 AM »
Hi Bruce, I've emailed my NetWeb.clw, thank you for looking into this.
33
Web Server - Ask For Help / Re: NetWebYear or other scheduler
« on: October 12, 2021, 07:02:03 AM »
Hi Bruce,
I've produced a solution that will suffice for the time being as it works well, I've attached a partial screen shot.
I have made a few changes to DrawPlanRow in NetWeb.clw which I realise has potential issues in future updates of WebServer. The only limitation I currently have is being limited to one day because of the 'nt-relative' attribute in the class, this causes a background element on day 2 to be placed after the similar timed element in day 1, although in the correct column. I think I can solve this if required by taking a look more closely at the 'nt-relative' and 'planner-data' definitions as a none responsive version of 'planner-data' would be ideal, but that is for another day.
Thank you for your help.
NetWebServerWorkerBase.DrawPlanRow Procedure(String p_ParentId,NetPlannerDataQueueType p_Queue)
Packet StringTheory
y Long
code
packet.SetValue('data-nt-row="data" data-nt-parent="' & clip(p_ParentId) & '"')
self.DivHeader(p_ParentId,'planner-row-size nt-relative',Net:Send+Net:Crc,,packet.GetValue())
loop y = 1 to records(p_Queue)
Get(p_Queue,y)
If Lower(clip(p_Queue.Css)) = 'background'
packet.SetValue('<div ')
If p_Queue.StartDate or p_Queue.StartTime
packet.append(self.wrap('data-nt-start-date',p_Queue.StartDate))
packet.append(self.wrap('data-nt-start-time',p_Queue.StartTime))
end
If p_Queue.EndDate or p_Queue.EndTime
if p_Queue.EndTime > 8640000
p_Queue.EndDate += (p_Queue.EndTime/8640000)
p_Queue.EndTime = p_Queue.EndTime % 8640000
end
packet.append(self.wrap('data-nt-end-date',p_Queue.EndDate))
packet.append(self.wrap('data-nt-end-time',p_Queue.EndTime))
end
packet.append(self.wrap('data-nt-column',p_Queue.column))
packet.append(self.wrap('data-nt-id',p_Queue.Hash))
packet.append(self.wrap('data-nt-margin',p_Queue.Margin))
packet.append(self.CreateTip(p_Queue.Tip,p_Queue.TipHtml))
packet.append(' class="planner-data-width planner-data-height nt-relative"')
packet.append(' data-nt-row="data"')
packet.append(' data-nt-parent="' & p_ParentId & '"')
packet.append(self.wrap('style',p_Queue.Style))
packet.append('></div>' & self.CRLF)
do SendPacket
Else
packet.SetValue('<div ')
If p_Queue.StartDate or p_Queue.StartTime
packet.append(self.wrap('data-nt-start-date',p_Queue.StartDate))
packet.append(self.wrap('data-nt-start-time',p_Queue.StartTime))
end
If p_Queue.EndDate or p_Queue.EndTime
if p_Queue.EndTime > 8640000
p_Queue.EndDate += (p_Queue.EndTime/8640000)
p_Queue.EndTime = p_Queue.EndTime % 8640000
end
packet.append(self.wrap('data-nt-end-date',p_Queue.EndDate))
packet.append(self.wrap('data-nt-end-time',p_Queue.EndTime))
end
packet.append(self.wrap('data-nt-column',p_Queue.column))
packet.append(self.wrap('data-nt-id',p_Queue.Hash))
packet.append(self.wrap('data-nt-form',p_Queue.Form))
packet.append(self.wrap('data-nt-margin',p_Queue.Margin))
packet.append(self.CreateTip(p_Queue.Tip,p_Queue.TipHtml))
If p_Queue.Css
packet.append(' class="nt-hard-left planner-data-width planner-data-height planner-data ui-corner-all '&clip(p_Queue.Css)&'"')
Else
packet.append(' class="nt-hard-left planner-data-width planner-data-height planner-data ui-corner-all"')
End
packet.append(self.wrap('style',p_Queue.Style))
packet.append('><div class="planner-data-text">' & self._jsok(p_Queue.Content,p_queue.ContentHtml) & '</div></div>' & self.CRLF)
do SendPacket
End
end
self.DivFooter()
SendPacket routine
self.ParseHTML(packet,1,0,NET:NoHeader)
packet.setvalue('')
I've produced a solution that will suffice for the time being as it works well, I've attached a partial screen shot.
I have made a few changes to DrawPlanRow in NetWeb.clw which I realise has potential issues in future updates of WebServer. The only limitation I currently have is being limited to one day because of the 'nt-relative' attribute in the class, this causes a background element on day 2 to be placed after the similar timed element in day 1, although in the correct column. I think I can solve this if required by taking a look more closely at the 'nt-relative' and 'planner-data' definitions as a none responsive version of 'planner-data' would be ideal, but that is for another day.
Thank you for your help.
NetWebServerWorkerBase.DrawPlanRow Procedure(String p_ParentId,NetPlannerDataQueueType p_Queue)
Packet StringTheory
y Long
code
packet.SetValue('data-nt-row="data" data-nt-parent="' & clip(p_ParentId) & '"')
self.DivHeader(p_ParentId,'planner-row-size nt-relative',Net:Send+Net:Crc,,packet.GetValue())
loop y = 1 to records(p_Queue)
Get(p_Queue,y)
If Lower(clip(p_Queue.Css)) = 'background'
packet.SetValue('<div ')
If p_Queue.StartDate or p_Queue.StartTime
packet.append(self.wrap('data-nt-start-date',p_Queue.StartDate))
packet.append(self.wrap('data-nt-start-time',p_Queue.StartTime))
end
If p_Queue.EndDate or p_Queue.EndTime
if p_Queue.EndTime > 8640000
p_Queue.EndDate += (p_Queue.EndTime/8640000)
p_Queue.EndTime = p_Queue.EndTime % 8640000
end
packet.append(self.wrap('data-nt-end-date',p_Queue.EndDate))
packet.append(self.wrap('data-nt-end-time',p_Queue.EndTime))
end
packet.append(self.wrap('data-nt-column',p_Queue.column))
packet.append(self.wrap('data-nt-id',p_Queue.Hash))
packet.append(self.wrap('data-nt-margin',p_Queue.Margin))
packet.append(self.CreateTip(p_Queue.Tip,p_Queue.TipHtml))
packet.append(' class="planner-data-width planner-data-height nt-relative"')
packet.append(' data-nt-row="data"')
packet.append(' data-nt-parent="' & p_ParentId & '"')
packet.append(self.wrap('style',p_Queue.Style))
packet.append('></div>' & self.CRLF)
do SendPacket
Else
packet.SetValue('<div ')
If p_Queue.StartDate or p_Queue.StartTime
packet.append(self.wrap('data-nt-start-date',p_Queue.StartDate))
packet.append(self.wrap('data-nt-start-time',p_Queue.StartTime))
end
If p_Queue.EndDate or p_Queue.EndTime
if p_Queue.EndTime > 8640000
p_Queue.EndDate += (p_Queue.EndTime/8640000)
p_Queue.EndTime = p_Queue.EndTime % 8640000
end
packet.append(self.wrap('data-nt-end-date',p_Queue.EndDate))
packet.append(self.wrap('data-nt-end-time',p_Queue.EndTime))
end
packet.append(self.wrap('data-nt-column',p_Queue.column))
packet.append(self.wrap('data-nt-id',p_Queue.Hash))
packet.append(self.wrap('data-nt-form',p_Queue.Form))
packet.append(self.wrap('data-nt-margin',p_Queue.Margin))
packet.append(self.CreateTip(p_Queue.Tip,p_Queue.TipHtml))
If p_Queue.Css
packet.append(' class="nt-hard-left planner-data-width planner-data-height planner-data ui-corner-all '&clip(p_Queue.Css)&'"')
Else
packet.append(' class="nt-hard-left planner-data-width planner-data-height planner-data ui-corner-all"')
End
packet.append(self.wrap('style',p_Queue.Style))
packet.append('><div class="planner-data-text">' & self._jsok(p_Queue.Content,p_queue.ContentHtml) & '</div></div>' & self.CRLF)
do SendPacket
End
end
self.DivFooter()
SendPacket routine
self.ParseHTML(packet,1,0,NET:NoHeader)
packet.setvalue('')
34
Web Server - Ask For Help / Re: NetWebYear or other scheduler
« on: October 10, 2021, 11:41:40 PM »
Hi Bruce,
Is the webinar Thursday this week, I'll try to attend.
Gordon
Is the webinar Thursday this week, I'll try to attend.
Gordon
35
Web Server - Ask For Help / Re: NetWebYear or other scheduler
« on: October 08, 2021, 04:32:05 AM »
Hi Bruce,
I don't think I gave a clear explanation of what I'm trying to achieve. All I actually want to do is colour individual cells so at a glance the user can see available time for a given clinician on a specific date and also identify any areas reserved for specific treatment types or some other purpose.
I've attached an image showing our desktop appointment book, the grey areas represent the out of hours and lunch times, the orange area in the third column indicates a treatment specific template is active on this date and time for this clinician. There is only one appoint and that is in column one for a Mr Alan Adams.
I'm trying to get a similar representation in our web app, the coloured cells are simply coloured they have no content or active code, they are purely a visual indicator. The pattern of these coloured cells varies by date and clinician. The form used to insert/change an appointment notifies the user of any usage restrictions.
On inspection of the page code in the browser it at first seemed that I could somehow add "background-color" to the row style, however even if I could it colours the whole row not just a cell. I did try using a second data table to colour regions but this inserts normal events into the planner and I was unable to essentially make them transparent to clicks, as a result it couldn't call the actual appointment insert form if I clicked on one of these areas, they also sit over real appointments if the times overlap.
Perhaps I'm asking too much of it or more likely I lack the knowledge to make it work, but a pointer in the right direction would be fantastic.
Am I correct in thinking I could inject html similar to the following into the correct part of the page row generation, it's only simplified appointment html with no form and different class details, it seems to work if I edit the html on a browser page:
<div data-nt-start-date="80638" data-nt-start-time="3180001" data-nt-end-date="80638" data-nt-end-time="3360002" data-nt-column="1" data-nt-margin="0"
class="planner-row-size nt-relative" style="color: rgb(0, 0, 0); background-color: rgb(128, 128, 0); left: 5px; width: 343px; top: 0px; height: 144.001px; padding-left: 0px; padding-right: 0px;">
<div class="planner-data-text">Morning Break</div>
</div>
Gordon
I don't think I gave a clear explanation of what I'm trying to achieve. All I actually want to do is colour individual cells so at a glance the user can see available time for a given clinician on a specific date and also identify any areas reserved for specific treatment types or some other purpose.
I've attached an image showing our desktop appointment book, the grey areas represent the out of hours and lunch times, the orange area in the third column indicates a treatment specific template is active on this date and time for this clinician. There is only one appoint and that is in column one for a Mr Alan Adams.
I'm trying to get a similar representation in our web app, the coloured cells are simply coloured they have no content or active code, they are purely a visual indicator. The pattern of these coloured cells varies by date and clinician. The form used to insert/change an appointment notifies the user of any usage restrictions.
On inspection of the page code in the browser it at first seemed that I could somehow add "background-color" to the row style, however even if I could it colours the whole row not just a cell. I did try using a second data table to colour regions but this inserts normal events into the planner and I was unable to essentially make them transparent to clicks, as a result it couldn't call the actual appointment insert form if I clicked on one of these areas, they also sit over real appointments if the times overlap.
Perhaps I'm asking too much of it or more likely I lack the knowledge to make it work, but a pointer in the right direction would be fantastic.
Am I correct in thinking I could inject html similar to the following into the correct part of the page row generation, it's only simplified appointment html with no form and different class details, it seems to work if I edit the html on a browser page:
<div data-nt-start-date="80638" data-nt-start-time="3180001" data-nt-end-date="80638" data-nt-end-time="3360002" data-nt-column="1" data-nt-margin="0"
class="planner-row-size nt-relative" style="color: rgb(0, 0, 0); background-color: rgb(128, 128, 0); left: 5px; width: 343px; top: 0px; height: 144.001px; padding-left: 0px; padding-right: 0px;">
<div class="planner-data-text">Morning Break</div>
</div>
Gordon
36
Web Server - Ask For Help / Re: Security analysis vulnerability reported
« on: October 05, 2021, 06:19:02 AM »
Hi Bruce,
Thank you for the clear explanation and help in resolving the issue, I'll make the change you suggest.
Gordon
Thank you for the clear explanation and help in resolving the issue, I'll make the change you suggest.
Gordon
37
Web Server - Ask For Help / Re: NetWebYear or other scheduler
« on: October 05, 2021, 06:14:20 AM »
Hi Bruce,
Just a couple of quick questions if I may, I've successfully loaded data from 2 tables, blocked out time and actual appointments and I can colour them as required. However I do have 2 issues:
1. The would be background blocked out entries sit over part of an appointment entry if is starts later than but not before the end of an actual appointment, the later starting appointment sits on top which is obviously desirable normally but not if it's intended to be a background only. I've attached an image.
2. I can't make insert work when clicking on a blocked out entry, I get a record not found error in the insert/update form as it is can't find an appointment because there isn't one, but it's trying to update because I clicked on an entry in PlannerQueue.Data albeit from the blocked out table.
Is there any way of making the blocked out entries truly inactive so they are display only and allow inserts into the main appointment table if I click on a time in a blocked out region?
I'm so close to this being perfect for my needs.
Gordon
Just a couple of quick questions if I may, I've successfully loaded data from 2 tables, blocked out time and actual appointments and I can colour them as required. However I do have 2 issues:
1. The would be background blocked out entries sit over part of an appointment entry if is starts later than but not before the end of an actual appointment, the later starting appointment sits on top which is obviously desirable normally but not if it's intended to be a background only. I've attached an image.
2. I can't make insert work when clicking on a blocked out entry, I get a record not found error in the insert/update form as it is can't find an appointment because there isn't one, but it's trying to update because I clicked on an entry in PlannerQueue.Data albeit from the blocked out table.
Is there any way of making the blocked out entries truly inactive so they are display only and allow inserts into the main appointment table if I click on a time in a blocked out region?
I'm so close to this being perfect for my needs.
Gordon
38
Web Server - Ask For Help / Re: NetWebYear or other scheduler
« on: October 01, 2021, 05:28:42 AM »
Thank you Bruce that is really kind of you, I will try to attend Wednesday, in the meantime I'll play around with the ideas you suggest.
Gordon
Gordon
39
Web Server - Ask For Help / NetWebYear or other scheduler
« on: October 01, 2021, 03:18:42 AM »
Hi,
I've tried using NetWebYear to create a basic appointment book and in truth it provides all I must have apart from a couple of features:
1. The ability to change the background colour of specific time slots for a given date to make non working times such as lunch obvious, I know I could put an appointment in but it's no ideal.
2. Ideally select a colour for individual events.
Are either of these possible.
Failing that I've looked at FullCalendar but that will be a steep learning curve for me as I've not used a jquery plugin before and I don't know if its even possible.
I know I ask a lot of questions but I do appreciate the help I receive.
Gordon
I've tried using NetWebYear to create a basic appointment book and in truth it provides all I must have apart from a couple of features:
1. The ability to change the background colour of specific time slots for a given date to make non working times such as lunch obvious, I know I could put an appointment in but it's no ideal.
2. Ideally select a colour for individual events.
Are either of these possible.
Failing that I've looked at FullCalendar but that will be a steep learning curve for me as I've not used a jquery plugin before and I don't know if its even possible.
I know I ask a lot of questions but I do appreciate the help I receive.
Gordon
40
Web Server - Ask For Help / Re: Security analysis vulnerability reported
« on: September 30, 2021, 06:27:45 AM »
Thanks, I wish I could but I take care of my grandchildren for several hours on a Thursday afternoon so it is almost impossible.
41
Web Server - Ask For Help / Re: Security analysis vulnerability reported
« on: September 30, 2021, 05:55:28 AM »
Hi Vinnie,
Thank you for the reply, I do have Change Session ID on log In/Out ticked and also delete session on logout. However, I'm unsure whether this helps with session fixation attacks, please forgive my ignorance.
Gordon
Thank you for the reply, I do have Change Session ID on log In/Out ticked and also delete session on logout. However, I'm unsure whether this helps with session fixation attacks, please forgive my ignorance.
Gordon
42
Web Server - Ask For Help / Security analysis vulnerability reported
« on: September 30, 2021, 03:12:58 AM »
Hi,
One of our customers has run a security analysis on their system and has reported that there is a significant vulnerability with regard to our Nettalk WebServer application. The analysis was performed by Barclays Bank for their ongoing PCIDSS Compliance of card payment machines on the LAN. It appears to me in my limited knowledge that the Session ID is what they are highlighting, but beyond that I'm lost.
Does anyone have any suggestions, comments or advice about what we can do about this or what we can reply with? I would be most grateful if anyone has anything to share.
I have pasted part of their email below:
"
THREAT:
The scanner found a Web application on the target that uses cookies. The application seems to use cookies (likely, session IDs) in an insecure way. Specifically, the
scanner created a web session with the target using a session ID specified by the scanner itself. The target application simply started a new session with this specified
session ID. This issue is generally called "session-fixation" and is vulnerable to session-hijacking attacks.
One scenario where this could be used to hijack an unsuspecting user's Web session is as follows. Assuming an online store, www.examplestore.com, has this security
issue. If an attacker uses social engineering techniques to make a target user click on a link (in an email or on a malicious Web site) like http://www.examplestore.com/?
PHPSESSID=12345, where PHPSESSID is the cookie used for identifying the session, the store will start a new session for the unsuspecting user with the session ID
12345. Then, since the attacker knows the session ID already, the attacker can simply hijack the session moments after the user has visited the store.
IMPACT:
By exploiting this vulnerability, an attacker could use the hijacked session for information gathering, invasion of privacy, property theft, or credit-card theft.
For more information about the way session-fixation attacks can be performed and the possible consequences of such attacks, read this paper.
SOLUTION:
This is a common issue web-developers come across, and many application-specific solutions exist.
The PHP package itself provides a "php.ini" based global configuration option called "session.use_only_cookies" (introduced in PHP Version 4.3.0). This is disabled by
default for backward compatibility. When enabled, this allows PHP session IDs to be set only via HTTP cookies. This makes GET/POST based hijack attacks possible
only when there is significant activity by an unsuspecting user.
For more information, read the Sessions and Security description provided on PHP's Web site.
For solutions in other web packages, check the relevant documentation.
RESULT:
GET /?SESSIONID=0123456789abcdef0123456789abcdef HTTP/1.0
Host: 77-44-120-131.xdsl.murphx.net
HTTP/1.1 200 OK
Date: Thu, 16 Sep 2021 15:53:57 GMT
Expires: Wed, 16 Sep 2020 15:53:57 GMT
Content-Length: 2577
Content-Type: text/html
Cache-Control: no-store, no-cache, must-revalidate, private,post-check=0, pre-check=0, max-age=0
Pragma: no-cache
Set-Cookie: SESSIONID=0123456789abcdef0123456789abcdef; path=/; secure; HttpOnly; SameSite=Strict
Connection: close
Access-Control-Allow-Origin: *
X-Frame-Options: sameorigin
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
X-Xss-Protection: 1; mode=block
<!DOCTYPE html><html class=" nt-html no-js">
<head>
<title>EDGE Anywhere</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1">
<link href="/themes/base/theme.css?c=12.17" rel="stylesheet" />
<link href="/redactor/redactor.min.css?c=12.17" rel="stylesheet" />
<script src="/scripts/all.js?c=12.17" type="text/javascript"></script>
<script src="/redactor/redactor.min.js?c=12.17" type="text/javascript"></script>
</head>
<body class=" PageBody">
<div id="body_div" class=" PageBodyDiv">
...... rest of page
"
One of our customers has run a security analysis on their system and has reported that there is a significant vulnerability with regard to our Nettalk WebServer application. The analysis was performed by Barclays Bank for their ongoing PCIDSS Compliance of card payment machines on the LAN. It appears to me in my limited knowledge that the Session ID is what they are highlighting, but beyond that I'm lost.
Does anyone have any suggestions, comments or advice about what we can do about this or what we can reply with? I would be most grateful if anyone has anything to share.
I have pasted part of their email below:
"
THREAT:
The scanner found a Web application on the target that uses cookies. The application seems to use cookies (likely, session IDs) in an insecure way. Specifically, the
scanner created a web session with the target using a session ID specified by the scanner itself. The target application simply started a new session with this specified
session ID. This issue is generally called "session-fixation" and is vulnerable to session-hijacking attacks.
One scenario where this could be used to hijack an unsuspecting user's Web session is as follows. Assuming an online store, www.examplestore.com, has this security
issue. If an attacker uses social engineering techniques to make a target user click on a link (in an email or on a malicious Web site) like http://www.examplestore.com/?
PHPSESSID=12345, where PHPSESSID is the cookie used for identifying the session, the store will start a new session for the unsuspecting user with the session ID
12345. Then, since the attacker knows the session ID already, the attacker can simply hijack the session moments after the user has visited the store.
IMPACT:
By exploiting this vulnerability, an attacker could use the hijacked session for information gathering, invasion of privacy, property theft, or credit-card theft.
For more information about the way session-fixation attacks can be performed and the possible consequences of such attacks, read this paper.
SOLUTION:
This is a common issue web-developers come across, and many application-specific solutions exist.
The PHP package itself provides a "php.ini" based global configuration option called "session.use_only_cookies" (introduced in PHP Version 4.3.0). This is disabled by
default for backward compatibility. When enabled, this allows PHP session IDs to be set only via HTTP cookies. This makes GET/POST based hijack attacks possible
only when there is significant activity by an unsuspecting user.
For more information, read the Sessions and Security description provided on PHP's Web site.
For solutions in other web packages, check the relevant documentation.
RESULT:
GET /?SESSIONID=0123456789abcdef0123456789abcdef HTTP/1.0
Host: 77-44-120-131.xdsl.murphx.net
HTTP/1.1 200 OK
Date: Thu, 16 Sep 2021 15:53:57 GMT
Expires: Wed, 16 Sep 2020 15:53:57 GMT
Content-Length: 2577
Content-Type: text/html
Cache-Control: no-store, no-cache, must-revalidate, private,post-check=0, pre-check=0, max-age=0
Pragma: no-cache
Set-Cookie: SESSIONID=0123456789abcdef0123456789abcdef; path=/; secure; HttpOnly; SameSite=Strict
Connection: close
Access-Control-Allow-Origin: *
X-Frame-Options: sameorigin
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
X-Xss-Protection: 1; mode=block
<!DOCTYPE html><html class=" nt-html no-js">
<head>
<title>EDGE Anywhere</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1">
<link href="/themes/base/theme.css?c=12.17" rel="stylesheet" />
<link href="/redactor/redactor.min.css?c=12.17" rel="stylesheet" />
<script src="/scripts/all.js?c=12.17" type="text/javascript"></script>
<script src="/redactor/redactor.min.js?c=12.17" type="text/javascript"></script>
</head>
<body class=" PageBody">
<div id="body_div" class=" PageBodyDiv">
...... rest of page
"
43
Web Server - Ask For Help / Div Grid on a form
« on: September 28, 2021, 04:16:25 AM »
Am I correct in thinking Div Grid is intended to allow 2 dimensional field placement rather than 1 dimensional, in other words like Flex Grid?
If so is there an example that presents a form in 2 dimensions with correct vertical alignment, with perhaps 3 or 4 columns. I have tried and all I seem to get are 2 columns that don't respond correctly on resize. I fully anticipate that I am not using the feature correctly, however the only options I can find are for HTML Method (I set it to Div Grid) and the individual field start/span for row and column, I've also tried various span and last on row/line settings. Oddly I don't really see any difference between Div FlexBox and Div Grid mode, could it relate to me using 'base' as my theme and the CSS it contains?
I would really like to have a form with several fields on a row for several rows all vertically aligned into columns (perhaps 3), I know this may sound like a browse but that isn't what I require, it is just a section of a larger form. Table mode will let me do this but it is non responsive to browse width.
As ever any help would be greatly appreciated.
Gordon
If so is there an example that presents a form in 2 dimensions with correct vertical alignment, with perhaps 3 or 4 columns. I have tried and all I seem to get are 2 columns that don't respond correctly on resize. I fully anticipate that I am not using the feature correctly, however the only options I can find are for HTML Method (I set it to Div Grid) and the individual field start/span for row and column, I've also tried various span and last on row/line settings. Oddly I don't really see any difference between Div FlexBox and Div Grid mode, could it relate to me using 'base' as my theme and the CSS it contains?
I would really like to have a form with several fields on a row for several rows all vertically aligned into columns (perhaps 3), I know this may sound like a browse but that isn't what I require, it is just a section of a larger form. Table mode will let me do this but it is non responsive to browse width.
As ever any help would be greatly appreciated.
Gordon
44
Web Server - Ask For Help / Time entry format problem
« on: September 27, 2021, 04:24:54 AM »
I have an issue where seemingly similar time entry fields on a form are formated hh:mm or sometimes hh:mm:ss even though I've selected hh:mm from the picture dropdown, on examining the generated code it produces:
packet.append(p_web.CreateInput('time','TRPH:TRIContactTime',p_web.GetSessionValue('TRPH:TRIContactTime'),loc:fieldclass,loc:readonly,clip(loc:extra) & ' ' & clip(loc:autocomplete),'@T06B',loc:javascript,p_web.PicLength('@t01'),'Triage Contact Time','TRPH:TRIContactTime',,'imb',,,,'UpdateTriage') & p_web.CRLF) !a
As you can see it has a picture of @T06B, I checked NetWeb.tpw and the @T06B is hardcoded into the template as below
%gPacket.append(p_web.CreateInput('time','%FormField',p_web.Get%ValueScope(%DataField),loc:fieldclass,loc:readonly,clip(loc:extra) & ' ' & clip(loc:autocomplete),'@T06B',loc:javascript,%mltemp,%FormFieldTooltip,'%FormId',%FormFieldPlaceHolder,%datado,%vNumLow,%vNumHigh,%vNumStep,'%procedure') & p_web.CRLF) !a
Should it not be using %FormFieldPictureTime as in the template code below, I changed the template and the fields now work as expected.
%gPacket.append(p_web.CreateInput('time','%FormField',p_web.Get%ValueScope(%DataField),loc:fieldclass,loc:readonly,clip(loc:extra) & ' ' & clip(loc:autocomplete),'%FormFieldPictureTime',loc:javascript,%mltemp,%FormFieldTooltip,'%FormId',%FormFieldPlaceHolder,%datado,%vNumLow,%vNumHigh,%vNumStep,'%procedure') & p_web.CRLF) !a
Am I missing something and so shouldn't change the template?
NT12.17 I'll be moving to 12.26 in the next couple of days.
Gordon
packet.append(p_web.CreateInput('time','TRPH:TRIContactTime',p_web.GetSessionValue('TRPH:TRIContactTime'),loc:fieldclass,loc:readonly,clip(loc:extra) & ' ' & clip(loc:autocomplete),'@T06B',loc:javascript,p_web.PicLength('@t01'),'Triage Contact Time','TRPH:TRIContactTime',,'imb',,,,'UpdateTriage') & p_web.CRLF) !a
As you can see it has a picture of @T06B, I checked NetWeb.tpw and the @T06B is hardcoded into the template as below
%gPacket.append(p_web.CreateInput('time','%FormField',p_web.Get%ValueScope(%DataField),loc:fieldclass,loc:readonly,clip(loc:extra) & ' ' & clip(loc:autocomplete),'@T06B',loc:javascript,%mltemp,%FormFieldTooltip,'%FormId',%FormFieldPlaceHolder,%datado,%vNumLow,%vNumHigh,%vNumStep,'%procedure') & p_web.CRLF) !a
Should it not be using %FormFieldPictureTime as in the template code below, I changed the template and the fields now work as expected.
%gPacket.append(p_web.CreateInput('time','%FormField',p_web.Get%ValueScope(%DataField),loc:fieldclass,loc:readonly,clip(loc:extra) & ' ' & clip(loc:autocomplete),'%FormFieldPictureTime',loc:javascript,%mltemp,%FormFieldTooltip,'%FormId',%FormFieldPlaceHolder,%datado,%vNumLow,%vNumHigh,%vNumStep,'%procedure') & p_web.CRLF) !a
Am I missing something and so shouldn't change the template?
NT12.17 I'll be moving to 12.26 in the next couple of days.
Gordon
45
Web Server - Ask For Help / Re: The Tree field type on a form?
« on: September 23, 2021, 11:52:51 PM »
Thanks Jane