GithubHelp home page GithubHelp logo

dewarim / cinnamon Goto Github PK

View Code? Open in Web Editor NEW
13.0 6.0 7.0 3.71 MB

Cinnamon CMS Server

License: Other

Groovy 74.49% Shell 0.33% JavaScript 4.95% CSS 1.45% Java 6.54% HTML 12.23%
cinnamon-cms technical-writing dita-cms

cinnamon's Introduction

Cinnamon CMS

With Cinnamon you can create complex and modular technical documentation with structured Word documents, DITA and XML. It can be used as a highly customizable content repository.

This repository contains the code for the Cinnamon CMS server, version 3.6

License

License is LGPL 2.1 or later - if you require other license conditions, please contact us.

Documentation

Please see Project Homepage and docs folder

Technology

The Cinnamon server is a Grails 2.5 application, written in Groovy and Java.

The Cinnamon client is a .NET application.

For more details, see dwarves and giants

Known Bugs

Please read docs/bugfix/readme.md for known problems when deploying from source.

Maintainers

Links

Download

  • Server VM: http://cinnamon.dewarim.com/Cinnamon-Server-3.6.1.zip

      md5sum: f4c4de6d9ac5bfd21639fe3e01873840
      sha512sum: 945f55294c3cafd0f8b32241a0967e0d05b0d70ce2cf6ee \
      4e2b8768bb18db9f66055025b6e4df66ad02ed279833e6fd8cb26f87628c7d73230a4da239ce09b50
    
  • Windows Desktop Client: http://cinnamon.dewarim.com/Cinnamon-Client-3.6.zip

      md5sum: c01f77e3ee8f15b12b91e41efc6d5fc3 
      sha512sum: bfe340e9c4f4609046eba60c2d20e13cb5d9dcde45a95 \
      6ad8cef7f21c50ce0ab15b411dc94c0edc4b8743ed870d4e96119ec7adbd6b23b75121aa1f3545df836
    
  • Most recent cinnamon.war: http://cinnamon.dewarim.com/cinnamon-20160709.war

      md5sum: 74cc3b28d0b9a6f19f21b40d1bbda9e1
      sha512sum: 600c9ac9003db77845216e0454250e4c7fef0515d1fb5b3\ 
      a801c98618833fc679005ba412fd34eb7efb2b2a1601b666e3ffbe527ffdb7c76079c17d4e47f337b
    

cinnamon's People

Contributors

dewarim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

cinnamon's Issues

Webclient should use RelationChangeTrigger

The webclient should use the RelationChangeTrigger (to automatically update relations after an object has been changed). Currently this functionality is only implemented for the XML-API used by the desktop client.

Delete may fail with versionPolicy=head

2013-03-13 17:34:45,766 grails.app.services.cinnamon.OsdService delete: 1022760 with version policy: HEAD
2013-03-13 17:34:45,772 grails.app.services.cinnamon.OsdService delete failed.
java.lang.NullPointerException: Cannot get property 'id' on null object
at cinnamon.OsdService$_deleteList_closure4$$ENzz6gUi.doCall(OsdService.groovy:297)
at cinnamon.OsdService$$ENzz6gUi.deleteList(OsdService.groovy:291)
at cinnamon.OsdController$$ENzz5KjA.iterate(OsdController.groovy:380)

delete object fails during validation

org.codehaus.groovy.grails.orm.hibernate.exceptions.GrailsQueryException: Invalid query [select r from Relation r where (r.leftOSD=:osd1 and r.type.leftobjectprotected=true) or (r.rightOSD=:osd2 and r.type.rightobjectprotected=true)] for domain class [class cinnamon.relation.Relation]
at cinnamon.Validator.validateDelete(Validator.groovy:150)
at cinnamon.OsdController$$ENzskHa4.deleteXml(OsdController.groovy:732)

Add equivalent of osd.fetchMetaset(name, autocreate)

Refactor and migrate to Grails:

    public Metaset fetchMetaset(String name, Boolean autocreate){
        Metaset metaset = fetchMetaset(name);
        if( (metaset == null) && autocreate){
            MetasetService ms = new MetasetService();
            MetasetTypeDAO mtDao = daoFactory.getMetasetTypeDAO(HibernateSession.getLocalEntityManager());            
            metaset = ms.createOrUpdateMetaset(this, mtDao.findByName(name), null, WritePolicy.BRANCH);
        }
        return metaset;
    }

LuceneService should have a way to return content of indexed fields

Cinnamon indexers may store the content of a field in the Lucene index, but currently there is no way to retrieve this content via the LuceneService.
When executing a search for a specific domain (OSD, Folder) the service should create a Map<id, Map<fieldName, fieldValue>> and return it in the LuceneResult object for a list of given fieldNames.

replace ConfThreadLocal by using cinnamon-config.groovy

