Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F804750
behavior-comment-preview.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
behavior-comment-preview.js
View Options
/**
* @provides javelin-behavior-differential-feedback-preview
* @requires javelin-behavior
* javelin-stratcom
* javelin-dom
* javelin-request
* javelin-util
* phabricator-shaped-request
*/
JX
.
behavior
(
'differential-feedback-preview'
,
function
(
config
)
{
var
action
=
JX
.
$
(
config
.
action
);
var
content
=
JX
.
$
(
config
.
content
);
var
previewTokenizers
=
{};
var
field
;
for
(
field
in
config
.
previewTokenizers
)
{
var
tokenizer
=
JX
.
$
(
config
.
previewTokenizers
[
field
]);
previewTokenizers
[
field
]
=
JX
.
Stratcom
.
getData
(
tokenizer
).
tokenizer
;
}
var
callback
=
function
(
r
)
{
var
preview
=
JX
.
$
(
config
.
preview
);
JX
.
DOM
.
setContent
(
preview
,
JX
.
$H
(
r
));
JX
.
Stratcom
.
invoke
(
'differential-preview-update'
,
null
,
{
container
:
preview
});
};
var
getdata
=
function
()
{
var
data
=
{
content
:
content
.
value
,
action
:
action
.
value
};
for
(
var
field
in
previewTokenizers
)
{
data
[
field
]
=
JX
.
keys
(
previewTokenizers
[
field
].
getTokens
()).
join
(
','
);
}
return
data
;
};
var
request
=
new
JX
.
PhabricatorShapedRequest
(
config
.
uri
,
callback
,
getdata
);
request
.
listen
(
'error'
,
function
(
error
)
{
JX
.
DOM
.
setContent
(
JX
.
$
(
config
.
preview
),
JX
.
$H
(
'ERROR: '
+
error
.
info
));
});
var
trigger
=
JX
.
bind
(
request
,
request
.
trigger
);
JX
.
DOM
.
listen
(
content
,
'keydown'
,
null
,
trigger
);
JX
.
DOM
.
listen
(
action
,
'change'
,
null
,
trigger
);
for
(
field
in
previewTokenizers
)
{
previewTokenizers
[
field
].
listen
(
'change'
,
trigger
);
}
request
.
start
();
function
refreshInlinePreview
()
{
new
JX
.
Request
(
config
.
inlineuri
,
function
(
r
)
{
var
inline
=
JX
.
$
(
config
.
inline
);
JX
.
DOM
.
setContent
(
inline
,
JX
.
$H
(
r
));
JX
.
Stratcom
.
invoke
(
'differential-preview-update'
,
null
,
{
container
:
inline
});
// Go through the previews and activate any "View" links where the
// actual comment appears in the document.
var
links
=
JX
.
DOM
.
scry
(
inline
,
'a'
,
'differential-inline-preview-jump'
);
for
(
var
ii
=
0
;
ii
<
links
.
length
;
ii
++
)
{
var
data
=
JX
.
Stratcom
.
getData
(
links
[
ii
]);
try
{
JX
.
$
(
data
.
anchor
);
links
[
ii
].
href
=
'#'
+
data
.
anchor
;
JX
.
DOM
.
setContent
(
links
[
ii
],
'View'
);
}
catch
(
ignored
)
{
// This inline comment isn't visible, e.g. on some other diff.
}
}
})
.
setTimeout
(
5000
)
.
send
();
}
JX
.
Stratcom
.
listen
(
'differential-inline-comment-update'
,
null
,
refreshInlinePreview
);
refreshInlinePreview
();
});
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, May 29, 12:50 PM (21 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
179821
Default Alt Text
behavior-comment-preview.js (2 KB)
Attached To
Mode
rP Phorge
Attached
Detach File
Event Timeline
Log In to Comment