Ported mobile devices page to usermin
authorJamie Cameron <jcameron@webmin.com>
Wed, 5 Dec 2007 05:21:58 +0000 (05:21 +0000)
committerJamie Cameron <jcameron@webmin.com>
Wed, 5 Dec 2007 05:21:58 +0000 (05:21 +0000)
usermin/CHANGELOG
usermin/change_mobile.cgi [new file with mode: 0755]
usermin/defaultacl
usermin/edit_mobile.cgi [new file with mode: 0755]
usermin/index.cgi
usermin/lang/en
usermin/usermin-lib.pl

index c2b7c12..f94e831 100644 (file)
@@ -36,3 +36,5 @@ Created the new Blocked Hosts and Users page to show blocks currently in force,
 Separated the Configure Module page into tabs, to make it clearer which options are global and which are default user preferences.
 ---- Changes since 1.370 ----
 The format for dates displayed by Webmin can be changed by a new option on the User Interface page.
+---- Changes since 1.380 ----
+Added the Mobule Device Options page, for setting a theme specifically for small-screen browsers.
diff --git a/usermin/change_mobile.cgi b/usermin/change_mobile.cgi
new file mode 100755 (executable)
index 0000000..31bb9e6
--- /dev/null
@@ -0,0 +1,37 @@
+#!/usr/local/bin/perl
+# Display options specific to mobile devices
+
+require './usermin-lib.pl';
+&ReadParse();
+&error_setup($webmin::text{'mobile_err'});
+
+&lock_file($usermin_miniserv_config);
+&lock_file("$config{'usermin_dir'}/config");
+&get_usermin_miniserv_config(\%miniserv);
+&get_usermin_config(\%uconfig);
+
+# Validate and store inputs
+if ($in{'theme'} eq '*') {
+       delete($miniserv{'mobile_preroot'});
+       delete($uconfig{'mobile_theme'});
+       }
+else {
+       $miniserv{'mobile_preroot'} = $in{'theme'};
+       $uconfig{'mobile_theme'} = $in{'theme'};
+       }
+$miniserv{'mobile_nosession'} = $in{'nosession'};
+$in{'agents'} =~ s/\r//g;
+$miniserv{'mobile_agents'} = join("\t", split(/\n+/, $in{'agents'}));
+$miniserv{'mobile_prefixes'} = $in{'prefixes'};
+
+# Write out files
+&put_usermin_miniserv_config(\%miniserv);
+&unlock_file($usermin_miniserv_config);
+&put_usermin_config(\%uconfig);
+&unlock_file("$config{'usermin_dir'}/config");
+
+&reload_usermin_miniserv();
+&webmin_log('mobile', undef, undef, \%in);
+&redirect("");
+
+
index 2eb5a46..b3753e0 100644 (file)
@@ -26,3 +26,4 @@ dav=1
 descs=1
 blocked=1
 advanced=1
+mobile=1
diff --git a/usermin/edit_mobile.cgi b/usermin/edit_mobile.cgi
new file mode 100755 (executable)
index 0000000..4f76bca
--- /dev/null
@@ -0,0 +1,37 @@
+#!/usr/local/bin/perl
+# Display options specific to mobile devices
+
+require './usermin-lib.pl';
+&ReadParse();
+&ui_print_header(undef, $text{'mobile_title'}, "");
+&get_usermin_miniserv_config(\%miniserv);
+
+print &ui_form_start("change_mobile.cgi");
+print &ui_table_start($webmin::text{'mobile_header'}, undef, 2);
+
+# Custom theme for mobile devices
+@themes = &list_themes();
+$m = $miniserv{'mobile_preroot'};
+print &ui_table_row($webmin::text{'mobile_theme'},
+           &ui_select("theme", defined($m) ? $m : "*",
+                      [ [ "*", $webmin::text{'mobile_themeglob'} ],
+                        [ "", $webmin::text{'themes_default'} ],
+                        map { [ $_->{'dir'}, $_->{'desc'} ] } @themes ]));
+
+# Skip session login for mobile devices
+print &ui_table_row($webmin::text{'mobile_nosession'},
+           &ui_yesno_radio("nosession", int($miniserv{'mobile_nosession'})));
+
+# Extra user agents
+print &ui_table_row($webmin::text{'mobile_agents'},
+           &ui_textarea("agents",
+               join("\n", split(/\t+/, $miniserv{'mobile_agents'})), 5, 50));
+
+# Hostname prefixes for mobile
+print &ui_table_row($webmin::text{'mobile_prefixes'},
+           &ui_textbox("prefixes", $miniserv{'mobile_prefixes'}, 50));
+
+print &ui_table_end();
+print &ui_form_end([ [ "save", $text{'save'} ] ]);
+
+&ui_print_footer("", $text{'index_return'});
index 3faeba4..20d1f51 100755 (executable)
@@ -67,6 +67,7 @@ $ver = &get_usermin_version();
           $ver < 1.181 ? ( ) : ( "edit_dav.cgi" ),
           "list_sessions.cgi",
           "edit_blocked.cgi",
+          "edit_mobile.cgi",
           "edit_advanced.cgi" );
 @titles = map { /_(\S+).cgi/; $text{"${1}_title"} } @links;
 @icons = map { /_(\S+).cgi/; "images/$1.gif" } @links;
index 5e6d602..5115dad 100644 (file)
@@ -350,6 +350,7 @@ log_switch=Switched to Usermin user $1
 log_logout=Changed auto-logout times
 log_dav=Changed DAV server settings
 log_advanced=Changed advanced options
+log_mobile=Changed mobile device options
 
 update_err=Failed to update modules
 update_eurl=Missing or invalid update URL
@@ -483,3 +484,6 @@ blocked_title=Blocked Hosts and Users
 blocked_none=No hosts or users are currently blocked by Usermin.
 blocked_user=Usermin user
 blocked_cleardesc=Click this button to clear all current host and user blocks, by restarting the Usermin server process.
+
+mobile_title=Mobile Device Options
+
index f949307..e09d0bb 100644 (file)
@@ -73,7 +73,7 @@ sub reload_usermin_miniserv
 {
 return undef if (&is_readonly_mode());
 local %miniserv;
-&get_miniserv_config(\%miniserv) || return;
+&get_usermin_miniserv_config(\%miniserv) || return;
 $miniserv{'inetd'} && return;
 
 local($pid, $addr, $i);