def child_indexation(self, context, _factory=IndexationPageFactory(IndexationPage)):
        alertMsg = ""
        context.remember(self.querier, IQuerier)
        INDEXER_CONFIG.load_from_files()
        # TODO: check if the added folders are valid
        # Actions (add/remove) on private folders
        addPrivateFolder = context.arg('addPrivateFolder', 0)
        if addPrivateFolder:
            if _is_valid_directory(addPrivateFolder):
                INDEXER_CONFIG.private_dir.append(addPrivateFolder)
                INDEXER_CONFIG.save()
            else:
                alertMsg = "\\'%s\\' is not a valid folder" % addPrivateFolder
 
        removePrivateFolder = context.arg('removePrivateFolder', 0)
        if removePrivateFolder:
            try:
                INDEXER_CONFIG.private_dir.remove(removePrivateFolder)
                INDEXER_CONFIG.save()
            except ValueError:
                print "Folder '%s' not in the private directory list"

        # Actions (add/remove) on public folders
        addPublicFolder = context.arg('addPublicFolder', 0)
        if addPublicFolder:
            if _is_valid_directory(addPublicFolder):
                INDEXER_CONFIG.public_dir.append(addPublicFolder)
                INDEXER_CONFIG.save()
            else:
                alertMsg = "\\'%s\\' is not a valid folder" % addPublicFolder
 
        removePublicFolder = context.arg('removePublicFolder', 0)
        if removePublicFolder:
            try:
                INDEXER_CONFIG.public_dir.remove(removePublicFolder)
                INDEXER_CONFIG.save()
            except ValueError:
                print "Folder '%s' not in the private directory list"

        # Actions (add/remove) on skipped folders
        addSkippedFolder = context.arg('addSkippedFolder', 0)
        if addSkippedFolder:
            if _is_valid_directory(addSkippedFolder):
                INDEXER_CONFIG.skip_dir.append(addSkippedFolder)
                INDEXER_CONFIG.save()
            else:
                alertMsg = "\\'%s\\' is not a valid folder" % addSkippedFolder
 
        removeSkippedFolder = context.arg('removeSkippedFolder', 0)
        if removeSkippedFolder:
            try:
                INDEXER_CONFIG.skip_dir.remove(removeSkippedFolder)
                INDEXER_CONFIG.save()
            except ValueError:
                print "Folder '%s' not in the private directory list"

        start = int(context.arg('start', 0))
        indexationPage = _factory.clientFactory(context)

	if start == 0:
            if indexer.is_running():
                msg = "Indexer running"
            else:
                msg = "Indexer not running"
        else:
            if indexer.is_running():    
                msg = "Indexer already running"
            else:
                msg = "Indexer started"
                nodeConfig = INodeConfiguration(context)
                indexer.start_as_thread(nodeConfig, _factory)
        indexationPage.msg = msg
        indexationPage.alertmessage = alertMsg
        return indexationPage