Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Pkg.php with up and down function - almost there

    Scheduled Pinned Locked Moved pfSense Packages
    39 Posts 5 Posters 9.1k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • marcellocM
      marcelloc
      last edited by

      The sort feature is already on original pkg.PHP code.
      The movable feature is different from rules code. I will need some rewrites and time

      Treinamentos de Elite: http://sys-squad.com

      Help a community developer! ;D

      1 Reply Last reply Reply Quote 0
      • N
        Nachtfalke
        last edited by

        @marcelloc:

        The sort feature is already on original pkg.PHP code.

        It's not working for me. Do I have to add some XML code to use it ?
        For example on freeradius users I want to click on "username" and then get all the usernames sorted ascending. Same with VLAN ID and so on.

        @marcelloc:

        The movable feature is different from rules code. I will need some rewrites and time

        Great. The most important and most helpful thing for me is the possibility to move items up and down.
        The rest is just for better handling :-)

        1 Reply Last reply Reply Quote 0
        • marcellocM
          marcelloc
          last edited by

          @Nachtfalke:

          It's not working for me. Do I have to add some XML code to use it ?

          Include this field on your xml

           <field><fielddescr>sortable</fielddescr>
          		<fieldname>sortable</fieldname>
          		<display_maximum_rows>10</display_maximum_rows>
          		<type>sorting</type>
          		 <include_filtering_inputbox><sortablefields><name>Local id</name>
          				<fieldname>localid</fieldname> 
          			 <name>Action</name>
          				<fieldname>action</fieldname></sortablefields></include_filtering_inputbox></field> 
          

          In this example, I'm filtering localid and action fields.

          Update the pkg.php again, I`ve pushed a fix to avoid movable and sortable enabled on the same xml until I find a way to use both together .

          EDIT:

          All features are working together :)
          I've include the to adddeleteeditpagefields as well domtt tittles.

          I think it's done!

          att,
          Marcello Coutinho

          Treinamentos de Elite: http://sys-squad.com

          Help a community developer! ;D

          1 Reply Last reply Reply Quote 0
          • marcellocM
            marcelloc
            last edited by

            I think we got it!  :D

            latest code using template images.

            **<adddeleteeditpagefields></adddeleteeditpagefields>**new features on this code:

            • To enable movable table and buttons, just add <movable>on</movable>

            • To add a ? button besides + button with a description for this list, include <description>My list description</description>

            new features on this code:

            • To customize checkbox display info on list, use <listmodeon>enable or selected text here</listmodeon> and <listmodeoff>disable or off text here</listmodeoff>

            • To show base64 fields on list, use <encoding>base64</encoding>

            gui_movable_1.png
            gui_movable_1.png_thumb
            gui_movable_2.png
            gui_movable_2.png_thumb

            Treinamentos de Elite: http://sys-squad.com

            Help a community developer! ;D

            1 Reply Last reply Reply Quote 0
            • D
              dvserg
              last edited by

              Great job, marcelloc !
              Do you think it might be better to increase the interval between e/x, and arrows?

              SquidGuardDoc EN  RU Tutorial
              Localization ru_PFSense

              1 Reply Last reply Reply Quote 0
              • marcellocM
                marcelloc
                last edited by

                @dvserg:

                Great job, marcelloc !
                Do you think it might be better to increase the interval between e/x, and arrows?

                Thanks, you've helped a lot explaining the code  :)

                I've included all buttons on a single < td > to leave more space to fields.
                The remove button has an alert to prevent mistakes.

                what do you think? Did you had time to test it on squidguard?

                Treinamentos de Elite: http://sys-squad.com

                Help a community developer! ;D

                1 Reply Last reply Reply Quote 0
                • D
                  dvserg
                  last edited by

                  @marcelloc:

                  Thanks, you've helped a lot explaining the code  :)
                  I've included all buttons on a single < td > to leave more space to fields.
                  The remove button has an alert to prevent mistakes.
                  what do you think? Did you had time to test it on squidguard?

                  I want to do it in the next few days as soon as I find free time

                  SquidGuardDoc EN  RU Tutorial
                  Localization ru_PFSense

                  1 Reply Last reply Reply Quote 0
                  • jimpJ
                    jimp Rebel Alliance Developer Netgate
                    last edited by

                    When you make these changes and submit them, please do this on the master branch and not RELENG_2_0

                    RELENG_2_0 is for bug fixes only, it's not meant as a target for new features.

                    As it is, someone would have to manually pull that change into master, assuming it applies cleanly, and if nobody does, it'll be missing from 2.1.

                    The proper procedure is to add things into master first, and if it's deemed minor enough or an important fix, then things can be merged back from master to the other branches.

                    Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                    Need help fast? Netgate Global Support!

                    Do not Chat/PM for help!

                    1 Reply Last reply Reply Quote 0
                    • marcellocM
                      marcelloc
                      last edited by

                      Ok jimp.

                      I'll merge this code on 2.1 and test before submit to master.

                      I've pushed to releng 2 because all tests where done on 2.0.1

                      Thanks.

                      Treinamentos de Elite: http://sys-squad.com

                      Help a community developer! ;D

                      1 Reply Last reply Reply Quote 0
                      • jimpJ
                        jimp Rebel Alliance Developer Netgate
                        last edited by

                        Any sign of this for 2.1? I don't recall seeing a new pull request or commit.

                        Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                        Need help fast? Netgate Global Support!

                        Do not Chat/PM for help!

                        1 Reply Last reply Reply Quote 0
                        • marcellocM
                          marcelloc
                          last edited by

                          @jimp:

                          Any sign of this for 2.1? I don't recall seeing a new pull request or commit.

                          I'll pull this week.  :)

                          Treinamentos de Elite: http://sys-squad.com

                          Help a community developer! ;D

                          1 Reply Last reply Reply Quote 0
                          • marcellocM
                            marcelloc
                            last edited by

                            Jimp,

                            2.1 is almost based on jquery and the movable I did with ccesarios is based on prototype.

                            Do you mind if ccesario and me try to migrate it to jquery with drag and drop before the pull request?

                            att,
                            Marcello Coutinho

                            Treinamentos de Elite: http://sys-squad.com

                            Help a community developer! ;D

                            1 Reply Last reply Reply Quote 0
                            • jimpJ
                              jimp Rebel Alliance Developer Netgate
                              last edited by

                              Yes it should be jquery on 2.1.

                              Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                              Need help fast? Netgate Global Support!

                              Do not Chat/PM for help!

                              1 Reply Last reply Reply Quote 0
                              • marcellocM
                                marcelloc
                                last edited by

                                First release for 2.1-devel using jquery.

                                drag the line and drop to any position you want  :)

                                source code for this pkg.php

                                I'll wait some feedback and do more tests before pull request.

                                att,
                                Marcello Coutinho

                                pkg_jquery_21.png
                                pkg_jquery_21.png_thumb

                                Treinamentos de Elite: http://sys-squad.com

                                Help a community developer! ;D

                                1 Reply Last reply Reply Quote 0
                                • marcellocM
                                  marcelloc
                                  last edited by

                                  After some tests and some fixes I think it's done.

                                  source code for this pkg.php

                                  Jimp,

                                  Do you what to check before pull request?

                                  Treinamentos de Elite: http://sys-squad.com

                                  Help a community developer! ;D

                                  1 Reply Last reply Reply Quote 0
                                  • jimpJ
                                    jimp Rebel Alliance Developer Netgate
                                    last edited by

                                    Just submit it as a pull request and I can use the system patches package to pull it in and try it from there before actually committing it.

                                    Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                                    Need help fast? Netgate Global Support!

                                    Do not Chat/PM for help!

                                    1 Reply Last reply Reply Quote 0
                                    • marcellocM
                                      marcelloc
                                      last edited by

                                      Thanks Jimp, the code is now part of pfsense  :)

                                      I've also finished some pkg_edit.php improvements including the end of the "for($x=0; $x<99; $x++)" rowhelper loop.

                                      using for:

                                      if($fields['type'] == "rowhelper") {
                                      				// save rowhelper items.
                                      				for($x=0; $x<99; $x++) { // XXX: this really should be passed from the form.
                                      				                         // XXX: this really is not helping embedded platforms.
                                      					foreach($fields['rowhelper']['rowhelperfield'] as $rowhelperfield) {
                                      						if($firstfield == "")  {
                                      						  $firstfield = $rowhelperfield['fieldname'];
                                      						} else {
                                      						  if($firstfield == $rowhelperfield['fieldname']) $rows++;
                                      						}
                                      						$fieldname = str_replace("\\", "", $rowhelperfield['fieldname']);
                                      						$comd = "\$value = \$_POST['" . $fieldname . $x . "'];";
                                      						eval($comd);
                                      						if($value <> "") {
                                      							$comd = "\$pkgarr['row'][" . $x . "]['" . $fieldname . "'] = \"" . $value . "\";";
                                      							//echo($comd . "
                                      ");
                                      							eval($comd);
                                      						}
                                      					}
                                      				}
                                      

                                      using a loop between rowhelper and post:

                                      case "rowhelper":
                                      	// save rowhelper items. 
                                      	foreach($fields['rowhelper']['rowhelperfield'] as $rowhelperfield)
                                      		foreach($_POST as $key => $value){
                                      			if (preg_match("/^{$rowhelperfield['fieldname']}(\d+)$/",$key,$matches))
                                      				$pkgarr['row'][$matches[1]][$rowhelperfield['fieldname']]=$value;
                                      		}
                                      	 break;
                                      

                                      link to full code:
                                      http://e-sac.siteseguro.ws/packages/pkg_edit.21.txt

                                      I'll start again more tests before the pull request.

                                      att,
                                      Marcello Coutinho

                                      Treinamentos de Elite: http://sys-squad.com

                                      Help a community developer! ;D

                                      1 Reply Last reply Reply Quote 0
                                      • jimpJ
                                        jimp Rebel Alliance Developer Netgate
                                        last edited by

                                        GeekGod approved it right away before I had a chance to look at it and test, he must have thought it looked OK. :-)

                                        Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                                        Need help fast? Netgate Global Support!

                                        Do not Chat/PM for help!

                                        1 Reply Last reply Reply Quote 0
                                        • N
                                          Nachtfalke
                                          last edited by

                                          Hi again,

                                          probably I missed something in this thread but is this feature implemented in actual pfsense 2.1 snapshots ?
                                          I tried with

                                                  <adddeleteeditpagefields><columnitem><fielddescr>Username</fielddescr>
                                                                  <fieldname>varusersusername</fieldname></columnitem> 
                                                          <columnitem><fielddescr>Use One Time Password</fielddescr>
                                                                  <fieldname>varusersmotpenable</fieldname></columnitem> 
                                                          <columnitem><fielddescr>Simult. Connections</fielddescr>
                                                                  <fieldname>varuserssimultaneousconnect</fieldname></columnitem> 
                                                          <columnitem><fielddescr>IP Address</fielddescr>
                                                                  <fieldname>varusersframedipaddress</fieldname></columnitem> 
                                                          <columnitem><fielddescr>Expiration Date</fielddescr>
                                                                  <fielddescr>Simult. Connections</fielddescr>
                                                                  <fieldname>varuserssimultaneousconnect</fieldname></columnitem> 
                                                          <columnitem><fielddescr>IP Address</fielddescr>
                                                                  <fieldname>varusersframedipaddress</fieldname></columnitem> 
                                                          <columnitem><fielddescr>Expiration Date</fielddescr>
                                                                  <fieldname>varusersexpiration</fieldname></columnitem> 
                                                          <columnitem><fielddescr>Session Timeout</fielddescr>
                                                                  <fieldname>varuserssessiontimeout</fieldname></columnitem> 
                                                          <columnitem><fielddescr>Possible Login Times</fielddescr>
                                                                  <fieldname>varuserslogintime</fieldname></columnitem> 
                                                          <columnitem><fielddescr>VLAN ID</fielddescr>
                                                                  <fieldname>varusersvlanid</fieldname></columnitem> 
                                                          <columnitem><fielddescr>Description</fielddescr>
                                                                  <fieldname>description</fieldname></columnitem> 
                                                          <movable>text</movable></adddeleteeditpagefields> 
                                          
                                          

                                          but had no luck.

                                          Further I would like to sort this fields - how to implement the sorting featur - if possible !?
                                          Thank you :-)

                                          1 Reply Last reply Reply Quote 0
                                          • marcellocM
                                            marcelloc
                                            last edited by

                                            @Nachtfalke:

                                            probably I missed something in this thread but is this feature implemented in actual pfsense 2.1 snapshots ?
                                            but had no luck.

                                            On 2.1 it's drag and drop. :)

                                            @Nachtfalke:

                                            Further I would like to sort this fields - how to implement the sorting featur - if possible !?

                                            There is a sorting field on pkg.php, but it's used to filter records.

                                            imspector_movable.png
                                            imspector_movable.png_thumb

                                            Treinamentos de Elite: http://sys-squad.com

                                            Help a community developer! ;D

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.