What's new

[Fork] Asuswrt-Merlin 374.43 LTS releases (Archive)

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

uiDivStats would be the easiest for me to test. It's still funky trying to reconcile differences between fork and Merlin (not so much on my Unbound page, but I started hacking at skynet.asp). I'm stymied by cal_height giving typeError in state.js.
Code:
$("FormTitle").style.height = table_height + "px";
I think John updated the fork to a much newer jQuery, it might be behind that
 
I think John updated the fork to a much newer jQuery, it might be behind that
Yes, I solved it by removing jquery.js in my page, since I didn't need it. Others may not be so lucky.

EDIT: updated image after fixing Tools menu highlight. :p
FUAzacU.png
 
Last edited:
I have an idea....how about I do all the heavy lifting to integrate the page into the menu system....

- Create a new left column menu item called Addons if any addons are found
- Automatically populate it with any userx.asp files found
 
I have an idea....how about I do all the heavy lifting to integrate the page into the menu system....

- Create a new left column menu item called Addons if any addons are found
- Automatically populate it with any userx.asp files found
How to name the tab across the top?
 
How to name the tab across the top?
Still have to try some things (need to work out the javascript API)....but the thought is to set a var using the new 'am_settings_set' to set a value for 'userx_title' which I'll be able to get.
Just finished the first pass coding and am compiling a build now to start debugging to see if it's feasible.
 
I have an idea....how about I do all the heavy lifting to integrate the page into the menu system....

- Create a new left column menu item called Addons if any addons are found
- Automatically populate it with any userx.asp files found
That works. Feel free to pinch my icon from my shared-jy repo :p
 
New development build

Update-43D3
9-April-2020
Merlin fork 374.43_43D3j9527
Download https://1drv.ms/f/s!Ainhp1nBLzMJiF2l3WjM46lSmxrH
============================

This is a build for addon developers for integrating custom gui pages.
Slight change to the original way I envisioned it. Instead of using the custom settings file to set the tab titles, a file is used instead which also activates the tab. So, it's use is....

Place your custom page in /www/user (user[x].asp)

To activate the page, also place in /www/user a title file (user[x].title) which contains a single line that you want to use for the tab. A simple way to generate the title file is

echo "Your_tab_title" > /www/user/user[x].title

That's it! You'll now have a left hand menu item 'Addons' with your tab included. @Jack Yaz ...I did borrow your icon, but did have to tweak it a bit. The gui uses a weird size icon.

The first addon installed (user1.asp and user1.title) will be the default when selecting 'Addons' from the main menu.

Developers....Have fun! (I hope :) )
 
New development build

Update-43D3
9-April-2020
Merlin fork 374.43_43D3j9527
Download https://1drv.ms/f/s!Ainhp1nBLzMJiF2l3WjM46lSmxrH
============================

This is a build for addon developers for integrating custom gui pages.
Slight change to the original way I envisioned it. Instead of using the custom settings file to set the tab titles, a file is used instead which also activates the tab. So, it's use is....

Place your custom page in /www/user (user[x].asp)

To activate the page, also place in /www/user a title file (user[x].title) which contains a single line that you want to use for the tab. A simple way to generate the title file is

echo "Your_tab_title" > /www/user/user[x].title

That's it! You'll now have a left hand menu item 'Addons' with your tab included. @Jack Yaz ...I did borrow your icon, but did have to tweak it a bit. The gui uses a weird size icon.

The first addon installed (user1.asp and user1.title) will be the default when selecting 'Addons' from the main menu.

Developers....Have fun! (I hope :) )
Awesome! Should be trivial to leverage the existing function for userX.asp and add a line to create userX.title if running your fork
 
and add a line to create userX.title if running your fork
or....don't bother making the differentiation for the fork and just always generate it. Won't hurt anything if Merlin doesn't use it.

BTW....how are you 'installing' the gui addons? For my testing, I just put some test files (.asp and .title) on jffs and copied them into /www/user in init-start.
 
or....don't bother making the differentiation for the fork and just always generate it. Won't hurt anything if Merlin doesn't use it.

BTW....how are you 'installing' the gui addons? For my testing, I just put some test files (.asp and .title) on jffs and copied them into /www/user in init-start.
True. My OCD might trigger for clutter though :D

ASP pages are copied from /jffs/addons/scriptfolder to /www/user in services-start and then sed'd into a user version of menuTree.js
 
BTW....how are you 'installing' the gui addons? For my testing, I just put some test files (.asp and .title) on jffs and copied them into /www/user in init-start.


