JSFiddle - React, Tailwind, and code Playground

by Nicolas Lips

HTML

<div ng-app="app">

</div>

JavaScript

angular.module('app')
	.service('SectionEntity', ['WidgetEntity', 'Server', function SectionEntity(WidgetEntity, staBackendService, $q, $log) {
        var factory = function(rawData, workspaceBackend) {
            var workspace = workspaceBackend.getWorkspace();
            var currentTenant = workspace.getTenantId();
            var id = rawData.id;
            var name = rawData.name;
            var rank = rawData.rank;
            var needLoadWidgets = true;
            var widgets = [];

            function initWidgets() {
                needLoadWidgets = false;
                staBackendService.apiGet(currentTenant, workspace.getId() + "/" + id + "/widgets").then(function(result) {
                    angular.copy([], widgets);
                    angular.forEach(result.data, function(item) {
                        widgets.push(new WidgetEntity(item, thisBackend));
                    });
                }, function(error) {
                    needLoadWidgets = true;
                    $log.log("error : " + error.data);
                });
            }
            var thisSection = {
                getWorkspace: function() {
                    return workspace;
                },
                getId: function() {
                    return id;
                },
                getName: function() {
                    return name;
                },
                getRank: function() {
                    return rank;
                },
                setName: function(newName) {
                    staBackendService.apiPut(
                            currentTenant,
                            workspace.getId() + "/sections/" + id, {
                                name: newName
                            })
                        .then(function(result) {
                            name = newName;
                        }, function(error) {
                            $log.log("error : " + error.data);
                        });
       ...