Roxen.git / server / config_interface / sites / add_module.pike

version» Context lines:

Roxen.git/server/config_interface/sites/add_module.pike:96:       catch(data = Stdio.read_bytes( file ));       if( data    && sscanf( data, "%*smodule_name%*s=%[^;];", name )    && sscanf( name, "%*[^\"]\"%s\"", name ) )    return Roxen.html_encode_string(name);    return Roxen.html_encode_string(((file/"/")[-1]/".")[0]);   }    - string pafeaw( string errors, string warnings ) - // Parse And Format Errors And Warnings. + string pafeaw( string errors, string warnings, array(ModuleInfo) locked_modules) + // Parse And Format Errors And Warnings (and locked modules).   // Your ordinary prettyprinting function.   {    mapping by_module = ([]);    int cnt = 0;    foreach( (errors+warnings)/"\n", string e )    {    string file;    int row;    string type, error;    sscanf( e, "%s:%d%s", file, row, error );
Roxen.git/server/config_interface/sites/add_module.pike:201:    "</td><td align='right'>"    "<tt>"+e[1]+":</tt></td><td align='right'><tt>"+    he(e[2])+":</tt></td><td><tt>"+hc(e[3])+"</tt></td></tr>\n";    da_string += "<tr valign='top'><td colspan='5'>&nbsp;</td><td></td></tr>\n";       }    }    if( strlen( da_string ) )    da_string += "</table>";   // "<pre>"+Roxen.html_encode_string( sprintf( "%O", by_module ) )+"</pre>"; -  return da_string; +  +  return da_string + format_locked_modules(locked_modules);   }    -  + string format_locked_modules(array(ModuleInfo) locked_modules) + { +  if(!sizeof(locked_modules)) +  return ""; +  +  return +  "<font size='+1'>Locked modules</font><br />\n" +  "These modules are locked and can not be enabled because they are " +  "not part of the license key for this configuration.<br />\n" +  "<blockquote><font color='darkred'>"+ +  (locked_modules->get_name()*"<br />\n")+"</font></blockquote>"; + } +    array(string) get_module_list( function describe_module,    function class_visible,    RequestID id )   {    object conf = roxen.find_configuration( id->variables->config );    object ec = roxenloader.LowErrorContainer();    int do_reload;    master()->set_inhibit_compile_errors( ec );       if( id->variables->reload_module_list )
Roxen.git/server/config_interface/sites/add_module.pike:240:    sort(w,mods);    for(int i=0; i<sizeof(w); i++)    {    mixed r = w[i];    if(!classes[r[0]])    classes[r[0]] = ([ "doc":r[1], "modules":({}) ]);    if( mods[i]->get_description() )    classes[r[0]]->modules += ({ mods[i] });    }    +  License.Key license_key = conf->getvar("license")->get_key(); +  array(RoxenModule) locked_modules = ({}); +     foreach( sort(indices(classes)), string c )    {    mixed r;    if( c == "" )    continue;    if( (r = class_visible( c, classes[c]->doc, id )) && r[0] )    {    res += r[1];    array m = classes[c]->modules;    array q = m->get_name();    sort( q, m );    foreach(m, object q)    {    if( q->get_description() == "Undocumented" &&    q->type == 0 )    continue;    object b = module_nomore(q->sname, q, conf); -  +  if( !b && q->locked && (!license_key || !q->unlocked(license_key)) ) +  { +  locked_modules += ({ q }); +  continue; +  }    res += describe_module( q, b );    }    } else    res += r[1];    }    master()->set_inhibit_compile_errors( 0 ); -  return ({ res, pafeaw( ec->get(), ec->get_warnings() ) }); +  return ({ res, pafeaw( ec->get(), ec->get_warnings(), locked_modules) });   }      string module_image( int type )   {    return "";   }      string strip_leading( LocaleString what )   {    if( !what ) return 0;
Roxen.git/server/config_interface/sites/add_module.pike:523:    roxenloader.pop_compile_error_handler();       sort(map(mods->get_name(), lambda(LocaleString in) {    in = lower_case((string)in);    //sscanf(in, "%*s: %s", in);    return in;    }), mods);    string res = "";       mixed r; +  License.Key license_key = conf->getvar("license")->get_key(); +  array(RoxenModule) locked_modules = ({}); +     if( (r = class_visible_compact( LOCALE(258,"Add module"),    LOCALE(273,"Select one or several modules to add.")    , id )) && r[0] ) {    res += r[1];    foreach(mods, object q) {    if( (!q->get_description() ||    (q->get_description() == "Undocumented")) &&    q->type == 0 )    continue;    object b = module_nomore(q->sname, q, conf); -  +  if( !b && q->locked && (!license_key || !q->unlocked(license_key)) ) +  { +  locked_modules += ({ q }); +  continue; +  }    res += describe_module_compact( q, b );    }    } else    res += r[1];       master()->set_inhibit_compile_errors( 0 );       return page_base(id,    "<form action=\"add_module.pike\" method=\"post\">"    "<input type=\"hidden\" name=\"config\" value=\"&form.config;\" />"+    res+"</select><br /><submit-gbutton> "    +LOCALE(251, "Add Module")+" </submit-gbutton><br />" -  +pafeaw(ec->get(),ec->get_warnings())+"</form>", +  +pafeaw(ec->get(),ec->get_warnings(), +  locked_modules)+"</form>",    );   }      string decode_site_name( string what )   {    if( (int)what )    return (string)((array(int))(what/","-({""})));    return what;   }