UNPKG

cobuild-angular-stack

Version:

Base stack angular sass jade gulp

71 lines (60 loc) 2.74 kB
/** * Created by garusis on 19/06/16. */ (function (module) { var settings = {}; var defaultSettings = {}; module .directive('onboardingStepsBuilder', onboardingStepsBuilderDirective); onboardingStepsBuilderDirective.$inject = ['ROKK3RLABS_ONBOARDING_CONSTANTS']; function onboardingStepsBuilderDirective(ROKK3RLABS_ONBOARDING_CONSTANTS) { return { scope: { onboarding: '=', steps: '=?' }, link: function (scope, element, attr) { var defaultAttrsOnboarding = ROKK3RLABS_ONBOARDING_CONSTANTS.directives.stepsBuilder; if (scope.steps && !angular.isArray(scope.steps)) { throw new Error('steps must be an array'); } attr = angular.extend({}, defaultAttrsOnboarding, attr); var vmOnboarding = scope.$$onboarding = { addStepText: attr.addStepText, steps: scope.steps || [], active: 0 }; }, controller: ['$scope', 'Onboarding', '$uibModal', '$timeout', function ($scope, Onboarding, $uibModal, $timeout) { var sBCtrl = this; $scope.$on('sortableTabs::reorder', function (event, data) { $scope.onboarding.reorderSteps(data).then(function (response) { console.log(response); }).catch(function (response) { console.log(response); }); }); sBCtrl.addStep = function (onboarding) { Onboarding .getFrom(onboarding.id).steps() .post({title: 'step ' + $scope.$$onboarding.steps.length}) .then(function (step) { $scope.$$onboarding.steps.push(step); $timeout(function () { $scope.$$onboarding.active = $scope.$$onboarding.steps.length - 1; }); }); }; $scope.$on('rokk3r::onboardingBuilder::removedStep', function (event, step) { var index = $scope.$$onboarding.steps.indexOf(step); $scope.$$onboarding.steps.splice(index,1); }); }], controllerAs: 'sBCtrl', templateUrl: function (elem, attr) { return attr.templateUrl || ROKK3RLABS_ONBOARDING_CONSTANTS.directives.stepsBuilder.templateUrl; }, restrict: 'E' }; } })(angular.module('rokk3rlabs.onboarding'));