Jump to content

MarcoPis

Members
  • Posts

    14
  • Joined

  • Last visited

Posts posted by MarcoPis

  1. Just now, Sherzod said:

     

    But I did not close your topics. Right?

    I don't even know how to see if the topics are closed or not. However for some reasons I had to create a new topic after your answers and it never happened before, so it seems a little strange...

  2. 35 minutes ago, Sherzod said:

    Sorry?

    In these 3 topics i can't answer anymore.

    1. 

    2.

     

    3.

    maybe i don't know how to use the forum, but I can answer in this topic and I can't answer in the linked topics.

  3. 2 hours ago, wilton_rad said:

    create a specific email to access the portal that is known to the company you work for
    type
    uniguisupportyourcompany@gmail.com

    your boss will know the password that will be used to access the forum

    if tomorrow you leave the company, he will be able to change the password and move to a new employee

    I suggest not using your personal email

    now it's not up to criticize the support of unigui where we always have help not only from the community

    but also from our master farshard, who is always looking to help us.

     

    I just asked my boss for his UniGui Forum credentials and he gave me. But it is not the right way I should ask for support.

    I understand you don't want to help anyone who uses an illegal license, but that way it's a bit of an exaggeration. I also gave you the name of my company so you can also take the risk of answering me.
    Now I will be forced to use an account not in my possession to ask for help, futhermore, my topic is also about a bug report, and not just a fix for me.

    Finally, if you can't answer, don't ask for information by closing the topic. Sherzod, closed 3 of my topics for no reason. If you ask what version of UniGui I have, you can let me answer instead of force creating a new topic

  4. Hi all,

    I'm sorry for this bad review but it is necessary.

    I work in a company and I do not have access to portal FMSoft to set my eMail. I also asked my Company Owner for these credentials but he declined. That means I can't complete this procedure : 

     

    It is difficult to find support for Delphi and it is not fair to be denied your help. Fortunately for you, the choice of software is not up to me. I will certainly report what happened to my managers. It would also be right not to close topics for no reason.

     

    • Like 1
  5. Hi,

    Sorry for this new topic, but I was unable to answer on the old post.

    I just made a HTTP call in UniGui Desktop and it works perfectly.

    I made the same in UniGui Mobile using mobile components and it's not working.

    I Have Delphi 10.3 and UniGui (Complete Professional) 1.90.0.1545.

    I can't set the EMail, because i'm in a company and I have not credentials for login in FMSoft. If it can help my Company is Tinn S.r.l from Italy.

    HTTP - Request

    procedure TUFmLoginm.btLoginRequestClick(Sender: TObject);
    Var
      aUrlSubmit, aUrlCancel, aUrl, sProtocol :string;
    Begin
      frmPinm.UnimURLFrame1.URL := '';
    
      if UniServerModule.PINEndPoint.Contains('https') then
        sProtocol := 'https'
      else
        sProtocol := 'http';
    
      aUrlSubmit := UniSession.CallbackUrlEx('loggedwithcredentials', self, ['RES', 'OK']);
      if sProtocol.Contains('https') and not aUrlSubmit.Contains('https') then
        aUrlSubmit := aUrlSubmit.Replace('http', sProtocol, []);
      aUrlSubmit := aUrlSubmit.Replace(#$D#$A, '', [rfReplaceAll]);
      aUrlSubmit := TNetEncoding.URL.Encode(TStringRoutines.GetBase64CryptedString(aUrlSubmit));
    
      aUrlCancel := UniSession.CallbackUrlEx('logincancelled', self, ['RES', 'Cancel']);
      if sProtocol.Contains('https') and not aUrlCancel.Contains('https') then
        aUrlCancel := aUrlCancel.Replace('http', sProtocol, []);
      aUrlCancel := aUrlCancel.Replace(#$D#$A, '', [rfReplaceAll]);
      aUrlCancel := TNetEncoding.URL.Encode(TStringRoutines.GetBase64CryptedString(aUrlCancel));
    
      if TUniGUIApplication(UniApplication).Parameters.values['gestore'].IsEmpty then
        aUrl := UniServerModule.PINEndPoint+'/?action=authn&gestore='+UniMainModule.gestore+'&url_submit='+aUrlSubmit+'&url_cancel='+aUrlCancel+'&_S_ID='+UniSession.SessionId+'&appid='+UniMainModule.appID
      else
        aUrl := UniServerModule.PINEndPoint+'/?action=authn&gestore='+TUniGUIApplication(UniApplication).Parameters.values['gestore']+'&url_submit='+aUrlSubmit+'&url_cancel='+aUrlCancel+'&_S_ID='+UniSession.SessionId+'&appid='+UniMainModule.appID;
    
      frmPinm.UnimURLFrame1.URL := aURL;
      frmPinm.Show
    End;

     

    End Point

    procedure TFrmAuthnm.FormPost;
    var data_event : string;
    begin
      { ...
        elaboration    
        ... }
      with UniMainModule.GetDM do
      begin
      if not UniMainModule.Url_submit.IsEmpty then
      begin
        if FResponsePost then
        begin
          s := 'var f = document.createElement("form"); '+
            'f.action="'+UniMainModule.Url_submit+'"; '+ // the second app url
            'f.method="POST"; ';
    
          s := s+
            'var i=document.createElement("input"); '+ // url_submit
            'i.type="hidden"; '+
            'i.name="data_event"; '+
            'i.value="'+TNetEncoding.Url.Encode(data_event)+'"; '+
            'f.appendChild(i); ';
    
          s := s+
            'document.body.appendChild(f); '+
            'f.submit(); ';
    
          UniSession.AddJS(s)
        end
        else
          UniSession.UrlRedirect(UniMainModule.Url_submit+'&data_event='+TNetEncoding.Url.Encode(data_event));
      end;
    end;

     

    Ajax Event that intercept CallBack

    procedure TUFmLoginm.UnimLoginFormAjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings);
    var
      jsonResponse, aURL : string;
      credentials : TLoginCredentials;
    begin
      if (EventName = 'loggedwithcredentials') and (Params.Values['RES']='OK') then
      begin
        if not Params.Values['data_event'].IsEmpty then
        begin
          	// elab ....
    		
            frmPinm.Hide;
            ModalResult := mrOK
          finally
            credentials.Free
          end
        end
      end
    end;

     

     

    All works fine except AjaxEvent that doesn't intercept the EventName "loggedwithcredentials".

  6. Hi,

    Sorry for this new topic, but I was unable to answer on the old post.

    I just made a HTTP call in UniGui Desktop and it works perfectly.

    I made the same in UniGui Mobile using mobile components and it's not working.

    I Have Delphi 10.3 and UniGui (Complete Professional) 1.90.0.1545

    HTTP - Request

    procedure TUFmLoginm.btLoginRequestClick(Sender: TObject);
    Var
      aUrlSubmit, aUrlCancel, aUrl, sProtocol :string;
    Begin
      frmPinm.UnimURLFrame1.URL := '';
    
      if UniServerModule.PINEndPoint.Contains('https') then
        sProtocol := 'https'
      else
        sProtocol := 'http';
    
      aUrlSubmit := UniSession.CallbackUrlEx('loggedwithcredentials', self, ['RES', 'OK']);
      if sProtocol.Contains('https') and not aUrlSubmit.Contains('https') then
        aUrlSubmit := aUrlSubmit.Replace('http', sProtocol, []);
      aUrlSubmit := aUrlSubmit.Replace(#$D#$A, '', [rfReplaceAll]);
      aUrlSubmit := TNetEncoding.URL.Encode(TStringRoutines.GetBase64CryptedString(aUrlSubmit));
    
      aUrlCancel := UniSession.CallbackUrlEx('logincancelled', self, ['RES', 'Cancel']);
      if sProtocol.Contains('https') and not aUrlCancel.Contains('https') then
        aUrlCancel := aUrlCancel.Replace('http', sProtocol, []);
      aUrlCancel := aUrlCancel.Replace(#$D#$A, '', [rfReplaceAll]);
      aUrlCancel := TNetEncoding.URL.Encode(TStringRoutines.GetBase64CryptedString(aUrlCancel));
    
      if TUniGUIApplication(UniApplication).Parameters.values['gestore'].IsEmpty then
        aUrl := UniServerModule.PINEndPoint+'/?action=authn&gestore='+UniMainModule.gestore+'&url_submit='+aUrlSubmit+'&url_cancel='+aUrlCancel+'&_S_ID='+UniSession.SessionId+'&appid='+UniMainModule.appID
      else
        aUrl := UniServerModule.PINEndPoint+'/?action=authn&gestore='+TUniGUIApplication(UniApplication).Parameters.values['gestore']+'&url_submit='+aUrlSubmit+'&url_cancel='+aUrlCancel+'&_S_ID='+UniSession.SessionId+'&appid='+UniMainModule.appID;
    
      frmPinm.UnimURLFrame1.URL := aURL;
      frmPinm.Show
    End;

     

    End Point

    procedure TFrmAuthnm.FormPost;
    var data_event : string;
    begin
      { ...
        elaboration    
        ... }
      with UniMainModule.GetDM do
      begin
      if not UniMainModule.Url_submit.IsEmpty then
      begin
        if FResponsePost then
        begin
          s := 'var f = document.createElement("form"); '+
            'f.action="'+UniMainModule.Url_submit+'"; '+ // the second app url
            'f.method="POST"; ';
    
          s := s+
            'var i=document.createElement("input"); '+ // url_submit
            'i.type="hidden"; '+
            'i.name="data_event"; '+
            'i.value="'+TNetEncoding.Url.Encode(data_event)+'"; '+
            'f.appendChild(i); ';
    
          s := s+
            'document.body.appendChild(f); '+
            'f.submit(); ';
    
          UniSession.AddJS(s)
        end
        else
          UniSession.UrlRedirect(UniMainModule.Url_submit+'&data_event='+TNetEncoding.Url.Encode(data_event));
      end;
    end;

     

    Ajax Event that intercept CallBack

    procedure TUFmLoginm.UnimLoginFormAjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings);
    var
      jsonResponse, aURL : string;
      credentials : TLoginCredentials;
    begin
      if (EventName = 'loggedwithcredentials') and (Params.Values['RES']='OK') then
      begin
        if not Params.Values['data_event'].IsEmpty then
        begin
          	// elab ....
    		
            frmPinm.Hide;
            ModalResult := mrOK
          finally
            credentials.Free
          end
        end
      end
    end;

     

     

    All works fine except AjaxEvent that doesn't intercept the EventName "loggedwithcredentials".

  7. Hi,

    I just made a HTTP call in UniGui Desktop and it works perfectly.

    I made the same in UniGui Mobile using mobile components and it's not working.

    HTTP - Request

    procedure TUFmLoginm.btLoginRequestClick(Sender: TObject);
    Var
      aUrlSubmit, aUrlCancel, aUrl, sProtocol :string;
    Begin
      frmPinm.UnimURLFrame1.URL := '';
    
      if UniServerModule.PINEndPoint.Contains('https') then
        sProtocol := 'https'
      else
        sProtocol := 'http';
    
      aUrlSubmit := UniSession.CallbackUrlEx('loggedwithcredentials', self, ['RES', 'OK']);
      if sProtocol.Contains('https') and not aUrlSubmit.Contains('https') then
        aUrlSubmit := aUrlSubmit.Replace('http', sProtocol, []);
      aUrlSubmit := aUrlSubmit.Replace(#$D#$A, '', [rfReplaceAll]);
      aUrlSubmit := TNetEncoding.URL.Encode(TStringRoutines.GetBase64CryptedString(aUrlSubmit));
    
      aUrlCancel := UniSession.CallbackUrlEx('logincancelled', self, ['RES', 'Cancel']);
      if sProtocol.Contains('https') and not aUrlCancel.Contains('https') then
        aUrlCancel := aUrlCancel.Replace('http', sProtocol, []);
      aUrlCancel := aUrlCancel.Replace(#$D#$A, '', [rfReplaceAll]);
      aUrlCancel := TNetEncoding.URL.Encode(TStringRoutines.GetBase64CryptedString(aUrlCancel));
    
      if TUniGUIApplication(UniApplication).Parameters.values['gestore'].IsEmpty then
        aUrl := UniServerModule.PINEndPoint+'/?action=authn&gestore='+UniMainModule.gestore+'&url_submit='+aUrlSubmit+'&url_cancel='+aUrlCancel+'&_S_ID='+UniSession.SessionId+'&appid='+UniMainModule.appID
      else
        aUrl := UniServerModule.PINEndPoint+'/?action=authn&gestore='+TUniGUIApplication(UniApplication).Parameters.values['gestore']+'&url_submit='+aUrlSubmit+'&url_cancel='+aUrlCancel+'&_S_ID='+UniSession.SessionId+'&appid='+UniMainModule.appID;
    
      frmPinm.UnimURLFrame1.URL := aURL;
      frmPinm.Show
    End;

     

    End Point

    procedure TFrmAuthnm.FormPost;
    var data_event : string;
    begin
      { ...
        elaboration    
        ... }
      with UniMainModule.GetDM do
      begin
      if not UniMainModule.Url_submit.IsEmpty then
      begin
        if FResponsePost then
        begin
          s := 'var f = document.createElement("form"); '+
            'f.action="'+UniMainModule.Url_submit+'"; '+ // the second app url
            'f.method="POST"; ';
    
          s := s+
            'var i=document.createElement("input"); '+ // url_submit
            'i.type="hidden"; '+
            'i.name="data_event"; '+
            'i.value="'+TNetEncoding.Url.Encode(data_event)+'"; '+
            'f.appendChild(i); ';
    
          s := s+
            'document.body.appendChild(f); '+
            'f.submit(); ';
    
          UniSession.AddJS(s)
        end
        else
          UniSession.UrlRedirect(UniMainModule.Url_submit+'&data_event='+TNetEncoding.Url.Encode(data_event));
      end;
    end;

     

    Ajax Event that intercept CallBack

    procedure TUFmLoginm.UnimLoginFormAjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings);
    var
      jsonResponse, aURL : string;
      credentials : TLoginCredentials;
    begin
      if (EventName = 'loggedwithcredentials') and (Params.Values['RES']='OK') then
      begin
        if not Params.Values['data_event'].IsEmpty then
        begin
          	// elab ....
    		
            frmPinm.Hide;
            ModalResult := mrOK
          finally
            credentials.Free
          end
        end
      end
    end;

     

     

    All works fine except AjaxEvent that doesn't intercept the EventName "loggedwithcredentials".

  8. On 11/25/2018 at 5:03 PM, tedeski said:

    I already searched the forum and I did not find upload by folder ... I only found an option in html5 but I do not know how to apply in unigui.

     

     

    
    <p>Directory: <input type="file" webkitdirectory mozdirectory /></p>

    Is there any how ? to apply this action to button for example?

    UniSession.AddJS('document.body.innerHTML += ''<p>Directory: <input type="file" webkitdirectory mozdirectory /></p>''');

    It creates the component by HTML, but you will need some css for make it appears when you need.

  9. Hi,

    I found a solution for print the whole grid, but it is not a best practice.

    I created an invisible UniPanel with a UniDbGrid inside that has Paged property False.

    When I export the Grid I do as follow.

     

    UniPanel3.Visible := True;	//Panel that contains the UniDBGrid to Export
    UniDbGrid1.Visible := False; //Hide the grid with WebOptions.Paged = True
    UniDBGrid2.Exporter.Exporter := UniGridExcelExporter1; 
    UniDBGrid2.Exporter.ExportGrid; // Export the grid with WebOptions.Paged = False;
    UniPanel3.Visible := False; //Hide the panel that contains the grid with WebOptions.Paged =False;
    UniDbGrid1.Visible := True; //Show the real Grid

    Pros : You can print the whole grid using UniGui native components,

    Cons : You have a clone of your UniDBGrid just for export.

     

    Hope it helps.

×
×
  • Create New...