diff --git a/grails-app/conf/application.yml b/grails-app/conf/application.yml
index 9a34dae..01c12f4 100644
--- a/grails-app/conf/application.yml
+++ b/grails-app/conf/application.yml
@@ -25,7 +25,7 @@ info:
         grailsVersion: '@info.app.grailsVersion@'
 server:
     contextPath: '/nibras'
-    port: 1440 # The port to listen on
+    port: 443 # The port to listen on
     ssl:
         enabled: true # Activate HTTPS mode on the server port
         key-store: keystore.jks # e.g. /etc/tomcat7/keystore/tomcat.keystore
diff --git a/grails-app/controllers/app/IndicatorController.groovy b/grails-app/controllers/app/IndicatorController.groovy
index 250f9dc..607b40b 100644
--- a/grails-app/controllers/app/IndicatorController.groovy
+++ b/grails-app/controllers/app/IndicatorController.groovy
@@ -9,9 +9,6 @@ package app
 
       import java.text.SimpleDateFormat
     
-import jxl.*
-import jxl.format.*
-import jxl.write.*
 import grails.plugin.springsecurity.annotation.Secured
 
 @Secured('ROLE_ADMIN')
diff --git a/grails-app/controllers/app/IndicatorDataController.groovy b/grails-app/controllers/app/IndicatorDataController.groovy
index e6d4980..3c77859 100644
--- a/grails-app/controllers/app/IndicatorDataController.groovy
+++ b/grails-app/controllers/app/IndicatorDataController.groovy
@@ -9,9 +9,6 @@ package app
 
       import java.text.SimpleDateFormat
     
-import jxl.*
-import jxl.format.*
-import jxl.write.*
 import grails.plugin.springsecurity.annotation.Secured
 
 @Secured('ROLE_ADMIN')
diff --git a/grails-app/controllers/ker/GenericsController.groovy b/grails-app/controllers/ker/GenericsController.groovy
index aaaecf5..aeabc68 100644
--- a/grails-app/controllers/ker/GenericsController.groovy
+++ b/grails-app/controllers/ker/GenericsController.groovy
@@ -43,7 +43,6 @@ import grails.converters.JSON
 import grails.plugin.springsecurity.annotation.Secured
 
 