Code:
Get_WebUI_Page() {
    if nvram get rc_support | grep -qF "am_addons" && [ "$(uname -o)" = "ASUSWRT-Merlin" ]; then
        if [ "$displaywebui" = "enabled" ]; then
            for i in 1 2 3 4 5 6 7 8 9 10; do
                page="/www/user/user$i.asp"
                if [ ! -f "$page" ] || [ "$(md5sum < "$1")" = "$(md5sum < "$page")" ]; then
                    MyPage="user$i.asp"
                    return
                fi
            done
            MyPage="none"
        fi
    fi
}

Install_WebUI_Page() {
    if [ "$logmode" = "enabled" ]; then
        if nvram get rc_support | grep -qF "am_addons" && [ "$(uname -o)" = "ASUSWRT-Merlin" ]; then
            if [ "$displaywebui" = "enabled" ]; then
                Get_WebUI_Page "${skynetloc}/webui/skynet.asp"
                if [ "$MyPage" = "none" ]; then
                    logger -t Skynet "[*] Unable To Mount Skynet Web Page - No Mount Points Avilable" && echo "[*] Unable To Mount Skynet Web Page - No Mount Points Avilable"
                else
                    logger -t Skynet "[i] Mounting Skynet Web Page As $MyPage" && echo "[i] Mounting Skynet Web Page As $MyPage"
                    cp -f "${skynetloc}/webui/skynet.asp" "/www/user/$MyPage"
                    if [ ! -f "/tmp/menuTree.js" ]; then
                        cp -f "/www/require/modules/menuTree.js" "/tmp/"
                    fi
                    sed -i "\\~$MyPage~d" /tmp/menuTree.js
                    sed -i "/url: \"Advanced_Firewall_Content.asp\", tabName:/a {url: \"$MyPage\", tabName: \"Skynet\"}," /tmp/menuTree.js
                    umount /www/require/modules/menuTree.js 2>/dev/null
                    mount -o bind /tmp/menuTree.js /www/require/modules/menuTree.js
                    mkdir -p "/www/user/skynet"
                    ln -s "${skynetloc}/webui/chart.js" "/www/user/skynet/chart.js" 2>/dev/null
                    ln -s "${skynetloc}/webui/chartjs-plugin-zoom.js" "/www/user/skynet/chartjs-plugin-zoom.js" 2>/dev/null
                    ln -s "${skynetloc}/webui/hammerjs.js" "/www/user/skynet/hammerjs.js" 2>/dev/null
                    ln -s "${skynetloc}/webui/stats.js" "/www/user/skynet/stats.js" 2>/dev/null
                    Unload_Cron "genstats"
                    Load_Cron "genstats"
                fi
            fi
        fi
    else
        logger -t Skynet "[*] WebUI Integration Requires Logging To Be Enabled"; echo "[*] WebUI Integration Requires Logging To Be Enabled"
    fi
}

Uninstall_WebUI_Page() {
    Get_WebUI_Page "${skynetloc}/webui/skynet.asp"
    if [ -n "$MyPage" ] && [ "$MyPage" != "none" ] && [ -f "/tmp/menuTree.js" ]; then
        sed -i "\\~$MyPage~d" /tmp/menuTree.js
        umount /www/require/modules/menuTree.js
        mount -o bind /tmp/menuTree.js /www/require/modules/menuTree.js
        rm -rf "/www/user/$MyPage" "/www/user/skynet"
        Unload_Cron "genstats"
    fi
}

Sounds like the new system won't be too hard to adapt, essentially the same steps minus needing to edit menuTree.js
 
Anyone on Update-43D3 fancy trying out spdMerlin's develop branch please?
Code:
/usr/sbin/curl --retry 3 "https://raw.githubusercontent.com/jackyaz/spdMerlin/develop/spdmerlin.sh" -o "/jffs/scripts/spdmerlin" && chmod 0755 /jffs/scripts/spdmerlin && /jffs/scripts/spdmerlin install
 
Thought I would give 43D3 a try...same result no IPv6 access

43D3 Log
42E7 Log

Nothing obviously broken in the logs....all the IPv6 services are getting started successfully. There was one thing I saw, that reminded me of some things that happened early on with IPv6.
What is the value of 'Release addresses on exit' on the IPv6 page? It almost looks like your ISP sees this as a different client (maybe due to the change in radvd), and is refusing to issue the last address. If the address is hung, IIRC it can take 24 hours or more for some ISPs to release the address and issue a new one.
 
Nothing obviously broken in the logs....all the IPv6 services are getting started successfully. There was one thing I saw, that reminded me of some things that happened early on with IPv6.
What is the value of 'Release addresses on exit' on the IPv6 page? It almost looks like your ISP sees this as a different client (maybe due to the change in radvd), and is refusing to issue the last address. If the address is hung, IIRC it can take 24 hours or more for some ISPs to release the address and issue a new one.

Its set to default value Yes release address on exit
 

Support SNBForums w/ Amazon

If you'd like to support SNBForums, just use this link and buy anything on Amazon. Thanks!

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!

Staff online

Top