Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFR] Add Theming support #192

Merged
merged 14 commits into from
Dec 27, 2014
Merged

[RFR] Add Theming support #192

merged 14 commits into from
Dec 27, 2014

Conversation

fzaninotto
Copy link
Member

  • Add support for custom CSS classes in the datagrid columns
myEntity.listView()
    .addField(new Field('title').cssClasses(['foo', 'bar']));
  • Add support for custom CSS class functions everywhere
myEntity.editionView()
    .addField(new Field('title').cssClasses(function(entry) {
        return entry.values.needsAttention ? 'bg-warning' : '';
    }));
  • Add ability to customize template for each view
var myEntity = new Entity('foo_endpoint');
// customize list view template
myEntity.listView().template(require('text!./path/to/list.html'));
// continue myEntity configuration
// ...
app.addEntity(myEntity);
  • Add ability to customize template for each view for the entire application
var myTemplate = require('text!./path/to/list.html');
app.customTemplate(function(viewName) {
    if (viewName === 'ListView') {
        return myTemplate;
    }
})
  • Add Theming documentation

Closes #138, #118, #110.

@fzaninotto fzaninotto changed the title [RFR] Add ability to customize template for each view [WIP] Add ability to customize template for each view Dec 25, 2014
@fzaninotto fzaninotto changed the title [WIP] Add ability to customize template for each view [WIP] Add Theming support Dec 25, 2014
I thought I needed to edit the link() function of every directive in order
to do that, that's why I isolated them first. But it turns out that it
wasn't necessary... Anyway, isolating the list column directives was
necessary, so now it's done!
Also, moved cssClasses logic to the container of input fields (just like
it applies to the container of column fields).
@fzaninotto fzaninotto changed the title [WIP] Add Theming support [RFR] Add Theming support Dec 26, 2014
@fzaninotto
Copy link
Member Author

Switching to RFR, will merge shortly if no feedback.

@manuquentin
Copy link
Contributor

👍 nice work! Good for me

manuquentin added a commit that referenced this pull request Dec 27, 2014
[RFR] Add Theming support
@manuquentin manuquentin merged commit ffcefa2 into master Dec 27, 2014
@manuquentin manuquentin deleted the theming branch December 27, 2014 09:19
@cmnstmntmn
Copy link

i have

    var listView = require('./custom-views/listView.html');

    admin.customTemplate(function (viewName) {
        if (viewName === 'ListView') {
            return listView;
        }            
    });

and inside it <div ui-view="grid"> </div>

the problem is, that javascript/ng-admin/Crud/list/list.html cannot be overwriten;
it contains extra markup, not only directives.

<div class="row list-view" ng-class="::'ng-admin-entity-' + listController.entity.name()">
    <div class="col-lg-12">
        <ma-datagrid name="{{ ::listController.view.name() }}"
                  entries="listController.dataStore.getEntries(listController.entity.uniqueId)"
                  selection="selection"
                  fields="::listController.fields"
                  list-actions="::listController.listActions"
                  entity="::listController.entity"
                  datastore="listController.dataStore">
        </ma-datagrid>
    </div>
</div>

<div class="row" ng-if="::!listController.infinitePagination">
    <div class="col-lg-12">
        <ma-datagrid-pagination
            page="{{ listController.page }}"
            per-page="{{ ::listController.view.perPage() }}"
            total-items="{{ listController.totalItems }}"
            set-page="::listController.setPageCallback">
        </ma-datagrid-pagination>
    </div>
</div>

<ma-datagrid-infinite-pagination ng-if="::listController.infinitePagination"
            per-page="{{ ::listController.view.perPage() }}"
            total-items="{{ ::listController.totalItems }}"
            next-page="::listController.nextPageCallback">
</ma-datagrid-infinite-pagination>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

cssClass field attribute is static and restricted to form fields
3 participants