diff options
| -rw-r--r-- | module/web/pyload/views.py | 57 | ||||
| -rwxr-xr-x | pyLoadCore.py | 14 | 
2 files changed, 45 insertions, 26 deletions
diff --git a/module/web/pyload/views.py b/module/web/pyload/views.py index c47004a85..21e583348 100644 --- a/module/web/pyload/views.py +++ b/module/web/pyload/views.py @@ -216,42 +216,55 @@ def collector(request):  def config(request):      conf = settings.PYLOAD.get_config()      plugin = settings.PYLOAD.get_plugin_config() +    messages = []     +    for section in chain(conf.itervalues(), plugin.itervalues()): +        for key, option in section.iteritems(): +            if key == "desc": continue +             +            if ";" in option["type"]: +                option["list"] = option["type"].split(";") +                      if request.META.get('REQUEST_METHOD', "GET") == "POST":          errors = []          for key, value in request.POST.iteritems():              if not "|" in key: continue -            skey, okey = key.split("|")[:] -            if conf.has_key(skey): -                if conf[skey].has_key(okey): -                    try: -                        if str(conf[skey][okey]['value']) != value: -                            settings.PYLOAD.set_conf_val(skey, okey, value) -                    except Exception, e: -                        errors.append("%s | %s : %s" % (skey, okey, e)) +            sec, skey, okey = key.split("|")[:] +             +            if sec == "General": +             +                if conf.has_key(skey): +                    if conf[skey].has_key(okey): +                        try: +                            if str(conf[skey][okey]['value']) != value: +                                settings.PYLOAD.set_conf_val(skey, okey, value) +                        except Exception, e: +                            errors.append("%s | %s : %s" % (skey, okey, e)) +                    else: +                        continue +                else: +                    continue +                 +            elif sec == "Plugin": +                if plugin.has_key(skey): +                    if plugin[skey].has_key(okey): +                        try: +                            if str(plugin[skey][okey]['value']) != value: +                                settings.PYLOAD.set_conf_val(skey, okey, value, "plugin") +                        except Exception, e: +                            errors.append("%s | %s : %s" % (skey, okey, e)) +                    else: +                        continue                  else:                      continue -            else: -                continue -        messages = [] -          if errors:              messages.append(_("Error occured when setting the following options:"))              messages.append("")              messages += errors          else:              messages.append(_("All options were set correctly.")) - -        return render_to_response(join(settings.TEMPLATE, 'settings.html'), RequestContext(request, {'conf': {}, 'errors': messages}, [status_proc])) -     -    for section in chain(conf.itervalues(), plugin.itervalues()): -        for key, option in section.iteritems(): -            if key == "desc": continue -             -            if ";" in option["type"]: -                option["list"] = option["type"].split(";") -    return render_to_response(join(settings.TEMPLATE, 'settings.html'), RequestContext(request, {'conf': {'Plugin':plugin, 'General':conf}, 'messages': []}, [status_proc])) +    return render_to_response(join(settings.TEMPLATE, 'settings.html'), RequestContext(request, {'conf': {'Plugin':plugin, 'General':conf}, 'errors': messages}, [status_proc])) diff --git a/pyLoadCore.py b/pyLoadCore.py index d8fb1c965..86e15b19f 100755 --- a/pyLoadCore.py +++ b/pyLoadCore.py @@ -422,13 +422,19 @@ class ServerMethods():              downloads.append(download)          return downloads -    def get_conf_val(self, cat, var): +    def get_conf_val(self, cat, var, sec="core"):          """ get config value """ -        return self.core.config[cat][var] +        if sec == "core": +            return self.core.config[cat][var] +        elif sec == "plugin": +            return self.core.config.getPlugin(cat,var) -    def set_conf_val(self, cat, opt, val): +    def set_conf_val(self, cat, opt, val, sec="core"):          """ set config value """ -        self.core.config[str(cat)][str(opt)] = val +        if sec == "core": +            self.core.config[str(cat)][str(opt)] = val +        elif sec == "plugin": +            self.core.config.setPlugin(cat, opt, val)      def get_config(self):          """ gets complete config """  | 
