|
|
@@ -101,12 +101,12 @@ class TodoItemComponent : Component {
|
|
|
return """
|
|
|
<div class="todo-item">
|
|
|
<form method="POST" action="/toggle" style="display: inline;">
|
|
|
- <input type="hidden" name="id" id="toggle-id"/>
|
|
|
- <button type="submit" class="btn-toggle" id="toggle-btn"></button>
|
|
|
+ <input type="hidden" name="id" sid="toggle-id"/>
|
|
|
+ <button type="submit" class="btn-toggle" sid="toggle-btn"></button>
|
|
|
</form>
|
|
|
- <span class="title" id="title"></span>
|
|
|
+ <span class="title" sid="title"></span>
|
|
|
<form method="POST" action="/delete" style="display: inline;">
|
|
|
- <input type="hidden" name="id" id="delete-id"/>
|
|
|
+ <input type="hidden" name="id" sid="delete-id"/>
|
|
|
<button type="submit" class="btn-delete">Delete</button>
|
|
|
</form>
|
|
|
</div>
|
|
|
@@ -114,17 +114,16 @@ class TodoItemComponent : Component {
|
|
|
}}
|
|
|
|
|
|
public int item_id { set {
|
|
|
- instance.get_element_by_id("toggle-id").set_attribute("value", value.to_string());
|
|
|
- instance.get_element_by_id("delete-id").set_attribute("value", value.to_string());
|
|
|
+ this["toggle-id"].set_attribute("value", value.to_string());
|
|
|
+ this["delete-id"].set_attribute("value", value.to_string());
|
|
|
}}
|
|
|
|
|
|
public string title { set {
|
|
|
- instance.get_element_by_id("title").text_content = value;
|
|
|
+ this["title"].text_content = value;
|
|
|
}}
|
|
|
|
|
|
public bool completed { set {
|
|
|
- var btn = instance.get_element_by_id("toggle-btn");
|
|
|
- btn.text_content = value ? "Undo" : "Done";
|
|
|
+ this["toggle-btn"].text_content = value ? "Undo" : "Done";
|
|
|
}}
|
|
|
}
|
|
|
|
|
|
@@ -141,7 +140,7 @@ class TodoListComponent : Component {
|
|
|
return """
|
|
|
<div class="card">
|
|
|
<h2>Todo List</h2>
|
|
|
- <spry-outlet id="items"/>
|
|
|
+ <spry-outlet sid="items"/>
|
|
|
</div>
|
|
|
""";
|
|
|
}}
|
|
|
@@ -158,11 +157,11 @@ class HeaderComponent : Component {
|
|
|
<p>This page demonstrates <code>Spry.Component</code> for building dynamic pages.</p>
|
|
|
<div class="stats">
|
|
|
<div class="stat">
|
|
|
- <div class="stat-value" id="total"></div>
|
|
|
+ <div class="stat-value" sid="total"></div>
|
|
|
<div class="stat-label">Total Tasks</div>
|
|
|
</div>
|
|
|
<div class="stat">
|
|
|
- <div class="stat-value" id="completed"></div>
|
|
|
+ <div class="stat-value" sid="completed"></div>
|
|
|
<div class="stat-label">Completed</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -171,11 +170,11 @@ class HeaderComponent : Component {
|
|
|
}}
|
|
|
|
|
|
public int total_tasks { set {
|
|
|
- instance.get_element_by_id("total").text_content = value.to_string();
|
|
|
+ this["total"].text_content = value.to_string();
|
|
|
}}
|
|
|
|
|
|
public int completed_tasks { set {
|
|
|
- instance.get_element_by_id("completed").text_content = value.to_string();
|
|
|
+ this["completed"].text_content = value.to_string();
|
|
|
}}
|
|
|
}
|
|
|
|
|
|
@@ -210,7 +209,7 @@ class FeaturesComponent : Component {
|
|
|
</div>
|
|
|
<div class="feature">
|
|
|
<strong>Using Outlets:</strong>
|
|
|
- <code><spry-outlet id="content"/></code>
|
|
|
+ <code><spry-outlet sid="content"/></code>
|
|
|
</div>
|
|
|
<div class="feature">
|
|
|
<strong>Setting Outlet Content:</strong>
|
|
|
@@ -303,11 +302,11 @@ class PageLayoutComponent : Component {
|
|
|
</style>
|
|
|
</head>
|
|
|
<body>
|
|
|
- <spry-outlet id="header"/>
|
|
|
- <spry-outlet id="todo-list"/>
|
|
|
- <spry-outlet id="add-form"/>
|
|
|
- <spry-outlet id="features"/>
|
|
|
- <spry-outlet id="footer"/>
|
|
|
+ <spry-outlet sid="header"/>
|
|
|
+ <spry-outlet sid="todo-list"/>
|
|
|
+ <spry-outlet sid="add-form"/>
|
|
|
+ <spry-outlet sid="features"/>
|
|
|
+ <spry-outlet sid="footer"/>
|
|
|
</body>
|
|
|
</html>
|
|
|
""";
|