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

Create Contributing Guidelines #20

Open
m0t0r opened this issue May 25, 2015 · 11 comments
Open

Create Contributing Guidelines #20

m0t0r opened this issue May 25, 2015 · 11 comments

Comments

@m0t0r
Copy link
Contributor

m0t0r commented May 25, 2015

No description provided.

@m0t0r m0t0r self-assigned this May 25, 2015
@RomainLanz
Copy link

I think it could be a good idea to follow John Papa's style guide https://github.com/johnpapa/angular-styleguide

@m0t0r
Copy link
Contributor Author

m0t0r commented Jun 3, 2015

I'll try to get in here on the weekend. For this moment, if you're following:

you are good to go.

@RomainLanz
Copy link

But for the moment some directive do not follow John Papa's style guide. Do we need to refactor them?

@RomainLanz
Copy link

What do you think of...

The file need to have the name of the directive suffixed by directive.
e.g. sm-accordion.directive.js

Your file need to contain only one directive! Your boilerplate need also to follow IIFE syntax and use use strict like below.

(function() {
    'use strict';

    //

})();

All of your function need to be named and you need to create them after the return statement. You also need to create nested function if necessary

(function() {
    'use strict';

    angular
        .module('app.widgets')
        .directive('smAccordion', smAccordion); // Named function

    function smAccordion() {
        var directive = {
            restrict: 'E',
            replace: true,
            transclude: true,
            template: template, // Named function
            link: link // Named function
        };

        return directive; // Return statement

        function link(scope, element, attrs, ctrl, transclude) {
            transclude(scope, transcludeFn); // Nested named function

            function transcludeFn(nodes) {
                // Transclude stuff
            }

        }

        function template() {
            return  '';
        }
    }
})();

The first expression of the link function should be transclude if it exists like the example above.
After that you need to have all var's definitions and after all bindings to an element.

function link(scope, element, attrs, ctrl, transclude) {
    transclude(scope, transcludeFn);

    // Var's declarations
    var active = attrs.active || false;

    // Bindings
    element.on('click', toggle);

    // Functions
    function toggle() {
        // Toogle stuff
    }

    function transcludeFn(nodes) {
        // Transclude stuff
    }

}

@jlukic
Copy link
Member

jlukic commented Jul 29, 2015

@m0t0r @caitp Please when you get a chance send me an email at [email protected].

I'm hoping to send off a kickoff email to organize all the people interested in getting involved in this project and I don't have your e-mails.

@marcotas
Copy link

I totaly agree to use John Papa's styleguide. 👍

@thinq4yourself
Copy link

+1

@matheuspoleza matheuspoleza assigned matheuspoleza and unassigned m0t0r Nov 27, 2015
@matheuspoleza
Copy link
Member

As we are thinking of using angular 1.4 with ES6 is legal research on things like: johnpapa/angular-styleguide#390

@kowsheek
Copy link

kowsheek commented Dec 9, 2015

Further to documentation and contribution guide, we should also chat about approach and goals of the project.

@matheuspoleza
Copy link
Member

@kowsheek its a good scene. My intention was to create a first release with some references as: angular-bootstrap, angular material, but we need to discuss where to go.

@kowsheek
Copy link

kowsheek commented Dec 9, 2015

Few thoughts I would like to share:

  • angular material approach would be awesome, the deep integration is what I've love to see in my projects.
  • It'd be awesome to get the more complex elements angularified first. For example, if the SemanticUI tabs could be used for navigation with ngRoute or ui.router.
  • Modules should be grouped as they are in SemanticUI (as seen in the left menu of the docs): Elements, Collection, Views. The Components could their individual modules. I find it redundant that we have to include individual items in other libraries (looking at you angular-bootstrap).

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

No branches or pull requests

7 participants