Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <base href="https://demos.telerik.com/kendo-ui/gantt/angular">
- <base href="https://demos.telerik.com/kendo-ui/gantt/pdf-export">
- <base href="https://demos.telerik.com/kendo-ui/gantt/resources">
- <style>html { font-size: 14px; font-family: Arial, Helvetica, sans-serif; }</style>
- <title></title>
- <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.1.220/styles/kendo.common-material.min.css" />
- <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.1.220/styles/kendo.material.min.css" />
- <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.1.220/styles/kendo.material.mobile.min.css" />
- <script src="https://kendo.cdn.telerik.com/2019.1.220/js/jquery.min.js"></script>
- <script src="https://kendo.cdn.telerik.com/2019.1.220/js/angular.min.js"></script>
- <script src="https://kendo.cdn.telerik.com/2019.1.220/js/kendo.all.min.js"></script>
- </head>
- <body>
- <div id="example">
- <div ng-app="KendoDemo" ng-controller="MyCtrl">
- <div kendo-gantt k-options="ganttOptions"></div>
- </div>
- </div>
- <script>
- angular.module("KendoDemo", ["kendo.directives"])
- .controller("MyCtrl", function($scope) {
- function onChange(e) {
- var gantt = e.sender;
- var selection = gantt.select();
- var left = $(".k-gantt-timeline [data-uid='"+ selection.attr("data-uid") +"']").closest(".k-task-wrap").css("left")
- $(".k-gantt-timeline .k-grid-content").scrollLeft(parseInt(left)-10)
- }
- var serviceRoot = "https://demos.telerik.com/kendo-ui/service";
- var tasksDataSource = new kendo.data.GanttDataSource({
- batch: false,
- transport: {
- read: {
- url: serviceRoot + "/GanttTasks",
- dataType: "jsonp"
- },
- update: {
- url: serviceRoot + "/GanttTasks/Update",
- dataType: "jsonp"
- },
- destroy: {
- url: serviceRoot + "/GanttTasks/Destroy",
- dataType: "jsonp"
- },
- create: {
- url: serviceRoot + "/GanttTasks/Create",
- dataType: "jsonp"
- },
- parameterMap: function(options, operation) {
- if (operation !== "read") {
- return { models: kendo.stringify(options.models || [options]) };
- }
- }
- },
- schema: {
- model: {
- id: "id",
- fields: {
- id: { from: "ID", type: "number" },
- orderId: { from: "OrderID", type: "number", validation: { required: true } },
- parentId: { from: "ParentID", type: "number", defaultValue: null, validation: { required: true } },
- start: { from: "Start", type: "date" },
- end: { from: "End", type: "date" },
- title: { from: "Title", defaultValue: "", type: "string" },
- percentComplete: { from: "PercentComplete", type: "number" },
- summary: { from: "Summary", type: "boolean" },
- expanded: { from: "Expanded", type: "boolean", defaultValue: true }
- }
- }
- }
- });
- var dependenciesDataSource = new kendo.data.GanttDependencyDataSource({
- transport: {
- read: {
- url: serviceRoot + "/GanttDependencies",
- dataType: "jsonp"
- },
- update: {
- url: serviceRoot + "/GanttDependencies/Update",
- dataType: "jsonp"
- },
- destroy: {
- url: serviceRoot + "/GanttDependencies/Destroy",
- dataType: "jsonp"
- },
- create: {
- url: serviceRoot + "/GanttDependencies/Create",
- dataType: "jsonp"
- },
- parameterMap: function(options, operation) {
- if (operation !== "read" && options.models) {
- return { models: kendo.stringify(options.models) };
- }
- }
- },
- schema: {
- model: {
- id: "id",
- fields: {
- id: { from: "ID", type: "number" },
- predecessorId: { from: "PredecessorID", type: "number" },
- successorId: { from: "SuccessorID", type: "number" },
- type: { from: "Type", type: "number" }
- }
- }
- }
- });
- $scope.ganttOptions = {
- dataSource: tasksDataSource,
- dependencies: dependenciesDataSource,
- messages: {
- cancel: "Cancelar",
- deleteDependencyConfirmation: "¿Desea eliminar esta dependencia",
- deleteDependencyWindowTitle: "¿Eliminar dependencia?",
- deleteTaskConfirmation: "¿Desea eliminar esta tarea?",
- deleteTaskWindowTitle: "¿Eliminar la tarea?",
- destroy: "Eliminar",
- save: "Guardar",
- editor: {
- assignButton: "Asignar Recursos",
- editorTitle: "Editar Tarea",
- end: "Fecha Final",
- percentComplete: "Progreso",
- resources: "Recursos",
- resourcesEditorTitle: "Asignar Recursos",
- resourcesHeader: "Recursos Disponibles",
- start: "Fecha Inicial",
- title: "Actividad",
- unitsHeader: "Porcentaje"
- },
- views: {
- day: "Día",
- week: "Semana",
- month: "Mes",
- Year: "Año",
- start: "Fecha Inicial",
- end: "Fecha Final"
- },
- actions: {
- addChild: "Agregar Hijo",
- append: "Agregar Nueva Tarea",
- insertAfter: "Agregar Tarea Abajo",
- insertBefore: "Agregar Tarea Arriba",
- }
- }, resources: {
- field: "resources",
- dataColorField: "Color",
- dataTextField: "Name",
- dataSource: {
- transport: {
- read: {
- url: serviceRoot + "/GanttResources",
- dataType: "jsonp"
- }
- },
- schema: {
- model: {
- id: "id",
- fields: {
- id: { from: "ID", type: "number" }
- }
- }
- }
- }
- },
- assignments: {
- dataTaskIdField: "TaskID",
- dataResourceIdField: "ResourceID",
- dataValueField: "Units",
- dataSource: {
- transport: {
- read: {
- url: serviceRoot + "/GanttResourceAssignments",
- dataType: "jsonp"
- },
- update: {
- url: serviceRoot + "/GanttResourceAssignments/Update",
- dataType: "jsonp"
- },
- destroy: {
- url: serviceRoot + "/GanttResourceAssignments/Destroy",
- dataType: "jsonp"
- },
- create: {
- url: serviceRoot + "/GanttResourceAssignments/Create",
- dataType: "jsonp"
- },
- parameterMap: function(options, operation) {
- if (operation !== "read") {
- return { models: kendo.stringify(options.models || [options]) };
- }
- }
- },
- schema: {
- model: {
- id: "ID",
- fields: {
- ID: { type: "number" },
- ResourceID: { type: "number" },
- Units: { type: "number" },
- TaskID: { type: "number" }
- }
- }
- }
- }
- },
- views: [
- "day",
- "week",
- { type: "month", selected: true }
- ],
- columns: [
- { field: "id", title: "ID", width: 60 },
- { field: "title", title: "Actividad", editable: true, sortable: true, width: 200 },
- { field: "resources", title: "Recursos Asignados", editable: true},
- { field: "start", title: "Fecha Inicial", format: "{0:dd/MM/yyyy HH:mm}", width: 170, editable: true },
- { field: "end", title: "Fecha Final", format: "{0:dd/MM/yyyy HH:mm}", width: 170, editable: true }
- ],
- height: 600,
- listWidth:750,
- resizable: true,
- showWorkHours: false,
- showWorkDays: false,
- change: onChange,
- snap: false
- };
- });
- $(document).bind("kendo:skinChange", function() {
- var gantt = $("div [kendo-gantt]").data("kendoGantt");
- if (gantt) {
- gantt.refresh();
- }
- });
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement