README.md
Angular Theme
The Noosfero theme that uses the API to create a totally new client-side frontend.
Getting started
If you use Vagrant
Use our VirtualBox with everything setup. Run:
vagrant up
vagrant ssh
This box provides Noosfero and the Angular base theme repositories. We've also set up vim and tmux to make the work easier.
How to Install
- Install Node.js and npm
- Install Bower:
npm install -g bower - Install Gulp:
npm install -g gulp - Install Node.js dependencies:
npm install - Install bower dependencies:
bower install - Build the project:
npm run build - Build multiple themes:
npm run build-all - Run project tests:
npm run test
How to Use
Copy the desired theme from the dist folder into
noosfero public/design/themes.
Project Structure
The folder structure of this project was sorted by feature. See some important folders bellow:
- Directives for blocks:
src/app/layout/blocks - Directives for articles:
src/app/article - Directives for activities:
src/app/profile/activities - Service to connect with Noosfero API:
src/lib/ng-noosfero-api - Content viewer component:
src/app/article/content-viewer - Profile component:
src/app/profile - Profile Info component:
src/app/profile/info
Change theme
- Create the theme folder inside themes
- Configure application to use the new theme, e.g.:
npm config set angular-theme:theme custom-theme - Create an app folder inside custom-theme and add your custom scss files
- Put the templates that you want to override in the same structure from the main application source, e.g.:
src/app/profile/profile.htmlwill be overriden bythemes/custom-theme/app/profile/profile.html
Change skin
Create an any scss file into:
app/layout/scss/skins/Suggestion: Create a
sassfile partial. Something like:_mycustom.scss.Extend your skin css class from
%skin-basescss placeholder selector. Something like this:Suggestion: Use the prefix
skin-to the css class
.skin-mycustom {
@extend %skin-base
}
- Configure application to use the new theme, e.g.:
npm config set angular-theme:skin skin-mycustomOR add the default skin property to a specificpackage.jsonfile (ONLY PERFORM A BUILD), like this:
"config": {
"skin": "skin-yellow"
}
N.B.
The full name of the scss class should be used as the parameter for the command
npm config set angular-theme:, like in skin-mycustom. DO NOT use the file name of the skin as the parameter.The skin's file should be the named as the scss class without the word
skin, preceded by an underline. Otherwise, it will raise an error duringnpm install.
Example: _mycustom.
- Start the application with
npm startscripts or make a build > PS: If the configured skin is invalid, an error message is showed in the terminal.
Development environment
Known Issues
Message Translation: angular-i18n
- Plural Interpolation only working when current language is En (English)
Plural Function not found for locale
For some reason the messageformat installed on bower_component directory was an older version. Removing the bower_components directory
and runing bower install solved the problem