-
 @Secured('ROLE_ADMIN')
 class GenericsController {
 
@@ -182,36 +181,34 @@ class GenericsController {
         if (!input.startsWith(' ')) {
 
 /**
-            def fullquery = queryHead + (queryCriteria ? ' where ' + queryCriteria : '')
+ def fullquery = queryHead + (queryCriteria ? ' where ' + queryCriteria : '')
 
-            queryKey = '_' + new Date().format('ddMMyyHHmmss')
-            session[queryKey] = fullquery
+ queryKey = '_' + new Date().format('ddMMyyHHmmss')
+ session[queryKey] = fullquery
 
 
-        params.max = Setting.findByNameLike('savedSearch.pagination.max.link') ? Setting.findByNameLike('savedSearch.pagination.max.link').value.toInteger() : 5
+ params.max = Setting.findByNameLike('savedSearch.pagination.max.link') ? Setting.findByNameLike('savedSearch.pagination.max.link').value.toInteger() : 5
 
 
 
-            input = '%' + input + '%'
-            "TGWNC".each() { entityCode ->
-                def count = Task.executeQuery('select count(*) from ' + entityMapping[entityCode] + ' where summary like ?', [input])[0]
-                def list = Task.executeQuery('from ' + entityMapping[entityCode] + ' where summary  like ? order by lastUpdated desc', [input], params)
+ input = '%' + input + '%'
+ "TGWNC".each() { entityCode ->
+ def count = Task.executeQuery('select count(*) from ' + entityMapping[entityCode] + ' where summary like ?', [input])[0]
+ def list = Task.executeQuery('from ' + entityMapping[entityCode] + ' where summary  like ? order by lastUpdated desc', [input], params)
 
-                render(template: '/gTemplates/recordListing', model: [
-                        totalHits: count,
-                        list     : list,
-                                totalHits: count,
-                                queryKey : queryKey,
-                        title    : entityCode + ': ' + count + ' results.'
-                ])
-            }
-*/
+ render(template: '/gTemplates/recordListing', model: [
+ totalHits: count,
+ list     : list,
+ totalHits: count,
+ queryKey : queryKey,
+ title    : entityCode + ': ' + count + ' results.'
+ ])}*/
             findRecords('r -- ' + params.input)
             findRecords('c -- ' + params.input)
             findRecords('g -- ' + params.input)
             findRecords('t -- ' + params.input)
             findRecords('j -- ' + params.input)
-			findRecords('p -- ' + params.input)
+            findRecords('p -- ' + params.input)
 
 
             findRecords('w -- ' + params.input)
@@ -226,7 +223,7 @@ class GenericsController {
             findRecords('g :: ' + params.input)
             findRecords('t :: ' + params.input)
             findRecords('j :: ' + params.input)
-			findRecords('p :: ' + params.input)
+            findRecords('p :: ' + params.input)
 
             findRecords('w :: ' + params.input)
             findRecords('n :: ' + params.input)
@@ -240,7 +237,7 @@ class GenericsController {
 
                 if (input == '?')
                     render(template: '/page/help')
-                else if (input == 'col'){
+                else if (input == 'col') {
                     def colors = """AliceBlue;#F0F8FF
 AntiqueWhite;#FAEBD7
 Aqua;#00FFFF
@@ -476,7 +473,7 @@ YellowGreen;#9ACD32"""
     //	  print ' No add log file found'
         }
            f.text += block + '\n***\n\n'
-      */  
+      */
 
         def prefixRecord = CommandPrefix.get(commandPrefix)
         def prefix = params.prefix ?: (prefixRecord.description ?: '')
@@ -484,14 +481,14 @@ YellowGreen;#9ACD32"""
         if (prefixRecord.multiLine || !prefix) {
             block.eachLine() {
                 if (it.trim() != '' && !it.startsWith('//'))
-                batchAdd(prefix + it)
+                    batchAdd(prefix + it)
             }
         } else
             batchAdd(prefix + block.trim())
-  
- // block.split(/\*\*\*/).each() { region ->
-  //              addWithDescription(region?.trim())
-  //          }
+
+        // block.split(/\*\*\*/).each() { region ->
+        //              addWithDescription(region?.trim())
+        //          }
         render ''
     }
 
@@ -1246,6 +1243,9 @@ ll
         } else
             record.bookmarked = false
 
+//        operation/countResourceFiles/15544?entityCode=R
+
+//        operation/copyToRps1/15544?entityCode=R
         record.save(flush: true)
 
         render(template: '/gTemplates/recordSummary', model: [record: record])
@@ -1411,24 +1411,187 @@ ll
         def id = params.id.split('-')[1].toLong()
         def record = grailsApplication.classLoader.loadClass(entityMapping[entityCode]).get(id)
 
-        if (!record.bookmarked) {
-            record.bookmarked = true
+        if (!record.bookmarked || record.bookmarked == false) {
+            if (record.class.declaredFields.name.contains('nbFiles')) {
+//            OperationController.countResourceFiles2(grailsApplication, entityCode, id)
 
 
-            if (entityCode == 'xE') {
+                def r
+                if (entityCode == 'R')
+                    r = Book.findById(id)
+                else
+                    r = grailsApplication.classLoader.loadClass(entityMapping[entityCode]).get(id)
 
-                supportService.pdfTitleUpdateNewPath(OperationController.getPath('module.sandbox.E.path'), record.id + 'e.pdf',
-                        record.id + 'e_.pdf',
-                        OperationController.getPath('onyx.path'),
-                        record?.book?.course?.numberCode + ' ' + record?.book?.course?.code + ' ' + record.summary + ' ' + (record.book ? (' @ ' + record?.book?.title) : ''))
-                supportService.pdfTitleUpdateNewPath(OperationController.getPath('module.repository.E.path'), record.id + 'e.pdf',
-                        record.id + 'e_.pdf',
-                        OperationController.getPath('onyx.path'),
-                        record?.book?.course?.numberCode + ' ' + record?.book?.course?.code + ' ' + record.summary + ' ' + (record.book ? (' @ ' + record?.book?.title) : ''))
-            }
+                def filesList
+                def message = ''
+
+                if (r) {
+//println ' b found'
+                    filesList = []
+
+                    def rps1Folder
+                    def rps2Folder
+                    if (entityCode == 'R') {
+                        rps1Folder =
+                                OperationController.getPath('root.rps1.path') + 'R/' + r.type?.code + '/' + (id / 100).toInteger() + '/' + id
+                        rps2Folder =
+                                OperationController.getPath('root.rps2.path') + '/R/' + r.type?.code + '/' + (id / 100).toInteger() + '/' + id
+//                    println 'rps2 ' + rps2Folder
+
+                    } else {
+                        rps1Folder = OperationController.getPath('root.rps1.path') + '/' + entityCode + '/' + id
+                        rps2Folder = OperationController.getPath('root.rps2.path') + '/' + entityCode + '/' + id
+                    }
+
+                    new File(rps1Folder).mkdirs()
 
+                    if (new File(rps2Folder).exists()) {
 
+                        new File(rps2Folder).eachFile() {//Match(~/[\S\s]*\.[\S\s]*/) {
+//                        println ' file ' + it
+                            if (it.isFile())
+                                filesList.add(it)
+                        }
+                    }
+
+
+                    def ant = new AntBuilder()
+
+                    filesList.each() { f ->
+                        ant.copy(file: f.path, tofile: rps1Folder + '/' + f.name)
+                    }
+//                    render filesList.size() + ' file(s) copied.'
+
+                            message = filesList.size() + ' file(s) copied.'
+                } else {
+                    render 'Record not found.'
+                }
+
+                if (entityCode == 'xE') {
+
+                    supportService.pdfTitleUpdateNewPath(OperationController.getPath('module.sandbox.E.path'), record.id + 'e.pdf',
+                            record.id + 'e_.pdf',
+                            OperationController.getPath('onyx.path'),
+                            record?.book?.course?.numberCode + ' ' + record?.book?.course?.code + ' ' + record.summary + ' ' + (record.book ? (' @ ' + record?.book?.title) : ''))
+                    supportService.pdfTitleUpdateNewPath(OperationController.getPath('module.repository.E.path'), record.id + 'e.pdf',
+                            record.id + 'e_.pdf',
+                            OperationController.getPath('onyx.path'),
+                            record?.book?.course?.numberCode + ' ' + record?.book?.course?.code + ' ' + record.summary + ' ' + (record.book ? (' @ ' + record?.book?.title) : ''))
+                }
+
+
+                def typeSandboxPath
+                def typeLibraryPath
+                def typeRepositoryPath
+
+                def filesCount
+                filesList = []
+                def folders
+
+                def list
+
+                if (entityCode == 'R') {
+
+                    if (id)
+                        list = [Book.get(id)]
+                    else list = [Book.get(1)] //Todo
+
+                    for (b in list) {
+                        filesCount = 0
+                        folders = []
+                        typeSandboxPath = OperationController.getPath('root.rps1.path') + '/R/' + b.type?.code
+//            typeLibraryPath = OperationController.getPath('root.rps3.path') + 'R/' + b.type?.code
+                        //ResourceType.findByCode(type).libraryPath
+                        typeRepositoryPath = OperationController.getPath('root.rps2.path') + '/R/' + b.type?.code
+                        folders.add(
+                                [typeSandboxPath + '/' + (b.id / 100).toInteger()])
+                        if (!b.bookmarked)
+                            folders.add(
+                                    [typeRepositoryPath + '/' + (b.id / 100).toInteger()])
+//                    typeLibraryPath + '/' + (b.id / 100).toInteger()
+                        //     ]
+                        folders.each() { folder ->
+//                        println 'folder' + folder
+                            if (new File(folder[0]).exists()) {
+                                new File(folder[0]).eachFileMatch(~/${b.id}[a-z][\S\s]*\.[\S\s]*/) {
+                                    filesCount++
+                                    filesList += it.name// + '\n'
+                                }
+                            }
+                        }
+                        folders = []
+                        folders.add(
+                                [typeSandboxPath + '/' + (b.id / 100).toInteger() + '/' + b.id])
+//                    typeLibraryPath + '/' + (b.id / 100).toInteger() + '/' + b.id,
+                        if (!b.bookmarked)
+                            folders.add([typeRepositoryPath + '/' + (b.id / 100).toInteger() + '/' + b.id])
+//                ]
+
+                        folders.each() { folder ->
+//                    println 'fld ' + folder + ' class ' + folder.class
+                            if (new File(folder[0]).exists()) {
+                                new File(folder[0]).eachFile() {
+//Match(~/[\S\s]*\.[\S\s]*/) { //ToDo: only files with extensions!
+                                    if (!it.isFile())
+                                        filesList += '*** ' + it.name
+                                    else {
+                                        filesCount++
+                                        filesList += it.name
+                                    }
+                                }
+                            }
+                        }
+                        //println filesCount
+                        b.nbFiles = filesCount
+                        b.filesList = filesList.join('\n')
+
+
+                    }
+                } else {
+
+                    list =
+                            [grailsApplication.classLoader.loadClass(entityMapping[entityCode]).get(id)]
+
+                    for (b in list) {
+                        filesCount = 0
+                        folders = []
+                        typeSandboxPath = OperationController.getPath('root.rps1.path') + '/' + entityCode + '/'
+
+                        typeRepositoryPath = OperationController.getPath('root.rps2.path') + '/' + entityCode + '/'
+                        folders.add([typeSandboxPath + '/' + (b.id)])
+                        if (!b.bookmarked)
+                            folders.add([typeRepositoryPath + '/' + (b.id)])
+
+
+
+                        folders.each() { folder ->
+                            if (new File(folder[0]).exists()) {
+                                new File(folder[0]).eachFile() {
+//Match(~/[\S\s]*\.[\S\s]*/) { //ToDo: only files with extensions!
+                                    if (!it.isFile())
+                                        filesList += '*** ' + it.name
+                                    else {
+                                        filesCount++
+                                        filesList += it.name
+                                    }
+                                }
+                            }
+                        }
+                        //println filesCount
+                        b.nbFiles = filesCount
+                        b.filesList = filesList.join('\n')
+                    }
+                }
+                render(template: '/layouts/achtung', model: [message: message + '...' + filesCount + ' files'])// + filesList.join('\n').replace('\n', '<br/>')])
+//                render '<br/>' + filesCount + ' files: <br/>' + filesList.join('\n').replace('\n', '<br/>')
+
+//            OperationController.copyToRps21(grailsApplication, entityCode, id)
+
+
+            }
+            record.bookmarked = true
         } else
+
             record.bookmarked = false
 
         record.save(flush: true)
@@ -1914,7 +2077,7 @@ ll
         def t = Tag.get(params.tagId)
         if (t) {
             instance.removeFromTags(t)
-            if(!t.occurrence)
+            if (!t.occurrence)
                 t.occurrence = 0
             else t.occurrence--
 
@@ -1938,8 +2101,8 @@ ll
         def t = Tag.findByName(params.tag?.trim())
         if (t) {
             instance.addToTags(t)
-            if(!t.occurrence)
-            t.occurrence = 1
+            if (!t.occurrence)
+                t.occurrence = 1
             else t.occurrence++
             render(template: '/tag/tags', model: [instance: instance, entity: params.entityCode])
         } else if (params.tag != '') {
@@ -2245,7 +2408,7 @@ ll
 //                 Planner.executeQuery("select count(*), t.course from Goal t group by t.course order by t.course.code asc").each() {
 //                     courses.add([id: it[1].id, value: it[1].toString() + ' (' + it[0] + ')'])
 //                 }
-// 
+//
 //                 Planner.executeQuery("select count(*), t.department from Planner t group by t.department order by t.department.code asc").each() {
 //                     departments.add([id: it[1].id, value: it[1].toString() + ' (' + it[0] + ')'])
 //                 }
@@ -2261,7 +2424,7 @@ ll
 //                 Planner.executeQuery("select count(*), t.course from Goal t group by t.course").each() {
 //                     courses.add([id: it[1].id, value: it[1].toString() + ' (' + it[0] + ')'])
 //                 }
-// 
+//
 //                 Task.executeQuery("select count(*), t.department from Journal t group by t.department order by t.department.code asc").each() {
 //                     departments.add([id: it[1].id, value: it[1].toString() + ' (' + it[0] + ')'])
 //                 }
@@ -2610,28 +2773,28 @@ ll
                     break
 
                 case 'type':
-                    if (input.contains('from mcs.Goal')) {
+                    if (input.contains('from Goal')) {
                         groups = GoalType.list([sort: 'name'])
-                    } else if (input.contains('from mcs.Journal')) {
+                    } else if (input.contains('from Journal')) {
                         groups = JournalType.list([sort: 'name'])
-                    } else if (input.contains('from mcs.Planner')) {
+                    } else if (input.contains('from Planner')) {
                         groups = PlannerType.list([sort: 'name'])
-                    } else if (input.contains('from mcs.Journal')) {
+                    } else if (input.contains('from Journal')) {
                         groups = PlannerType.list([sort: 'name'])
-                    } else if (input.contains('from mcs.Writing') || input.contains('from mcs.IndexCard')) {
+                    } else if (input.contains('from Writing') || input.contains('from IndexCard')) {
                         groups = WritingType.list([sort: 'name'])
                     }
                     break
                 case 'status':
-                    if (input.contains('from mcs.Goal')) {
+                    if (input.contains('from Goal')) {
                         groups = WorkStatus.list([sort: 'name'])
-                    } else if (input.contains('from mcs.Journal')) {
+                    } else if (input.contains('from Journal')) {
                         groups = JournalType.list([sort: 'name'])
-                    } else if (input.contains('from mcs.Writing') || input.contains('from app.IndexCard')) {
+                    } else if (input.contains('from Writing') || input.contains('from IndexCard')) {
                         groups = WritingStatus.list([sort: 'name'])
-                    } else if (input.contains('from mcs.Book')) {
+                    } else if (input.contains('from Book')) {
                         groups = ResourceStatus.list([sort: 'name'])
-                    } else if (input.contains('from mcs.Goal') || input.contains('from mcs.Task') || input.contains('from mcs.Planner')) {
+                    } else if (input.contains('from Goal') || input.contains('from Task') || input.contains('from Planner')) {
                         groups = WorkStatus.list([sort: 'name'])
                     }
                     break
@@ -2686,19 +2849,17 @@ ll
             s.queryType = 'hql'
             s.save(flush: true)
             render(template: '/gTemplates/recordSummary', model: [record: s])
-        }
-
-        else if (input.endsWith(' +')) {
+        } else if (input.endsWith(' +')) {
             try {
-                     println new Date().format('HH:mm:ss')
+                //println new Date().format('HH:mm:ss')
                 def entityCode = input.split(/[ ]+/)[0]?.toUpperCase()
 
                 def queryHead = 'from ' + entityMapping[entityCode]
                 def queryCriteria = transformMcsNotation(input.substring(0, input.length() - 2))['queryCriteria']
 
                 def fullquery = queryHead + (queryCriteria ? ' where ' + queryCriteria : '')
-                println 'fq ' + fullquery
-                def list = Task.executeQuery(fullquery + ' order by lastUpdated desc',[], params)
+                // println 'fq ' + fullquery
+                def list = Task.executeQuery(fullquery + ' order by lastUpdated desc', [], params)
                 def r
                 def limit = ker.OperationController.getPath('updateResultSet.max-items')?.toInteger() ?: 100
                 if (list.size() < limit) {
@@ -2716,7 +2877,7 @@ ll
                     def queryKey = '_' + new Date().format('ddMMyyHHmmss')
                     session[queryKey] = fullquery
 
-                    println '-> ' + Task.executeQuery(fullquerySort)[0]
+//                    println '-> ' + Task.executeQuery(fullquerySort)[0]
                     params.max = Setting.findByNameLike('savedSearch.pagination.max.link') ? Setting.findByNameLike('savedSearch.pagination.max.link').value.toInteger() : 5
                     render(template: '/gTemplates/recordListing', model: [
                             totalHits: Task.executeQuery(fullquerySort)[0].toLong(), //.size(),
@@ -2728,7 +2889,7 @@ ll
                 } else {
                     render 'Result set size is greater than ' + limit + '. Please narrow your search'
                 }
-            } catch(Exception e){
+            } catch (Exception e) {
                 println e.printStackTrace()
             }
 
@@ -2738,6 +2899,8 @@ ll
 
                 def groupBy = input.split(/ \{/)[1]
 
+                def entityCode = input.split(/[ ]+/)[0]?.toUpperCase()
+
                 def groups
 
                 switch (groupBy) {
@@ -2752,29 +2915,29 @@ ll
                         break
 
                     case 'type':
-                        if (input.contains('from mcs.Goal')) {
+                        if (entityCode == 'G') {
                             groups = GoalType.list([sort: 'name'])
-                        } else if (input.contains('from mcs.Journal')) {
+                        } else if (entityCode == 'J') {
                             groups = JournalType.list([sort: 'name'])
-                        } else if (input.contains('from mcs.Planner')) {
+                        } else if (entityCode == 'P') {
                             groups = PlannerType.list([sort: 'name'])
-                        } else if (input.contains('from mcs.Journal')) {
+                        } else if (entityCode == 'P') {
                             groups = PlannerType.list([sort: 'name'])
-                        } else if (input.contains('from mcs.Writing') || input.contains('from app.IndexCard')) {
+                        } else if (entityCode == 'W' || entityCode == 'N') {
                             groups = WritingType.list([sort: 'name'])
                         }
                         break
                     case 'status':
-                        if (input.contains('from mcs.Goal')) {
+                        //if (input.contains('from mcs.Goal')) {
+
+                        if ("TPG".contains(entityCode)) {
                             groups = WorkStatus.list([sort: 'name'])
-                        } else if (input.contains('from mcs.Journal')) {
+                        } else if (entityCode == 'J') {
                             groups = JournalType.list([sort: 'name'])
-                        } else if (input.contains('from mcs.Writing') || input.contains('from app.IndexCard')) {
+                        } else if (entityCode == 'W' || entityCode == 'N') {
                             groups = WritingStatus.list([sort: 'name'])
-                        } else if (input.contains('from mcs.Book')) {
+                        } else if (entityCode == 'R') {
                             groups = ResourceStatus.list([sort: 'name'])
-                        } else if (input.contains('from mcs.Goal') || input.contains('from mcs.Task') || input.contains('from mcs.Planner')) {
-                            groups = WorkStatus.list([sort: 'name'])
                         }
                         break
                     case 'location':
@@ -2791,7 +2954,6 @@ ll
                         groups = [1, 2, 3, 4, 5]
                         break
                 }
-                def entityCode = input.split(/[ ]+/)[0]?.toUpperCase()
 
 //        input = params.input.substring(params.input.indexOf(' '))
 
@@ -2814,8 +2976,7 @@ ll
                     fullquery = session[input]
                     fullquerySort = 'select count(*) ' + fullquery
                     queryKey = input
-                }
-                else {
+                } else {
                     def entityCode = input.split(/[ ]+/)[0]?.toUpperCase()
 
 //        input = params.input.substring(params.input.indexOf(' '))
@@ -2878,28 +3039,28 @@ ll
                     break
 
                 case 'type':
-                    if (input.contains('from mcs.Goal')) {
+                    if (input.contains('from Goal')) {
                         groups = GoalType.list([sort: 'name'])
-                    } else if (input.contains('from mcs.Journal')) {
+                    } else if (input.contains('from Journal')) {
                         groups = JournalType.list([sort: 'name'])
-                    } else if (input.contains('from mcs.Planner')) {
+                    } else if (input.contains('from Planner')) {
                         groups = PlannerType.list([sort: 'name'])
-                    } else if (input.contains('from mcs.Journal')) {
+                    } else if (input.contains('from Journal')) {
                         groups = PlannerType.list([sort: 'name'])
-                    } else if (input.contains('from mcs.Writing') || input.contains('from app.IndexCard')) {
+                    } else if (input.contains('from Writing') || input.contains('from IndexCard')) {
                         groups = WritingType.list([sort: 'name'])
                     }
                     break
                 case 'status':
-                    if (input.contains('from mcs.Goal')) {
+                    if (input.contains('from Goal')) {
                         groups = WorkStatus.list([sort: 'name'])
-                    } else if (input.contains('from mcs.Journal')) {
+                    } else if (input.contains('from Journal')) {
                         groups = JournalType.list([sort: 'name'])
-                    } else if (input.contains('from mcs.Writing') || input.contains('from app.IndexCard')) {
+                    } else if (input.contains('from Writing') || input.contains('from app.IndexCard')) {
                         groups = WritingStatus.list([sort: 'name'])
-                    } else if (input.contains('from mcs.Book')) {
+                    } else if (input.contains('from Book')) {
                         groups = ResourceStatus.list([sort: 'name'])
-                    } else if (input.contains('from mcs.Goal') || input.contains('from mcs.Task') || input.contains('from mcs.Planner')) {
+                    } else if (input.contains('from Goal') || input.contains('from Task') || input.contains('from Planner')) {
                         groups = WorkStatus.list([sort: 'name'])
                     }
                     break
@@ -3086,7 +3247,7 @@ ll
         }
         catch (Exception e) {
             //          render 'Exception in quick add' + e
-            print 'Exception in quick add' + e.printStackTrace()
+            println 'Exception in quick add: ' + e.printStackTrace()
         }
 
     }
@@ -3159,7 +3320,7 @@ ll
 
         if (!n.hasErrors() && n.save()) {
 //            render('Saved with id ' + n.id)
-            render(template: '/layouts/achtung', model: [message: 'Payment [' + n.summary + '] saved with id ' + n.id+ '.'])
+            render(template: '/layouts/achtung', model: [message: 'Payment [' + n.summary + '] saved with id ' + n.id + '.'])
         } else {
             render('Problem saving.')
 //            n.errors.each() {
@@ -4011,12 +4172,16 @@ ll
                                     core.matches(/^\d\d\d[\_][0-9]{1,4}$/) ||
                                     core.matches(/^\d\d\d[\_][0-9]{1,4}[\.][0-9]{2}$/)) {
                                 properties[dateField] = OperationController.fromWeekDateAsDateTimeFullSyntax(core)
+                                queryCriteria.add("date(" + dateField + ') = str_to_date("' + OperationController.fromWeekDateAsDateTimeFullSyntax(core).format('dd.MM.yyyy') + '", "%d.%m.%Y")')
+                                // todo: test
                             } else if (core.contains('_')) {
                                 def format = Setting.findByName('datetime.add.format')
-                                properties[dateField] = Date.parse(format ? format.value : 'dd.MM.yyyy_HHmm', core)
+                                properties[dateField] = Date.parse(format ? format.value : 'dd.MM.YYYY_HHmm', core)
+                                queryCriteria.add("date(" + dateField + ") = " + Date.parse(format ? format.value : 'dd.MM.YYYY_HHMM', core)?.format('YYYY-MM-DD'))
                             } else {
                                 def format = Setting.findByName('date.format')
                                 properties[dateField] = Date.parse(format ? format.value : 'dd.MM.yyyy', core)
+                                queryCriteria.add("date(" + dateField + ") =  str_to_date('" + Date.parse(format ? format.value : 'dd.MM.yyyy', core).format('dd.MM.YYYY') + "', '%d.%m.%Y')")
                             }
                         }
                     }
@@ -4032,9 +4197,15 @@ ll
                                     core.matches(/^\d\d\d[\_][0-9]{1,4}$/) ||
                                     core.matches(/^\d\d\d[\_][0-9]{1,4}[\.][0-9]{2}$/)) {
                                 properties[dateField] = OperationController.fromWeekDateAsDateTimeFullSyntax(core)
+                                queryCriteria.add("date(" + dateField + ') = str_to_date("' + OperationController.fromWeekDateAsDateTimeFullSyntax(core).format('dd.MM.yyyy') + '", "%d.%m.%Y")')
+                            } else if (core.contains('_')) {
+                                def format = Setting.findByName('datetime.add.format')
+                                properties[dateField] = Date.parse(format ? format.value : 'dd.MM.YYYY_HHmm', core)
+                                queryCriteria.add("date(" + dateField + ") = " + Date.parse(format ? format.value : 'dd.MM.YYYY_HHMM', core)?.format('YYYY-MM-DD'))
                             } else {
                                 def format = Setting.findByName('date.format')
                                 properties[dateField] = Date.parse(format ? format.value : 'dd.MM.yyyy', core)
+                                queryCriteria.add("date(" + dateField + ') = str_to_date("' + OperationController.fromWeekDateAsDateTimeFullSyntax(core).format('dd.MM.yyyy') + '", "%d.%m.%Y")')
                             }
                         }
                     }
@@ -4146,6 +4317,7 @@ ll
 
             result['queryCriteria'] = queryCriteria.join(' and ')
             result['properties'] = properties
+            // println result['queryCriteria']
 
             return result
         }
@@ -4521,30 +4693,30 @@ def addTagToAll(String input) {
                         groups = Course.list([sort: 'summary'])
                         break
                     case 'type':
-                        if (input.contains('from mcs.Goal')) {
+                        if (input.contains('Goal ')) {
                             groups = GoalType.list([sort: 'name'])
-                        } else if (input.contains('from mcs.Journal')) {
+                        } else if (input.contains('Journal ')) {
                             groups = JournalType.list([sort: 'name'])
-                        } else if (input.contains('from mcs.Planner')) {
+                        } else if (input.contains('Planner ')) {
                             groups = PlannerType.list([sort: 'name'])
-                        } else if (input.contains('from mcs.Journal')) {
+                        } else if (input.contains('Journal ')) {
                             groups = PlannerType.list([sort: 'name'])
-                        } else if (input.contains('from mcs.Writing') || input.contains('from mcs.IndexCard')) {
+                        } else if (input.contains('Writing ') || input.contains('IndexCard ')) {
                             groups = WritingType.list([sort: 'name'])
                         }
                         break
                     case 'status':
-                        if (input.contains('from mcs.Goal')) {
+                        if (input.contains('Goal ')) {
                             groups = WorkStatus.list([sort: 'name'])
-                        } else if (input.contains('from mcs.Journal')) {
+                        } else if (input.contains('Journal ')) {
                             groups = JournalType.list([sort: 'name'])
-                        } else if (input.contains('from mcs.Writing')) {
+                        } else if (input.contains('Writing ')) {
                             groups = WritingStatus.list([sort: 'name'])
-                        } else if (input.contains('from app.IndexCard')) {
+                        } else if (input.contains('IndexCard ')) {
                             groups = WritingStatus.list([sort: 'name'])
-                        } else if (input.contains('from mcs.Book')) {
+                        } else if (input.contains('Book ')) {
                             groups = ResourceStatus.list([sort: 'name'])
-                        } else if (input.contains('from mcs.Goal') || input.contains('from mcs.Task') || input.contains('from mcs.Planner')) {
+                        } else if (input.contains('Goal ') || input.contains('Task ') || input.contains('Planner ')) {
                             groups = WorkStatus.list([sort: 'name'])
                         }
                         break
@@ -4664,16 +4836,16 @@ def addTagToAll(String input) {
             record.save(flush: true)
             render(record.description.replace('\n', '<br/>'))
         }
-         if (record.notes) {
+        if (record.notes) {
             record.notes = record.notes?.replace(' وَ ', ' وَ')?.replaceAll(/\nوَ /, ' وَ')
                     .replaceAll(/\nوَ /, ' وَ')
-                    .replaceAll(/^و /, 'و' )
-                    .replaceAll(/\nو / , '\nو' )
+                    .replaceAll(/^و /, 'و')
+                    .replaceAll(/\nو /, '\nو')
                     .replace(/^وَ /, '\n وَ').replace(' و ', ' و').replace('ی', 'ي').replace('ک', 'ك')
             record.save(flush: true)
             render(record.notes.replace('\n', '<br/>'))
         }
-        if (record.class.declaredFields.name.contains('fullText') && record.fullText){
+        if (record.class.declaredFields.name.contains('fullText') && record.fullText) {
             record.fullText = record.fullText?.replace(' وَ ', ' وَ')?.replaceAll(/\nوَ /, ' وَ')
                     .replaceAll(/\nوَ /, ' وَ')
                     .replaceAll(/^و /, ' و')
diff --git a/grails-app/controllers/ker/PageController.groovy b/grails-app/controllers/ker/PageController.groovy
index 469a728..4e0fafd 100644
--- a/grails-app/controllers/ker/PageController.groovy
+++ b/grails-app/controllers/ker/PageController.groovy
@@ -276,9 +276,30 @@ class PageController {
 //        println 'r ' + resources
 //        println 'e ' + excerpts
 
+        def ips = []
+        def ip
+        def interf
+
+        def interfaces = NetworkInterface.getNetworkInterfaces()
+
+        while (interfaces.hasMoreElements()) {
+
+            interf = interfaces.nextElement()
+            def addresses = interf.getInetAddresses()
+
+            while (addresses.hasMoreElements()) {
+                ip = addresses.nextElement().getHostAddress().toString()
+                if (ip && ip != '' && !ip.contains(':') && !ip.startsWith('127'))
+                    ips.add([name: interf.getName(), title: interf.getDisplayName(), ip: ip])
+//                println (addresses.nextElement().getCanonicalHostName())
+//                println (addresses.nextElement().hostAddress)
+            }
+        }
+
 
         render(view: '/appMain/main', model: [
                 htmlContent: null,
+                ips: ips,
                 selectBasketCount: GenericsController.selectedRecords.size(),
                 editFileCount: c,
                 reviewPileSize: resources.size() + excerpts.size()
@@ -300,6 +321,12 @@ class PageController {
         ])
     }
 
+    def appKanban() {
+
+        render(view: '/appKanban/main', model: [])
+
+    }
+
     def appDaftar(){
         render(view: '/appMain/daftar', model: [])
     }
@@ -414,7 +441,7 @@ class PageController {
     }
 
     def kanban() {
-        render(view: '/page/kanban', model: [])
+        render(view: '/page/kanbanCrs', model: [])
     }
 
     def kanbanCrs() {
diff --git a/grails-app/controllers/ker/SyncController.groovy b/grails-app/controllers/ker/SyncController.groovy
index 110e648..ea23e15 100644
--- a/grails-app/controllers/ker/SyncController.groovy
+++ b/grails-app/controllers/ker/SyncController.groovy
@@ -353,7 +353,8 @@ class SyncController {
         def records = []
         def priorityMap = [5: 'p5', 4: 'p4', 3: 'p3', 2: 'p2', 1: 'p1']
 
-        for (i in IndexCard.executeQuery("from Book where type.code != ? and type.code != ? and  bookmarked = ? and lastUpdated > ? order by department.orderNumber asc, course.orderNumber asc, orderNumber asc", ['art', 'nws', true, new Date() - 7])) {
+        for (i in IndexCard.executeQuery("from Book where type.code != ? and type.code != ? and  bookmarked = ? order by department.orderNumber asc, course.orderNumber asc, orderNumber asc",
+                ['art', 'nws', true])) {
 //            OperationController.countResourceFiles(i.id)
             records += [type    : 'R', id: i.id,
                         rtype   : i?.type?.code, ecode: 'R',
diff --git a/grails-app/controllers/mcs/TaskController.groovy b/grails-app/controllers/mcs/TaskController.groovy
index c389c38..c42321c 100644
--- a/grails-app/controllers/mcs/TaskController.groovy
+++ b/grails-app/controllers/mcs/TaskController.groovy
@@ -362,6 +362,7 @@ class TaskController { // entity id = 127
         def level = params.level
 
         def date = params.date//.substring(0,3).toString()
+        def endDate = params.endDate//.substring(0,3).toString()
         def stime
         def etime
 //        if (params.date.length() > 3){
@@ -377,8 +378,8 @@ class TaskController { // entity id = 127
 
         def startDate = OperationController.fromWeekDateAsDateTimeFullSyntax(date)
         //Date.parse('dd.MM.yyyy HH:mm', supportService.fromWeekDate(date) + stime)
-        def endDate = startDate
-
+        def endDate = OperationController.fromWeekDateAsDateTimeFullSyntax(endDate)
+          /**
         switch (level) {
             case 'i':
                 endDate = startDate
@@ -403,6 +404,7 @@ class TaskController { // entity id = 127
                 break
 
         }
+ */
 
         //Date.parse('dd.MM.yyyy HH:mm', supportService.fromWeekDate(date) + etime)
 
diff --git a/grails-app/views/appCalendar/main.gsp b/grails-app/views/appCalendar/main.gsp
index b6e988f..97f9e2f 100644
--- a/grails-app/views/appCalendar/main.gsp
+++ b/grails-app/views/appCalendar/main.gsp
@@ -88,7 +88,7 @@
 //          columnHead: false
 
       },
-      defaultView: 'dayGridWeek',
+      defaultView: 'dayGridMonth',
         allDaySlot: true,
         nowIndicator: true,
         timeGridEventMinHeight: true,
diff --git a/grails-app/views/appKanban/_east.gsp b/grails-app/views/appKanban/_east.gsp
new file mode 100644
index 0000000..62c321b
--- /dev/null
+++ b/grails-app/views/appKanban/_east.gsp
@@ -0,0 +1,18 @@
+<%@ page import="mcs.parameters.ResourceStatus; mcs.Goal; org.apache.commons.lang.StringUtils; mcs.Book; app.parameters.ResourceType; mcs.Writing; mcs.Department; mcs.parameters.WritingType; app.Tag; cmn.Setting; mcs.Course; mcs.Journal; mcs.Planner; app.IndexCard; mcs.Task; ker.OperationController" %>
+
+<div id="accordionEast" class="basic">
+
+        <h3><a href="#">
+            <g:message code="ui.details"></g:message>
+
+        </a></h3>
+
+        <div id="3rdPanel">
+
+        </div>
+
+
+
+
+
+    </div>
\ No newline at end of file
diff --git a/grails-app/views/appKanban/_north.gsp b/grails-app/views/appKanban/_north.gsp
new file mode 100644
index 0000000..5392b85
--- /dev/null
+++ b/grails-app/views/appKanban/_north.gsp
@@ -0,0 +1,160 @@
+<%@ page import="ker.OperationController; java.text.DecimalFormat; cmn.Setting; grails.util.Metadata" %>
+
+<table id="rssList" border="0" dir="ltr" cellspacing="2px" style="line-height: 15px;text-align: left; width: 95%">
+    <tr>
+        %{--<td>--}%
+        %{--&nbsp; <img src="${resource(dir: 'images', file: 'favicon-transparent.png')}" width="16px;"/>--}%
+        %{--&nbsp;--}%
+        %{--</td>--}%
+        <td style="padding-right: 1px !important;">
+        &nbsp;
+        &nbsp;
+            <g:remoteLink controller="report" action="homepageSavedSearches"
+
+                          update="centralArea" title="Homepage saved searches">
+            %{--<span class="ui-icon ui-icon-calendar"></span>--}%
+
+
+
+                <span style="margin-right: 1px;">
+                    <b style="font-size: 12px; font-family: tahoma, sans-serif;">
+                        ${OperationController.getPath('app.name') ?: 'Nibras'} /Kanban</b>
+                </span>
+            </g:remoteLink>
+
+        </td>
+
+        %{--<g:link controller="page" action="main"--}%
+        %{--title="">--}%
+
+        %{--<g:meta name="app.version"/>--}%
+        %{--todo--}%
+        %{--</g:link>--}%
+        %{--<g:if test="${OperationController.getPath('show.textlogo')?.toLowerCase() == 'yes' ? true : false}">--}%
+        %{--<sub>--}%
+        %{--<a href="http://pomegranate-pkm.org" target="_blank">--}%
+        %{--<i style="font-size: 10px; color: #ffffff">A Pomegranate PKM system</i>--}%
+        %{--</a>--}%
+        %{--</sub>--}%
+        %{--</g:if>--}%
+        <td style="padding-right: 5px !important;">
+            %{--<sec:ifAnyGranted roles="ROLE_ADMIN">--}%
+            <% Calendar c = new GregorianCalendar(); c.setLenient(false); c.setMinimalDaysInFirstWeek(4);
+            c.setFirstDayOfWeek(java.util.Calendar.MONDAY) %>
+            <b style="color: white">
+%{--                Week ${c.get(Calendar.WEEK_OF_YEAR)}--}%
+            </b>
+        </td>
+        %{--</sec:ifAnyGranted>--}%
+
+
+
+
+
+        %{--<g:remoteLink controller="report" action="detailedAdd"--}%
+        %{--update="centralArea"--}%
+        %{--before="jQuery.address.value(jQuery(this).attr('href'));"--}%
+        %{--style=""--}%
+        %{--title="Add using forms">--}%
+        %{--<g:message code="ui.addRecords"></g:message>--}%
+        %{--</g:remoteLink>--}%
+
+        <td style="padding: 1px !important; margin-left: 9px; color: white;">
+
+            <g:formRemote name="batchAdd3"
+                          url="[controller: 'generics', action: 'quickQuranSearch']"
+                          update="centralArea" style="display: inline"
+                          before="jQuery('#testTitle5').text('[3]: ' + jQuery('#testField5').val());"
+                          method="post">
+
+            %{--<g:hiddenField name="sth2" value="${new java.util.Date()}"/>--}%
+                <g:submitButton name="batch" value="Execute"
+                                style="margin: 0px; display: none"
+                                id=" "
+                                class="ui-widget ui-state-default"/>
+
+                <g:textField name="input" value="" id="speedsearch"
+                             autocomplete="off"
+                             style="float: right; display: inline;  width: 220px !important; height: 24px; padding: 2px; margin: 1px; font-size: 11px;"
+                             placeholder="Search..."
+                             class=""/>
+
+            </g:formRemote>
+
+        </td>
+
+        %{--<td style="padding: 1px !important; margin-left: 9px; color: white;">--}%
+
+            %{--<a href="/nibras/sync/rssPile"--}%
+               %{--class="fg-button-icon-left"--}%
+               %{--style="" target="_blank">--}%
+                %{--<span style="color: white" class="ui-icon ui-icon-signal"></span>--}%
+                %{--<g:message code="ui.menu.RSS"></g:message>--}%
+            %{--</a>--}%
+        %{--</td>--}%
+
+        <td style="padding: 1px !important; margin-left: 9px; color: white;">
+
+            <a href="http://khuta.org/nibras-doc/index.html"
+               style="" target="_blank">
+%{--                <span style="color: white" class="ui-icon ui-icon-help"></span>--}%
+                <g:message code="ui.menu.help"></g:message>
+            </a>
+        </td>
+        %{--<td>--}%
+        %{--بالصفحة--}%
+
+        %{--</td>--}%
+
+        %{--<li>--}%
+        %{----}%
+        %{--نسخه <i>--}%
+        %{----}%
+        %{--</i><g:meta name="app.version"/>--}%
+        %{--</li>--}%
+
+    </tr>
+</table>
+
+
+
+
+%{--<div id="dialog" title="Basic dialog">--}%
+%{--<p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>--}%
+%{--</div>--}%
+
+<script>
+    //    $("#dialog").dialog();
+
+    function dualDisplay() {
+        document.getElementById("centralArea").id = "temp1q";
+        document.getElementById("sandboxPanel").id = "centralArea";
+        console.log('dual')
+        jQuery('#accordionEast').accordion({active: 3});
+
+    }
+
+    function singleDisplay() {
+        document.getElementById("temp1q").id = "centralArea";
+        document.getElementById("centralArea").id = "sandboxPanel";
+        console.log('single')
+    }
+
+
+    $('#selectAll').click(function (e) {
+        $("input[name^='select-']").each(function () {
+//        this['value'] = 'on'
+            this['checked'] = true
+//        console.log(this.attr('value'));
+            jQuery('#logRegion').load('/nibras/generics/selectOnly/' + this['name'].split('-')[2] + this['name'].split('-')[1]);
+        });
+    })
+
+    $('#deselectAll').click(function (e) {
+        $("input[name^='select-']").each(function () {
+            this['checked'] = false
+//        console.log(this.attr('value'));
+            jQuery('#logRegion').load('/nibras/generics/deselectOnly/' + this['name'].split('-')[2] + this['name'].split('-')[1]);
+        });
+    })
+</script>
\ No newline at end of file
diff --git a/grails-app/views/appKanban/_regions.gsp b/grails-app/views/appKanban/_regions.gsp
new file mode 100644
index 0000000..7accc5f
--- /dev/null
+++ b/grails-app/views/appKanban/_regions.gsp
@@ -0,0 +1,339 @@
+<%@ page import="mcs.parameters.ResourceStatus; mcs.Goal; org.apache.commons.lang.StringUtils; mcs.Book; app.parameters.ResourceType; mcs.Writing; mcs.Department; mcs.parameters.WritingType; app.Tag; cmn.Setting; mcs.Course; mcs.Journal; mcs.Planner; app.IndexCard; mcs.Task; ker.OperationController" %>
+%{--${ker.OperationController.getPath('app.headers.background') ?: '#5b7a59'}--}%
+<div class="ui-layout-north southRegion appBkg" style="overflow: hidden;"
+     style="">
+    %{--<g:render template="/layouts/north" model="[]"/>--}%
+    <g:render template="/appKanban/north"/>
+</div>
+
+%{--<div class="ui-layout-west westRegion appBkg" style="padding-top: 0px !important;padding-bottom: 0px !important;">--}%
+
+%{--<div class="ui-layout-content ui-widget-content">--}%
+
+%{--<g:render template="/appKanban/west"/>--}%
+%{--</div>--}%
+
+<div class="ui-layout-south footerRegion"
+     style="font-size: 11px; margin-top: 9px; min-height: 0px !important;  padding: 3px; direction: ltr; text-align: left; font-family: tahoma; color: white">
+
+    <g:render template="/appMain/south"/>
+</div>
+
+
+<div class="ui-layout-east eastRegion appBkg" style="padding-top: 0px !important;padding-bottom: 0px !important;">
+
+    %{--<div class="ui-layout-content ui-widget-content">--}%
+
+    <g:render template="/appKanban/east"/>
+</div>
+
+
+<div class="ui-layout-center appBkg"
+     style="margin-top: 2px !important; margin-bottom: 2px !important; background: white; overflow-y: scroll; width: 96% !important;"
+     onmouseover="jQuery('#hintArea').html('')">
+    %{--ToDo: display none?!--}%
+    %{--<div class="ui-layout-content ui-widget-content" onmouseover="jQuery('#hintArea').html('')">--}%
+
+
+    <div id="logRegion"></div>
+
+    <div id="logArea"></div>
+
+
+    <div id="searchArea" class="nonPrintable">
+
+    </div>
+
+    <div id="spinner2" style="display:none; z-index: 10000 !important">
+        <img src="${resource(dir: '/images', file: 'pmg-grain.gif')}" alt="Spinner2"
+             style="z-index: 10000 !important"/>
+    </div>
+    %{--<sec:ifNotGranted roles="ROLE_ADMIN">--}%
+    %{--<g:if test="${OperationController.getPath('commandBar.enabled')?.toLowerCase() == 'yes' ? true : false}">--}%
+    %{--<g:render template="/layouts/commandbar" model="[]"/>--}%
+    %{--</g:if>--}%
+    %{--</sec:ifNotGranted>--}%
+
+    <div id="inner1" class="common" style="">
+
+        <div id="centralArea" class="common kanbanTables">
+
+        <h3>T / context</h3>
+        <table border="1" style="margin: 10px; width: 98%; border: #496779; border-collapse: collapse;">
+
+            <thead>
+
+            <g:each in="${mcs.Task.executeQuery('select t.context from Task t where t.bookmarked = 1 group by t.context  order by t.context.code')}"
+                    var="d">
+                <th>@<b>${d.code}</b></th>
+
+            </g:each>
+
+            </thead>
+
+
+            <tr>
+
+                <g:each in="${mcs.Task.executeQuery('select t.context from Task t where t.bookmarked = 1 group by t.context  order by t.context.code')}"
+                        var="d">
+                    <td id="kanban">
+
+                        <g:each in="${mcs.Book.executeQuery('from Task p where p.bookmarked = 1 and p.context = ? order by orderInCourse asc',
+                                [d])}"
+                                var="p">
+                            <g:render template="/gTemplates/box" model="[record: p]"></g:render>
+                        </g:each>
+
+                    </td>
+
+                </g:each>
+
+            </tr>
+
+        </table>
+
+        <h3>R G C / dept</h3>
+
+        <table border="1" style="margin: 10px; width: 98%; border: #496779; border-collapse: collapse;">
+
+            <thead>
+           <th></th>
+            <g:each in="${mcs.Department.findAllByBookmarked(true, [sort: 'code'])}" var="d">
+                <th>d<b> ${d.code}</b></th>
+
+            </g:each>
+
+            </thead>
+
+
+            <tr>
+                <td>R*</td>
+                <g:each in="${mcs.Department.findAllByBookmarked(true, [sort: 'code'])}" var="d">
+                    <td style="background: #d4edda">
+                        <g:each in="${mcs.Book.executeQuery('from Book p where p.bookmarked = 1 and p.type.code = ? and p.course.department = ? order by orderInCourse asc',
+                                ["ebk", d])}"
+                                var="p">
+                            <g:render template="/gTemplates/box" model="[record: p]"></g:render>
+                        </g:each>
+                    </td>
+                </g:each>
+            </tr>
+            <tr>
+                <td>G*</td>
+                <g:each in="${mcs.Department.findAllByBookmarked(true, [sort: 'code'])}" var="d">
+                    <td style="background: #fff3cd">
+                        <g:each in="${mcs.Book.executeQuery('from Goal p where p.bookmarked = 1 and p.department = ? order by orderInCourse asc',
+                                [d])}"
+                                var="p">
+                            <g:render template="/gTemplates/box" model="[record: p]"></g:render>
+                        </g:each>
+                    </td>
+                </g:each>
+            </tr>
+            <tr>
+                <td>C*</td>
+                <g:each in="${mcs.Department.findAllByBookmarked(true, [sort: 'code'])}" var="d">
+                    <td style="background: #d3e0d3">
+                        <g:each in="${mcs.Book.executeQuery('from Course p where p.bookmarked = 1 and p.department = ? and p.priority = 4 order by orderNumber asc',
+                                [d])}"
+                                var="p">
+
+                            <g:render template="/gTemplates/box" model="[record: p]"></g:render>
+                        </g:each>
+
+                    </td>
+                </g:each>
+
+            </tr>
+
+        </table>
+
+
+        %{--<span class="focusPSouth" style="text-align: right !important; direction: rtl !important;"--}%
+        %{--title="${Planner.executeQuery('from Planner p where p.type.code = ? order by id desc', ['knb'])[0]?.description}">--}%
+        %{--<h5>Last plan</h5>--}%
+        %{--<g:render template="/gTemplates/recordSummary" model="[record: Planner.executeQuery('from Planner p where p.type.code = ? order by id desc', [OperationController.getPath('planner.homepage.default-type')],[max: 1])[0]]"></g:render>--}%
+
+        %{--</span>--}%
+
+        %{--<g:if test="${!new File(OperationController.getPath('root.rps1.path')).exists()}">--}%
+        %{--<br/>--}%
+        %{--<br/>--}%
+        %{--Repository folder not found. Please choose an existing folder:--}%
+        %{--<br/>--}%
+        %{--<g:render template="/forms/updateSetting" model="[settingValue: 'root.rps1.path']"/>--}%
+        %{--</g:if>--}%
+
+
+        %{--<g:if test="${ker.GenericsController.countRecentRecordsStatic() == 0}">--}%
+        %{--<g:render template="/layouts/message" model="[messageCode: 'help.recent.records.no']"/>--}%
+        %{--</g:if>--}%
+    </div>
+
+</div>
+
+
+
+
+%{--<br/>--}%
+
+%{--first commented one below was in action 14.03.2019 --}%
+%{--<g:formRemote name="batchAdd2"  class="commandBarInPanel"--}%
+%{--url="[controller: 'generics', action: 'actionDispatcher']"--}%
+%{--update="centralArea" style="display: inline"--}%
+%{--before="jQuery('#testTitle4').text('[4]: ' + jQuery('#testField4').val());"--}%
+%{--method="post">--}%
+%{--<g:hiddenField name="sth2" value="${new java.util.Date()}"/>--}%
+%{--<g:submitButton name="batch" value="Execute"--}%
+%{--style="height: 30px; margin: 0px; width: 100px !important; display: none"--}%
+%{--id="quickAddXcdSubmitTop5"--}%
+%{--class="fg-button ui-widget ui-state-default"/>--}%
+
+%{--<g:textField name="input"  value="" id="testField4"--}%
+%{--autocomplete="off"--}%
+%{--style="display: inline;  font-family: tahoma ; width: 100% !important;"--}%
+%{--placeholder=""--}%
+%{--class="commandBarTexFieldTop"/>--}%
+%{--</g:formRemote>--}%
+
+
+
+
+%{--<g:formRemote name="batchAdd2"--}%
+%{--url="[controller: 'generics', action: 'actionDispatcher']"--}%
+%{--update="centralArea" style="display: inline"--}%
+%{--method="post">--}%
+%{--<g:hiddenField name="sth2" value="${new java.util.Date()}"/>--}%
+%{--<g:submitButton name="batch" value="Execute"--}%
+%{--style="height: 20px; margin: 0px; width: 100px !important; display: none"--}%
+%{--id="quickAddXcdSubmitTop6"--}%
+%{--class="fg-button ui-widget ui-state-default"/>--}%
+
+%{--<g:textField name="input"  value=""--}%
+%{--autocomplete="off"--}%
+%{--style="display: inline;  font-family: tahoma ; width: 100% !important;"--}%
+%{--placeholder=""--}%
+%{--class="commandBarTexFieldTop"/>--}%
+%{--</g:formRemote>--}%
+
+%{--<g:formRemote name="batchAdd2"--}%
+%{--url="[controller: 'generics', action: 'actionDispatcher']"--}%
+%{--update="centralArea" style="display: inline"--}%
+%{--method="post">--}%
+%{--<g:hiddenField name="sth2" value="${new java.util.Date()}"/>--}%
+%{--<g:submitButton name="batch" value="Execute"--}%
+%{--style="height: 20px; margin: 0px; width: 100px !important; display: none"--}%
+%{--id="quickAddXcdSubmitTop7"--}%
+%{--class="fg-button ui-widget ui-state-default"/>--}%
+
+%{--<g:textField name="input" value=""--}%
+%{--autocomplete="off"--}%
+%{--style="display: inline;  font-family: tahoma ; width: 100% !important;"--}%
+%{--placeholder=""--}%
+%{--class="commandBarTexFieldTop"/>--}%
+%{--</g:formRemote>--}%
+
+
+%{--<h6 style="text-aling: center"><a href="#" id="testTitle5">--}%
+%{--5--}%
+%{--</a></h6>--}%
+
+%{--<div id=5 class="common" style="">--}%
+%{--<div id="inner5" class="common" style="">--}%
+%{--</div>--}%
+
+%{--<g:formRemote name="batchAdd5"  class="commandBarInPanel"--}%
+%{--url="[controller: 'generics', action: 'actionDispatcher']"--}%
+%{--update="centralArea" style="display: inline"--}%
+%{--before="jQuery('#testTitle5').text('[5]: ' + jQuery('#testField5').val());"--}%
+%{--method="post">--}%
+%{--<g:hiddenField name="sth5" value="${new java.util.Date()}"/>--}%
+%{--<g:submitButton name="batch" value="Execute"--}%
+%{--style="height: 30px; margin: 0px; width: 100px !important; display: none"--}%
+
+%{--id="quickAddXcdSubmitTop8"--}%
+%{--class="fg-button ui-widget ui-state-default"/>--}%
+
+%{--<g:textField name="input"  value=""--}%
+%{--autocomplete="off"--}%
+%{--id="testField5"--}%
+%{--style="display: inline;  font-family: tahoma ; width: 100% !important;"--}%
+%{--placeholder=""--}%
+%{--class="commandBarTexFieldTop"/>--}%
+%{--</g:formRemote>--}%
+
+%{--</div>--}%
+
+</div>
+%{--<hr/>--}%
+%{--before="jQuery('#testTitle1').text('[1]: ' + jQuery('#quickAddTextFieldBottomTop').val());"--}%
+%{--if (jQuery('#quickAddTextFieldBottomTop').val().search('--')== -1){--}%
+%{--<div style="-moz-column-count: 3; -webkit-column-count:3">--}%
+<div id="hintArea" style="font-size: 12px; padding: 0px; margin: 0px; "></div>
+%{--</div>--}%
+
+</div>
+<script type="text/javascript">
+    jQuery(".chosen").chosen({allow_single_deselect: true, no_results_text: "None found"});
+    jQuery("#chosenTags").chosen({allow_single_deselect: true, no_results_text: "None found"});
+    jQuery("#chosenTagsArt").chosen({allow_single_deselect: true, no_results_text: "None found"});
+
+    //    jQuery("#addXcdFormNgs").relatedSelects({
+    //        onChangeLoad: '/nibras/generics/fetchCoursesForDepartment',
+    //        defaultOptionText: '',
+    //        selects: {
+    //            'department.id': {loadingMessage: ''},
+    //            'course.id': {loadingMessage: ''}
+    //        }
+    //    });
+
+    jQuery("#addArticleFormNgs").relatedSelects({
+        onChangeLoad: '/nibras/generics/fetchCoursesForDepartment',
+        defaultOptionText: '',
+        selects: {
+            'department.id': {loadingMessage: ''},
+            'course.id': {loadingMessage: ''}
+        }
+    });
+    jQuery("#addXcdFormNgs").relatedSelects({
+        onChangeLoad: '/nibras/generics/fetchWritingsForCourse',
+        defaultOptionText: '',
+        selects: {
+            'course.id': {loadingMessage: ''},
+            'writing.id': {loadingMessage: ''}
+        }
+    });
+
+    jQuery('#chosenTags_chzn').addClass('width95')
+    jQuery('#chosenTagsArt_chzn').addClass('width95')
+
+
+    var clearFormFields = function () {
+
+        jQuery('#title').val('')
+        jQuery('#summary').val('')
+        jQuery('#description').val('')
+        jQuery('#fullText').val('')
+        jQuery('#link').val('')
+        jQuery('#url').val('')
+        jQuery('#approximateDate').clear()
+    }
+
+
+    $(".common").prev('h6').click(function () {
+        document.getElementById("centralArea").setAttribute("id", "tmpId");
+        //$(this).id//.nextSibling().setAttribute("id", "centralArea");
+//        console.log(document.getElementById($(this).next().attr("id")).attr("id"))
+        //$(this).next()[0].firstChild.setAttribute("id", "centralArea");
+        $(this).next()[0].firstChild.nextSibling.setAttribute("id", "centralArea");
+        //console.log($(this).next().attr('id'));
+
+
+        //alert(currentID);
+
+//        $(this).next().setAttribute("id", "centralArea");
+
+    });
+
+
+</script>
\ No newline at end of file
diff --git a/grails-app/views/appKanban/_west.gsp b/grails-app/views/appKanban/_west.gsp
new file mode 100644
index 0000000..7c5e70a
--- /dev/null
+++ b/grails-app/views/appKanban/_west.gsp
@@ -0,0 +1,19 @@
+<%@ page import="mcs.parameters.ResourceStatus; mcs.Goal; org.apache.commons.lang.StringUtils; mcs.Book; app.parameters.ResourceType; mcs.Writing; mcs.Department; mcs.parameters.WritingType; app.Tag; cmn.Setting; mcs.Course; mcs.Journal; mcs.Planner; app.IndexCard; mcs.Task; ker.OperationController" %>
+<div id="accordionWest" class="basic">
+
+
+   <h3 style="text-align: right;"><a href="#" >
+%{--                <g:message code="ui.Quran"></g:message>--}%
+
+            </a></h3>
+
+            <div>
+
+
+
+
+
+                </div>
+
+
+</div>
\ No newline at end of file
diff --git a/grails-app/views/appKanban/main.gsp b/grails-app/views/appKanban/main.gsp
new file mode 100644
index 0000000..b1268de
--- /dev/null
+++ b/grails-app/views/appKanban/main.gsp
@@ -0,0 +1,483 @@
+%{--
+  - Copyright (c) 2018. Mohamad F. Fakih (mail@khuta.org)
+  -
+  - This program is free software: you can redistribute it and/or modify
+  - it under the terms of the GNU General Public License as published by
+  - the Free Software Foundation, either version 3 of the License, or
+  - (at your option) any later version.
+  -
+  - This program is distributed in the hope that it will be useful,
+  - but WITHOUT ANY WARRANTY; without even the implied warranty of
+  - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  - GNU General Public License for more details.
+  -
+  - You should have received a copy of the GNU General Public License
+  - along with this program.  If not, see <http://www.gnu.org/licenses/>
+  --}%
+
+<%@ page import="ker.OperationController; cmn.Setting" %>
+<html xmlns="http://www.w3.org/1999/xhtml" >
+%{--xml:lang="ar" lang="ar" dir="rtl"--}%
+<head>
+
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    %{--<meta name="layout" content="main"/>--}%
+
+
+    %{--<b style="color: white">--}%
+
+
+    <title style="direction: ltr; text-align: left;">${OperationController.getPath('app.name') ? OperationController.getPath('app.name') + ' /Kanban': 'Nibras PKM /Kanban'}
+    %{--<g:meta name="app.version"/>--}%
+
+
+
+    </title>
+
+
+    %{--<link rel="shortcut icon" href="${resource(dir: 'images', file: 'favicon-transparent.png')}" type="image/png"/>--}%
+    <link rel="shortcut icon" href="${resource(dir: 'images', file: 'calendar.ico')}" type="image/ico"/>
+
+
+
+    <link rel="stylesheet" href="${resource(dir: 'css', file: 'chosen.css')}"/>
+    <link rel="stylesheet" href="${resource(dir: 'css', file: 'jquery-ui-1.8.22.custom.css')}"/>
+    <link rel="stylesheet" href="${resource(dir: 'css', file: 'jquery.continuousCalendar.css')}"/>
+    <link rel="stylesheet" href="${resource(dir: 'css', file: 'jqueryui-editable.css')}"/>
+%{--    <link rel="stylesheet" href="${resource(dir: 'css', file: 'layout-mine.css')}"/>--}%
+    <link rel="stylesheet" href="${resource(dir: 'css', file: 'main-kanban.css')}"/>
+%{--    <link rel="stylesheet" href="${resource(dir: 'css', file: 'personalization.css')}"/>--}%
+    <link rel="stylesheet" href="${resource(dir: 'css', file: 'simpleSlider.css')}"/>
+
+%{--    <link rel="stylesheet" href="${resource(dir: 'css', file: 'uploader.css')}"/>--}%
+
+
+
+
+    <script type="text/javascript" src="${resource(dir: 'js', file: 'jquery-1.11.0_min.js')}"></script>
+    <script type="text/javascript" src="${resource(dir: 'js', file: 'jquery-ui-1.10.4.custom.min.js')}"></script>
+    <script type="text/javascript" src="${resource(dir: 'js', file: 'chosen.jquery.min.js')}"></script>
+    <script type="text/javascript" src="${resource(dir: 'js', file: 'am2_SimpleSlider.js')}"></script>
+    <script type="text/javascript" src="${resource(dir: 'js', file: 'jquery.address-1.5.min.js')}"></script>
+    <script type="text/javascript" src="${resource(dir: 'js', file: 'jquery.continuousCalendar-latest.js')}"></script>
+    <script type="text/javascript" src="${resource(dir: 'js', file: 'jquery.layout-latest_min.js')}"></script>
+    <script type="text/javascript" src="${resource(dir: 'js', file: 'jquery.purr.js')}"></script>
+    <script type="text/javascript" src="${resource(dir: 'js', file: 'jquery.relatedselects.min.js')}"></script>
+    <script type="text/javascript" src="${resource(dir: 'js', file: 'jquery.tablednd_0_5.js')}"></script>
+    <script type="text/javascript" src="${resource(dir: 'js', file: 'jqueryui-editable.min.js')}"></script>
+    <script type="text/javascript" src="${resource(dir: 'js', file: 'morris.js')}"></script>
+%{--    <script type="text/javascript" src="${resource(dir: 'js', file: 'jquery.idletimeout.js')}"></script>--}%
+%{--    <script type="text/javascript" src="${resource(dir: 'js', file: 'jquery.idletimer.js')}"></script>--}%
+    <script type="text/javascript" src="${resource(dir: 'js', file: 'mousetrap.min.js')}"></script>
+    <script type="text/javascript" src="${resource(dir: 'js', file: 'mousetrap-global-bind.min.js')}"></script>
+
+    <script type="text/javascript" src="${resource(dir: 'js', file: 'raphael-min.js')}"></script>
+    <script type="text/javascript" src="${resource(dir: 'js', file: 'typeahead.bundle.js')}"></script>
+
+
+%{--    <asset:javascript src="uploadr.manifest.js"/>--}%
+%{--    <asset:javascript src="uploadr.demo.manifest.js"/>--}%
+%{--    <asset:stylesheet href="uploadr.manifest.css"/>--}%
+%{--    <asset:stylesheet href="uploadr.demo.manifest.css"/>--}%
+
+
+   %{--<r:layoutResources/>--}%
+
+    <script type="text/javascript">
+
+        //    $.address.state('/nibras/')
+        $.address.externalChange(function (event) {
+            // do something depending on the event.value property, e.g.
+            // $('#content').load(event.value + '.xml');
+            // console.log('fired ' + event.value)
+            //
+
+            // commented 03.07.2019
+            // if (event.value != '/')
+                //jQuery('#centralArea').load(event.value)
+        });
+
+        /**
+         *    UI Layout Callback: resizePaneAccordions
+         *
+         *    This callback is used when a layout-pane contains 1 or more accordions
+         *    - whether the accordion a child of the pane or is nested within other elements
+         *    Assign this callback to the pane.onresize event:
+         *
+         *    SAMPLE:
+         *    < jQuery UI 1.9: $("#elem").tabs({ show: $.layout.callbacks.resizePaneAccordions });
+         *    > jQuery UI 1.9: $("#elem").tabs({ activate: $.layout.callbacks.resizePaneAccordions });
+         *    $("body").layout({ center__onresize: $.layout.callbacks.resizePaneAccordions });
+         *
+         *    Version:    1.2 - 2013-01-12
+         *    Author:        Kevin Dalman (kevin.dalman@gmail.com)
+         */
+        ;
+        (function ($) {
+            var _ = $.layout;
+
+// make sure the callbacks branch exists
+            if (!_.callbacks) _.callbacks = {};
+
+            _.callbacks.resizePaneAccordions = function (x, ui) {
+                // may be called EITHER from layout-pane.onresize OR tabs.show
+                var $P = ui.jquery ? ui : $(ui.newPanel || ui.panel);
+                // find all VISIBLE accordions inside this pane and resize them
+                $P.find(".ui-accordion:visible").each(function () {
+                    var $E = $(this);
+                    if ($E.data("accordion"))		// jQuery < 1.9
+                        $E.accordion("resize");
+                    if ($E.data("ui-accordion"))	// jQuery >= 1.9
+                        $E.accordion("refresh");
+                });
+            };
+        })(jQuery);
+
+
+        jQuery(document).ready(function () {
+
+         //   for (var i = 0; i < localStorage.length; i++) {
+                // do something with localStorage.getItem(localStorage.key(i));
+         //       var key = localStorage.key(i)
+         //       var value = localStorage[key]
+
+
+//            console.log('key ' + key + 'value' + value)
+//            if ((typeof value == 'string' || value instanceof String) && !value.contains('datum'))
+//            if (value.contains('pkm-'))
+//            document.getElementById('commandHistory').options.add(new Option(value, localStorage.key(i)))
+
+
+         //   }
+
+
+            myLayout = $('body').layout({
+                west__size: 360,
+                east__size: 360,
+                // east__initClosed: true,
+                east__togglerContent_closed: '<<',
+                // RESIZE Accordion widget when panes resize
+                west__onresize: $.layout.callbacks.resizePaneAccordions,
+                east__onresize: $.layout.callbacks.resizePaneAccordions,
+                onresize: $.layout.callbacks.resizePaneAccordions,
+                north__closable: false,
+                south__closable: false,
+                north__spacing_closed: 5		// big resizer-bar when open (zero height)
+                , north__resizable: false	// OVERRIDE the pane-default of 'resizable=true'
+                , south__resizable: false	// OVERRIDE the pane-default of 'resizable=true'
+                , north__spacing_open: 5		// no resizer-bar when open (zero height)
+                , south__spacing_open: 5		// no resizer-bar when open (zero height)
+                , south__spacing_closed: 5		// big resizer-bar when open (zero height)
+
+                , east__spacing_open: 5		// no resizer-bar when open (zero height)
+                , east__spacing_closed: 25		// big resizer-bar when open (zero height)
+                , west__spacing_open: 0		// no resizer-bar when open (zero height)
+                , west__spacing_closed: 15		// big resizer-bar when open (zero height)
+//            , west__initClosed: true
+                , west__slideTrigger_open: 'mouseover'
+                , east__slideTrigger_open: 'mouseover'
+
+
+            });
+
+
+            $.fn.editable.defaults.mode = 'inline';
+            $.fn.editable.defaults.showbuttons = false;
+
+            jQuery('.fg-button').hover(
+                    function () {
+                        jQuery(this).removeClass('ui-state-default').addClass('ui-state-focus');
+                    },
+                    function () {
+                        jQuery(this).removeClass('ui-state-focus').addClass('ui-state-default');
+                    }
+            );
+
+            var matched, browser;
+
+            jQuery.uaMatch = function (ua) {
+                ua = ua.toLowerCase();
+
+                var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
+                        /(webkit)[ \/]([\w.]+)/.exec(ua) ||
+                        /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
+                        /(msie) ([\w.]+)/.exec(ua) ||
+                        ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
+                        [];
+
+                return {
+                    browser: match[1] || "",
+                    version: match[2] || "0"
+                };
+            };
+
+            matched = jQuery.uaMatch(navigator.userAgent);
+            browser = {};
+
+            if (matched.browser) {
+                browser[matched.browser] = true;
+                browser.version = matched.version;
+            }
+
+// Chrome is Webkit, but Webkit is also Safari.
+            if (browser.chrome) {
+                browser.webkit = true;
+            } else if (browser.webkit) {
+                browser.safari = true;
+            }
+
+            jQuery.browser = browser;
+
+            // this layout could be created with NO OPTIONS - but showing some here just as a sample...
+            // myLayout = jQuery('body').layout(); -- syntax with No Options
+
+//        jQuery('input').iCheck({
+//            checkboxClass: 'icheckbox_minimal-grey',
+//            radioClass: 'iradio_minimal-grey',
+//            increaseArea: '-20%' // optional
+//        });
+
+//        jQuery('#searchForm').load('/nibras/generics/hqlSearchForm/T')
+        jQuery('#tagCloud').load('/nibras/report/tagCloud')
+
+// jQuery('#centralArea').load('/nibras/generics/recentRecords')
+
+//        jQuery('#quickAddTextField').select();
+//        jQuery('#quickAddTextField').focus();
+
+            jQuery('#range_start').val('')
+            jQuery('#range_end').val('')
+
+            jQuery("#dateRange1").continuousCalendar({
+                "selectToday": false,
+                "weeksBefore": "40",//"1/1/2012",
+                "weeksAfter": "8",
+                "minimumRange": "-1",
+                %{--"disabledDates": "${filledInDates}",--}%
+                "disabledDatesMy": "${[]}",
+                "fadeOutDuration": "0",
+                isPopup: false,
+                callback: function () {
+                    jQuery('#centralArea').load('${createLink(controller: 'report', action: 'saveDateSelection')}?date1=' +
+                            jQuery('#range_start').val() + '&date2='
+                            + jQuery('#range_end').val())//      + '&level=d')
+                }
+            })
+
+            $("#accordionEast").accordion({
+                heightStyle: "fill",
+                header: "h3",
+                fillSpace: true,
+                event: "click",
+                active: 0,
+                collapsible: false,
+                icons: {
+                    header: "ui-icon-circle-arrow-e",
+                    headerSelected: "ui-icon-circle-arrow-s"
+                }
+
+            });
+
+            $("#accordionWest").accordion({
+                heightStyle: "fill",
+                fillSpace: true,
+                header: "h3",
+                event: "click",
+                active: 0,
+                collapsible: false,
+                icons: {
+                    header: "ui-icon-circle-arrow-e",
+                    headerSelected: "ui-icon-circle-arrow-s"
+                }
+
+            });
+
+
+$("#accordionCenter").accordion({
+                heightStyle: "fill",
+                header: "h6",
+                fillSpace: true,
+                event: "click",
+                active: 0,
+                collapsible: false,
+                icons: {
+                    header: "ui-icon-circle-arrow-e",
+                    headerSelected: "ui-icon-circle-arrow-s"
+                }
+
+            });
+
+
+
+
+
+
+        Mousetrap.bindGlobal('ctrl+1', function (e) {
+                jQuery('#accordionCenter').accordion({ active: 0});
+            });
+          Mousetrap.bindGlobal('ctrl+2', function (e) {
+                jQuery('#accordionCenter').accordion({ active: 1});
+            });
+          Mousetrap.bindGlobal('ctrl+3', function (e) {
+                jQuery('#accordionCenter').accordion({ active: 2});
+            });
+          Mousetrap.bindGlobal('ctrl+4', function (e) {
+                jQuery('#accordionCenter').accordion({ active: 3});
+            });
+
+     Mousetrap.bindGlobal('esc', function (e) {
+//            jQuery("html, body").animate({ scrollTop: 0 }, "fast");
+//            jQuery('#centralArea').html('');
+                jQuery('#speedsearch').select(); jQuery('#speedsearch').focus();
+//                jQuery('#quickAddTextFieldBottomTop').select();
+//                jQuery('#3rdPanel').html('');
+//                jQuery('#sandboxPanel').html('');
+//			jQuery('#commandBars').addClass('navHidden');
+                //	jQuery('#accordionEast').accordion({ active: 3});
+                //	jQuery('#accordionWest').accordion({ active: 3});
+//            jQuery('#quickAddTextField').scrollTop(0);
+            });
+
+//        Mousetrap.bindGlobal('esc', function (e) {
+//
+////            jQuery('#centralArea').html('');
+////            jQuery('#quickAddTextField').focus();
+////            jQuery('#quickAddTextField').select();
+//            jQuery('#quickAddRecordTextArea').select().focus();
+//
+//        });
+
+//            Mousetrap.bindGlobal('f6', function (e) {
+//                jQuery('#centralArea').html('');
+//                jQuery('#quickAddTextField').focus();
+//                jQuery('#quickAddTextField').select();
+//
+//            });
+
+            var collapsed = false;
+            Mousetrap.bindGlobal('f9', function (e) {
+                if (!collapsed) {
+                    jQuery('#topRegion').addClass('navHidden');
+                    jQuery('#navMenu').addClass('navHidden');
+                    jQuery('#southRegion').addClass('navHidden');
+                    collapsed = true
+                }
+                else {
+                    jQuery('#topRegion').removeClass('navHidden');
+                    jQuery('#navMenu').removeClass('navHidden');
+                    jQuery('#southRegion').removeClass('navHidden');
+                    collapsed = false
+                }
+
+            });
+
+            Mousetrap.bind('n', function (e) {
+                jQuery('.nextLink').click()
+            });
+
+            Mousetrap.bind('ctrl+s', function (e) {
+                jQuery('#quickAddRecordSubmit').click()
+            });
+
+            Mousetrap.bind('p', function (e) {
+                jQuery('.prevLink').click()
+            });
+
+            /*
+             For modifier keys you can use shift, ctrl, alt, option, meta, and command.
+
+             Other special keys are backspace, tab, enter, return, capslock, esc,
+             escape, space, pageup, pagedown, end, home, left, up, right, down, ins, and del.
+
+             Any other key you should be able to reference by name like a, /, $, *, or =.
+
+             */
+
+            jQuery("#quickAddTextField").keypress(function (e) {
+                if (e.keyCode == 13 && e.shiftKey) {
+                    jQuery('#quickAddXcdSubmit').click();
+                    e.preventDefault();
+//                   jQuery('#quickAddTextField').addClass('shiftEnterPressed');
+//                   jQuery("#quickAddTextField").fadeOut("fast", function () {
+                    jQuery('#quickAddTextField').addClass('shiftEnterPressed');
+                    setTimeout(dosth, 400);
+                }
+            });
+            function dosth() {
+                jQuery('#quickAddTextField').removeClass('shiftEnterPressed')
+            }
+
+//            Mousetrap.bindGlobal('f2', function (e) {
+//      jQuery('#quickAddXcdSubmit').click();
+//                jQuery('#addXcdFormDaftarSubmit').click();
+//                jQuery('#descriptionDaftar').focus();
+//            jQuery('#quickAddXcdField').focus();
+//            });
+
+            //Todo how to disable formRemote submission
+            // document.forms.quickAddForm['submit'].disabled = true;
+
+
+            jQuery(window).bind('beforeunload', function () {
+                return 'Are you sure you want to leave the application?';
+            });
+
+
+            jQuery.ajaxSetup({
+                beforeSend: function () {
+                    $('#spinner2').show();
+                },
+                complete: function () {
+                    $('#spinner2').hide();
+                }
+                ,
+                success: function () {
+                    $('#spinner2').hide();
+                }
+            });
+
+            jQuery(document).ajaxComplete(function () {
+                $('#spinner2').hide();
+            });
+
+            jQuery(document).ajaxStop(function () {
+                $('#spinner2').hide();
+            });
+            jQuery(document).ajaxSuccess(function () {
+                $('#spinner2').hide();
+            });
+
+            $(document).ajaxError(function () {
+                $('#spinner2').hide();
+            });
+
+            jQuery('#descriptionDaftar').focus();
+        });
+
+    </script>
+
+</head>
+
+<body>
+
+<g:render template="/appKanban/regions" model="[htmlContent: htmlContent]"/>
+<div id="idletimeout"></div>
+
+
+
+<script type="text/javascript">
+    jQuery('#selectAll').click(function() {
+        if (this.checked) {
+            jQuery(':checkbox').each(function() {this.checked = true;});
+        } else {
+            jQuery(':checkbox').each(function() {
+                this.checked = false;
+            });
+        }
+    });
+
+    //    });
+
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/grails-app/views/appMain/_east.gsp b/grails-app/views/appMain/_east.gsp
index c355a05..b82deb4 100644
--- a/grails-app/views/appMain/_east.gsp
+++ b/grails-app/views/appMain/_east.gsp
@@ -2,818 +2,810 @@
 
 <div id="accordionEast" class="basic">
 
-        <h3><a href="#">
-            <g:message code="ui.details"></g:message>
+    <h3><a href="#">
+        <g:message code="ui.details"></g:message>
 
-        </a></h3>
+    </a></h3>
 
-        <div id="3rdPanel">
+    <div id="3rdPanel">
 
-        </div>
+    </div>
 
 
 
-        %{--<sec:ifAnyGranted roles="ROLE_ADMIN">--}%
-        %{--<h3><a href="#">--}%
-        %{--<g:message code="ui.sandbox"></g:message>--}%
+    %{--<sec:ifAnyGranted roles="ROLE_ADMIN">--}%
+    %{--<h3><a href="#">--}%
+    %{--<g:message code="ui.sandbox"></g:message>--}%
 
-        %{--</a></h3>--}%
+    %{--</a></h3>--}%
 
-        %{--<div id='sandboxPanel'>--}%
+    %{--<div id='sandboxPanel'>--}%
 
-        %{--</div>--}%
-        %{--</sec:ifAnyGranted>--}%
+    %{--</div>--}%
+    %{--</sec:ifAnyGranted>--}%
 
-        %{--<h4>Add records</h4>--}%
-        %{--<hr/>--}%
+    %{--<h4>Add records</h4>--}%
+    %{--<hr/>--}%
 
-        <h3 class="accordionPanelAdd" style="margin-top: 5px;"><a href="#">
-            <g:message code="ui.add"></g:message>
-        </a></h3>
+    <h3 class="accordionPanelAdd" style="margin-top: 5px;"><a href="#">
+        <g:message code="ui.add"></g:message>
+    </a></h3>
 
-        <div id=''>
+    <div id=''>
 
-            <b>Using sheet:</b>
+        <b>Using sheet:</b>
 
-            <ul>
-                <g:if test="${ker.OperationController.getPath('indicators.enabled')?.toLowerCase() == 'yes' ? true : false}">
-                    <li><g:remoteLink controller="report" action="indicatorPanorama"
-                                      update="centralArea"
-                                      title="Update indicators">
-                        <g:message code="ui.indicators"></g:message>
-                    </g:remoteLink></li>
+        <ul>
+            <g:if test="${ker.OperationController.getPath('indicators.enabled')?.toLowerCase() == 'yes' ? true : false}">
+                <li><g:remoteLink controller="report" action="indicatorPanorama"
+                                  update="centralArea"
+                                  title="Update indicators">
+                    <g:message code="ui.indicators"></g:message>
+                </g:remoteLink></li>
 
-                </g:if>
+            </g:if>
 
-                <g:if test="${OperationController.getPath('payments.enabled')?.toLowerCase() == 'yes' ? true : false}">
-                    <li><g:remoteLink controller="report" action="paymentPanorama"
-                                      update="centralArea"
-                                      title="Enter recent payments">
-                        Payments
-                    </g:remoteLink></li>
-                </g:if>
-                <li>
-                    <g:remoteLink controller="report" action="enterTasksWithContext"
+            <g:if test="${OperationController.getPath('payments.enabled')?.toLowerCase() == 'yes' ? true : false}">
+                <li><g:remoteLink controller="report" action="paymentPanorama"
                                   update="centralArea"
-                                  title="Enter new tasks">
-                        Tasks
-                    </g:remoteLink>
+                                  title="Enter recent payments">
+                    Payments
+                </g:remoteLink></li>
+            </g:if>
+            <li>
+                <g:remoteLink controller="report" action="enterTasksWithContext"
+                              update="centralArea"
+                              title="Enter new tasks">
+                    Tasks
+                </g:remoteLink>
 
-                </li>
-                <li>
-                    <g:remoteLink controller="report" action="enterJournalWithType"
-                                  update="centralArea"
-                                  title="Enter new journal entries">
-                        Journal
-                    </g:remoteLink>
+            </li>
+            <li>
+                <g:remoteLink controller="report" action="enterJournalWithType"
+                              update="centralArea"
+                              title="Enter new journal entries">
+                    Journal
+                </g:remoteLink>
 
-                </li>
+            </li>
 
-            </ul>
-            <br/>
-            <hr/>
-            <br/>
-            <b>Using forms:</b>
-
-
-            <span style="-moz-column-count: 2">
-                <ul style="list-style: square">
-
-                    <g:each in="${
-                        [
-                                [enabled: OperationController.getPath('goals.enabled')?.toLowerCase() == 'yes', code: 'G', name: 'Goals', controller: 'mcs.Goal'],
-                                [enabled: OperationController.getPath('tasks.enabled')?.toLowerCase() == 'yes', code: 'T', name: 'Tasks', controller: 'mcs.Task'],
-                                [enabled: OperationController.getPath('planner.enabled')?.toLowerCase() == 'yes', code: 'P', name: 'Planner', controller: 'mcs.Planner'],
-                                [enabled: OperationController.getPath('journal.enabled')?.toLowerCase() == 'yes', code: 'J', name: 'Journal', controller: 'mcs.Journal'],
-                                [enabled: OperationController.getPath('indicators.enabled')?.toLowerCase() == 'yes', code: 'I', name: 'Indicator', controller: 'app.IndicatorData'],
-                                [enabled: OperationController.getPath('Payment.enabled')?.toLowerCase() == 'yes', code: 'Q', name: 'Payment', controller: 'app.Payment'],
-                                [enabled: OperationController.getPath('writings.enabled')?.toLowerCase() == 'yes', code: 'W', name: 'Writing', controller: 'mcs.Writing'],
-                                [enabled: OperationController.getPath('notes.enabled')?.toLowerCase() == 'yes', code: 'N', name: 'Notes', controller: 'app.IndexCard',],
-                                [enabled: OperationController.getPath('resources.enabled')?.toLowerCase() == 'yes', code: 'R', name: 'Resources', controller: 'mcs.Book'],
-                                [enabled: OperationController.getPath('contacts.enabled')?.toLowerCase() == 'yes', code: 'S', name: 'Contact', controller: 'app.Contact']
-                        ].grep { it.enabled == true }
-                    }"
-                            var="i">
-                    %{--todo--}%
-
-                        <g:remoteLink controller="generics" action="fetchAddForm"
-                                      params="[entityController: i.controller, updateRegion: 'centralArea']"
-                                      update="centralArea">
-                            <li>
-                                <span style="font-size: 12px; padding: 2px;">
-                                    ${i.name} (${i.code})
-                                </span>
-                            </li>
-                        </g:remoteLink>
+        </ul>
+        <br/>
+        <hr/>
+        <br/>
+        <b>Using forms:</b>
+
+
+        <span style="-moz-column-count: 2">
+            <ul style="list-style: square">
+
+                <g:each in="${
+                    [
+                            [enabled: OperationController.getPath('goals.enabled')?.toLowerCase() == 'yes', code: 'G', name: 'Goals', controller: 'mcs.Goal'],
+                            [enabled: OperationController.getPath('tasks.enabled')?.toLowerCase() == 'yes', code: 'T', name: 'Tasks', controller: 'mcs.Task'],
+                            [enabled: OperationController.getPath('planner.enabled')?.toLowerCase() == 'yes', code: 'P', name: 'Planner', controller: 'mcs.Planner'],
+                            [enabled: OperationController.getPath('journal.enabled')?.toLowerCase() == 'yes', code: 'J', name: 'Journal', controller: 'mcs.Journal'],
+                            [enabled: OperationController.getPath('indicators.enabled')?.toLowerCase() == 'yes', code: 'I', name: 'Indicator', controller: 'app.IndicatorData'],
+                            [enabled: OperationController.getPath('Payment.enabled')?.toLowerCase() == 'yes', code: 'Q', name: 'Payment', controller: 'app.Payment'],
+                            [enabled: OperationController.getPath('writings.enabled')?.toLowerCase() == 'yes', code: 'W', name: 'Writing', controller: 'mcs.Writing'],
+                            [enabled: OperationController.getPath('notes.enabled')?.toLowerCase() == 'yes', code: 'N', name: 'Notes', controller: 'app.IndexCard',],
+                            [enabled: OperationController.getPath('resources.enabled')?.toLowerCase() == 'yes', code: 'R', name: 'Resources', controller: 'mcs.Book'],
+                            [enabled: OperationController.getPath('contacts.enabled')?.toLowerCase() == 'yes', code: 'S', name: 'Contact', controller: 'app.Contact']
+                    ].grep { it.enabled == true }
+                }"
+                        var="i">
+                %{--todo--}%
 
-                    </g:each>
-                </ul>
+                    <g:remoteLink controller="generics" action="fetchAddForm"
+                                  params="[entityController: i.controller, updateRegion: 'centralArea']"
+                                  update="centralArea">
+                        <li>
+                            <span style="font-size: 12px; padding: 2px;">
+                                ${i.name} (${i.code})
+                            </span>
+                        </li>
+                    </g:remoteLink>
 
-            </span>
+                </g:each>
+            </ul>
 
+        </span>
 
-            <br/><hr/>
-            <br/>
 
-            <b>By importing files named in Nibras format:</b>
+        <br/><hr/>
+        <br/>
 
-            <ul>
+        <b>By importing files named in Nibras format:</b>
 
-                <li>
+        <ul>
 
-                    <g:if test="${OperationController.getPath('import.enabled')?.toLowerCase() == 'yes' ? true : false}">
-                        <g:remoteLink controller="import" action="importLocalFiles"
-                                      update="centralArea"
-                                      before="jQuery.address.value(jQuery(this).attr('href'));"
-                                      title="Import local files">
-                            Import files (in <b>${OperationController.getPath('root.rps1.path')}</b>)
-                        </g:remoteLink>
-                    </g:if>
-                </li>
-            </ul>
-            <br/><hr/>
-            <br/>
-            <br/>
+            <li>
 
-        </div>
+                <g:if test="${OperationController.getPath('import.enabled')?.toLowerCase() == 'yes' ? true : false}">
+                    <g:remoteLink controller="import" action="importLocalFiles"
+                                  update="centralArea"
+                                  before="jQuery.address.value(jQuery(this).attr('href'));"
+                                  title="Import local files">
+                        Import files (in <b>${OperationController.getPath('root.rps1.path')}</b>)
+                    </g:remoteLink>
+                </g:if>
+            </li>
+        </ul>
+        <br/><hr/>
+        <br/>
+        <br/>
 
-        <h3 class="accordionPanelAdd"><a href="#">
-            <g:message code="ui.add.full.art"></g:message>
+    </div>
 
-        </a></h3>
+    <h3 class="accordionPanelAdd"><a href="#">
+        <g:message code="ui.add.full.art"></g:message>
 
-        <div id='addArticle'>
+    </a></h3>
 
-            <g:formRemote name="addArticleFormNgs" id="addArticleFormNgs"
-                          url="[controller: 'indexCard', action: 'addArticleFormNgs']"
-                          update="centralArea"
-                          method="post">
-
-                <g:select name="language" from="${['ar', 'fr', 'en', 'de', 'fa']}"
-                          id="language"
-                          value="ar"
-                          noSelection="${['null': '']}"/>
-                <g:select name="priority" from="${(1..4)}"
-                          id="priorityArticle"
-                          value="${2}"/>
-
-                <g:select name="department.id" from="${Department.list([sort: 'code'])}"
-                          optionKey="id" id="department"
-                          optionValue="code"
-                          noSelection="${['null': '']}"/>
-
-                <g:select name="course.id" from="${Course.list()}"
-                          optionKey="id" class="chosen" id="course"
-                          optionValue="summary"
-                          noSelection="${['null': '']}"/>
-                <br/>
-                <pkm:datePicker name="publishedOn" placeholder="Date" id="34563453" value="${new Date()}"/>
-                %{--~<g:checkBox name="approximateDate" id="approximateDate" value=""/>--}%
+    <div id='addArticle'>
 
+        <g:formRemote name="addArticleFormNgs" id="addArticleFormNgs"
+                      url="[controller: 'indexCard', action: 'addArticleFormNgs']"
+                      update="centralArea"
+                      method="post">
 
-                <g:select name="type.id" from="${app.parameters.ResourceType.list([sort: 'code'])}"
-                          optionKey="id" class="chosen chosen-rtl" id="type"
-                          optionValue="name"
-                          value="${ResourceType.findByCode('art')?.id}"
-                          noSelection="${['null': '']}"/>
+            <g:select name="language" from="${['ar', 'fr', 'en', 'de', 'fa']}"
+                      id="language"
+                      value="ar"
+                      noSelection="${['null': '']}"/>
+            <g:select name="priority" from="${(1..4)}"
+                      id="priorityArticle"
+                      value="${2}"/>
 
+            <g:select name="department.id" from="${Department.list([sort: 'code'])}"
+                      optionKey="id" id="department"
+                      optionValue="code"
+                      noSelection="${['null': '']}"/>
 
+            <g:select name="course.id" from="${Course.list()}"
+                      optionKey="id" class="chosen" id="course"
+                      optionValue="summary"
+                      noSelection="${['null': '']}"/>
+            <br/>
+            <pkm:datePicker name="publishedOn" placeholder="Date" id="34563453" value="${new Date()}"/>
+        %{--~<g:checkBox name="approximateDate" id="approximateDate" value=""/>--}%
 
-                <a onclick="clearFormFields()">Clear</a>
-                <br/>
-                <g:textField placeholder="Title" name="title" id="title" value=""
-                             style="background: #e8efe7; width: 100%;" dir="auto"/>
 
-                <g:textArea cols="80" rows="12" placeholder="Full text" name="fullText" id="fullText"
-                            value="" dir="auto"
-                            style="font-family: tahoma; font-size: small; background: #f7fff6; width: 100%; height: 200px !important;"/>
-                <br/>
+            <g:select name="type.id" from="${app.parameters.ResourceType.list([sort: 'code'])}"
+                      optionKey="id" class="chosen chosen-rtl" id="type"
+                      optionValue="name"
+                      value="${ResourceType.findByCode('art')?.id}"
+                      noSelection="${['null': '']}"/>
 
-                <g:textField placeholder="url" name="url" id="url" value="" style="width: 100%;"/>
-            %{--NR: <g:textField placeholder="sourceFree" name="sourceFree" id="sourceFree" value="" style="width: 100%;"/>--}%
 
-                <br/>
-                <br/>
-            %{--<g:select name="chosenTagsArt" from="${Tag.list()}" multiple=""--}%
-            %{--size="80" style="min-width: 200px; min-height: 40px;"--}%
-            %{--value="" optionKey="id"--}%
-            %{--class="chosen chosen-rtl" id="chosenTagsArt"--}%
-            %{--optionValue="name"--}%
-            %{--noSelection="${['null': '']}"/>--}%
-            %{----}%
-            %{--<br/>--}%
-            %{--<br/>--}%
 
-                <g:submitButton name="save" value="Save"
-                                style="height: 25px; margin: 0px; width: 100% !important; background: #efece0"
-                                id="4568734523"
-                                class="fg-button ui-widget ui-state-default"/>
-            </g:formRemote>
+            <a onclick="clearFormFields()">Clear</a>
+            <br/>
+            <g:textField placeholder="Title" name="title" id="title" value=""
+                         style="background: #e8efe7; width: 100%;" dir="auto"/>
 
-        </div>
+            <g:textArea cols="80" rows="12" placeholder="Full text" name="fullText" id="fullText"
+                        value="" dir="auto"
+                        style="font-family: tahoma; font-size: small; background: #f7fff6; width: 100%; height: 200px !important;"/>
+            <br/>
 
+            <g:textField placeholder="url" name="url" id="url" value="" style="width: 100%;"/>
+        %{--NR: <g:textField placeholder="sourceFree" name="sourceFree" id="sourceFree" value="" style="width: 100%;"/>--}%
 
-        <h3 class="accordionPanelAdd"><a href="#">
-            <g:message code="ui.add.full.note"></g:message>
+            <br/>
+            <br/>
+        %{--<g:select name="chosenTagsArt" from="${Tag.list()}" multiple=""--}%
+        %{--size="80" style="min-width: 200px; min-height: 40px;"--}%
+        %{--value="" optionKey="id"--}%
+        %{--class="chosen chosen-rtl" id="chosenTagsArt"--}%
+        %{--optionValue="name"--}%
+        %{--noSelection="${['null': '']}"/>--}%
+        %{----}%
+        %{--<br/>--}%
+        %{--<br/>--}%
+
+            <g:submitButton name="save" value="Save"
+                            style="height: 25px; margin: 0px; width: 100% !important; background: #efece0"
+                            id="4568734523"
+                            class="fg-button ui-widget ui-state-default"/>
+        </g:formRemote>
+
+    </div>
+
+
+    <h3 class="accordionPanelAdd"><a href="#">
+        <g:message code="ui.add.full.note"></g:message>
+
+    </a></h3>
+
+    <div id='addXcd'>
+
+        <g:formRemote name="addXcdFormNgs" id="addXcdFormNgs"
+                      url="[controller: 'indexCard', action: 'addXcdFormNgs']"
+                      update="centralArea"
+                      onComplete="clearFormFields()"
+                      method="post">
+
+            <g:select name="language" from="${['ar', 'fr', 'en', 'de', 'fa']}"
+                      id="language"
+                      value="ar"
+                      noSelection="${['null': '']}"/>
+
+            <g:select name="priority" from="${(1..4)}"
+                      id="priorityNote"
+                      value="${2}"/>
+
+
+            <g:select name="department.id" from="${Department.list([sort: 'code'])}"
+                      optionKey="id" id="department"
+                      optionValue="code"
+                      noSelection="${['null': 'd-']}"/>
+
+            <g:select name="course.id"
+                      from="${Course.executeQuery('from Course c where c.bookmarked = true order by c.department.orderNumber asc, c.orderNumber asc')}"
+                      optionKey="id"
+                      id="courseNote"
+                      class="chosen chosen-rtl"
+                      optionValue="summary"
+                      noSelection="${['null': 'No course']}"/>
+            <br/>
+            <pkm:datePicker name="writtenOn" placeholder="Date" id="34563453" value="${new Date()}"/>
+        %{--~<g:checkBox name="approximateDate" id="approximateDate" value=""/>--}%
 
-        </a></h3>
+            <g:select name="type.id" from="${WritingType.list([sort: 'code'])}"
+                      optionKey="id"
+                      id="typeNote"
+                      class="chosen chosen-rtl"
+                      optionValue="code"
+                      value="${WritingType.findByCode('usr')?.id}"
+                      noSelection="${['null': 'No type']}"/>
 
-        <div id='addXcd'>
+            <a onclick="clearFormFields()">Clear</a>
 
-            <g:formRemote name="addXcdFormNgs" id="addXcdFormNgs"
-                          url="[controller: 'indexCard', action: 'addXcdFormNgs']"
-                          update="centralArea"
-                          onComplete="clearFormFields()"
-                          method="post">
-
-                <g:select name="language" from="${['ar', 'fr', 'en', 'de', 'fa']}"
-                          id="language"
-                          value="ar"
-                          noSelection="${['null': '']}"/>
-
-                <g:select name="priority" from="${(1..4)}"
-                          id="priorityNote"
-                          value="${2}"/>
-
-
-                <g:select name="department.id" from="${Department.list([sort: 'code'])}"
-                          optionKey="id" id="department"
-                          optionValue="code"
-                          noSelection="${['null': 'd-']}"/>
-
-                <g:select name="course.id"
-                          from="${Course.executeQuery('from Course c where c.bookmarked = true order by c.department.orderNumber asc, c.orderNumber asc')}"
-                          optionKey="id"
-                          id="courseNote"
-                          class="chosen chosen-rtl"
-                          optionValue="summary"
-                          noSelection="${['null': 'No course']}"/>
-                <br/>
-                <pkm:datePicker name="writtenOn" placeholder="Date" id="34563453" value="${new Date()}"/>
-                %{--~<g:checkBox name="approximateDate" id="approximateDate" value=""/>--}%
-
-                <g:select name="type.id" from="${WritingType.list([sort: 'code'])}"
-                          optionKey="id"
-                          id="typeNote"
-                          class="chosen chosen-rtl"
-                          optionValue="code"
-                          value="${WritingType.findByCode('usr')?.id}"
-                          noSelection="${['null': 'No type']}"/>
+            <br/>
 
-                <a onclick="clearFormFields()">Clear</a>
+        %{--<g:select name="writing.id"--}%
+        %{--from="${Writing.executeQuery('from Writing w where w.course.bookmarked = ? order by w.course.department.orderNumber asc, w.course.orderNumber asc, w.orderNumber asc', [true])}"--}%
+        %{--optionKey="id"--}%
+        %{--id="writingNote"--}%
+        %{--optionValue="summary"--}%
+        %{--class="chosen chosen-rtl"--}%
+        %{--style="width: 48%; text-align: right; direction:rtl"--}%
+        %{--value="${null}"--}%
+        %{--noSelection="${['null': 'No writing']}"/>--}%
+        %{----}%
+
+
+
+        %{--<g:select name="contact.id"--}%
+        %{--from="${app.Contact.executeQuery('from Contact c order by c.summary asc')}"--}%
+        %{--optionKey="id"--}%
+        %{--id="contactNote"--}%
+        %{--optionValue="summary"--}%
+        %{--class="chosen chosen-rtl"--}%
+        %{--style="width: 48%; text-align: right; direction:rtl"--}%
+        %{--value="${null}"--}%
+        %{--noSelection="${['null': '']}"/>--}%
+
+
+        %{----}%
+        %{--<br/>--}%
+        %{--<g:select name="book.id"--}%
+        %{--from="${Book.executeQuery('from Book r where r.status.code = ? order by r.course.department.orderNumber asc, r.course.orderNumber asc, r.orderNumber asc', ['mkt'])}"--}%
+        %{--id="bookId"--}%
+        %{--optionKey="id"--}%
+        %{--optionValue="title"--}%
+        %{--class="chosen chosen-rtl"--}%
+        %{--style="width: 99%; text-align: right; direction:rtl"--}%
+        %{--value="${null}"--}%
+        %{--noSelection="${['null': '']}"/>--}%
+
+        %{----}%
+
+            <g:textField placeholder="Summary" name="summary" id="summary" value=""
+                         style="background: #e8efe7; width: 100%; ;" dir="auto"/>
+
+            <g:textArea cols="80" rows="12" placeholder="Description" name="description" id="description"
+                        value="" dir="auto"
+                        style="font-family: tahoma; font-size: small; background: #f7fff6; width: 100%; height: 150px !important;"/>
+            <br/>
 
-                <br/>
+            R ID: <g:textField placeholder="book.id" name="book.id" id="book.id" value="" style="width: 70%;"/>
 
-                %{--<g:select name="writing.id"--}%
-                          %{--from="${Writing.executeQuery('from Writing w where w.course.bookmarked = ? order by w.course.department.orderNumber asc, w.course.orderNumber asc, w.orderNumber asc', [true])}"--}%
-                          %{--optionKey="id"--}%
-                          %{--id="writingNote"--}%
-                          %{--optionValue="summary"--}%
-                          %{--class="chosen chosen-rtl"--}%
-                          %{--style="width: 48%; text-align: right; direction:rtl"--}%
-                          %{--value="${null}"--}%
-                          %{--noSelection="${['null': 'No writing']}"/>--}%
-                %{----}%
-
-
-
-            %{--<g:select name="contact.id"--}%
-            %{--from="${app.Contact.executeQuery('from Contact c order by c.summary asc')}"--}%
-            %{--optionKey="id"--}%
-            %{--id="contactNote"--}%
-            %{--optionValue="summary"--}%
-            %{--class="chosen chosen-rtl"--}%
-            %{--style="width: 48%; text-align: right; direction:rtl"--}%
-            %{--value="${null}"--}%
-            %{--noSelection="${['null': '']}"/>--}%
-
-
-             %{----}%
-                %{--<br/>--}%
-                %{--<g:select name="book.id"--}%
-                          %{--from="${Book.executeQuery('from Book r where r.status.code = ? order by r.course.department.orderNumber asc, r.course.orderNumber asc, r.orderNumber asc', ['mkt'])}"--}%
-                          %{--id="bookId"--}%
-                          %{--optionKey="id"--}%
-                          %{--optionValue="title"--}%
-                          %{--class="chosen chosen-rtl"--}%
-                          %{--style="width: 99%; text-align: right; direction:rtl"--}%
-                          %{--value="${null}"--}%
-                          %{--noSelection="${['null': '']}"/>--}%
-
-         %{----}%
-
-                <g:textField placeholder="Summary" name="summary" id="summary" value=""
-                             style="background: #e8efe7; width: 100%; ;" dir="auto"/>
-
-                <g:textArea cols="80" rows="12" placeholder="Description" name="description" id="description"
-                            value="" dir="auto"
-                            style="font-family: tahoma; font-size: small; background: #f7fff6; width: 100%; height: 150px !important;"/>
-                <br/>
+            Pg. <g:textField placeholder="pages" name="pages" id="pages" value="" style="width: 30%;"/>
+            <br/>
+            <g:textField placeholder="url" name="url" id="url" value="" placehoder="url" style="width: 100%;"/>
+        %{--<br/>--}%
+        %{--<br/>--}%
+        %{--<g:select name="chosenTags" from="${Tag.list()}" multiple=""--}%
+        %{--size="80" style="min-width: 200px; min-height: 50px;"--}%
+        %{--value="" optionKey="id"--}%
+        %{--class="chosen chosen-rtl" id="chosenTags"--}%
+        %{--optionValue="name"--}%
+        %{--noSelection="${['null': '']}"/>--}%
 
-                R ID: <g:textField placeholder="book.id" name="book.id" id="book.id" value="" style="width: 70%;"/>
-				
-				Pg. <g:textField placeholder="pages" name="pages" id="pages" value="" style="width: 30%;"/>
-                <br/>
-                <g:textField placeholder="url" name="url" id="url" value="" placehoder="url" style="width: 100%;"/>
-            %{--<br/>--}%
-            %{--<br/>--}%
-            %{--<g:select name="chosenTags" from="${Tag.list()}" multiple=""--}%
-            %{--size="80" style="min-width: 200px; min-height: 50px;"--}%
-            %{--value="" optionKey="id"--}%
-            %{--class="chosen chosen-rtl" id="chosenTags"--}%
-            %{--optionValue="name"--}%
-            %{--noSelection="${['null': '']}"/>--}%
+            <br/>
 
-                <br/>
+            <g:submitButton name="save" value="Save"
 
-                <g:submitButton name="save" value="Save"
+                            style="height: 35px; margin: 0px; width: 100% !important; background: #efece0"
+                            id="45634523"
+                            class="fg-button ui-widget ui-state-default"/>
+        </g:formRemote>
 
-                                style="height: 35px; margin: 0px; width: 100% !important; background: #efece0"
-                                id="45634523"
-                                class="fg-button ui-widget ui-state-default"/>
-            </g:formRemote>
+    </div>
 
-        </div>
 
+    <h3 class="accordionPanelAdd"><a href="#">
+        <g:message code="ar.daftar"></g:message>
+    </a></h3>
 
-        <h3 class="accordionPanelAdd"><a href="#">
-            <g:message code="ar.daftar"></g:message>
-        </a></h3>
+    <div id='daftarDiv'>
 
-        <div id='daftarDiv'>
+        <span id="topDaftarArea"
+              style="font-style: italic; padding-right: 15px; text-align: right; font-size: small; color: darkgreen">
 
-            <span id="topDaftarArea"
-                 style="font-style: italic; padding-right: 15px; text-align: right; font-size: small; color: darkgreen"
-                 >
+        </span>
 
-            </span>
+        <g:formRemote name="addXcdFormDaftar" id="addXcdFormDaftar"
+                      url="[controller: 'indexCard', action: 'addXcdFormDaftar']"
+                      update="subDaftarArea"
+                      onComplete="jQuery('#descriptionDaftar').val('');jQuery('#topDaftarArea').html(''); jQuery('#descriptionDaftar').focus();"
+                      method="post">
 
-            <g:formRemote name="addXcdFormDaftar" id="addXcdFormDaftar"
-                          url="[controller: 'indexCard', action: 'addXcdFormDaftar']"
-                          update="subDaftarArea"
-                          onComplete="jQuery('#descriptionDaftar').val('');jQuery('#topDaftarArea').html(''); jQuery('#descriptionDaftar').focus();"
-                          method="post">
+        %{--onkeyup="jQuery('#topDaftarArea').load('/nibras/indexCard/extractTitle/', {'typing': this.value})"--}%
+            <g:textArea cols="80" rows="12" placeholder="title (line 1) - details (from line 2 till the end)"
+                        name="description" id="descriptionDaftar"
+                        value=""
+                        style="font-family: tahoma; font-size: small; background: #f7fff6; width: 100%; height: 120px !important;"/>
 
-            %{--onkeyup="jQuery('#topDaftarArea').load('/nibras/indexCard/extractTitle/', {'typing': this.value})"--}%
-                <g:textArea cols="80" rows="12" placeholder="title (line 1) / details (line 2 - end)" name="description" id="descriptionDaftar"
+            <br/>
 
-                            value=""
-                            style="font-family: tahoma; font-size: small; background: #f7fff6; width: 100%; height: 120px !important;"/>
+            <g:submitButton name="save" value="Save"
+                            style="text-align: center; margin: 0px; width: 84% !important; background: #efece0"
+                            id="addXcdFormDaftarSubmit"
+                            class="fg-button ui-widget ui-state-default"/>
+            <g:select name="type" from="${['Jy', 'Jt', 'N', 'W', 'T', 'G', 'R']}"
+                      id="typeField"
+                      value="N"/>
 
-                <br/>
+        </g:formRemote>
 
-                <g:submitButton name="save" value="Save"
-                                style="text-align: center; margin: 0px; width: 84% !important; background: #efece0"
-                                id="addXcdFormDaftarSubmit"
-                                class="fg-button ui-widget ui-state-default"/>
-                <g:select name="type" from="${['Jy', 'Jt', 'N', 'W', 'T', 'G', 'R']}"
-                          id="typeField"
-                          value="N"/>
 
-            </g:formRemote>
 
+        <span id="subDaftarArea">
 
+        </span>
 
-            <span id="subDaftarArea">
+        <br/>
 
-            </span>
+        <a onclick="openNoteTaker()" href="javascript:void(0);"  target="_self">
+        &nearr;
+        &nearr;
+        Open in a dedicated window.
+        </a>
 
-            <br/>
-            <br/>
-            <a href="${createLink(controller: 'page', action:'appDaftar')}" target="_self">
-            &nearr;
-            &nearr;
-            </a>
+    </div>
 
-        </div>
 
+    %{--<sec:ifAnyGranted roles="ROLE_ADMIN">--}%
+    %{--<h4>Configuration</h4>--}%
+    %{--<hr/>--}%
+    <h3 class="accordionPanelSettings" style="margin-top: 5px;"><a href="#">
+        <g:message code="ui.settings"></g:message>
 
-        %{--<sec:ifAnyGranted roles="ROLE_ADMIN">--}%
-        %{--<h4>Configuration</h4>--}%
-        %{--<hr/>--}%
-        <h3 class="accordionPanelSettings" style="margin-top: 5px;"><a href="#">
-            <g:message code="ui.settings"></g:message>
+    </a></h3>
 
-        </a></h3>
 
+    <div>
 
-        <div>
-
-            <ul class="settingsUL">
-                <li>
-                    Configuration
-                    <ul>
-                        <li>
-                            <g:remoteLink controller="page" action="settingsMain" update="centralArea">
-                                Main settings list (${Setting.countByBookmarked(true)})
-                            </g:remoteLink>
+        <ul class="settingsUL">
+            <li>
+                Configuration
+                <ul>
+                    <li>
+                        <g:remoteLink controller="page" action="settingsMain" update="centralArea">
+                            Main settings list (${Setting.countByBookmarked(true)})
+                        </g:remoteLink>
 
-                        </li>
-                        <li>
-                            <g:remoteLink controller="page" action="settingsFull" update="centralArea">
+                    </li>
+                    <li>
+                        <g:remoteLink controller="page" action="settingsFull" update="centralArea">
                             Full settings list (${Setting.count()})
                         </g:remoteLink></li>
 
-                        <li>
+                    <li>
 
-                            <g:render template="/layouts/manageParametersLink"
-                                      model="[controller: 'app.parameters.CommandPrefix', name: 'Command prefix']"/>
-                        </li>
+                        <g:render template="/layouts/manageParametersLink"
+                                  model="[controller: 'app.parameters.CommandPrefix', name: 'Command prefix']"/>
+                    </li>
+                    <li>
+                        <g:render template="/layouts/manageParametersLink"
+                                  model="[controller: 'mcs.parameters.SavedSearch', name: 'Saved search']"/>
+                    </li>
+                    <g:if test="${OperationController.getPath('pkm-actions.enabled')?.toLowerCase() == 'yes' ? true : false}">
                         <li>
                             <g:render template="/layouts/manageParametersLink"
-                                      model="[controller: 'mcs.parameters.SavedSearch', name: 'Saved search']"/>
+                                      model="[controller: 'cmn.Setting', name: 'Setting']"/>
                         </li>
-                        <g:if test="${OperationController.getPath('pkm-actions.enabled')?.toLowerCase() == 'yes' ? true : false}">
-                            <li>
-                                <g:render template="/layouts/manageParametersLink"
-                                          model="[controller: 'cmn.Setting', name: 'Setting']"/>
-                            </li>
-                        </g:if>
-                    </ul>
+                    </g:if>
+                </ul>
 
-                </li>
+            </li>
 
 
 
-                %{--<sec:ifAnyGranted roles="ROLE_ADMIN">--}%
-                %{--<td>--}%
-                %{--<input type="radio" name="myRadios" onchange="singleDisplay();" value="Single" />--}%
-                %{--<input type="radio" name="myRadios" onchange="dualDisplay();" value="dual display" />--}%
-                %{--<a id="singleDisplay"--}%
-                %{--title="Single display">--}%
-                %{--Single--}%
-                %{--&nbsp;--}%
-                %{--&nbsp;--}%
-                %{--<a id="dualDisplay"--}%
-                %{--title="Dual display">--}%
-                %{--dual display--}%
-                %{--</a>--}%
-                %{--</td>--}%
+            %{--<sec:ifAnyGranted roles="ROLE_ADMIN">--}%
+            %{--<td>--}%
+            %{--<input type="radio" name="myRadios" onchange="singleDisplay();" value="Single" />--}%
+            %{--<input type="radio" name="myRadios" onchange="dualDisplay();" value="dual display" />--}%
+            %{--<a id="singleDisplay"--}%
+            %{--title="Single display">--}%
+            %{--Single--}%
+            %{--&nbsp;--}%
+            %{--&nbsp;--}%
+            %{--<a id="dualDisplay"--}%
+            %{--title="Dual display">--}%
+            %{--dual display--}%
+            %{--</a>--}%
+            %{--</td>--}%
 
 
 
+            <li>
+                Execute code
+                <ul>
                     <li>
-                 Execute code
-                 <ul>
-                     <li>
 
-                     <a href="${createLink(controller: 'console')}" target="_blank">
+                        <a href="${createLink(controller: 'console')}" target="_blank">
 
-                    <g:message code="ui.console"></g:message>
-                    </a>
-                </li>
+                            <g:message code="ui.console"></g:message>
+                        </a>
+                    </li>
                 </ul>
                 %{--</sec:ifAnyGranted>--}%
 
 
-                <li>
-                    Record presentation
-                    <ul>
-                        <li>
-                            <g:remoteLink controller="report" action="showLine1Only"
-                                          update="logArea"
-                                          title="Selected records">
-                                <g:if test="${session['showLine1Only'] == 'on'}">
-                                    <b>summarized</b>
-                                </g:if>
-                                <g:else>
-                                    summarized
-                                </g:else>
-                            </g:remoteLink>
-                        </li>
-                        <li><g:remoteLink controller="report" action="showFullCard"
-                                          update="logArea"
-                                          title="Selected records">
-                            <g:if test="${session['showFullCard'] == 'on'}">
-                                <b>full</b>
+            <li>
+                Record presentation
+                <ul>
+                    <li>
+                        <g:remoteLink controller="report" action="showLine1Only"
+                                      update="logArea"
+                                      title="Selected records">
+                            <g:if test="${session['showLine1Only'] == 'on'}">
+                                <b>summarized</b>
                             </g:if>
                             <g:else>
-                                full
+                                summarized
                             </g:else>
                         </g:remoteLink>
-                        </li>
-                    </ul>
-
-                </li>
-
-
-
-                <li>
-                    Folders availability
-                    <ul>
-                        <li>
-                            <pkm:checkFolder name='rps2' path="${OperationController.getPath('root.rps2.path')}"/>
-
-                        </li>
-                        <li>
-                            <pkm:checkFolder name='rps3' path="${OperationController.getPath('root.rps3.path')}"/>
-
-                        </li>
-                        <li>
-                            <pkm:checkFolder name='edit' display='Edit'
-                                             path="${OperationController.getPath('editBox.path')}"/>
-                        </li>
-                    </ul>
-
-                </li>
-
-
+                    </li>
+                    <li><g:remoteLink controller="report" action="showFullCard"
+                                      update="logArea"
+                                      title="Selected records">
+                        <g:if test="${session['showFullCard'] == 'on'}">
+                            <b>full</b>
+                        </g:if>
+                        <g:else>
+                            full
+                        </g:else>
+                    </g:remoteLink>
+                    </li>
+                </ul>
 
-                <li>
-                    Records per page
-                    <ul>
-                        <li>
-                            <g:select name="resultType"
-                                      from="${[1, 2, 3, 4, 5, 7, 10, 15, 20, 30, 40, 50, 100, 250]}"
-                                      style="direction: ltr; text-align: left; padding: 0; margin: 0;  height: 24px;"
-                                      noSelection="${['null': '']}"
-                                      onchange="jQuery('#notificationArea').load('/nibras/generics/setPageMax/' + this.value);"
-                                      value="${Setting.findByNameLike('savedSearch.pagination.max.link')?.value ?: 4}"/>
-                            <span id="notificationArea" style=""></span>
-                            <span style="display: none" id="notificationAreaHidden"></span>
+            </li>
 
-                        </li>
-                    </ul>
 
-                </li>
 
+            <li>
+                Folders availability
+                <ul>
+                    <li>
+                        <pkm:checkFolder name='rps2' path="${OperationController.getPath('root.rps2.path')}"/>
 
+                    </li>
+                    <li>
+                        <pkm:checkFolder name='rps3' path="${OperationController.getPath('root.rps3.path')}"/>
 
+                    </li>
+                    <li>
+                        <pkm:checkFolder name='edit' display='Edit'
+                                         path="${OperationController.getPath('editBox.path')}"/>
+                    </li>
+                </ul>
 
+            </li>
 
 
 
+            <li>
+                Records per page
+                <ul>
+                    <li>
+                        <g:select name="resultType"
+                                  from="${[1, 2, 3, 4, 5, 7, 10, 15, 20, 30, 40, 50, 100, 250]}"
+                                  style="direction: ltr; text-align: left; padding: 0; margin: 0;  height: 24px;"
+                                  noSelection="${['null': '']}"
+                                  onchange="jQuery('#notificationArea').load('/nibras/generics/setPageMax/' + this.value);"
+                                  value="${Setting.findByNameLike('savedSearch.pagination.max.link')?.value ?: 4}"/>
+                        <span id="notificationArea" style=""></span>
+                        <span style="display: none" id="notificationAreaHidden"></span>
+
+                    </li>
+                </ul>
 
+            </li>
 
         </ul>
-            <br/>
-            %{--<li>--}%
-            <b>Change repositories paths:</b>
-            <br/>
-            %{--<ul>--}%
-                %{--<li>--}%
-                    rps1.path: <g:render template="/forms/updateSetting" model="[settingValue: 'root.rps1.path']"/>
-            <br/>
-                %{--</li>--}%
+        <br/>
+        %{--<li>--}%
+        <b>Change repositories paths:</b>
+        <br/>
+        %{--<ul>--}%
+        %{--<li>--}%
+        rps1.path: <g:render template="/forms/updateSetting" model="[settingValue: 'root.rps1.path']"/>
+        <br/>
+        %{--</li>--}%
 
-                %{--<li>--}%
-                    rps2.path: <g:render template="/forms/updateSetting" model="[settingValue: 'root.rps2.path']"/>
-                %{--</li>--}%
-            %{--</ul>--}%
+        %{--<li>--}%
+        rps2.path: <g:render template="/forms/updateSetting" model="[settingValue: 'root.rps2.path']"/>
+        %{--</li>--}%
+        %{--</ul>--}%
 
         %{--</li>--}%
-            <br/>
-        </div>
+        <br/>
+    </div>
 
 
-        <h3 class="accordionPanelSettings"><a href="#">
-            <g:message code="ui.parameters"></g:message>
+    <h3 class="accordionPanelSettings"><a href="#">
+        <g:message code="ui.parameters"></g:message>
 
-        </a></h3>
+    </a></h3>
 
 
-        <div>
-            <g:if test="${1 == 2}">
-                <g:each in="${[
-                        //                            ['app.parameters.Markup', 'Markup'],
+    <div>
+        <g:if test="${1 == 2}">
+            <g:each in="${[
+                    //                            ['app.parameters.Markup', 'Markup'],
 //                            ['app.parameters.Pomegranate', 'Pomegranate'],
 
-                        ['mcs.Department', 'Department'],
-                        ['mcs.Course', 'Course'], 'l',
+                    ['mcs.Department', 'Department'],
+                    ['mcs.Course', 'Course'], 'l',
 
 
-                        ['mcs.parameters.GoalType', 'Goal type'],
-                        ['mcs.parameters.Context', 'Context'],
-                        ['mcs.parameters.WorkStatus', 'Work status'], 'l',
-                        ['mcs.parameters.PlannerType', 'Planner type'],
-                        ['mcs.parameters.JournalType', 'Journal type'], 'l',
+                    ['mcs.parameters.GoalType', 'Goal type'],
+                    ['mcs.parameters.Context', 'Context'],
+                    ['mcs.parameters.WorkStatus', 'Work status'], 'l',
+                    ['mcs.parameters.PlannerType', 'Planner type'],
+                    ['mcs.parameters.JournalType', 'Journal type'], 'l',
 //
-                        ['mcs.parameters.ResourceStatus', 'Resource status'],
-                        ['app.parameters.ResourceType', 'Resource type'],
-                        'l',
-                        ['mcs.parameters.WritingStatus', 'Writing status'],
-                        ['mcs.parameters.WritingType', 'Writing type'],
-                        ['app.parameters.Blog', 'Blog'],
-                        'l',
-                        ['app.Indicator', 'Indicator'],
+                    ['mcs.parameters.ResourceStatus', 'Resource status'],
+                    ['app.parameters.ResourceType', 'Resource type'],
+                    'l',
+                    ['mcs.parameters.WritingStatus', 'Writing status'],
+                    ['mcs.parameters.WritingType', 'Writing type'],
+                    ['app.parameters.Blog', 'Blog'],
+                    'l',
+                    ['app.Indicator', 'Indicator'],
 //                              ['mcs.parameters.Location', 'Location'],
-                        ['app.PaymentCategory', 'Payment category'],
-                        'l',
-                        ['mcs.parameters.RelationshipType', 'Relationship type']
-                ]}"
-                        var="i">
-                    <g:if test="${i != 'l'}">
-                        <g:render template="/layouts/manageParametersLink" model="[controller: i[0], name: i[1]]"/>
-                    </g:if>
-                    <g:else>
-                        <hr/>
-                        <br/>
-                    </g:else>
+                    ['app.PaymentCategory', 'Payment category'],
+                    'l',
+                    ['mcs.parameters.RelationshipType', 'Relationship type']
+            ]}"
+                    var="i">
+                <g:if test="${i != 'l'}">
+                    <g:render template="/layouts/manageParametersLink" model="[controller: i[0], name: i[1]]"/>
+                </g:if>
+                <g:else>
+                    <hr/>
+                    <br/>
+                </g:else>
 
-                </g:each>
+            </g:each>
 
-                <br/>
-                <hr/>
-                <br/>
+            <br/>
+            <hr/>
+            <br/>
 
-                <g:each in="${[
-                        ['app.parameters.CommandPrefix', 'Command prefix'],
-                        ['mcs.parameters.SavedSearch', 'Saved search'],
-                        ['cmn.Setting', 'Setting'],
-                        ['app.Tag', 'Tag']
-                ]}" var="i">
+            <g:each in="${[
+                    ['app.parameters.CommandPrefix', 'Command prefix'],
+                    ['mcs.parameters.SavedSearch', 'Saved search'],
+                    ['cmn.Setting', 'Setting'],
+                    ['app.Tag', 'Tag']
+            ]}" var="i">
 
-                    <g:remoteLink controller="generics" action="fetchAddForm"
-                                  params="[entityController: i[0], isParameter: true,
-                                           updateRegion    : 'centralArea']"
-                                  before="jQuery.address.value(jQuery(this).attr('href'));"
-                                  update="centralArea">
+                <g:remoteLink controller="generics" action="fetchAddForm"
+                              params="[entityController: i[0], isParameter: true,
+                                       updateRegion    : 'centralArea']"
+                              before="jQuery.address.value(jQuery(this).attr('href'));"
+                              update="centralArea">
 
-                        <span style="font-size: 12px; padding: 2px;">
-                            ${i[1]} (${grailsApplication.classLoader.loadClass(i[0]).count()})
-                        </span>
+                    <span style="font-size: 12px; padding: 2px;">
+                        ${i[1]} (${grailsApplication.classLoader.loadClass(i[0]).count()})
+                    </span>
 
-                    </g:remoteLink>
-                    <br/>
-                </g:each>
+                </g:remoteLink>
+                <br/>
+            </g:each>
 
-            </g:if>
+        </g:if>
 
-            <span style="-moz-column-count: 1; -webkit-column-count:1">
+        <span style="-moz-column-count: 1; -webkit-column-count:1">
 
-                <h4>Top level</h4>
-                <g:render template="/layouts/manageParametersLink"
-                          model="[controller: 'mcs.Department', name: 'Department']"/>
-                <g:render template="/layouts/manageParametersLink"
-                          model="[controller: 'mcs.Course', name: 'Course']"/>
-                <h4>For resources</h4>
-                <g:render template="/layouts/manageParametersLink"
-                          model="[controller: 'mcs.parameters.ResourceStatus', name: 'Resource status']"/>
-                <g:render template="/layouts/manageParametersLink"
-                          model="[controller: 'app.parameters.ResourceType', name: 'Resource type']"/>
+            <h4>Top level</h4>
+            <g:render template="/layouts/manageParametersLink"
+                      model="[controller: 'mcs.Department', name: 'Department']"/>
+            <g:render template="/layouts/manageParametersLink"
+                      model="[controller: 'mcs.Course', name: 'Course']"/>
+            <h4>For resources</h4>
+            <g:render template="/layouts/manageParametersLink"
+                      model="[controller: 'mcs.parameters.ResourceStatus', name: 'Resource status']"/>
+            <g:render template="/layouts/manageParametersLink"
+                      model="[controller: 'app.parameters.ResourceType', name: 'Resource type']"/>
 
-<g:if test="${OperationController.getPath('goals.enabled')?.toLowerCase() == 'yes' ? true : false}">
+            <g:if test="${OperationController.getPath('goals.enabled')?.toLowerCase() == 'yes' ? true : false}">
                 <h4>For goals</h4>
                 <g:render template="/layouts/manageParametersLink"
                           model="[controller: 'mcs.parameters.GoalType', name: 'Goal type']"/>
-    </g:if>
+            </g:if>
 
-                <h4>For goals and tasks</h4>
-                <g:render template="/layouts/manageParametersLink"
-                          model="[controller: 'mcs.parameters.Context', name: 'Context']"/>
-                <g:render template="/layouts/manageParametersLink"
-                          model="[controller: 'mcs.parameters.WorkStatus', name: 'Work status']"/>
-<g:if test="${OperationController.getPath('planner.enabled')?.toLowerCase() == 'yes' || OperationController.getPath('journal.enabled')?.toLowerCase() == 'yes' ? true : false}">
+            <h4>For goals and tasks</h4>
+            <g:render template="/layouts/manageParametersLink"
+                      model="[controller: 'mcs.parameters.Context', name: 'Context']"/>
+            <g:render template="/layouts/manageParametersLink"
+                      model="[controller: 'mcs.parameters.WorkStatus', name: 'Work status']"/>
+            <g:if test="${OperationController.getPath('planner.enabled')?.toLowerCase() == 'yes' || OperationController.getPath('journal.enabled')?.toLowerCase() == 'yes' ? true : false}">
                 <h4>For planner and journal</h4>
                 <g:render template="/layouts/manageParametersLink"
                           model="[controller: 'mcs.parameters.PlannerType', name: 'Planner type']"/>
                 <g:render template="/layouts/manageParametersLink"
                           model="[controller: 'mcs.parameters.JournalType', name: 'Journal type']"/>
-               </g:if>
-<g:if test="${OperationController.getPath('writings.enabled')?.toLowerCase() == 'yes' ? true : false}">
+            </g:if>
+            <g:if test="${OperationController.getPath('writings.enabled')?.toLowerCase() == 'yes' ? true : false}">
                 <h4>For writing</h4>
                 <g:render template="/layouts/manageParametersLink"
                           model="[controller: 'mcs.parameters.WritingType', name: 'Type']"/>
                 <g:render template="/layouts/manageParametersLink"
                           model="[controller: 'mcs.parameters.WritingStatus', name: 'Status']"/>
-    <g:render template="/layouts/manageParametersLink"
+                <g:render template="/layouts/manageParametersLink"
                           model="[controller: 'app.parameters.Blog', name: 'Blog']"/>
-                    </g:if>
-                %{--<g:render template="/layouts/manageParametersLink"--}%
-                %{--model="[controller: 'app.parameters.Blog', name: 'Blog']"/>--}%
-    <g:if test="${OperationController.getPath('indicators.enabled')?.toLowerCase() == 'yes' ? true : false}">
+            </g:if>
+        %{--<g:render template="/layouts/manageParametersLink"--}%
+        %{--model="[controller: 'app.parameters.Blog', name: 'Blog']"/>--}%
+            <g:if test="${OperationController.getPath('indicators.enabled')?.toLowerCase() == 'yes' ? true : false}">
                 <h4>For indicators</h4>
                 <g:render template="/layouts/manageParametersLink"
                           model="[controller: 'app.Indicator', name: 'Indicator']"/>
-        </g:if>
-<g:if test="${OperationController.getPath('payments.enabled')?.toLowerCase() == 'yes' ? true : false}">
+            </g:if>
+            <g:if test="${OperationController.getPath('payments.enabled')?.toLowerCase() == 'yes' ? true : false}">
                 <h4>For payments</h4>
                 <g:render template="/layouts/manageParametersLink"
                           model="[controller: 'app.PaymentCategory', name: 'Payment category']"/>
-                %{--<g:render template="/layouts/manageParametersLink"--}%
-                %{--model="[controller: 'mcs.parameters.RelationshipType', name: 'Relationship type']"/>--}%
-               </g:if>
-                <h4>For any record</h4>
-                <g:render template="/layouts/manageParametersLink"
-                          model="[controller: 'app.Tag', name: 'Tag']"/>
+            %{--<g:render template="/layouts/manageParametersLink"--}%
+            %{--model="[controller: 'mcs.parameters.RelationshipType', name: 'Relationship type']"/>--}%
+            </g:if>
+            <h4>For any record</h4>
+            <g:render template="/layouts/manageParametersLink"
+                      model="[controller: 'app.Tag', name: 'Tag']"/>
 
+        </span>
+        <g:if test="${OperationController.getPath('pkm-actions.enabled')?.toLowerCase() == 'yes' ? true : false}">
+            <g:remoteLink controller="page" action="colors"
+                          update="centralArea"
+                          title="List of colors to choose from">
+                Colors
+            </g:remoteLink>
 
-            </span>
-                <g:if test="${OperationController.getPath('pkm-actions.enabled')?.toLowerCase() == 'yes' ? true : false}">
-                    <g:remoteLink controller="page" action="colors"
-                                  update="centralArea"
-                                  title="List of colors to choose from">
-                        Colors
-                    </g:remoteLink>
 
+            <br/>
 
-                    <br/> <h5 class="">
-                    <a>Exports</a>
-                </h5>
+            <h5 class="">
+            <a>Exports</a>
+        </h5>
 
-                %{--<div>--}%
+        %{--<div>--}%
 
-                    <g:remoteLink controller="operation" action="generateStaticBlogMenu" update="centralArea">
-                        Static blog menu
-                    </g:remoteLink>
-                    <br/>
+            <g:remoteLink controller="operation" action="generateStaticBlogMenu" update="centralArea">
+                Static blog menu
+            </g:remoteLink>
+            <br/>
 
-                    <g:remoteLink controller="export" action="textbooks2Bib" update="notificationArea">
-                        Textbooks 2 bib
-                    </g:remoteLink>
-                    <br/>
+            <g:remoteLink controller="export" action="textbooks2Bib" update="notificationArea">
+                Textbooks 2 bib
+            </g:remoteLink>
+            <br/>
 
 
-                    <g:remoteLink controller="export" action="generateAuthors" update="notificationArea">
-                        Generate authors db
-                    </g:remoteLink>
-                    <br/>
+            <g:remoteLink controller="export" action="generateAuthors" update="notificationArea">
+                Generate authors db
+            </g:remoteLink>
+            <br/>
 
 
-                    <g:remoteLink controller="export" action="staticWebsite" update="notificationArea">
-                        Generate static site
-                    </g:remoteLink>
-                    <br/>
-                    <g:remoteLink controller="report" action="quranReportToString" update="centralArea">
-                        Qurani inline
-                    </g:remoteLink>
-                    <br/>      <g:remoteLink controller="report" action="staticQuranReport" update="centralArea">
-                    Qurani inline to file
-                </g:remoteLink>
-                    <br/>       <g:remoteLink controller="report" action="staticQuranReportTex" update="centralArea">
-                    Qurani inline to Tex file
-                </g:remoteLink>
-                    <br/>
-                    <g:remoteLink controller="report" action="memorizationReport" update="centralArea">
-                        Memorization aid
-                    </g:remoteLink>
-                    <br/>  <g:remoteLink controller="report" action="memorizationReport" update="centralArea">
-                    Memorization aid
-                </g:remoteLink>
-                    <br/>
-                    <g:remoteLink controller="report" action="staticMemorizationReport" update="centralArea">
-                        Memorization aid to file
-                    </g:remoteLink>
-                    <br/>
+            <g:remoteLink controller="export" action="staticWebsite" update="notificationArea">
+                Generate static site
+            </g:remoteLink>
+            <br/>
+            <g:remoteLink controller="report" action="quranReportToString" update="centralArea">
+                Qurani inline
+            </g:remoteLink>
+            <br/>      <g:remoteLink controller="report" action="staticQuranReport" update="centralArea">
+            Qurani inline to file
+        </g:remoteLink>
+            <br/>       <g:remoteLink controller="report" action="staticQuranReportTex" update="centralArea">
+            Qurani inline to Tex file
+        </g:remoteLink>
+            <br/>
+            <g:remoteLink controller="report" action="memorizationReport" update="centralArea">
+                Memorization aid
+            </g:remoteLink>
+            <br/>  <g:remoteLink controller="report" action="memorizationReport" update="centralArea">
+            Memorization aid
+        </g:remoteLink>
+            <br/>
+            <g:remoteLink controller="report" action="staticMemorizationReport" update="centralArea">
+                Memorization aid to file
+            </g:remoteLink>
+            <br/>
 
-                    <g:remoteLink controller="report" action="matrixReport" update="centralArea">
-                        Salat matrix report
-                    </g:remoteLink>
-                    <br/>
+            <g:remoteLink controller="report" action="matrixReport" update="centralArea">
+                Salat matrix report
+            </g:remoteLink>
+            <br/>
 
-                    <g:remoteLink controller="export" action="generateAllBibs" update="notificationArea">
-                        Generate all bibs
-                    </g:remoteLink>
-                    <br/>
+            <g:remoteLink controller="export" action="generateAllBibs" update="notificationArea">
+                Generate all bibs
+            </g:remoteLink>
+            <br/>
 
-                %{--<g:link controller="report" action="staticQuranReport"--}%
-                %{--target="_blank"--}%
-                %{--title="Qurani new tab">--}%
-                %{--Qurani new tab--}%
-                %{--</g:link>--}%
-                %{--<br/>--}%
-                    <g:link controller="report" action="xcd2epub"
-                            target="_blank"
-                            title="xcd2epub">
-                        xcd 2epub
-                    </g:link>
-                    <br/>
+        %{--<g:link controller="report" action="staticQuranReport"--}%
+        %{--target="_blank"--}%
+        %{--title="Qurani new tab">--}%
+        %{--Qurani new tab--}%
+        %{--</g:link>--}%
+        %{--<br/>--}%
+            <g:link controller="report" action="xcd2epub"
+                    target="_blank"
+                    title="xcd2epub">
+                xcd 2epub
+            </g:link>
+            <br/>
 
-                    <g:remoteLink controller="generics" action="dotTextDump" update="notificationArea">
-                        Export records to text files
-                    </g:remoteLink>
+            <g:remoteLink controller="generics" action="dotTextDump" update="notificationArea">
+                Export records to text files
+            </g:remoteLink>
 
-                    <br/>
+            <br/>
 
-                    <g:remoteLink controller="export" action="exportTxtToBeamer" update="notificationArea">
-                        Convert text to beamer
-                    </g:remoteLink>
+            <g:remoteLink controller="export" action="exportTxtToBeamer" update="notificationArea">
+                Convert text to beamer
+            </g:remoteLink>
 
-                    <br/>
+            <br/>
 
-                    <a onclick="jQuery('#centralArea').load('report/duplicateIsbnBooks')">Books with duplication ISBN</a>
-                    <br/>
+            <a onclick="jQuery('#centralArea').load('report/duplicateIsbnBooks')">Books with duplication ISBN</a>
+            <br/>
 
-                    <h5 class="">
+            <h5 class="">
 
-                        <a>Admin saved searches</a>
-                    </h5>
-                    <g:render template="/layouts/savedSearches" model="[entity: 'A']"/>
-                %{--</div>--}%
-                </g:if>
-            </div>
-            %{--</sec:ifAnyGranted>--}%
-            <br/>
-            <br/>
-            <br/>
-            <br/>
-        </div>
+                <a>Admin saved searches</a>
+            </h5>
+            <g:render template="/layouts/savedSearches" model="[entity: 'A']"/>
+        %{--</div>--}%
+        </g:if>
+    </div>
+    %{--</sec:ifAnyGranted>--}%
+    <br/>
+    <br/>
+    <br/>
+    <br/>
+</div>
 
 <script type="text/javascript">
 
 
 
-
     jQuery("#addArticleFormNgs").relatedSelects({
         onChangeLoad: '/nibras/generics/fetchCoursesForDepartment',
         defaultOptionText: '',
diff --git a/grails-app/views/appMain/_north.gsp b/grails-app/views/appMain/_north.gsp
index e6429e2..0a16d88 100644
--- a/grails-app/views/appMain/_north.gsp
+++ b/grails-app/views/appMain/_north.gsp
@@ -37,6 +37,13 @@
     </g:if>
 
 
+        <td style="padding-right: 3px !important;">
+            <a href="${createLink(controller: 'page', action:'appKanban')}" target="_blank">
+                Kanban
+            &nearr;
+            </a>
+        </td>
+
 
 
         <td style="padding-right: 3px !important;">
@@ -346,7 +353,7 @@
         %{--</sec:ifAnyGranted>--}%
 
         %{--</td>--}%
-        <td style="border: 0px dashed darkgray; padding-left: 15px !important;">
+        <td style="border: 0px dashed darkgray; padding-left: 15px !important; padding-top: 0; padding-bottom: 0; background: #8e8e97">
 
             <i style="color: #ebebeb;">Kanbans:</i> &nbsp;
             <g:render template="/layouts/savedSearchesLine" model="[entity: 'F']"/>
@@ -406,14 +413,14 @@
             %{--</a>--}%
         %{--</td>--}%
 
-        <td style="padding: 1px !important; margin-left: 9px; color: white;">
+        %{--<td style="padding: 1px !important; margin-left: 9px; color: white;">--}%
 
-            <a href="http://khuta.org/nibras-doc/index.html"
-               style="" target="_blank">
+            %{--<a href="http://khuta.org/nibras-doc/index.html"--}%
+               %{--style="" target="_blank">--}%
 %{--                <span style="color: white" class="ui-icon ui-icon-help"></span>--}%
-                <g:message code="ui.menu.help"></g:message>
-            </a>
-        </td>
+                %{--<g:message code="ui.menu.help"></g:message>--}%
+            %{--</a>--}%
+        %{--</td>--}%
         %{--<td>--}%
         %{--بالصفحة--}%
 
diff --git a/grails-app/views/appMain/_regions.gsp b/grails-app/views/appMain/_regions.gsp
index 6abf60a..aaf6cc1 100644
--- a/grails-app/views/appMain/_regions.gsp
+++ b/grails-app/views/appMain/_regions.gsp
@@ -15,8 +15,8 @@
 </div>
 
 <div class="ui-layout-south footerRegion"
-     style="font-size: 11px; margin-top: 9px; min-height: 0px !important;  padding: 3px; direction: ltr; text-align: left; font-family: tahoma; color: white">
-    <g:render template="/appMain/south"/>
+     style="font-size: 12px; margin-top: 10px; min-height: 0px !important;  padding: 3px; direction: ltr; text-align: left; font-family: tahoma; color: white">
+    <g:render template="/appMain/south" model="[ips: ips]"/>
 
 </div>
 
@@ -30,7 +30,7 @@
     </div>
 
 
-    <div class="ui-layout-center appBkg" style="margin-top: 2px !important; margin-bottom: 2px !important;"
+    <div class="ui-layout-center appBkg" style="margin-top: 4px !important; margin-bottom: 4px !important;"
          onmouseover="jQuery('#hintArea').html('')">
         %{--ToDo: display none?!--}%
         %{--<div class="ui-layout-content ui-widget-content" onmouseover="jQuery('#hintArea').html('')">--}%
diff --git a/grails-app/views/appMain/_south.gsp b/grails-app/views/appMain/_south.gsp
index 86de1b0..4aeda18 100644
--- a/grails-app/views/appMain/_south.gsp
+++ b/grails-app/views/appMain/_south.gsp
@@ -4,34 +4,59 @@
     c.setFirstDayOfWeek(java.util.Calendar.MONDAY)
     %>
     <b>Week</b> ${c.get(Calendar.WEEK_OF_YEAR)}
-&nbsp;  |
-&nbsp;
+&nbsp; &nbsp;   |
+&nbsp; &nbsp; 
     ${new Date().format("E dd MMM yyyy")}
 
-&nbsp;  |
-&nbsp;
+&nbsp; &nbsp;   |
+&nbsp; &nbsp; 
 
     <b>${java.time.chrono.HijrahDate.now().format(java.time.format.DateTimeFormatter.ofPattern("dd MMMM yyyy"))}</b>
 
 
-&nbsp;  |
-&nbsp;
+&nbsp; &nbsp;   |
+&nbsp; &nbsp; 
     <b>Repository 1</b>: ${ker.OperationController.getPath('root.rps1.path')}
-&nbsp; |
-&nbsp;
-    &copy; khuta.org
 
-&nbsp;|&nbsp;
+&nbsp; &nbsp;   |
+&nbsp; &nbsp; 
+    <b>Repository 2</b>: ${ker.OperationController.getPath('root.rps2.path')}
+&nbsp; &nbsp;  |
+&nbsp; &nbsp; 
+   2020 &copy; khuta.org
 
-C*:&nbsp; <g:each in="${mcs.Department.findAll([sort: 'orderNumber', order: 'asc'])}" var="d">
+&nbsp; &nbsp; |&nbsp; &nbsp; 
+
+
+<span id="onlineLog"></span>
+
+ &nbsp;
+ / IPs:  &nbsp;
+<g:each in="${ips}" var="ip">
+
+   <b title="${ip.title}"> ${ip.ip}</b> (${ip.name})
+    &nbsp; &nbsp;
+</g:each>
+
+<g:if test="${1==2}">
+<span style="border: 0px dashed darkgray; padding-left: 15px !important; background: #8e8e97">
+
+${mcs.Course.countByBookmarked(true)} C * / p4:
+
+:&nbsp; &nbsp;  <g:each in="${mcs.Department.findAll([sort: 'orderNumber', order: 'asc'])}" var="d">
     <g:if test="${mcs.Course.countByDepartmentAndBookmarked(d, true, [sort: 'code', order: 'asc']) > 0}">
-        <b style="font-size: 14px;">${d.code}</b>:
+        %{--<b style="font-size: 14px;">${d.code}</b>:--}%
         <g:each in="${mcs.Course.findAllByDepartmentAndBookmarked(d,true, [sort: 'department', order: 'asc'])}" var="crs">
-            <span style="font-size: 13px; border-radius: 2px; border: 1px lightgrey solid; padding: 1px; margin-right: 2px;">${crs.code}</span>
+            <g:if test="${crs.priority == 4}">
+            <span style="font-size: 13px; text-decoration: underline; border-radius: 2px; padding: 1px; margin-right: 4px;">${crs.code}</span>
+            </g:if>
         </g:each>
 
     </g:if>
 </g:each>
+</span>
+
+</g:if>
 
 
 %{--    ${java.time.chrono.HijrahDate.now().get(java.time.temporal.ChronoField.DAY_OF_MONTH)}/--}%
diff --git a/grails-app/views/appMain/_west.gsp b/grails-app/views/appMain/_west.gsp
index b651e5a..7908e3d 100644
--- a/grails-app/views/appMain/_west.gsp
+++ b/grails-app/views/appMain/_west.gsp
@@ -460,8 +460,7 @@
             Order:
             <g:select name="order"
                       from="${['Asc', 'Desc']}"/>
-            <br/>
-            Max:
+           Max:
             <g:select name="max" value="3"
                       from="${['1', '3', '5', '10', '20', '50', '100', '500']}"/>
             <br/>
diff --git a/grails-app/views/appMain/main.gsp b/grails-app/views/appMain/main.gsp
index a8138bc..0ce82f7 100644
--- a/grails-app/views/appMain/main.gsp
+++ b/grails-app/views/appMain/main.gsp
@@ -305,7 +305,7 @@ $("#accordionCenter").accordion({
 
 
             jQuery.idleTimeout('#idletimeout', '#idletimeout a', {
-            idleAfter: 10,
+            idleAfter: 1,
             pollingInterval: 10,
             keepAliveURL: '/nibras/page/heartbeat',
             serverResponseEquals: 'ok',
@@ -315,11 +315,12 @@ $("#accordionCenter").accordion({
                     url: '/nibras/page/heartbeat',
                     dataType: 'html',
                     success: function(html, textStatus) {
-//                    jQuery('body').append(html);
+                    jQuery('#onlineLog').html('Online');
 //                        console.log('resp idle: ' + html)
                     },
 
                     error: function(xhr, textStatus, errorThrown) {
+                        jQuery('#onlineLog').html('OFFLINE');
                         confirm('Session lost!')
 //                        confirm('An error occurred! ' + ( errorThrown ? errorThrown :   xhr.status ));
 //                        alert('An error occurred! ' + ( errorThrown ? errorThrown :   xhr.status ));
@@ -334,10 +335,12 @@ $("#accordionCenter").accordion({
                     dataType: 'html',
                     success: function(html, textStatus) {
 //                    jQuery('body').append(html);
+                        jQuery('#onlineLog').html('Online');
 //                        console.log('resp timeout: ' + html)
                     },
                     error: function(xhr, textStatus, errorThrown) {
                         confirm('Session timeout!')
+                        jQuery('#onlineLog').html('OFFLINE');
 //                        alert('An error occurred! ' + ( errorThrown ? errorThrown :   xhr.status ));
                     }
                 });
@@ -500,6 +503,13 @@ $("#accordionCenter").accordion({
                 jQuery('#quickAddTextField').removeClass('shiftEnterPressed')
             }
 
+
+            function openNoteTaker()  {
+                window.open('/nibras/page/appDaftar', '',
+                        'height=200,width=400,chrome=yes,scrollbars=yes, titlebar=no, toolbar=no, menubar=no, location=no, status=no, directories=no, resizable=yes');
+
+            }
+
 //            Mousetrap.bindGlobal('f2', function (e) {
 //      jQuery('#quickAddXcdSubmit').click();
 //                jQuery('#addXcdFormDaftarSubmit').click();
@@ -553,7 +563,7 @@ $("#accordionCenter").accordion({
 
 <body>
 
-<g:render template="/appMain/regions" model="[htmlContent: htmlContent]"/>
+<g:render template="/appMain/regions" model="[htmlContent: htmlContent, ips: ips]"/>
 <div id="idletimeout"></div>
 
 
diff --git a/grails-app/views/gTemplates/_box.gsp b/grails-app/views/gTemplates/_box.gsp
index c7a75ac..90c2091 100644
--- a/grails-app/views/gTemplates/_box.gsp
+++ b/grails-app/views/gTemplates/_box.gsp
@@ -1,7 +1,8 @@
 <%@ page import="ker.OperationController; java.text.DecimalFormat; mcs.Goal; org.apache.commons.lang.StringUtils; mcs.Writing; mcs.Task; mcs.Planner" %>
 
 
-<div style="margin-bottom: 3px; margin-top: 3px; max-width: 95%; direction: rtl; text-align: right;" class="text${record.language} ">
+<div style="margin-bottom: 3px; margin-top: 3px; max-width: 95%; direction: rtl; text-align: right;"
+     class="text${record.language} ">
     <g:if test="${record}">
         <table width="99%;" border="0"
                class="text${record.language}"
@@ -9,19 +10,22 @@
 
             %{--<!--Id: ${plannerInstance.id} -->--}%
 
-            <tr style="background: #f1f1eb; border:0.5px solid #cccccc; padding: 0px;" class="${'GTP'.contains(record.entityCode()) ? 'workStatus-' + record.status?.code : ''}">
+            <tr style="background: #f1f1eb; border:0.5px solid #cccccc; padding: 0px;"
+                class="${'GTP'.contains(record.entityCode()) ? 'workStatus-' + record.status?.code : ''}">
 
-                <td style="font-size: 0.9em; padding: 3px; line-height: 1.1em;" class="text${record.class.declaredFields.name.contains('language') ? record.language : (entityCode == 'E' ? record?.book?.language : '')};">
+                <td style="font-size: 0.9em; padding: 3px; line-height: 1.1em;"
+                    class="text${record.class.declaredFields.name.contains('language') ? record.language : (entityCode == 'E' ? record?.book?.language : '')};">
 
                     <div class="" style="color: darkgray; display: inline; margin: 2px !important; ">
-                        <g:remoteLink controller="generics" action="showSummary" update="underBox${record.entityCode()}${record.id}"
-                                params="${[id: record.id, entityCode: record.entityCode(),  mobileView:  mobileView]}"
+                        <g:remoteLink controller="generics" action="showSummary"
+                                      update="underBox${record.entityCode()}${record.id}"
+                                      params="${[id: record.id, entityCode: record.entityCode(), mobileView: mobileView]}"
                                       style="color: darkgray;">
                             ${record.entityCode()}
                         </g:remoteLink>
                     </div>
 
-                    %{--<sup>${record.priority}</sup>--}%
+                %{--<sup>${record.priority}</sup>--}%
 
                     <g:if test="${'RE'.contains(record.entityCode())}">
                         <sup>${record.orderInCourse}</sup>
@@ -36,7 +40,7 @@
                             <g:elseif test="${record.priority == 4}">
                                 <b>&gt;&gt;</b>
                             </g:elseif>
-                           <g:elseif test="${record.priority == 5}">
+                            <g:elseif test="${record.priority == 5}">
                                 <b>&gt;&gt;&gt;</b>
                             </g:elseif>
                             <g:elseif test="${record.priority == 1}">
@@ -94,56 +98,58 @@
 
                     <span style="color: #003399;">
 
-                    <g:if test="${'G'.contains(record.entityCode())}">
-                        <i style="font-size: small">${record?.type?.code} ${record.department?.code}</i>&nbsp;
-                    </g:if>
-                    <g:if test="${'T'.contains(record.entityCode())}">
-                        <i style="font-size: small">${record?.context?.code} ${record?.course?.code} ${record.department?.code}</i>&nbsp;
-                        <sup>${record.plannedDuration ? record.plannedDuration + "''" : ''}</sup>
-                    </g:if>
-                    <g:if test="${'P'.contains(record.entityCode())}">
-                        <i style="font-size: small">${record?.type?.code} ${record.status?.code}</i>&nbsp;
-                    </g:if>
-                    <g:if test="${'J'.contains(record.entityCode())}">
-                        <i style="font-size: small">${record?.type?.code} ${record.department?.code}</i>&nbsp;
-                    </g:if>
-                    <g:if test="${'W'.contains(record.entityCode())}">
+                        <g:if test="${'G'.contains(record.entityCode())}">
+                            <i style="font-size: small">${record?.type?.code} ${record.department?.code}</i>&nbsp;
+                        </g:if>
+                        <g:if test="${'T'.contains(record.entityCode())}">
+                            <i style="font-size: small">${record?.context?.code} ${record?.course?.code} ${record.department?.code}</i>&nbsp;
+                            <sup>${record.plannedDuration ? record.plannedDuration + "''" : ''}</sup>
+                        </g:if>
+                        <g:if test="${'P'.contains(record.entityCode())}">
+                            <i style="font-size: small">${record?.type?.code} ${record.status?.code}</i>&nbsp;
+                        </g:if>
+                        <g:if test="${'J'.contains(record.entityCode())}">
+                            <i style="font-size: small">${record?.type?.code} ${record.department?.code}</i>&nbsp;
+                        </g:if>
+                        <g:if test="${'W'.contains(record.entityCode())}">
 
-                        <i style="font-size: small">${record?.type?.code} ${record.department?.code}</i>&nbsp;
-                    </g:if>
-                    <g:if test="${'E'.contains(record.entityCode())}">
-                        <i style="font-size: small">
-                            B-${record?.book?.id}
-                            ${record?.book?.author},
-                            ${record?.book?.title ?: record?.book?.legacyTitle} ${record?.book?.edition}
-                            (${record?.book?.publisher},
-                            ${record?.book?.publicationDate})
-                        </i>&nbsp;
-
-                        <i style="font-size: small">${record.class.declaredFields.name.contains('type') ? record?.type?.code: ''} ${record.class.declaredFields.name.contains('department') ? record.department?.code: ''}</i>&nbsp;
-                    </g:if>
-                </span>
+                            <i style="font-size: small">${record?.type?.code} ${record.department?.code}</i>&nbsp;
+                        </g:if>
+                        <g:if test="${'E'.contains(record.entityCode())}">
+                            <i style="font-size: small">
+                                B-${record?.book?.id}
+                                ${record?.book?.author},
+                                ${record?.book?.title ?: record?.book?.legacyTitle} ${record?.book?.edition}
+                                (${record?.book?.publisher},
+                                ${record?.book?.publicationDate})
+                            </i>&nbsp;
+
+                            <i style="font-size: small">${record.class.declaredFields.name.contains('type') ? record?.type?.code : ''} ${record.class.declaredFields.name.contains('department') ? record.department?.code : ''}</i>&nbsp;
+                        </g:if>
+                    </span>
 
 
 
-                    <g:remoteLink controller="generics" action="showSummary" update="underBox${record.entityCode()}${record.id}"
+                    <g:remoteLink controller="generics" action="showSummary"
+                                  update="underBox${record.entityCode()}${record.id}"
                                   style="font-family: tahoma; font-size: 0.9em;"
                                   class="text${record.class.declaredFields.name.contains('language') ? record.language : (entityCode == 'E' ? record?.book?.language : '')};"
-                                  params="${[id: record.id, entityCode: record.entityCode(), mobileView:  mobileView]}" >
-
+                                  params="${[id: record.id, entityCode: record.entityCode(), mobileView: mobileView]}">
 
-                        <span style="" class="text${record.class.declaredFields.name.contains('language') ? record.language : (entityCode == 'E' ? record?.book?.language : '')};">
+                        <span style=""
+                              class="text${record.class.declaredFields.name.contains('language') ? record.language : (entityCode == 'E' ? record?.book?.language : '')};">
 
                             <g:if test="${'P'.contains(record.entityCode()) && record.task}">
-                                <span title="${record?.summary}">${record.task?.summary}</span>
+                                <br/>  <span title="${record?.summary}">${record.task?.summary}</span>
                             </g:if>
                             <g:elseif test="${'N'.contains(record.entityCode())}">
                                 ${record?.orderInWriting ? '#' + record?.orderInWriting + ' ' : ''}
-                                ${record?.summary}
+                              <br/>  ${record?.summary}
 
 
                                 <g:if test="${record.fileName}">
-                                    <a href="${createLink(controller: 'operation', action: 'downloadNoteFile', id: record.id)}" target="_blank">
+                                    <a href="${createLink(controller: 'operation', action: 'downloadNoteFile', id: record.id)}"
+                                       target="_blank">
                                         <span style="font-size: 12px;">
                                             ${record.fileName}
                                         </span></a>
@@ -151,20 +157,21 @@
 
                             </g:elseif>
                             <g:elseif test="${'R'.contains(record.entityCode())}">
-
+                                <br/>
                                 ${record?.title ?: record?.legacyTitle}
                                 <i>${record?.author}</i>
 
                             </g:elseif>
 
                             <g:elseif test="${'E'.contains(record.entityCode())}">
-
+                                <br/>
                                 <span style="color: gray">${record?.book?.title ?: record?.book?.legacyTitle}</span>
                                 <u>${record.chapters}</u>
                                 <i>${record?.summary}</i>
                             </g:elseif>
 
                             <g:else>
+                                <br/>
                                 ${record?.summary}
                             </g:else>
 
@@ -191,45 +198,45 @@
                         </div>
                     </g:if>
 
-
                 </td>
-        </tr>
-        <tr style="background: #fff; border-left: 0px; border-right: 0px; border-bottom: 1px #ccc !important; ">
-        <td class="text${record.language}" style="padding: 3px; border: 1px darkgray dashed;">
-
+            </tr>
+            <tr style="background: #fff; border-left: 0px; border-right: 0px; border-bottom: 1px #ccc !important; display: none;" >
+                <td class="text${record.language}" style="padding: 3px; border: 1px darkgray dashed;">
 
-            <span style="color: dimgray">${record.class.declaredFields.name.contains('description') && record.description?  StringUtils.abbreviate(record.description?.encodeAsHTML(), 240): ''}</span>
+                    <span style="color: dimgray">
+                        ${record.class.declaredFields.name.contains('description') && record.description ? StringUtils.abbreviate(record.description?.encodeAsHTML(), 240) : ''}
+                    </span>
 
-            <g:if test="${record.entityCode() == 'N' && record.recordId}">
+                    <g:if test="${record.entityCode() == 'N' && record.recordId}">
 
-                <g:remoteLink controller="generics" action="showSummary"
-                              id="${record.recordId}"
-                              params="[entityCode: record.entityCode]"
-                              update="belowNRecord${record.id}"
-                              title="Show parent entity">
+                        <g:remoteLink controller="generics" action="showSummary"
+                                      id="${record.recordId}"
+                                      params="[entityCode: record.entityCode]"
+                                      update="belowNRecord${record.id}"
+                                      title="Show parent entity">
 
-                    <b>${record.entityCode}</b>
-                    <i>${record.recordId}</i>
+                            <b>${record.entityCode}</b>
+                            <i>${record.recordId}</i>
 
 
-                <g:if test="${record.entityCode == 'R'}">
-                ${Book.get(record.recordId)}
-                </g:if>
+                            <g:if test="${record.entityCode == 'R'}">
+                                ${Book.get(record.recordId)}
+                            </g:if>
 
-                </g:remoteLink>
+                        </g:remoteLink>
 
-            </g:if>
+                    </g:if>
 
                 </td>
 
             </tr>
             %{--<g:if test="${'CGR'.contains(record.entityCode()) && record.percentCompleted}">--}%
             %{--<tr>--}%
-                %{--<td colspan="2"  style="padding: 0; margin: 0" class="text${record.language}">--}%
-                    %{--<br/>--}%
-                        %{--<pkm:progressBar percent="${record.percentCompleted}"/>--}%
+            %{--<td colspan="2"  style="padding: 0; margin: 0" class="text${record.language}">--}%
+            %{--<br/>--}%
+            %{--<pkm:progressBar percent="${record.percentCompleted}"/>--}%
 
-                %{--</td>--}%
+            %{--</td>--}%
             %{--</tr>--}%
             %{--</g:if>--}%
         </table>
@@ -238,6 +245,11 @@
 
 
 <br/>
+
 <p style="page-break-before: always"></p>
 
-<div id="underBox${record.entityCode()}${record.id}"></div>
\ No newline at end of file
+<div id="underBox${record.entityCode()}${record.id}"></div>
+
+<div style="margin-left: 20px;" id="below${record.entityCode()}Record${record.id}">
+
+</div>
\ No newline at end of file
diff --git a/grails-app/views/gTemplates/_recordJP.gsp b/grails-app/views/gTemplates/_recordJP.gsp
index 2358fb5..fffb1f5 100644
--- a/grails-app/views/gTemplates/_recordJP.gsp
+++ b/grails-app/views/gTemplates/_recordJP.gsp
@@ -3,7 +3,7 @@
        value="${record.metaClass.respondsTo(record, 'entityCode') ? record.entityCode() : record.class?.name?.split(/\./).last()}"/>
 
 
-<div class="recordDetailsBody" style="margin-left: 5px;" id="detailsRegion${entityCode}${record.id}">
+<div class="recordDetailsBody" style="margin: 5px;" id="detailsRegion${entityCode}${record.id}">
 
 
 <g:if test="${'CTGREW'.contains(entityCode)}">
@@ -15,18 +15,22 @@
 
             %{--<g:select name="type" from="['J', 'P']" value="P"/>--}%
             <g:hiddenField name="type" value="P"/>
-            <g:select name="level" from="['l', 'e', 'y', 'A', 'M', 'r', 'w', 'd', 'm']" value="m"/>
-            <g:select name="priority" from="${1..4}" value="3" title="priority"/>
-            <g:select name="type.id"
+            l<g:select name="level" from="['l', 'e', 'y', 'A', 'M', 'r', 'w', 'd', 'm']" value="m"/>
+            p<g:select name="priority" from="${1..4}" value="3" title="priority"/>
+            #<g:select name="type.id"
                       from="${mcs.parameters.PlannerType.list([sort: 'code'])}"
                       value="${mcs.parameters.PlannerType.findByCode('assign').id}"
                       optionKey="id" optionValue="code"
                       title="Type"/>
-            <input type="text" name="date" title="Format: wwd [hh]" placeholder="Date"
+            (<input type="text" name="date" title="Format: wwd [hh]" placeholder="Date"
                    style="width: 70px;"
                    value="${mcs.UtilsController.toWeekDate(new Date() + 1)}_15"/>
+            ) <input type="text" name="endDate" title="Format: wwd [hh]" placeholder="End date"
+                     style="width: 70px;"
+                     value="${mcs.UtilsController.toWeekDate(new Date())}_${new Date().format('HH').toInteger() + 1}"/>
+
             <input type="text" name="summary" title="" placeholder="Summary"
-                   style="width: 500px;"
+                   style="width: 300px;"
                    value=""/>
 
 
@@ -45,17 +49,24 @@
 
             %{--<g:select name="type" from="['J', 'P']" value="J"/>--}%
           <g:hiddenField name="type" value="J"/>
-            <g:select name="level" from="['l', 'e', 'y', 'M', 'r', 'w', 'd', 'm']" value="m"/>
-            <g:select name="priority" from="${1..4}" value="3" title="priority"/>
-            <g:select name="type.id" from="${mcs.parameters.JournalType.list([sort: 'code'])}"
-                      value="${JournalType.findByCode('rev').id}"
+            l <g:select name="level" from="['l', 'e', 'y', 'M', 'r', 'w', 'd', 'm']" value="m"/>
+            p <g:select name="priority" from="${1..4}" value="3" title="priority"/>
+            #<g:select name="type.id" from="${mcs.parameters.JournalType.list([sort: 'code'])}"
+                      value="${JournalType.findByCode('act').id}"
                       optionKey="id" optionValue="code"
                       title="Type"/>
-            <input type="text" name="date" title="Format: wwd [hh]" placeholder="Date"
+            (<input type="text" name="date" title="Format: wwd [hh]" placeholder="Date"
                    style="width: 70px;"
-                   value="${mcs.UtilsController.toWeekDate(new Date() -1)}_15"/>
+                   value="${mcs.UtilsController.toWeekDate(new Date())}_${new Date().format('HH')}"/>
+
+
+         ) <input type="text" name="endDate" title="Format: wwd [hh]" placeholder="End date"
+                 style="width: 70px;"
+                 value="${mcs.UtilsController.toWeekDate(new Date())}_${new Date().format('HH').toInteger() + 1}"/>
+
+
             <input type="text" name="summary" title="" placeholder="Summary"
-                   style="width: 500px;"
+                   style="width: 300px;"
                    value=""/>
 
 
diff --git a/grails-app/views/gTemplates/_recordSummary.gsp b/grails-app/views/gTemplates/_recordSummary.gsp
index 1358c83..408ab6f 100644
--- a/grails-app/views/gTemplates/_recordSummary.gsp
+++ b/grails-app/views/gTemplates/_recordSummary.gsp
@@ -25,7 +25,7 @@
 
 
     <div id="${entityCode}Record${record.id}" style="">
-
+        <a onclick="jQuery('#${entityCode}Record${record.id}').html('');" style="float: right; color: darkgray; margin-right: 4px;">x</a>
         %{--${justUpdated ? 'justUpdated' : ''} todo--}%
 
         <div class="recordContainer"
@@ -75,8 +75,8 @@
                                               title="ID ${record.id}. Click to refresh">
 
                                     <span class="${entityCode}-bkg ID-bkg ${entityCode == 'N' && record.entityCode != null ? 'non-genuineNote' : ''} ${entityCode == 'T' && record.isTodo ? 'todoTask' : ''}"
-                                          style="padding: 3px; margin-right: 3px; color: gray;">
-                                        <b style="color: white;">${entityCode}&nbsp;    </b>
+                                          style="padding: 3px; margin-right: 3px; color: gray; display: inline;">
+                                        <span style="color: lightgray;">${entityCode}</span><b><span style="color: white;">${record.id}</span></b>
                                     </span>
                                 </g:remoteLink>
 
diff --git a/grails-app/views/gTemplates/_searchForm.gsp b/grails-app/views/gTemplates/_searchForm.gsp
index e01c607..a183bb8 100644
--- a/grails-app/views/gTemplates/_searchForm.gsp
+++ b/grails-app/views/gTemplates/_searchForm.gsp
@@ -37,7 +37,7 @@ and <g:textField name="dateB" style="width: 50px;" value=""/>
 
 <br/>
 
-<g:if test="${'GTPJWNR'.contains(entityCode)}">
+<g:if test="${'GPJWNR'.contains(entityCode)}">
 
     <g:select name="type" style="width: 150px;"
               from="${types}" optionKey="id" optionValue="value"
diff --git a/grails-app/views/layouts/_panel.gsp b/grails-app/views/layouts/_panel.gsp
index 9884542..f7acc1c 100644
--- a/grails-app/views/layouts/_panel.gsp
+++ b/grails-app/views/layouts/_panel.gsp
@@ -1114,7 +1114,7 @@ Authors: ${authors}
             </div>
         </g:if>
 
-<g:if test="${entityCode == 'N' && record.version == 0}">
+<g:if test="${entityCode == 'N'}">
     &nbsp; &nbsp;Convert to &nbsp;
     <g:each in="${['J', 'P', 'T', 'R', 'W']}" var="t">
 
diff --git a/grails-app/views/page/kanbanCrs.gsp b/grails-app/views/page/kanbanCrs.gsp
index 19871e4..d60c186 100644
--- a/grails-app/views/page/kanbanCrs.gsp
+++ b/grails-app/views/page/kanbanCrs.gsp
@@ -20,7 +20,7 @@
 <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
 
-    %{--<meta name="layout" content="main"/>--}%
+    <meta name="layout" content="main"/>
     <title>${title ?: 'Kanban'}</title>
 
 
@@ -40,7 +40,7 @@
     %{--<r:require modules="jquery-ui"/>--}%
 
 
-    <r:layoutResources/>
+
 
 
     <link rel="stylesheet" href="${resource(dir: 'css', file: 'jquery-ui-1.8.22.custom.css')}"/>
@@ -104,71 +104,8 @@
 
     <script type=text/javascript>
 
-        /**
-         *    UI Layout Callback: resizePaneAccordions
-         *
-         *    This callback is used when a layout-pane contains 1 or more accordions
-         *    - whether the accordion a child of the pane or is nested within other elements
-         *    Assign this callback to the pane.onresize event:
-         *
-         *    SAMPLE:
-         *    < jQuery UI 1.9: $("#elem").tabs({ show: $.layout.callbacks.resizePaneAccordions });
-         *    > jQuery UI 1.9: $("#elem").tabs({ activate: $.layout.callbacks.resizePaneAccordions });
-         *    $("body").layout({ center__onresize: $.layout.callbacks.resizePaneAccordions });
-         *
-         *    Version:    1.2 - 2013-01-12
-         *    Author:        Kevin Dalman (kevin.dalman@gmail.com)
-         */
-        ;
-        (function ($) {
-            var _ = $.layout;
-
-// make sure the callbacks branch exists
-            if (!_.callbacks) _.callbacks = {};
-
-            _.callbacks.resizePaneAccordions = function (x, ui) {
-                // may be called EITHER from layout-pane.onresize OR tabs.show
-                var $P = ui.jquery ? ui : $(ui.newPanel || ui.panel);
-                // find all VISIBLE accordions inside this pane and resize them
-                $P.find(".ui-accordion:visible").each(function () {
-                    var $E = $(this);
-                    if ($E.data("accordion"))		// jQuery < 1.9
-                        $E.accordion("resize");
-                    if ($E.data("ui-accordion"))	// jQuery >= 1.9
-                        $E.accordion("refresh");
-                });
-            };
-        })(jQuery);
-
-
         jQuery(document).ready(function () {
 
-            var myLayout = $('body').layout({
-                west__size: 310,
-                east__size: 430,
-                // RESIZE Accordion widget when panes resize
-                west__onresize: $.layout.callbacks.resizePaneAccordions,
-                east__onresize: $.layout.callbacks.resizePaneAccordions,
-                onresize: $.layout.callbacks.resizePaneAccordions,
-                north__closable: true,
-                south__closable: true,
-                north__spacing_closed: 5		// big resizer-bar when open (zero height)
-                , north__resizable: false	// OVERRIDE the pane-default of 'resizable=true'
-                , south__resizable: false	// OVERRIDE the pane-default of 'resizable=true'
-                , south__spacing_open: 5		// no resizer-bar when open (zero height)
-                , south__spacing_closed: 5		// big resizer-bar when open (zero height)
-
-                , east__spacing_open: 5		// no resizer-bar when open (zero height)
-                , east__spacing_closed: 5		// big resizer-bar when open (zero height)
-                , west__spacing_open: 5		// no resizer-bar when open (zero height)
-                , west__spacing_closed: 5		// big resizer-bar when open (zero height)
-//            , west__initClosed: true
-                , west__slideTrigger_open: 'mouseover'
-
-
-            });
-
-
         });
 
     </script>
@@ -192,13 +129,12 @@
     %{--</tr>--}%
 %{--</table>--}%
 %{--<center>--}%
-<r:layoutResources/>
 
 
-<div class="ui-layout-north southRegion appBkg" style="overflow: hidden;"
-     style="">
+%{--<div class="ui-layout-north southRegion appBkg" style="overflow: hidden;"--}%
+     %{--style="">--}%
 
-</div>
+%{--</div>--}%
 
 %{--<div class="ui-layout-west westRegion appBkg"  style="margin-top: 5px !important;margin-bottom: 5px !important;">--}%
     %{--<div class="ui-layout-content ui-widget-content">--}%
@@ -207,25 +143,29 @@
     %{--</div>--}%
 %{--</div>--}%
 
-<div class="ui-layout-south southRegion" style="direction: rtl; text-align: center; font-family: tahoma; padding-bottom: 4px;">
+%{--<div class="ui-layout-south southRegion" style="direction: rtl; text-align: center; font-family: tahoma; padding-bottom: 4px;">--}%
 
-</div>
+%{--</div>--}%
 
 
-<div class="ui-layout-east eastRegion appBkg" style="margin-top: 5px !important;margin-bottom: 5px !important;">
+%{--<div class="ui-layout-east eastRegion appBkg" style="margin-top: 5px !important;margin-bottom: 5px !important;">--}%
 
-    <div class="ui-layout-content ui-widget-content">
-        <div id="3rdPanel" ></div>
-    </div>
-</div>
+    %{--<div class="ui-layout-content ui-widget-content">--}%
+        %{--<div id="3rdPanel" ></div>--}%
+    %{--</div>--}%
+%{--</div>--}%
 
 
-<div class="ui-layout-center appBkg" style="margin-top: 5px !important; margin-bottom: 5px !important; ">
+<div class="ui-layout-center appBkg" style="margin-top: 40px !important; margin-bottom: 5px !important; ">
     %{--ToDo: display none?!--}%
     <div class="ui-layout-content ui-widget-content" onmouseover="jQuery('#hintArea').html('')">
         <div id="notificationArea"></div>
 
-        <g:if test="${ssId}">
+    <g:if test="${items}">
+    <g:render template="/reports/dynamicKanbanTable"
+              model="[items: items, groups: groups, groupBy: groupBy, title:title, ssId: ssId]"/>
+        </g:if>
+    <g:elseif test="${ssId}">
             <g:render template="/gTemplates/recordListing" model="[
                     ssId: ssId,
                     searchResultsTotal: searchResultsTotal,
@@ -233,17 +173,13 @@
                     box: 1,
                     list: list,
                     title: title]"/>
-        </g:if>
+        </g:elseif>
        <g:elseif test="${list}">
             <g:render template="/gTemplates/recordListing" model="[
                     totalHits: totalHits,
                     list: list,
                     title: title]"/>
         </g:elseif>
-        <g:elseif test="${items}">
-            <g:render template="/reports/dynamicKanbanTable"
-                      model="[items: items, groups: groups, groupBy: groupBy, title:title, ssId: ssId]"/>
-        </g:elseif>
         <g:else>
             <g:render template="/reports/kanbanCrs" model="[title: title]"/>
         </g:else>
@@ -254,6 +190,6 @@
    </div>
 </body>
 
-%{--<r:layoutResources/>--}%
+<r:layoutResources/>
 
 </html>
diff --git a/run.bat b/run.bat
index 64ddfc6..f5f8151 100644
--- a/run.bat
+++ b/run.bat
@@ -4,4 +4,5 @@ set GRAILS_HOME=D:\dev\grails-3.3.10
 set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_111
 set CATALINA=-server -Xmx780m
 
-grails -disable.auto.recompile=false -Dgrails.gsp.enable.reload=true run-app
\ No newline at end of file
+grails -disable.auto.recompile=false -Dgrails.gsp.enable.reload=true run-app
+pause
diff --git a/src/main/resources/public/css/jquery-ui-1.8.22.custom.css b/src/main/resources/public/css/jquery-ui-1.8.22.custom.css
index c06358f..54362cd 100644
--- a/src/main/resources/public/css/jquery-ui-1.8.22.custom.css
+++ b/src/main/resources/public/css/jquery-ui-1.8.22.custom.css
@@ -155,7 +155,7 @@
     border: 1px solid #a3a3a3;
     /*background: #c1c1c1 url(images/ui-bg_highlight-hard_30_7e6f8b_1x100.png) 50% 50% repeat-x;*/
     font-weight: normal;
-    color: #ffffff;
+    /*color: #111;*/
 }
 
 .ui-state-hover a, .ui-state-hover {
diff --git a/src/main/resources/public/css/main-kanban.css b/src/main/resources/public/css/main-kanban.css
new file mode 100644
index 0000000..aaa0e74
--- /dev/null
+++ b/src/main/resources/public/css/main-kanban.css
@@ -0,0 +1,2009 @@
+html {
+    /*background: #f1f1f1;*/
+    font-family:  Lato !important;
+}
+
+.ID-bkg {
+    background: #808080;
+    padding: 4px;
+    margin: 2px;
+}
+
+#authBody {
+    background: url(../images/loginpageBackground.jpg) center left no-repeat;
+    height: 90% !important;
+
+    width: 99%;
+    margin: 0;
+    padding: 0;
+}
+
+html * {
+    margin: 0px;
+    font-family:  Lato !important;
+    /*padding: 0; SELECT NOT DISPLAYED CORRECTLY IN FIREFOX */
+}
+
+/* GENERAL */
+
+#spinner2 {
+    position: fixed;
+    top: 50%;
+    left: 50%;
+    margin-left: -100px;
+    /*half width of the spinner gif */
+    margin-top: -100px;
+    /*half height of the spinner gif */
+    text-align: center;
+    z-index: 1200034;
+    overflow: auto;
+    width: 200px; /* width of the spinner gif */
+    height: 200px; /*hight of the spinner gif +2px to fix IE8 issue */
+}
+
+.appBkg {
+    /*background: #e0e0e0 !important;*/
+    /*background: #fdfdfd !important;*/
+}
+
+.ui-layout-resizer {
+    /*background: lightgrey !important;*/
+    /*background: #fdfdfd !important;*/
+    z-index: 200000 !important;
+    padding: 1px;
+    border-radius: 2px;
+}
+
+.ui-layout-toggler-east{
+    /*background: darkgray !important;*/
+}
+
+.ui-layout-resizer-north{
+    display: none !important;
+}
+.ui-layout-resizer-south{
+    display: none !important;
+}
+
+.ui-layout-center, /* has content-div */
+
+.ui-layout-south, /* has content-div ... */
+ .ui-layout-content,
+ .ui-layout-content {
+    /*background: #fdfdfd;*/
+
+}
+
+
+.ui-layout-west, /* has Accordion */
+.ui-layout-east{
+    /*background: #9FA19E !important;*/
+}
+.ui-layout-north {
+    border-bottom-left-radius: 3px !important;
+    border-bottom-right-radius: 3px !important;
+}
+.ui-layout-south {
+    border-top-left-radius: 3px !important;
+    border-top-right-radius: 3px !important;
+}
+.ui-layout-south, .ui-layout-north {
+    border: solid 0.5px #818284;
+
+    background: #6D6D74 !important;
+/*url(../images/bg-header.gif) no-repeat*/
+}
+
+body {
+    /*background: #fdfdfd;*/
+    color: #333;
+    /*line-height: 1.4;*/
+    font-size: 1em;
+    font-family:  Lato !important;
+
+    background: #D8D4C9 url(../images/bg-main.gif) repeat-x;
+    /*font: 12px/20px Verdana, Arial, Tahoma, sans-serif;*/
+
+    /*todo*/
+    padding-left: 2% !important;
+    padding-right: 2% !important;
+
+    /*'Lucida Sans Unicode';*/
+    /*overflow: hidden;*/
+    /*margin: 2px;*/
+    /*padding: 2px;*/
+
+    /*float: left;*/
+    /*margin: 0 15px 10px 15px;*/
+    /*margin: auto;*/
+    /*width: 90%;*/
+}
+
+a:link, a:visited {
+    /*color: #333333;*/
+    text-decoration: none;
+    /*font-weight: normal;*/
+    cursor: pointer;
+    /*font-size: 12px;*/
+    /*font-family: verdana;*/
+}
+
+/*.banner a:hover {*/
+/*color: #ffc55c !important;*/
+/*}*/
+
+.multiselect {
+    width: 650px;
+    height: 200px;
+}
+
+h1 {
+    color: #4e5f6e;
+    font-weight: bold;
+    text-decoration: underline;
+    font-size: 14px;
+    margin: .4em 0 .3em 0;
+    padding: 4px;
+    /*font-family: arial;*/
+    /*"DejaVu Sans Mono";*/
+}
+
+h2 {
+    font-family: Lato, arial;
+    font-size: 14px;
+    color: #144a6c;
+    font-weight: bold;
+    /*line-height: 15px;*/
+    margin: 5px;
+    padding: 5px;
+
+}
+
+h2:hover {
+    /*    background: #daebf9; changed*/
+
+}
+
+h3 {
+    font-family: Lato, arial;
+    font-size: 13px;
+    color: #799edd;
+    font-weight: bold;
+    line-height: 15px;
+    margin: 5px;
+}
+
+h4 {
+
+    color: #212121;
+    /*4e5f6e;*/
+    font-weight: bold;
+    font-size: 15px;
+    /*margin: .2em 0 .2em 0;*/
+    padding: 5px;
+    /*margin-left: 1em;*/
+    font-family: Lato, "DejaVu Sans Mono";
+
+    /*padding: 4px;*/
+    /*vertical-align: top;*/
+    /*background: #648497;*/
+    /*font-weight: bold;*/
+    /*color: white;*/
+
+    /*font-weight: bold;*/
+    /*font-size: 13px;*/
+    /*margin: .8em 0 .3em 0;*/
+    /*padding: 6px;*/
+    /*margin-left: 1.3em;*/
+    /*font-family: "DejaVu Sans Mono";*/
+}
+
+ul {
+    padding-left: 13px;
+}
+
+.accordion ul li {
+    line-height: 14px;
+}
+
+input, select, textarea {
+    background-color: #fcfcfc;
+    border: 1px solid #ccc;
+    font: 11px lato, tahoma, verdana, arial, helvetica, sans-serif;
+    margin: 1px 0;
+    padding: 2px 2px;
+    min-width: 20px !important;
+    border-radius: 2px !important;
+    text-align: start  !important;
+    unicode-bidi: plaintext !important;
+    height: 25px;
+}
+
+select, textarea {
+    text-align: left;
+}
+
+select {
+    max-width: 150px;
+}
+
+table {
+    border-radius: 3px !important;
+
+}
+
+/*TODO: join the three below */
+
+.dialog select {
+    /*width: 300px;*/
+}
+
+.dialog textarea {
+    width: 200px;
+    height: 30px;
+}
+
+.dialog input {
+    width: 200px;
+}
+
+.longInput {
+    width: 200px !important;
+}
+
+.mediumInput {
+    width: 100px !important;
+}
+
+.shortInput {
+    width: 50px !important;
+}
+
+select {
+    padding: 2px 2px 2px 0;
+}
+
+textarea {
+    width: 200px;
+    height: 60px;
+    vertical-align: top;
+}
+
+/*select:focus,*/
+input:focus, textarea:focus {
+    border: 1px solid #9c9c9c;
+    /*background: #f1f3f5;*/
+}
+
+/* NAVIGATION MENU */
+
+.nav {
+
+    color: #ffffff !important;
+    /*border-bottom: 1px solid #D3D3D3;*/
+    /*border-style: solid none solid none;*/
+    font-family: Lato, tahoma;
+    padding-top: 2px;
+    /*margin-bottom: 2px;*/
+    padding-bottom: 2px;
+    /*height: 27px;*/
+
+}
+
+.nav a {
+    color: #6E6E6E !important;
+    font-family: Lato, tahoma;
+}
+
+.nav a:hover {
+    color: black !important;
+}
+
+#quickAddTextField, #quickAddNote {
+
+    /*border-bottom: 1px solid gray;*/
+    /*border-top: 0px;*/
+    /*border-left: 1px;*/
+    /*border-right: 0px;*/
+    /*width:650px; min-width:650px !important; */
+    /*     background: #eeeeee;  */
+    margin: 2px;
+    border-radius: 3px !important;
+
+}
+
+#quickAddTextField:focus {
+    border: 1px solid #9FA19E;
+    background: #ffffff;
+
+}
+
+a:hover {
+    /*color: white !important;*/
+    text-decoration: underline !important;
+    cursor: pointer;
+    /*font-weight: bold;*/
+}
+
+.menuButton {
+    font-size: 11px;
+    padding: 0 5px;
+}
+
+/* MESSAGES AND ERRORS */
+
+div.errors {
+    background: #fff3f3;
+    border: 1px solid red;
+    color: #cc0000;
+    margin: 10px 0 5px 0;
+    padding: 5px 0 5px 0;
+}
+
+div.errors ul {
+    list-style: none;
+    padding: 0;
+}
+
+div.errors li {
+    background: url(../images/skin/exclamation.png) 8px 0% no-repeat;
+    line-height: 16px;
+    padding-left: 30px;
+}
+
+td.errors select {
+    border: 1px solid red;
+}
+
+td.errors input {
+    border: 1px solid red;
+}
+
+/* TABLES */
+
+table {
+    /*border: 1px solid #ccc;*/
+}
+
+.tableList {
+    /*width: 90% !important;*/
+}
+
+tr {
+    border: 0;
+}
+
+.list td {
+    /*min-width:60px;*/
+    padding-top: 5px;
+    padding-bottom: 5px;
+}
+
+td, th {
+    font: 12px tahoma, verdana, arial, helvetica, sans-serif;
+    line-height: 15px;
+    padding: 2px;
+    /*text-align: left;*/
+    vertical-align: top;
+}
+
+th {
+    font: 11px tahoma, verdana, arial, helvetica, sans-serif !important;
+    /*font-weight:normal !important;*/
+    background: #fff url(../images/skin/shadow.jpg);
+    color: #666;
+    /*font-size: 12px;*/
+    /*font-weight: bold;*/
+    line-height: 17px;
+    padding: 2px 8px;
+    text-align: center;
+}
+
+th a:link, th a:visited, th a:hover {
+    /*color: #333;*/
+    display: block;
+    font-size: 12px;
+    /*text-decoration: none;*/
+    width: 100%;
+    font-weight: bold !important;
+    cursor: pointer;
+}
+
+th.asc a, th.desc a {
+    background-position: right;
+    background-repeat: no-repeat;
+    padding-right: 7px;
+}
+
+th.asc a {
+    background-image: url(../images/skin/sorted_asc.gif);
+}
+
+th.desc a {
+    background-image: url(../images/skin/sorted_desc.gif);
+}
+
+.odd {
+    background: #f7f7f7;
+}
+
+.even {
+    background: #fff;
+}
+
+/* LIST */
+
+.list table {
+    border-collapse: collapse;
+    /*margin-top:10px;*/
+    /*width:95% !important;*/
+    border-radius: 3px;
+}
+
+.list th, .list td {
+    border-left: 1px solid #ddd;
+}
+
+.list th:hover, .list tr:hover {
+    /*background: #d6d9da;*/
+    /*cursor: pointer;*/
+}
+
+.banner tr td {
+    padding: 0px;
+    margin: 0px;
+}
+
+.banner a {
+    color: white;
+    padding-right: 6px;
+}
+
+/* PAGINATION */
+
+.paginateButtons {
+    /*background: #fff url(../images/skin/shadow.jpg) bottom repeat-x;*/
+    /*border: 1px solid #ccc;*/
+    border-top: 0;
+    color: #666;
+    font-size: 11px;
+    overflow: hidden;
+    padding: 7px 5px;
+    margin: 10px;
+}
+
+.paginateButtons a {
+    background: #fff;
+    border: 1px solid #ccc;
+    border-color: #ccc #aaa #aaa #ccc;
+    border-radius: 3px;
+    color: #666;
+    margin: 0 3px;
+    padding: 2px 4px;
+}
+
+.paginateButtons span {
+    padding: 2px 3px;
+}
+
+.currentStep {
+    font-size: 13px;
+    font-weight: bold;
+    color: #997008;
+}
+
+/* DIALOG */
+
+.dialog table {
+    margin: 2px;
+    padding: 5px 0;
+}
+
+.prop {
+    padding: 5px;
+}
+
+.prop .name {
+    text-align: left;
+    width: 20%;
+    white-space: nowrap;
+}
+
+.prop .value {
+    text-align: left;
+    width: 33%;
+    white-space: nowrap;
+}
+
+.dialogshow .prop .value {
+    text-align: left;
+    width: 25%;
+    background: #f5f5da; /* beige */
+}
+
+.rectangle {
+    /*background: #def4ff;*/
+    /*padding:10px;*/
+    margin: 5px;
+
+    /*border:solid #adc1db 1px;*/
+}
+
+.rectangle table th {
+    font-size: 12px;
+}
+
+.rectangle table {
+    /*background: #def4ff;*/
+    /*padding:2px;*/
+    margin-top: 4px !important;
+    /*border:solid #adc1db 1px;*/
+}
+
+/* ACTION BUTTONS */
+
+.buttons {
+    background: #fff url(../images/skin/shadow.jpg) bottom repeat-x;
+    border: 1px solid #ccc;
+    color: #666;
+    font-size: 10px;
+    margin-top: 15px;
+    overflow: hidden;
+
+}
+
+.buttons input {
+    background: #fff;
+    border: 0;
+    color: #333;
+    cursor: pointer;
+    font-size: 10px;
+    font-weight: bold;
+    margin-left: 3px;
+    overflow: visible;
+    padding: 2px 6px;
+    text-align: left;
+}
+
+.buttons input.delete {
+    background: transparent url(../images/skin/database_delete.png) 5px 50% no-repeat;
+    padding-left: 28px;
+    padding-top: 3px;
+    padding-bottom: 3px;
+}
+
+.buttons a.delete {
+    background: transparent url(../images/skin/database_delete.png) 5px 50% no-repeat;
+    padding-left: 28px;
+    padding-top: 3px;
+    padding-bottom: 3px;
+}
+
+.buttons input.show {
+    background: transparent url(../images/skin/database_table.png) 5px 50% no-repeat;
+    padding-left: 28px;
+}
+
+.buttons {
+    padding: 3px !important;
+}
+
+.list a {
+    color: #333333;
+    /*text-decoration:underline;*/
+}
+
+#ui-datepicker-div {
+    /* Minimum of '5' is required */
+    z-index: 999999 !important;
+}
+
+img {
+    border: none;
+}
+
+label {
+    display: block;
+    color: #474646;
+}
+
+div.calendar {
+    z-index: 99999;
+}
+
+.showvalue {
+    font-weight: normal;
+    font-size: 13px;
+    color: #333333;
+    /*background: #f5f5dc;*/
+}
+
+.showLabel {
+    font-weight: normal;
+    font-size: 12px;
+    color: #4f4e4e;
+    padding-bottom: 4px;
+    /*background: #f5f5dc;*/
+}
+
+.alert {
+    background: #f3f8fc url(../images/skin/information.png) 8px 50% no-repeat;
+    border: 1px solid #b2d1ff;
+    color: #006dba;
+    margin: 10px 0 5px 0;
+    padding: 5px 5px 5px 30px
+}
+
+#actionsBox {
+    height: 20px;
+}
+
+.alert {
+    color: red;
+}
+
+#menu li ul, #menu > li, #menu, #notificationArea, #menu .middle {
+    background: #525262 !important;
+}
+
+.multi-column-listing {
+    -moz-column-count: 4;
+    -webkit-column-count: 4;
+}
+
+.appCardHead {
+    padding: 4px;
+    vertical-align: top;
+    background: #6d94a8;
+    font-weight: bold;
+    color: white;
+}
+
+.appCardBody {
+    border: 1px rgba(109, 148, 168, 0.11) !important;
+
+    padding: 4px;
+    margin: 4px;
+    font-size: 11px;
+    font-family: Lato, verdana;
+}
+
+.appCardContainer {
+    width: 98%;
+    background: #F9FCFD;
+    margin: 8px;
+    padding: 0px;
+
+    /*height: 250px !important;*/
+    float: left;
+
+    overflow: auto;
+    border: 1px solid #bababa;
+
+}
+
+/*#rssList  td   {*/
+/*color: #105CB6;*/
+/*text-decoration: none;*/
+/*}*/
+
+#rssList td {
+    border-right: 0px solid #D7D7D7;
+    /*float: left;*/
+    margin-left: 9px;
+    padding-right: 9px;
+}
+
+#rssList td a {
+    font-size: 12px !important;
+    font-family: Lato, "Segoe UI", verdana, Geneva, Arial, Helvetica, sans-serif !important;
+    color: white !important;
+    text-decoration: none;
+}
+
+#rssList {
+    /*float: right;*/
+    /*direction: ltr;*/
+    text-align: start;
+    margin-right: -1px;
+    padding-top: 0em;
+    font-size: 12px;
+    /*font-family: arial;*/
+    /*list-style: none outside none;*/
+}
+
+#shortcutKeyList {
+    float: left;
+    margin-right: -1px;
+    padding-top: 0.4em;
+    font-size: 10px;
+    list-style: none outside none;
+}
+
+.nicelisting {
+    font-size: 13px;
+    font-family: Lato, "DejaVu Sans Mono";
+    line-height: 20px;
+}
+
+.ui-tabs .ui-tabs-panel {
+    /*height: 530px;*/
+    overflow-y: auto;
+    z-index: 3 !important;
+}
+
+#panoramasTab > a {
+    margin-right: 10px;
+    /*font-size: 11px;*/
+    padding: 10px;
+    font-family: Lato, "DejaVu Sans Mono";
+}
+
+#panoramasTab a:hover {
+    text-decoration: underline;
+    background: #a3bdd0;
+}
+
+.accordion ul li {
+    padding: 3px;
+    font-size: 14px;
+    /*font-family: "DejaVu Sans Mono";*/
+}
+
+.goalType1 {
+    color: green;
+}
+
+.goalType2 {
+    color: blue;
+}
+
+.goalType3 {
+    color: #ff4500;
+}
+
+.goalType4 {
+    color: #9d860a;
+}
+
+.goalType17 {
+    color: #585441;
+}
+
+.exrNotRead {
+    color: #040f29 !important;
+    font-size: 12px !important;
+    font-family: Lato, verdana !important;
+    font-weight: bold !important;
+}
+
+.exrRead {
+    color: #006666 !important;
+    font-size: 11px !important;
+    font-family: Lato, tahoma !important;
+}
+
+.urgent {
+    background: #dfd2c1;
+}
+
+.writing {
+    background: #ecf0f0;
+    color: black;
+}
+
+.writing2 {
+    background: #babbbb;
+    color: black;
+}
+
+/*.ui-datepicker {*/
+/*width: 15em;*/
+/*height: 15em;*/
+/*}*/
+
+.hing {
+    font-size: 14px;
+    font-weight: bold;
+    color: #333333;
+    cursor: pointer;
+    text-decoration: underline;
+}
+
+.published {
+    background: #ececc8;
+}
+
+.bookmarked {
+    text-decoration: underline;
+}
+
+.activeCourse {
+    background: #ececc8;
+
+}
+
+.reality {
+    color: #660000;
+}
+
+.req {
+    font-size: 12px;
+    color: red;
+}
+
+.fullTextPopup {
+    font-size: 12px;
+    font-family: Lato, "DejaVu Sans Mono";
+    line-height: 20px;
+}
+
+.outputTab {
+    background: #7d8d9c !important;
+}
+
+.outputTab a {
+    color: white !important;
+}
+
+.inputTab {
+    background: #d4a9ae !important;
+}
+
+.inputTab a {
+    color: white !important;
+}
+
+.addTab {
+    background: #bdc8cc !important;
+}
+
+.browserTab {
+    background: #c1ccd0 !important;
+}
+
+.browserTab a {
+    color: #000000 !important;
+}
+
+.journalTab {
+    background: #9ed4bb !important;
+}
+
+.journalTab a {
+    color: white !important;
+}
+
+.agendaTab {
+    background: #d5c3bb !important;
+}
+
+.agendaTab a {
+    color: white !important;
+}
+
+.addTab a {
+    color: #000000 !important;
+}
+
+.reportTab {
+    background: #bcd0d6 !important;
+}
+
+.reportTab a {
+    color: white !important;
+}
+
+.count {
+    font-style: italic;
+    font-size: 8px;
+}
+
+#MB_content {
+    overflow: auto !important;
+    height: 470px !important;
+    background: #fff;
+}
+
+.card {
+    border-radius: 3px;
+    margin: 5px;
+    padding: 5px;
+    width: 620px;
+}
+
+.ui-tabs-vertical {
+    margin: 5px;
+    /*height: 530px;*/
+}
+
+.ui-tabs-vertical .ui-tabs-nav {
+    padding: 1em .1em 1em .2em;
+    float: left;
+}
+
+.ui-tabs-vertical .ui-tabs-nav li {
+    clear: left;
+    width: 10em;
+    border-bottom-width: 1px !important;
+    border-right-width: 0 !important;
+    margin: 0 -1px .2em 0;
+}
+
+.ui-tabs-vertical .ui-tabs-nav li a {
+    display: block;
+}
+
+.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-selected {
+    padding-bottom: 0;
+    padding-right: .1em;
+    padding-left: .1em;
+    border-right-width: 1px;
+    /*color: white;*/
+}
+
+.ui-tabs-vertical .ui-tabs-panel {
+    padding: 0.95em;
+    border-radius: 3px !important;
+}
+
+/* overrides for ui-tab styles */
+ul.ui-tabs-nav {
+    padding: 0 0 0 5px;
+}
+
+.ui-tabs-nav li {
+    margin: 3px 3px 0 0;
+}
+
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a {
+    /*font-size: 12px;*/
+}
+
+.ui-accordion li {
+    padding: 2px;
+}
+
+.printOnly {
+    display: none;
+}
+
+.fixed-layout {
+    table-layout: auto;
+    width: 100%;
+    border-spacing: 0;
+}
+
+.record-selection {
+    width: 20px;
+    font-size: 10px;
+    text-align: left;
+    white-space: nowrap;
+}
+
+.record-id {
+    width: 65px !important;
+    font-size: 12px;
+    color: #fff;
+    text-align: left;
+    white-space: nowrap;
+}
+
+.record-realid {
+    width: 30px;
+    font-size: 13px;
+    text-align: left;
+    white-space: nowrap;
+}
+
+.record-realid a {
+    font-size: 12px;
+    text-align: left;
+    white-space: nowrap;
+}
+
+.record-course {
+    width: 70px;
+    font-size: 11px;
+    padding: 2px;
+    text-align: center;
+    /*font-family: georgia;*/
+    font-weight: normal;
+
+    /*font-family: Courier;*/
+
+    /*padding: 1px;*/
+    /*margin-left: 5px;*/
+
+}
+
+.record-type {
+    width: 90px;
+    font-size: 11px;
+    text-align: left;
+    font-family: Lato, georgia;
+    font-weight: normal;
+    font-style: italic;
+    overflow: hidden;
+    padding-left: 4px;
+    padding-right: 4px;
+}
+
+.record-date {
+    /*width: 140px;*/
+    font-size: 11px;
+    font-style: normal;
+    font-family: Lato, "Lucida Console";
+}
+
+.record-summary {
+    /*width: auto;*/
+    font-family: Lato, tahoma;
+    padding-left: 0px;
+    padding-right: 2px;
+    /*font-size: 11px;*/
+    text-align: left;
+    vertical-align: top !important;
+}
+
+.record-summary a {
+    font-family: Lato, tahoma;
+    /*"Lucida Sans";*/
+    font-size: 10px;
+    text-align: left;
+    vertical-align: top !important;
+}
+
+.record-status {
+    width: 120px;
+    font-size: 11px;
+    font-style: italic
+}
+
+.record-statistics {
+    width: 140px;
+    font-size: 10px;
+    font-style: italic;
+    text-align: center;
+}
+
+.record-actions {
+    width: 20px;
+}
+
+.record-priority {
+    font-size: 12px;
+    color: white;
+    width: 35px;
+
+}
+
+.record-level {
+    font-size: 12px;
+    color: white;
+    width: 60px;
+
+}
+
+.priority5 {
+    background: #641b0c;
+}
+
+.priority4 {
+    background: #c99b87;
+}
+
+.priority3 {
+    background: #f0ce9d;
+}
+
+.priority2 {
+    background: #a2e696;
+
+}
+
+.priority1 {
+    background: #d8f7da;
+}
+
+.priorityText4 {
+    color: darkblue !important;
+}
+
+.priorityText3 {
+    color: darkgreen !important;
+}
+
+.priorityText2 {
+    /*color: #darkgray;*/
+}
+
+.priorityText1 {
+    color: darkgray !important;
+}
+
+.priorityText0 {
+    color: lightgrey !important;
+}
+
+.levelY {
+    background: #641b0c;
+}
+
+.levelM {
+    background: #c99b87;
+}
+
+.levelW {
+    background: #639775;
+}
+
+.levelD {
+    background: #a2e696;
+}
+
+.levelm {
+    background: #d8f7da;
+}
+
+.recordLine {
+    background: #fafafa;
+}
+
+.recordLine td {
+    vertical-align: middle;
+    padding: 1px;
+}
+
+.D-bkg {
+    background: #36c699;
+    padding: 4px;
+}
+
+.C-bkg {
+    background: #36c676;
+    padding: 4px;
+}
+
+.G-bkg {
+    background: #a1c650;
+    padding: 4px;
+}
+
+.T-bkg {
+    background: #cbe0a1;
+    padding: 4px;
+}
+
+.P-bkg {
+    background: #238cCC;
+    /*#f3ffcc;*/
+    padding: 4px;
+}
+
+.Y-bkg {
+    background: #808080;
+    padding: 4px;
+}
+
+.X-bkg {
+    background: #808080;
+    padding: 4px;
+}
+
+.ID-bkg:hover {
+    background: olivedrab;
+    padding: 4px;
+}
+
+.J-bkg {
+    background: #90accf;
+    padding: 4px;
+}
+
+.W-bkg {
+    background: #fac69b;
+    padding: 4px;
+    color: white;
+}
+
+.N-bkg {
+    background: #fa8042 !important;
+    padding: 4px;
+}
+
+.non-genuineNote {
+    background: #fad5c1;
+    padding: 4px;
+}
+
+.S-bkg {
+    background: #ae9485;
+    padding: 4px;
+    color: white;
+}
+
+.I-bkg {
+    background: #a2c3ea;
+    padding: 3px;
+    color: white;
+}
+
+.Q-bkg {
+    background: #cee4ff;
+    padding: 3px;
+}
+
+.R-bkg {
+    background: #c38ea3;
+    padding: 3px;
+}
+
+.E-bkg {
+    background: #f6b2cf;
+    padding: 3px;
+}
+
+.recordContainer {
+    /*background: #f2f2f2;*/
+    -moz-border-bottom-colors: none;
+    -moz-border-left-colors: none;
+    -moz-border-right-colors: none;
+    -moz-border-top-colors: none;
+    /*border-color: transparent transparent #8ab2b6;*/
+    /*border-image: none;*/
+    /*border-style: solid;*/
+    /*border-width: 1px;*/
+}
+
+.justUpdated {
+    background: #eeffe4 !important;
+}
+
+/*.workStatus-completed a, .status2 a {*/
+/*color: #78a870 !important;*/
+/*}*/
+
+.status-pending a, .status-cyc a, .status-upd a {
+    color: #848034 !important;
+}
+
+.workStatus-completed a, .status3 a, .status-tbk a, .status-ref a {
+    color: #4972d1 !important;
+}
+
+.status-fix a, .status-coln a {
+    color: #247c31 !important;
+}
+
+.status-pending a {
+    color: gray !important;
+}
+
+.status-dis a {
+    color: gray !important;
+    text-decoration: line-through;
+}
+
+.status-nst a {
+    color: #7894a5 !important;
+    /*font-weight: bold;*/
+}
+
+.status-done a {
+    color: #7894a5 !important;
+    /*font-weight: bold;*/
+    text-decoration: line-through;
+}
+
+.status-ready a {
+    color: #7894a5 !important;
+    /*font-weight: bold;*/
+}
+
+.status-almost a, .status-draft a {
+    color: #195c5e !important;
+    /*font-weight: bold;*/
+}
+
+.status-in-progress a, .status-fortesting a {
+    color: #4b9d67 !important;
+    /*font-weight: bold;*/
+}
+
+.status-dismissed a, .status-deferred a, .status-completed a {
+    color: #4b4f5e !important;
+    text-decoration: line-through;
+}
+
+.status-10 a {
+    color: #8c8b46 !important;
+    /*text-decoration: underline;*/
+    /*text-decoration-line: line-through;*/
+}
+
+/*.status-deferred a {*/
+/*}, .status10 a, .status2 a, .status5 a  {*/
+/*color: #d14550 !important;*/
+
+/*}*/
+
+.navHidden {
+    display: none !important;
+}
+
+.my3Buttons {
+    height: 20px;
+    width: 30px;
+}
+
+.my3Buttons2 {
+    height: 40px;
+    width: 30px;
+}
+
+#navMenu {
+    vertical-align: top;
+
+    position: fixed;
+    top: 29px;
+    left: 0px;
+    overflow: auto;
+    height: 590px;
+    width: 235px;
+}
+
+.icon-starred-gm {
+    background: url("../images/mail.png") no-repeat scroll -20px -20px transparent;
+    width: 15px;
+    height: 15px;
+    display: block;
+}
+
+.icon-star-gm {
+    background: url("../images/mail.png") no-repeat scroll 0px -20px transparent;
+    width: 15px;
+    height: 15px;
+    display: block;
+}
+
+.deleted {
+    text-decoration: line-through;
+    color: #dcdcdc;
+}
+
+.actionLink {
+    /*background: #4c61fe;*/
+    border-radius: 3px;
+    border: 0px solid;
+    margin: 2px;
+    padding: 2px;
+    font-weight: normal;
+    color: darkgray !important;
+}
+
+.arabicText {
+    direction: rtl !important;
+    text-align: justify !important;
+}
+
+.RTLText {
+    direction: rtl !important;
+    text-align: justify !important;
+}
+
+.textar {
+    direction: rtl !important;
+    text-align: right !important;
+}
+
+.textfa {
+    direction: rtl !important;
+    text-align: right !important;
+}
+
+.textfr {
+    direction: ltr;
+!important;
+    text-align: left !important;
+}
+
+.texten {
+    direction: ltr;
+!important;
+    text-align: left !important;
+}
+
+.LTRText {
+    direction: ltr !important;
+    text-align: left !important;
+}
+
+.newFile {
+    color: green !important;
+}
+
+.tbkFile {
+    color: darkblue !important;
+}
+
+.libFile {
+    color: darkred !important;
+}
+
+.vxrFile {
+    color: brown !important;
+}
+
+.abkFile {
+    color: orange !important;
+}
+
+.shiftEnterPressed {
+    background: #cde1d2 !important;
+    border: #ffffff;
+}
+
+.actionTd {
+    width: 25px !important;
+}
+
+.actionTdBig {
+    width: 60px !important;
+}
+
+.actionTd a {
+    font-size: small;
+    color: dimgray;
+    /*padding:0px;*/
+
+}
+
+.secondLine {
+    background: #eeeeee !important;
+    color: #5c5c5c !important;
+}
+
+.secondLine a {
+    background: #eeeeee !important;
+    color: #5c5c5c !important;
+}
+
+.isRead {
+    color: #335e32 !important;
+    /*text-decoration: line-through;*/
+    /*text-decoration-color: #eeeeee;*/
+}
+
+.private {
+    color: #f3f3f3 !important;
+    font-size: 6px !important;
+}
+
+.private a {
+    color: #f3f3f3 !important;
+    font-size: 6px !important;
+}
+
+.box-priority-3 {
+    background: #77363b;
+}
+
+.box-priority-4 {
+    background: #d40009;
+}
+
+@media print {
+
+    .nonPrintable {
+        display: none;
+    }
+
+    .printOnly {
+        visibility: visible;
+    }
+
+    .fg-button {
+        visibility: hidden;
+        display: none !important;
+    }
+
+    .actionTd {
+        visibility: hidden !important;
+        display: none !important;
+    }
+
+    .record-selection {
+        visibility: hidden !important;
+        display: none !important;
+    }
+
+    .status {
+        visibility: hidden !important;
+        display: none !important;
+    }
+
+    .course {
+        visibility: hidden !important;
+        display: none !important;
+    }
+
+    .writing {
+        visibility: hidden !important;
+        display: none !important;
+    }
+
+    .idCell {
+        visibility: hidden !important;
+    }
+}
+
+#purr-container {
+    position: fixed;
+    top: 0;
+    right: 0;
+    z-index: 10000;
+}
+
+.notice {
+    position: relative;
+    width: 324px;
+    z-index: 10000;
+    font-size: 12px;
+}
+
+.notice .close {
+    position: absolute;
+    top: 12px;
+    right: 12px;
+    display: block;
+    width: 18px;
+    height: 17px;
+    text-indent: -9999px;
+    background: url(../images/purrClose.png) no-repeat 0 10px;
+}
+
+.notice-body {
+    min-height: 50px;
+    padding: 22px 22px 0 22px;
+    background: url(../images/purrTop.png) no-repeat left top;
+    color: #f9f9f9;
+    z-index: 10000;
+}
+
+.notice-body img {
+    width: 50px;
+    margin: 0 10px 0 0;
+    float: left;
+    z-index: 10000;
+}
+
+.notice-body h3 {
+    margin: 0;
+    font-size: 1.1em;
+}
+
+.notice-body p {
+    margin: 5px 0 0 60px;
+    font-size: 0.8em;
+    line-height: 1.1em;
+    z-index: 10000;
+}
+
+.notice-bottom {
+    height: 22px;
+    background: url(../images/purrBottom.png) no-repeat left top;
+    z-index: 10000;
+}
+
+.moduleCount {
+    float: right;
+    font-size: 12px;
+    font-weight: 500;;
+}
+
+ul.ui-autocomplete.ui-menu {
+    z-index: 100000;
+}
+
+.accordionHeader {
+    color: white !important;
+    background: #9FA19E;
+    border-top: 1px solid #6d6d74;
+    border-bottom: 1px solid #6d6d74;
+    margin-top: 3px;
+    margin-bottom: 3px;
+
+    /*4e5f6e;*/
+    font-weight: bold;
+    font-size: 12px;
+    /*margin: .2em 0 .2em 0;*/
+    padding: 3px;
+    /*margin-left: 1em;*/
+    font-family: Lato, "DejaVu Sans Mono";
+
+}
+
+h3, h4 {
+    /* Headers & Footer in Center & East panes */
+    font-size: 0.9em;
+    /*background: #D8D4C9;*/
+    border-bottom: 1px solid #BBB;
+    border-width: 0 0 1px;
+    padding: 5px 5px;
+    margin: 0;
+}
+
+h2 {
+    font-family: Lato, Georgia;
+    color: rgb(92, 109, 121);
+    font-weight: bold;
+    /*line-height: 40px;*/
+    /* Headers & Footer in Center & East panes */
+    font-size: 1.1em;
+    /*background: #D8D4C9;*/
+    border-bottom: 0.5px #BBB solid;
+    border-width: 1px 0 0;
+    padding: 7px 5px;
+    margin: 0;
+}
+
+.ui-helper-reset {
+    font-size: 12px !important;
+    /*0.99em !important;*/
+}
+
+ul.ui-autocomplete.ui-menu {
+    z-index: 1000 !important;
+}
+
+.typeahead,
+.tt-query,
+.tt-hint {
+    /*width: 396px;*/
+    /*height: 30px;*/
+    /*padding: 8px 12px;*/
+    /*font-size: 24px;*/
+    /*line-height: 30px;*/
+    background: #ffffff;
+    border: 1px solid #ccc;
+    -webkit-border-radius: 3px;
+    -moz-border-radius: 3px;
+    border-radius: 3px;
+    outline: none;
+}
+
+.typeahead {
+    background-color: #fff;
+}
+
+.typeahead:focus {
+    border: 2px solid #0097cf;
+}
+
+.tt-query {
+    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+    -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.tt-hint {
+    color: #999
+}
+
+.tt-dropdown-menu {
+    /*width: 422px;*/
+    z-index: 1000;
+    /*margin-top: 12px;*/
+    padding: 4px 0;
+    background: #ffffff !important;
+    border: 1px solid #ccc;
+    border: 1px solid rgba(0, 0, 0, 0.2);
+    -webkit-border-radius: 3px;
+    -moz-border-radius: 3px;
+    border-radius: 3px;
+    -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
+    -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
+    box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
+}
+
+.tt-suggestion {
+    /*padding: 3px 20px;*/
+    /*font-size: 18px;*/
+    /*line-height: 24px;*/
+}
+
+.tt-suggestion.tt-cursor {
+    color: #fff;
+    background-color: #0097cf;
+}
+
+.tt-suggestion p {
+    margin: 0;
+}
+
+.gist {
+    /*font-size: 14px;*/
+}
+
+.commandMode {
+    background: #ffcabf !important;
+}
+
+.testhide {
+    /*display: none;*/
+    visibility: hidden;
+}
+
+.hiddenActions {
+    /*display: none;*/
+    /*padding: 0px;*/
+    visibility: hidden;
+}
+
+.actionsButtons {
+    /*visibility: hidden;*/
+    padding: 2px;
+}
+
+.actionsButtons a {
+    color: #0b202f !important;
+    font-style: normal !important;
+    font-size: 10px !important;
+    text-decoration: none !important;
+    border: 0.5px solid darkgray !important;
+    border-radius: 3px !important;
+    padding: 2px;
+    margin-left: 2px;
+    margin-right: 2px;
+}
+
+.actionsButtonsStyle a {
+    font-size: 10px !important;
+    color: #0b1336 !important;
+    font-style: normal !important;
+    text-decoration: underline !important;
+    padding: 2px;
+    margin: 1px;
+}
+
+.actionsButtonsStyle {
+    padding: 2px;
+    margin-top: 2px;
+    margin-bottom: 5px;
+    /*background: floralwhite;*/
+}
+
+.showhim {
+    display: block;
+}
+
+/*.showhim:hover .actionsButtons{*/
+/*display : block;*/
+/*background: #ddd;*/
+/*}*/
+
+.showhim:hover .testhide {
+    display: block;
+    visibility: visible;
+    background: #ddd;
+    color: black;
+}
+
+.width95 {
+    width: 95% !important;
+}
+
+.record-summary:hover {
+    /*background: #e8f5e4;*/
+}
+
+.dashboardNumber {
+    font-size: 24px;
+    /*font-style: italic;*/
+}
+
+.dashboardLabel {
+    font-size: 14px;
+    font-family: Lato, "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
+    text-align: right;
+    float: right;
+}
+
+.dashboardCell {
+    /*background: #d4d4d4;*/
+    padding: 10px;
+    margin: 5px;
+    border: solid thin #006666;
+}
+
+.westRegion {
+    /*background: #f1f1f1 !important;*/
+
+}
+
+.eastRegion {
+    /*background: #f1f1f1 !important;*/
+    /*background: #D8D4C9 !important;*/
+
+}
+
+/*.northRegion .southRegion {*/
+/*padding: 0px;*/
+/*margin: 0px;*/
+/*overflow: hidden;*/
+/*border-bottom: solid 0px #eee;*/
+/*height: 35px;*/
+/*/!*background: #525262 !important;*!/*/
+/*}*/
+
+.commandBarRegion {
+    /*background: #D8D4C9 !important;*/
+}
+
+.southRegion {
+    /*background: rgb(102, 121, 134) !important; !*#BAC2BA !important;*!*/
+    /*border-color: #818284 !important; !*#BAC2BA !important;*!*/
+    /*color: black;*/
+    /*height: 20px;*/
+}
+
+.southRegion a {
+    color: black !important;
+    font-weight: normal;
+}
+
+.commandBarTexField {
+    font-family: Lato, tahoma !important;
+    font-size: 1.1em;
+    width: 98% !important;
+    height: 160px;
+    background: #dce5e5;
+    margin: 0px !important;
+}
+
+.dis {
+    color: black;
+}
+
+.error {
+    color: red
+
+}
+
+.correct {
+    color: darkgreen;
+
+}
+
+.overDueDate {
+    background: lightcoral !important;
+    color: darkred;
+}
+
+#writingNote_chzn {
+    width: 95% !important;
+}
+
+.commandBarInPanel {
+    margin-top: 10px;
+}
+
+.commandBarTexFieldTop {
+    background: #eeeeee;
+    /*direction: ltr;*/
+    text-align: start;
+}
+
+.ui-accordion-header :hover {
+    /*background: #c1c1c1 !important;*/
+    border: 0px solid #797979 !important;
+    /*color: white;*/
+}
+
+.ui-accordion-header a :hover {
+    background: #e0e0e0 !important;
+    border: 0px solid #9b9b9b !important;
+    /*color: white;*/
+}
+
+.footerRegion {
+    height: 20px;
+    padding: 5px;
+    /*background: #6D6D74 url(../images/bg-header.gif) no-repeat !important;*/
+    /*background: rgb(119, 141, 156) !important; !*#BAC2BA !important;*!*/
+    /*border-color: rgb(119, 141, 156) !important; !*#BAC2BA !important;*!*/
+    /*background: #BAC2BA !important;*/
+    /*color: black;*/
+}
+
+.footerRegion a {
+    font-size: 12px !important;
+    font-family: Lato, "Segoe UI", verdana, Geneva, Arial, Helvetica, sans-serif;
+    color: white !important;
+}
+
+.accordionPanelSettings {
+    background: #eeedef;
+    border: 1px lightgray solid;
+}
+
+.accordionPanelBrowse {
+    /*background: #cfd2cc;*/
+    border: 1px lightgray solid;
+}
+
+.accordionPanelAdd {
+    background: #ecefe8;
+    border: 1px lightgray solid;
+}
+
+.focusPSouth {
+    color: white;
+    /*font-style: italic;*/
+    text-decoration: underline;
+    font-size: 11px;
+    padding-left: 10px;
+    padding-right: 10px;
+}
+
+.todoTask {
+    background: darkgray !important;
+    color: white !important;
+}
+
+.todoTask a {
+    background: darkgray !important;
+    color: white !important;
+}
+
+.settingsUL li ul li {
+    padding-left: 10px;
+}
+
+#accordionModules div a {
+    padding-left: 3px;
+}
+
+#accordionModules div ul {
+    padding-left: 25px;
+}
+
+.message {
+    background: #f3f3ff;
+    border: 1px solid #5C6D79;
+    margin: 10px;
+    padding: 5px;
+    color: #47555e;
+    -moz-box-shadow: 0 0 0.25em #5C6D79;
+    -webkit-box-shadow: 0 0 0.25em #5C6D79;
+    box-shadow: 0 0 0.25em #5C6D79;
+}
+
+.wrongCommand {
+    background: #ffdbc8 !important;
+}
+
+.correctCommand {
+    background: #e1fedc !important;
+}
+
+a  {
+    color: black;
+}
+
+
+.actionsButtons a:hover {
+    border: 2px dashed #a3a3a3 !important;
+}
+
+
+.kanbanTables  td {
+    padding: 4px !important
+}
+
+.kanbanTables > td {
+    padding: 4px !important
+    margin: 3px !important;
+    border-radius: 4px !important;
+}
\ No newline at end of file
diff --git a/src/main/resources/public/css/main.css b/src/main/resources/public/css/main.css
index 1e2ea16..afe7e89 100644
--- a/src/main/resources/public/css/main.css
+++ b/src/main/resources/public/css/main.css
@@ -210,7 +210,7 @@ input, select, textarea {
     background-color: #fcfcfc;
     border: 1px solid #ccc;
     font: 11px lato, tahoma, verdana, arial, helvetica, sans-serif;
-    margin: 1px 0;
+    margin: 2px 2px;
     padding: 2px 2px;
     min-width: 20px !important;
     border-radius: 2px !important;
@@ -383,7 +383,7 @@ td, th {
     font: 12px tahoma, verdana, arial, helvetica, sans-serif;
     line-height: 15px;
     padding: 2px;
-    text-align: left;
+    /*text-align: left;*/
     vertical-align: middle;
 }
 
@@ -982,7 +982,7 @@ ul.ui-tabs-nav {
 }
 
 .record-id {
-    width: 35px !important;
+    width: 65px !important;
     font-size: 12px;
     color: #fff;
     text-align: left;
@@ -1986,4 +1986,12 @@ ul.ui-autocomplete.ui-menu {
 
 .correctCommand {
     background: #e1fedc !important;
+}
+
+a  {
+    color: black;
+}
+
+a :hover {
+    border: 1px solid #a3a3a3;
 }
\ No newline at end of file