home *** CD-ROM | disk | FTP | other *** search
-
- FUNCTION DisplayApps( desk, updateflag )
-
- local str, keys, keycnt, key, x, k, i, items, itemcnt, item, data
-
- // Application list
-
- if ( type( updateflag ) != "N" )
- updateflag = 0
- end
-
-
- str = "<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=1>\r\n"
- str += "<TR VALIGN=top>\r\n"
- str += "<TD>\r\n"
-
- keys = desk.data.GetString( "data", "appCats" )
- keycnt = chrcount( "|", keys )
-
- x = 1
- for ( k=1; k<=keycnt; k++ )
-
- if ( x > 4 )
- x = 1
- str += "</TD>\r\n"
- str += "</TR>\r\n"
- str += "<TR VALIGN=top>\r\n"
- str += "<TD>\r\n"
- end
-
- key = strextract( keys, "|", k )
- if ( strempty( key ) )
- continue
- end
- str += "<b><FONT SIZE=2><br>" + key + "</FONT><br></b>\r\n"
-
- items = desk.data.GetItems( "app" + key )
- itemcnt = chrcount( ";", items ) + 1
- for ( i=1; i<=itemcnt; i++ )
- item = strextract( items, ";", i )
- data = desk.data.GetString( "app" + key, item )
- if ( strempty( data ) )
- continue
- end
- if ( updateflag )
- str += "<a href=\"_apps.ap?cat=" + key + "&item=" + item + "\"><FONT SIZE=2>" + strextract( data, "|", 1 ) + "</FONT></a><br>\r\n"
- else
- str += "<a href=\"apprun.ap?cat=" + key + "&item=" + item + "\"><FONT SIZE=2>" + strextract( data, "|", 1 ) + "</FONT></a><br>\r\n"
- end
- end
-
- str += "</TD><TD>\r\n"
-
- x++
- end
-
- str += " </TR>\r\n"
- str += "</TABLE>\r\n"
- str += "<BR>\r\n"
-
- return( str )
-
- END
-
-
-
- CLASS AppItem
- PUBLIC:
- local desk, cat, item
- local desc, action, options, password, startdir, image
-
- METHOD new( desk, cat, item )
- ::desk = desk
- ::cat = cat
- ::item = item
- if ( strempty( cat ) )
- ::cat = strextract( ::desk.data.getstring( "data", "appcats", "" ), "|", 1 )
- end
- if ( cat != "_system_" )
- if ( 0 + ::item < 1 )
- ::item = "1"
- end
- end
- return( ::load( ) )
- END
-
-
- METHOD createnew( )
- local items, cnt
- items = ::desk.data.GetItems( "app" + ::cat )
- cnt = chrcount( ";", items ) + 1
- ::item = "" + ( 1 + strextract( items, ";", cnt ) )
- ::desc = "New App"
- ::action = ""
- ::options = 0
- ::password = ""
- ::startdir = ""
- ::image = ""
- return( ::save( ) )
- END
-
-
- METHOD delete( )
- local rc, items
- rc = ::desk.data.setstring( "app" + ::cat, "" + ::item, "" )
- items = ::desk.data.GetItems( "app" + ::cat )
- ::item = strextract( items, ";", 1 )
- ::load( )
- return( rc )
- END
-
-
- METHOD Display( )
- return( "<center><FONT SIZE=5><a href=\"apprun.ap?cat=" + ::cat + "&item=" + ::item + "\">" + ::desc + "</FONT></a></CENTER><br>\r\n" )
- END
-
- METHOD load( )
- local data
-
- data = ::desk.data.getstring( "app" + ::cat, "" + ::item, "" )
- if ( strempty( data ) )
- return( 0 )
- end
- ::desc = strextract( data, "|", 1 )
- ::action = strextract( data, "|", 2 )
- ::options = 0 + strextract( data, "|", 3 )
- ::password = strextract( data, "|", 4 )
- ::startdir = strextract( data, "|", 5 )
- ::image = strextract( data, "|", 6 )
-
- return( 1 )
- END
-
-
- METHOD run( params )
-
- local showflag, cmd, rc
-
- if ( type( params ) != "C" )
- params = ""
- end
-
- // check for password
- if ( ! strempty( ::password ) )
- if ( ! ::desk.session.access( ::desc, "app" + ::cat + "_" + ::item, ::password ) )
- return( -1 )
- end
- end
-
- // check for local or remote access
- if ( ( ! ::desk.session.IsLocal ) && ( ! ( ::options & 32 ) ) )
- ::desk.session.response( "<H3>Sorry, the application \"" + ::desc + "\" does not support remote access.</H2><a href=\"" + ::desk.session.data( "referer" ) + "\">back</a>..." )
- return( -1 )
- end
-
- cmd = lfnLongToShort( ::action ) + ( strempty( params ) ? "" : " " + params )
-
- if ( ::options & 1 )
- // send command to browser
- //BrowserLoad( cmd )
- ::desk.session.redir( cmd )
- rc = -1
- else
- if ( ::options & 2 )
- showflag = 1
- elseif ( ::options & 4 )
- showflag = 3
- elseif ( ::options & 8 )
- showflag = 2
- elseif ( ::options & 16 )
- showflag = 0
- else
- showflag = -1
- end
-
- if ( ! strempty( ::startdir ) )
- if ( showflag > -1 )
- rc = smartrun( cmd, ::startdir, showflag )
- else
- rc = smartrun( cmd, ::startdir )
- end
- else
- if ( showflag > -1 )
- rc = smartrun( cmd, showflag )
- else
- rc = smartrun( cmd )
- end
- end
- end
- return( rc )
- END
-
-
- METHOD save( )
- local str
- str = ::desc + "|" + ::action + "|" + ::options + "|" + ::password + "|" + ::startdir + "|" + ::image
- return( ::desk.data.setstring( "app" + ::cat, "" + ::item, str ) )
- END
-
-
- METHOD UpdateFromForm( )
- ::desc = ::desk.session.var( "desc" )
- ::action = ::desk.session.var( "action" )
- ::startdir = ::desk.session.var( "startdir" )
- ::password = ::desk.session.var( "password" )
- ::options = 0 + ::desk.session.var( "options" )
- if ( ::desk.session.var( "RemoteAccess" ) == "32" )
- ::options |= 32
- end
-
- return( ::save( ) )
- END
-
-
- END
-
-
-
-