There are several places where ConfThreadLocal is used, and it's not optimally designed (as it re-reads and parses the config file on each request, something that the class was originally envisioned to prevent...)

TODO: use cinnamon-config.groovy, which will be loaded once by BootStrap on start.

Add synchronous Indexing (again)

Purely asynchronous indexing has too many disadvantages. The current Cinnamon 2 development version has a new and refactored method of indexing only after a successful request (where no rollback occurred). Those changes should be ported over to Cinnamon 3.

Editing ChangeTriggerType may cause filter-error

While trying to (temporarily) change the name of the LSATrigger, the following exception occurred:

2013-03-06 10:11:36,810 org.codehaus.groovy.grails.web.errors.GrailsExceptionResolver NullPointerException occurred when processing request: [POST] /cinnamon/changeTriggerType/update - parameters:
id: 2
name: lifecycle.state.trigger!
triggerClass: cinnamon.trigger.impl.LifecycleStateAuditTrigger
Stacktrace follows:
java.lang.NullPointerException
at TriggerFilters$_closure1_closure2_closure4.doCall(TriggerFilters.groovy:60)

This probably has something to do with the TriggerFilter reloading the ChangeTriggers upon each request - so a request that changes the objects in the current ChangeTrigger-List may cause problems.

showGroupsByUser throws MissingMethodException

URI
/cinnamon/group/showGroupsByUser/1022668
Class
groovy.lang.MissingMethodException
Message
No signature of method: cinnamon.GroupController$_showGroupsByUser_closure2_closure10.doCall() is applicable for argument types: (grails.gorm.DetachedCriteria) values: [grails.gorm.DetachedCriteria@255c949c] Possible solutions: doCall(cinnamon.CmnGroupUser), call(), call([Ljava.lang.Object;), call(java.lang.Object), call(cinnamon.CmnGroupUser), findAll()

Lucene Background-Thread should be running continually

Currently, the background thread is set to run on startup, but after a first re-index, it goes to sleep. It would be good if it were to wake periodically to catch objects that have not been indexed yet or have been marked as dirty (see: OSD.fixLatestHeadAndBranch, Issue #18)

Exception when moving folders

Occurs when moving a folder with content to a sibling folder.

org.hibernate.AssertionFailure an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session)
org.hibernate.AssertionFailure: collection [cinnamon.Acl.customTables] was not processed by flush()
at cinnamon.FolderService.findRootFolder(FolderService.groovy:586)
at cinnamon.Folder.getParentFolders(Folder.groovy:427)
at cinnamon.FolderService$_moveToFolder_closure7.doCall(FolderService.groovy:559)
at cinnamon.FolderService.moveToFolder(FolderService.groovy:545)
at cinnamon.OsdController.iterate(OsdController.groovy:409)

Add new action_log functionality from Cinnamon 2

Logging of events directly in a special metaset on the affected object, so a user does not need access to all log messages in the audit log but can view the history of this particular object.

checkTranslation fails on non-xml content

checkTranslation tries to parse an object's content (so it can try xpath conditions on the resulting doc). It will fail to do so on non-xml content, for example language dependent images. This bug only triggers under some circumstances (depends on whether the xpath statement evaluates to true on the metadata)

500er error when setting too short password

Message
Validation Error(s) occurred during save(): - Field error in object 'cinnamon.UserAccount' on field 'pwd': rejected value [foo]; codes [cinnamon.UserAccount.pwd.size.error.cinnamon.UserAccount.pwd,cinnamon.UserAccount.pwd.size.error.pwd,cinnamon.UserAccount.pwd.size.error.java.lang.String,cinnamon.UserAccount.pwd.size.error,userAccount.pwd.size.error.cinnamon.UserAccount.pwd,userAccount.pwd.size.error.pwd,userAccount.pwd.size.error.java.lang.String,userAccount.pwd.size.error,cinnamon.UserAccount.pwd.size.toosmall.cinnamon.UserAccount.pwd,cinnamon.UserAccount.pwd.size.toosmall.pwd,cinnamon.UserAccount.pwd.size.toosmall.java.lang.String,cinnamon.UserAccount.pwd.size.toosmall,userAccount.pwd.size.toosmall.cinnamon.UserAccount.pwd,userAccount.pwd.size.toosmall.pwd,userAccount.pwd.size.toosmall.java.lang.String,userAccount.pwd.size.toosmall,size.toosmall.cinnamon.UserAccount.pwd,size.toosmall.pwd,size.toosmall.java.lang.String,size.toosmall]; arguments [pwd,class cinnamon.UserAccount,foo,4,255]; default message [Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist nicht im Wertebereich von [{3}] bis [{4}]]

LuceneResult: should fetch items by list

current code:

 idSet.each { id ->
       def item = itemService.fetchItem(domainClass, id)
       // add item to result list
}

This generates a lot of database traffic for large result sets.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.