rbbt-rest 1.2.34 → 1.2.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/share/views/compass/help.sass +20 -0
- data/share/views/help.haml +47 -66
- data/share/views/help/UI.haml +250 -0
- data/share/views/help/workflow.haml +1 -1
- data/share/views/public/img/UI/action_control.png +0 -0
- data/share/views/public/img/UI/action_control_wire.png +0 -0
- data/share/views/public/img/UI/actions.png +0 -0
- data/share/views/public/img/UI/actions_wire.png +0 -0
- data/share/views/public/img/UI/cytoscape.png +0 -0
- data/share/views/public/img/UI/d3js.png +0 -0
- data/share/views/public/img/UI/favourites.png +0 -0
- data/share/views/public/img/UI/favourites_wire.png +0 -0
- data/share/views/public/img/UI/jmol.png +0 -0
- data/share/views/public/img/UI/report.png +0 -0
- data/share/views/public/img/UI/report_wire.png +0 -0
- data/share/views/public/img/UI/table.png +0 -0
- data/share/views/public/img/UI/topbar.png +0 -0
- data/share/views/public/img/UI/topbar_wire.png +0 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZTdlZWRiOGE3MmQyMjU0YTQxODM0ODM0NjZkNzE3ZmM5ZGI4MDMzZA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MmNlODFmYTYwZTRlMWJjMTZmNzhkODUyOTkyZjNlYzIyNTBiMmQwNg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NzM4NGU4MDc1OTJiYTM4NjI0Zjk3MDZjYzA1YWI0OWZhZGE4OTczOTgyM2Fj
|
10
|
+
ODAyOWY5MTYzZTNiNGFlNTY1YzliMDMxOWM1ZmRmMTZkZWVjZWVmN2YzNjkz
|
11
|
+
YzM1ZDBmZTg3YjczYThjMTIzMWJiMDgwZTFiYjBkZjljODgwOGU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
M2M5NjQ3MGYxNmZiYTBlNDdkMmE5MjViNjRkOTVkYWViNTg5ZDVkOGEwZjIw
|
14
|
+
YzQ4NzY3NGRmMThmOThhODMwYWJjMTNmNWNmM2FiMjJiNmU4ZjQ0MjczZjEz
|
15
|
+
YjdhZTJiNmYzNzI3NGFhYzkyOTRkYWRiZTVjOThmNGM5Zjg4MmI=
|
@@ -1,3 +1,23 @@
|
|
1
1
|
a.help
|
2
2
|
font-size: 1.2em
|
3
3
|
display: block
|
4
|
+
|
5
|
+
.UI
|
6
|
+
dd
|
7
|
+
.description, .images
|
8
|
+
+grid-column(6, $float:left)
|
9
|
+
|
10
|
+
& > dd
|
11
|
+
+grid-row()
|
12
|
+
& > .description, .images
|
13
|
+
+grid-column(6, $float:left)
|
14
|
+
|
15
|
+
|
16
|
+
& > .images > dl
|
17
|
+
& > dt
|
18
|
+
width: 40%
|
19
|
+
& > dd > img
|
20
|
+
display: block
|
21
|
+
margin: auto
|
22
|
+
|
23
|
+
|
data/share/views/help.haml
CHANGED
@@ -1,78 +1,59 @@
|
|
1
1
|
:markdown
|
2
2
|
|
3
|
-
Overview
|
4
|
-
========
|
3
|
+
##Overview
|
5
4
|
|
6
5
|
This application is designed for integration of data and functionalities.
|
7
6
|
It design is based on the idea of the `Entity`: any thing that can be
|
8
7
|
unambiguously identified and be subject of investigation. Examples of
|
9
8
|
entities are: genes, proteins, SNPs, samples, pathways, etc.
|
10
9
|
|
11
|
-
Each entity has a report, which depends on the type of entity it is.
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
### A word on performance
|
10
|
+
Each entity has a report, which depends on the type of entity it is. All
|
11
|
+
reports are computed on the fly and cached. In addition to the main reports,
|
12
|
+
entities have `actions`, which are sub-reports that implement particular
|
13
|
+
analysis. For instance, for gene entities, one of the actions is to display a
|
14
|
+
summary of the relevance of that gene across the collection of studies that
|
15
|
+
you have access to. In addition to entities, there are reports for lists of
|
16
|
+
entities and for entity maps, which are tables that relate entities to values,
|
17
|
+
such as genes to their average mutation frequency.
|
21
18
|
|
22
|
-
|
23
|
-
|
24
|
-
process may require plenty of infrastructure: downloading of datasets,
|
25
|
-
building databases, computing preliminary results, etc. A lot of this
|
26
|
-
processing is reused system-wide. This means that the application starts slow
|
27
|
-
but gets quicker. Unlike other applications with a more limited scope this
|
28
|
-
system cannot foresee what the user will be interested in, so not all this
|
29
|
-
infrastructure can be built before hand and must be built on demand. We pay
|
30
|
-
a price for flexibility by sacrificing responsiveness. But the system has
|
31
|
-
plenty of tricks to be as efficient as possible and to reuse as much as
|
32
|
-
possible.
|
33
|
-
|
34
|
-
### Entity annotations
|
35
|
-
|
36
|
-
The `Entity` subsystem annotates identifiers for entities with additional information
|
37
|
-
to help their complete and unambiguous identification.
|
38
|
-
|
39
|
-
#### Organisms and builds
|
40
|
-
|
41
|
-
When you identify a gene with the string `TP53` we might think that the gene
|
42
|
-
is unambiguously identified, however, it is not. First of all, we need to
|
43
|
-
know to which organism this gene belongs to, each TP53 gene from different
|
44
|
-
organisms is a different gene. Not only that, but the TP53 gene changes
|
45
|
-
slightly from build to build, in particular, its chromosomal position may
|
46
|
-
shift. For that reason genes are not only characterized by the organism they
|
47
|
-
belong to but also by the version of the build we are considering.
|
48
|
-
|
49
|
-
We annotate entities with their organism and build using the following
|
50
|
-
convention. The organism is specified with a three letter code, the first is
|
51
|
-
uppercase and is the first letter of the first term in the organism name ("H"
|
52
|
-
for Homo) and the last two the first two letter of the second term ("sa" for
|
53
|
-
sapiens); this is the convention followed by KeGG, it is succinct and
|
54
|
-
collision free in our experience. The build is specified afterwards with a
|
55
|
-
date code; "Hsa/may2009" represents the _Homo s._ organism as was known in
|
56
|
-
May 2009 i.e. hg18 build; whereas "Hsa/jan2013" corresponds to a recent
|
57
|
-
version of the hg19 build.
|
58
|
-
|
59
|
-
|
60
|
-
#### Identifier formats
|
61
|
-
|
62
|
-
Genes can be identified through a substantial number of identifier formats:
|
63
|
-
Ensembl Gene ID, Entrez Gene ID, Associated Gene Name (gene symbol). We use
|
64
|
-
the Ensembl BioMart to download an identifier translation resource. The name
|
65
|
-
of the formats corresponds to the names used in the Ensembl BioMart and must
|
66
|
-
be *followed to the letter including case*. The gene `Entity` is prepared to handle all the
|
67
|
-
necessary translations between identifiers across different resources
|
68
|
-
transparently. But the user *must* be aware of this fact or may run into
|
69
|
-
trouble.
|
19
|
+
:markdown
|
20
|
+
##User interface
|
70
21
|
|
22
|
+
The user interface offers a general structure for all reports that allows to
|
23
|
+
enact workflows, explore the results and connect functionalities with one
|
24
|
+
another. This web site is 'responsive', meaning that it adapts to the size
|
25
|
+
of the device you are using: computer, tablet, or phone. On small devices many
|
26
|
+
of the layout elements shift around or get hidden behind toggle buttons to
|
27
|
+
acomodate themselves better to the screen size. The examples bellow are taken
|
28
|
+
from a computer screen.
|
71
29
|
|
72
|
-
|
73
|
-
%ul
|
74
|
-
%li
|
75
|
-
%a(href='/help/entity' class="help") Entity subsystem
|
30
|
+
=partial_render('help/UI')
|
76
31
|
|
77
|
-
|
78
|
-
|
32
|
+
:markdown
|
33
|
+
##Workflows
|
34
|
+
|
35
|
+
In addition to exploring entity reports, this site servers collections of
|
36
|
+
core functionalities through the Workflow subsystem. This is the same
|
37
|
+
interface that is used as a REST web server, so it serves to document it.
|
38
|
+
|
39
|
+
|
40
|
+
%table
|
41
|
+
%caption Available workflows on this site
|
42
|
+
%thead
|
43
|
+
%tr
|
44
|
+
%th Workflow
|
45
|
+
%th Description
|
46
|
+
%tbody
|
47
|
+
- Sinatra::RbbtRESTWorkflow::WORKFLOWS.each do |workflow|
|
48
|
+
- next if workflow.asynchronous_exports.empty? and workflow.synchronous_exports.empty? and workflow.exec_exports.empty?
|
49
|
+
%tr
|
50
|
+
%th
|
51
|
+
%a(href="#{'/' << workflow.to_s}")= Misc.humanize(workflow.to_s)
|
52
|
+
%td
|
53
|
+
- description = workflow.workflow_description || ""
|
54
|
+
|
55
|
+
- case
|
56
|
+
- when description.empty?
|
57
|
+
No description
|
58
|
+
- else
|
59
|
+
= description.split("\n\n").first
|
@@ -0,0 +1,250 @@
|
|
1
|
+
%dl.tabs.UI.active
|
2
|
+
|
3
|
+
%dt.next.active.show Report structure
|
4
|
+
%dd.show
|
5
|
+
.description
|
6
|
+
:markdown
|
7
|
+
|
8
|
+
This application presents reports for individual entities, lists of
|
9
|
+
entities, and entity maps. Each type of entity (gene, study, pathway, etc.)
|
10
|
+
has its own report template, and they are prepared on demand.
|
11
|
+
|
12
|
+
All reports have the same overall structure; the images show a report
|
13
|
+
for a genotyping study from the ICGC project. The top-bar is always
|
14
|
+
there and provides a placeholder for several functionalities, most
|
15
|
+
importantly the control of `favourites`.
|
16
|
+
|
17
|
+
|
18
|
+
Bellow the top-bar comes the report itself. It consists of a title, a
|
19
|
+
side-bar, a description, and an `action controller`. In general the
|
20
|
+
side-bar is used to show general meta-data about the entity and the
|
21
|
+
description to show a brief overview.
|
22
|
+
|
23
|
+
The action controller offers access to `actions` which are like
|
24
|
+
sub-reports. Each type of entity has its own actions. If the entity
|
25
|
+
type in particular does not have any action defined the action
|
26
|
+
controller will not be displayed. When an action is selected, it will
|
27
|
+
be displayed below, in the area called action loader.
|
28
|
+
|
29
|
+
Actions can also be opened in their own page, these pages are like reports
|
30
|
+
but with no action controller or side-bar
|
31
|
+
|
32
|
+
.images
|
33
|
+
%dl.tabs.active.show
|
34
|
+
%dt.next.show Snapshot
|
35
|
+
%dd.show
|
36
|
+
%img(src="/img/UI/report.png")
|
37
|
+
|
38
|
+
%dt.next Explanation
|
39
|
+
%dd
|
40
|
+
%img(src="/img/UI/report_wire.png")
|
41
|
+
|
42
|
+
|
43
|
+
%dt.next Top-bar
|
44
|
+
%dd
|
45
|
+
.description
|
46
|
+
:markdown
|
47
|
+
|
48
|
+
The top-bar provides access to several functionalities. Clicking on the
|
49
|
+
title of the application will link to its front-page.
|
50
|
+
|
51
|
+
Next to it is the reload-button, which is used to force the server to
|
52
|
+
recalculate a report, otherwise the report will be taken from a cache.
|
53
|
+
This is useful when a report has given an error or when when it was
|
54
|
+
updated somehow. *Note:* After a reload of the report, the browser might
|
55
|
+
still try to get the file from its own cache, so you might need to use
|
56
|
+
the reload button in the browser as well. I'm planning to fix this.
|
57
|
+
|
58
|
+
Next is the `favourites` controls, which we will discuss shortly. After
|
59
|
+
that there might be a search box, if the server was started with that
|
60
|
+
functionality. This search box can be configured to identify any type
|
61
|
+
of entity, but generally it is only genes.
|
62
|
+
|
63
|
+
The final component of the top-bar, which I label "Extra", has the user
|
64
|
+
controls, which allows to login or logout, and the job bookmarks,
|
65
|
+
where bookmarked actions are kept. Will discuss bookmarking actions
|
66
|
+
latter.
|
67
|
+
|
68
|
+
.images
|
69
|
+
%dl.tabs.active.show
|
70
|
+
%dt.next.show Snapshot
|
71
|
+
%dd.show
|
72
|
+
%img(src="/img/UI/topbar.png")
|
73
|
+
|
74
|
+
%dt.next Explanation
|
75
|
+
%dd
|
76
|
+
%img(src="/img/UI/topbar_wire.png")
|
77
|
+
|
78
|
+
|
79
|
+
%dt.next Favourites
|
80
|
+
%dd
|
81
|
+
.description
|
82
|
+
:markdown
|
83
|
+
|
84
|
+
As we said before, we have reports for entities, lists, and maps.
|
85
|
+
Clicking the star on the favourites control makes a favourite out of
|
86
|
+
what-ever we are viewing: an entity, like a study; a list of entities,
|
87
|
+
such as the genes mutated in the study; or a map, which could for
|
88
|
+
instance map genes to the ratio of mutations per amino-acid in the
|
89
|
+
COSMIC database.
|
90
|
+
|
91
|
+
Favourites are used not only to track our interests, but as a means to
|
92
|
+
communicate between different functionalities or parts of the
|
93
|
+
application. We could for instance make a list of genes a favourite and
|
94
|
+
then go to a study report, open the "Gene list in study" action, select
|
95
|
+
our list from all the favourites and see a report of how these genes
|
96
|
+
are affected in the study
|
97
|
+
|
98
|
+
The favourite controls have an option to create a new list of entities
|
99
|
+
from scratch. This allows a user, for instance, to make a list with her
|
100
|
+
genes of interest instead of having to browse the application to find
|
101
|
+
it. *Note:* New lists are not made favourite be default, you still need to
|
102
|
+
click on the star once the report is shown.
|
103
|
+
|
104
|
+
|
105
|
+
.images
|
106
|
+
%dl.tabs.active.show
|
107
|
+
%dt.next.show Snapshot
|
108
|
+
%dd.show
|
109
|
+
%img(src="/img/UI/favourites.png")
|
110
|
+
|
111
|
+
%dt.next Explanation
|
112
|
+
%dd
|
113
|
+
%img(src="/img/UI/favourites_wire.png")
|
114
|
+
|
115
|
+
|
116
|
+
%dt.next Actions
|
117
|
+
%dd
|
118
|
+
.description
|
119
|
+
:markdown
|
120
|
+
|
121
|
+
Actions are the primary way to integrate data and functionalities.
|
122
|
+
Some actions are defined globally, but most commonly they are defined
|
123
|
+
inside workflows; when a report is produced, all workflows are
|
124
|
+
interrogated to see if they provide actions for it. The great majority
|
125
|
+
of the actions are defined in the `Genomics` workflow.
|
126
|
+
|
127
|
+
When an action is selected, it loads bellow the action controller. An
|
128
|
+
action report consists of the content of the action, and optionally,
|
129
|
+
parameter controls and an action description. When the action is loaded
|
130
|
+
inside a report the parameter controls and description are hidden, but
|
131
|
+
they can be shown using the action control buttons in the top left.
|
132
|
+
Actions can also be opened in their own report by right clicking on its
|
133
|
+
button.
|
134
|
+
|
135
|
+
As with all reports, they are executed the first time they are
|
136
|
+
requested and the result is cached for further access. The action
|
137
|
+
control buttons can be used to reload the action, just like the reload
|
138
|
+
button in the top-bar does for the complete report. The actions will
|
139
|
+
of-course be recomputed for each configuration of parameters. The
|
140
|
+
parameters of the action can be favourites from the user, lists or
|
141
|
+
maps. These are presented to the user using an input `select`, and are
|
142
|
+
synchronized with the user current favourites.
|
143
|
+
|
144
|
+
If an action is used often with a particular combination of parameters.
|
145
|
+
For instance the "Enrichment" action of gene lists performs an
|
146
|
+
over-representation based analysis of functional classes. The
|
147
|
+
functional classes include several pathway databases, protein domains,
|
148
|
+
gene ages, etc. If we where interesting in performing enrichment
|
149
|
+
analysis using GO biological process terms, we can use the paperclip
|
150
|
+
button to set that configuration of parameters as default so that it
|
151
|
+
always uses it initially.
|
152
|
+
|
153
|
+
Some actions may require a significant amount of time to compute. The
|
154
|
+
action controller tries to reload the action periodically until it is
|
155
|
+
completed. Instead of having to wait on that page for it to finish, the
|
156
|
+
user can click on the bookmark button, which will place a link in the
|
157
|
+
"jobs" tab on the "Extra" menu of the top-bar, and come back to it
|
158
|
+
later.
|
159
|
+
|
160
|
+
.images
|
161
|
+
%dl.tabs.active.show
|
162
|
+
|
163
|
+
%dt.next.show.active Action Snapshot
|
164
|
+
%dd.show
|
165
|
+
%img(src="/img/UI/actions.png")
|
166
|
+
|
167
|
+
%dt.next Action Explanation
|
168
|
+
%dd
|
169
|
+
%img(src="/img/UI/actions_wire.png")
|
170
|
+
|
171
|
+
%dt.next Controller Snapshot
|
172
|
+
%dd
|
173
|
+
%img(src="/img/UI/action_control.png")
|
174
|
+
|
175
|
+
%dt.next Controller Explanation
|
176
|
+
%dd
|
177
|
+
%img(src="/img/UI/action_control_wire.png")
|
178
|
+
|
179
|
+
|
180
|
+
%dt.next Tables
|
181
|
+
%dd
|
182
|
+
.description
|
183
|
+
:markdown
|
184
|
+
|
185
|
+
Tables in this application come enhanced with several functionalities.
|
186
|
+
The rows can be sort by the values of any column.
|
187
|
+
|
188
|
+
The values of the columns can also be used to filter the rows of the
|
189
|
+
table through the `filter` button. The filters are defined per-column,
|
190
|
+
and can contain exact strings, regular expressions like
|
191
|
+
`/(COMPLETE|PARTIAL) RESPONSE/i`, statements such as `> \< ==` or `!=`.
|
192
|
+
And, for columns containing entities they can be prefixed with the term
|
193
|
+
`name:` to force the filtering to work over the human readible text of
|
194
|
+
the entities e.g. `name:/SF3B\d+/` for a column containing 'Ensembl
|
195
|
+
Gene ID'.
|
196
|
+
|
197
|
+
When a column contains entities, these are usualy listed in the table using
|
198
|
+
some identifier like 'Ensembl Gene ID' for genes or 'GO Term IDs', etc. When
|
199
|
+
displaying the table, it automatically substitutes these identifiers with
|
200
|
+
links to their corresponding reports, and lists them by name. Additionally
|
201
|
+
the `column` button allows the user to report the list of entities of any column
|
202
|
+
or, if the first column is itselve an entity, it allows the user to report
|
203
|
+
the `map` between the entities in this column and the values of any other column.
|
204
|
+
Maps are generally used as inputs to actions and tools.
|
205
|
+
|
206
|
+
The content of the table can be downloaded in two forms, as TSV files,
|
207
|
+
which is the original source of the table, or as Excel files. When
|
208
|
+
downloding as Excel files, since are generally intended to be read by
|
209
|
+
people, all entities listed that can be translated to a more human
|
210
|
+
readible identifier are translated automatically. This includes change
|
211
|
+
genes identifiers from `Ensembl Gene ID` to `Associated Gene Name`, or
|
212
|
+
changing KEGG pathway ids to their descriptive name.
|
213
|
+
|
214
|
+
.images
|
215
|
+
%img(src="/img/UI/table.png")
|
216
|
+
|
217
|
+
|
218
|
+
%dt.next Tools
|
219
|
+
%dd
|
220
|
+
.description
|
221
|
+
:markdown
|
222
|
+
|
223
|
+
Some workflows implement `tools`, which provide special interactive
|
224
|
+
visualization for different types of data. For instance: the `Graph`
|
225
|
+
workflow implements the `cytoscape` tool, which is used to display
|
226
|
+
different kinds of entities connected through databases or analitical
|
227
|
+
results; the `Structure` `jmol` tool displays mutations in the
|
228
|
+
secondary and tertiary structures and complexes; and the `D3Js`
|
229
|
+
workflow that implements a tool to display `d3js` interactive SVG
|
230
|
+
figures. Alternative R is used through a native interface in Rbbt to
|
231
|
+
display plots using `ggplot2`.
|
232
|
+
|
233
|
+
These tools are used by different reports and actions. The `Graph`
|
234
|
+
workflow for instance redefines the template for `Gene` lists to
|
235
|
+
include a cytoscape plot to the description section of the report.
|
236
|
+
|
237
|
+
|
238
|
+
.images
|
239
|
+
%dl.tabs.active.show
|
240
|
+
%dt.next.show Cytoscape
|
241
|
+
%dd.show
|
242
|
+
%img(src="/img/UI/cytoscape.png")
|
243
|
+
|
244
|
+
%dt.next Jmol
|
245
|
+
%dd
|
246
|
+
%img(src="/img/UI/jmol.png")
|
247
|
+
|
248
|
+
%dt.next D3Js
|
249
|
+
%dd
|
250
|
+
%img(src="/img/UI/d3js.png")
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbbt-rest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.35
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -255,6 +255,7 @@ files:
|
|
255
255
|
- share/views/error.haml
|
256
256
|
- share/views/form.haml
|
257
257
|
- share/views/help.haml
|
258
|
+
- share/views/help/UI.haml
|
258
259
|
- share/views/help/entity.haml
|
259
260
|
- share/views/help/workflow.haml
|
260
261
|
- share/views/job_info.haml
|
@@ -284,6 +285,20 @@ files:
|
|
284
285
|
- share/views/partials/table/filters.haml
|
285
286
|
- share/views/partials/table/page.haml
|
286
287
|
- share/views/public/favicon.gif
|
288
|
+
- share/views/public/img/UI/action_control.png
|
289
|
+
- share/views/public/img/UI/action_control_wire.png
|
290
|
+
- share/views/public/img/UI/actions.png
|
291
|
+
- share/views/public/img/UI/actions_wire.png
|
292
|
+
- share/views/public/img/UI/cytoscape.png
|
293
|
+
- share/views/public/img/UI/d3js.png
|
294
|
+
- share/views/public/img/UI/favourites.png
|
295
|
+
- share/views/public/img/UI/favourites_wire.png
|
296
|
+
- share/views/public/img/UI/jmol.png
|
297
|
+
- share/views/public/img/UI/report.png
|
298
|
+
- share/views/public/img/UI/report_wire.png
|
299
|
+
- share/views/public/img/UI/table.png
|
300
|
+
- share/views/public/img/UI/topbar.png
|
301
|
+
- share/views/public/img/UI/topbar_wire.png
|
287
302
|
- share/views/public/js/_ajax_replace.js
|
288
303
|
- share/views/public/js/_ellipsis.js
|
289
304
|
- share/views/public/js/_md5.js
|